{"version":3,"sources":["../node_modules/@material-ui/utils/esm/chainPropTypes.js","../node_modules/@material-ui/utils/esm/elementAcceptingRef.js","../node_modules/@material-ui/utils/esm/elementTypeAcceptingRef.js","../node_modules/@material-ui/utils/esm/exactProp.js","../node_modules/@material-ui/utils/esm/getDisplayName.js","../node_modules/@material-ui/utils/esm/HTMLElementType.js","../node_modules/@material-ui/utils/esm/ponyfillGlobal.js","../node_modules/@material-ui/utils/esm/refType.js","../node_modules/@material-ui/system/esm/index.js","../node_modules/@material-ui/styles/esm/StylesProvider/index.js","../node_modules/react-virtualized/node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","lib/cloudinary/index.ts","lib/showroom/index.tsx","../node_modules/react-virtualized/dist/commonjs/Grid/types.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/lodash/map.js","../node_modules/lodash/some.js","../node_modules/@material-ui/icons/Cancel.js","lib/media/index.ts","Apollo/Store/Showroom/Editor/resolvers.ts","../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/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/lodash/chunk.js","../node_modules/react-virtualized/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.js","../node_modules/react-swipeable-views-core/lib/index.js","../node_modules/react-swipeable-views-core/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/validator/lib/util/assertString.js","context/showroom/ShowroomContext.tsx","../node_modules/@material-ui/icons/ArrowDropDown.js","../node_modules/react-virtualized/dist/commonjs/AutoSizer/index.js","../node_modules/react-virtualized/dist/commonjs/List/index.js","lib/ResizeObserver/index.ts","../node_modules/lodash/_flatRest.js","components/Common/VideoPlayer/styles.ts","components/Common/VideoPlayer/VideoPlayer.tsx","components/Common/VideoPlayer/index.ts","../node_modules/@material-ui/icons/Search.js","../node_modules/lodash/reduce.js","../node_modules/@material-ui/icons/ArrowForwardIosRounded.js","../node_modules/@material-ui/pickers/node_modules/react-transition-group/node_modules/prop-types/index.js","../node_modules/warning/warning.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/extends.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/react-swipeable-views-utils/node_modules/prop-types/index.js","components/Common/FlexLayout/styles.ts","components/Common/FlexLayout/FlexLayout.tsx","../node_modules/@material-ui/icons/DeleteOutlined.js","../node_modules/react-virtualized/dist/commonjs/Grid/defaultOverscanIndicesGetter.js","../node_modules/react-virtualized/dist/commonjs/Grid/defaultCellRangeRenderer.js","../node_modules/react-virtualized/dist/commonjs/utils/requestAnimationTimeout.js","../node_modules/react-virtualized/dist/commonjs/vendor/detectElementResize.js","../node_modules/react-virtualized/dist/commonjs/List/types.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_compareAscending.js","../node_modules/react-virtualized/dist/commonjs/WindowScroller/WindowScroller.js","components/Common/Dialog/Confirm/styles.ts","components/Common/Dialog/Confirm/DialogConfirm.tsx","components/Common/Dialog/Confirm/index.ts","../node_modules/@material-ui/icons/SaveAlt.js","../node_modules/react-use/lib/useUpdateEffect.js","../node_modules/lodash/_baseUnset.js","Apollo/Store/Showroom/queries.ts","components/Common/ArrowPopper/styles.ts","components/Common/ArrowPopper/ArrowPopper.tsx","components/Common/MediaImage/styles.ts","components/Common/MediaImage/MediaImage.tsx","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/lodash/_baseOrderBy.js","components/Common/ArrowPopper/index.ts","../node_modules/lodash/last.js","../node_modules/lodash/_createAggregator.js","../node_modules/@material-ui/icons/DeleteOutline.js","../node_modules/react-virtualized/dist/commonjs/Grid/index.js","../node_modules/@material-ui/icons/ArrowBackIos.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/react-swipeable-views-core/lib/constant.js","../node_modules/react-event-listener/dist/react-event-listener.cjs.js","../node_modules/validator/lib/isEmail.js","../node_modules/validator/lib/util/merge.js","../node_modules/@date-io/dayjs/build/index.esm.js","../../MuiPickersUtilsProvider.tsx","../../_shared/hooks/useUtils.ts","../../_helpers/utils.ts","../../wrappers/StaticWrapper.tsx","../../constants/dimensions.ts","../../_shared/ModalDialog.tsx","../../_shared/hooks/useKeyDown.ts","../../wrappers/ModalWrapper.tsx","../../wrappers/InlineWrapper.tsx","../../wrappers/Wrapper.tsx","../node_modules/rifm/dist/rifm.esm.js","../../views/Calendar/Day.tsx","../node_modules/@material-ui/pickers/node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/@material-ui/pickers/node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/@material-ui/pickers/node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@material-ui/pickers/node_modules/react-transition-group/esm/config.js","../node_modules/@material-ui/pickers/node_modules/react-transition-group/esm/Transition.js","../node_modules/@material-ui/pickers/node_modules/react-transition-group/esm/CSSTransition.js","../../_helpers/date-utils.ts","../../views/Calendar/DayWrapper.tsx","../../views/Calendar/SlideTransition.tsx","../../views/Calendar/CalendarHeader.tsx","../../_shared/icons/ArrowLeftIcon.tsx","../../_shared/icons/ArrowRightIcon.tsx","../../_shared/WithUtils.tsx","../../views/Calendar/Calendar.tsx","../../constants/ClockType.ts","../../views/Clock/ClockPointer.tsx","../../_helpers/time-utils.ts","../../views/Clock/Clock.tsx","../../views/Clock/ClockNumber.tsx","../../views/Clock/ClockNumbers.tsx","../../views/Clock/ClockView.tsx","../../constants/prop-types.ts","../../views/Year/Year.tsx","../../views/Year/YearView.tsx","../../views/Month/Month.tsx","../../views/Month/MonthView.tsx","../../_shared/hooks/useIsLandscape.tsx","../../Picker/Picker.tsx","../../_shared/hooks/useViews.tsx","../../_shared/ToolbarText.tsx","../../_shared/ToolbarButton.tsx","../../_shared/PickerToolbar.tsx","../../_shared/PureDateInput.tsx","../../_shared/icons/KeyboardIcon.tsx","../../_helpers/text-field-helper.ts","../../_shared/KeyboardDateInput.tsx","../../_shared/hooks/usePickerState.ts","../../_shared/hooks/useOpenState.ts","../../_shared/hooks/useKeyboardPickerState.ts","../../Picker/makePickerWithState.tsx","../../TimePicker/TimePickerToolbar.tsx","../../DateTimePicker/DateTimePickerTabs.tsx","../../_shared/icons/DateRangeIcon.tsx","../../_shared/icons/TimeIcon.tsx","../../DateTimePicker/DateTimePickerToolbar.tsx","../../DateTimePicker/DateTimePicker.tsx","../../DatePicker/DatePickerToolbar.tsx","../../DatePicker/DatePicker.tsx","components/Common/DatePicker/styles.ts","components/Common/DatePicker/DatePicker.tsx","components/Common/DatePicker/index.ts","../node_modules/dayjs/plugin/utc.js","../node_modules/react-infinite-scroller/index.js","../node_modules/lodash/reject.js","Apollo/Store/Showroom/Editor/queries.ts","../node_modules/lodash/_baseExtremum.js","../node_modules/@material-ui/icons/PlayCircleOutline.js","../node_modules/lodash/orderBy.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/groupBy.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/react-virtualized/dist/commonjs/Grid/Grid.js","../node_modules/react-virtualized/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js","../node_modules/react-virtualized/dist/commonjs/Grid/utils/CellSizeAndPositionManager.js","../node_modules/react-virtualized/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-virtualized/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-virtualized/dist/commonjs/Grid/utils/maxElementSize.js","../node_modules/react-virtualized/dist/commonjs/utils/createCallbackMemoizer.js","../node_modules/react-virtualized/dist/commonjs/Grid/utils/updateScrollIndexHelper.js","../node_modules/react-virtualized/dist/commonjs/utils/animationFrame.js","../node_modules/react-virtualized/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.js","../node_modules/react-virtualized/dist/commonjs/AutoSizer/AutoSizer.js","../node_modules/react-virtualized/dist/commonjs/List/List.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_baseReduce.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/react-infinite-scroller/dist/InfiniteScroll.js","../node_modules/react-infinite-scroller/node_modules/prop-types/index.js","../node_modules/react-infinite-scroller/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-infinite-scroller/node_modules/prop-types/lib/ReactPropTypesSecret.js","components/Common/FlexLayout/index.ts","../node_modules/react-virtualized/dist/commonjs/WindowScroller/index.js","../node_modules/react-virtualized/dist/commonjs/WindowScroller/utils/onScroll.js","../node_modules/react-virtualized/dist/commonjs/WindowScroller/utils/dimensions.js","../node_modules/react-use/lib/useFirstMountState.js","../node_modules/lodash/pullAt.js","../node_modules/lodash/_baseAt.js","../node_modules/lodash/_basePullAt.js","../node_modules/lodash/_parent.js","../node_modules/lodash/negate.js","../node_modules/lodash/min.js","../node_modules/lodash/_baseLt.js","../node_modules/shallow-equal/dist/index.esm.js","icons/samples.svg","../node_modules/html-parse-stringify2/index.js","../node_modules/html-parse-stringify2/lib/parse.js","../node_modules/html-parse-stringify2/lib/parse-tag.js","../node_modules/void-elements/index.js","../node_modules/html-parse-stringify2/lib/stringify.js","../node_modules/@material-ui/styles/esm/withTheme/withTheme.js","../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/lodash/keyBy.js","../node_modules/lodash/omit.js","components/Showroom/Layout/styles.ts","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_baseAggregator.js","../node_modules/@material-ui/core/esm/Drawer/Drawer.js","../node_modules/dayjs/plugin/advancedFormat.js","../node_modules/dayjs/plugin/timezone.js","../node_modules/@material-ui/icons/DateRangeOutlined.js","../node_modules/@material-ui/pickers/node_modules/react-transition-group/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/@material-ui/pickers/node_modules/react-transition-group/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-swipeable-views/lib/index.js","../node_modules/react-swipeable-views/lib/SwipeableViews.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/extends.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/react-swipeable-views/node_modules/prop-types/index.js","../node_modules/react-swipeable-views/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-swipeable-views/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-swipeable-views-core/lib/checkIndexBounds.js","../node_modules/react-swipeable-views-core/lib/computeIndex.js","../node_modules/react-swipeable-views-core/lib/getDisplaySameSlide.js","../node_modules/react-swipeable-views-core/lib/mod.js","../node_modules/react-swipeable-views-utils/lib/index.js","../node_modules/react-swipeable-views-utils/lib/autoPlay.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/react-swipeable-views-utils/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-swipeable-views-utils/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-event-listener/node_modules/prop-types/index.js","../node_modules/react-event-listener/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-event-listener/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-swipeable-views-utils/lib/bindKeyboard.js","../node_modules/keycode/index.js","../node_modules/react-swipeable-views-utils/lib/virtualize.js","../node_modules/react-swipeable-views-utils/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@material-ui/core/colors/common.js","../node_modules/@material-ui/icons/ArrowBackIosRounded.js","components/Common/MediaImage/index.ts","../node_modules/validator/lib/isByteLength.js","../node_modules/validator/lib/isFQDN.js","../node_modules/validator/lib/isIP.js","lib/trackApi/index.ts","../node_modules/lodash/_customOmitClone.js","../node_modules/@material-ui/utils/node_modules/prop-types/index.js","../node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js","../node_modules/@material-ui/icons/ArrowForwardIos.js","../node_modules/@material-ui/core/esm/Link/Link.js","components/Common/UserConsentInput/styles.ts","components/Common/UserConsentInput/UserConsentInput.tsx","lib/userConsent/index.tsx","../node_modules/@material-ui/core/esm/Card/Card.js","../node_modules/@material-ui/icons/Email.js","../node_modules/@material-ui/icons/MoreVertOutlined.js","../node_modules/@material-ui/icons/MailOutline.js","../node_modules/@material-ui/icons/Clear.js","../node_modules/@material-ui/icons/CheckBoxOutlineBlank.js","../node_modules/@material-ui/icons/CheckBox.js","../node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","lib/wait/index.ts","lib/downloadFiles/index.tsx","../node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js","../node_modules/@material-ui/core/esm/DialogContent/DialogContent.js","../node_modules/@material-ui/core/esm/DialogActions/DialogActions.js","../node_modules/@material-ui/core/esm/MenuItem/MenuItem.js","../node_modules/@material-ui/core/esm/ListItemText/ListItemText.js","../node_modules/@material-ui/core/esm/InputAdornment/InputAdornment.js","../node_modules/react-i18next/dist/es/Trans.js","../node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js","context/showroom/index.ts","../../../../src/react/hooks/useApolloClient.ts","../node_modules/@material-ui/icons/Phone.js","../node_modules/@material-ui/icons/DescriptionOutlined.js","../node_modules/@material-ui/icons/ClearTwoTone.js","../node_modules/i18n-iso-countries/langs sync /^/.//.*/.json$","../node_modules/@material-ui/icons/PhoneAndroid.js","../node_modules/lodash/flattenDeep.js","../node_modules/lodash/intersection.js","../node_modules/lodash/_baseIntersection.js","../node_modules/lodash/_castArrayLikeObject.js","../node_modules/chroma-js/chroma.js","../node_modules/@material-ui/icons/IndeterminateCheckBox.js","../node_modules/@material-ui/icons/KeyboardArrowUp.js","../node_modules/@material-ui/icons/KeyboardArrowDown.js","../node_modules/@material-ui/icons/CancelRounded.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@material-ui/core/styles/useTheme.js","../node_modules/@material-ui/core/styles/defaultTheme.js","../node_modules/@material-ui/core/styles/createTheme.js","../node_modules/@material-ui/utils/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/@material-ui/utils/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/@material-ui/core/styles/createBreakpoints.js","../node_modules/@material-ui/core/styles/createMixins.js","../node_modules/@material-ui/core/styles/createPalette.js","../node_modules/@material-ui/core/colors/indigo.js","../node_modules/@material-ui/core/colors/pink.js","../node_modules/@material-ui/core/colors/orange.js","../node_modules/@material-ui/core/colors/blue.js","../node_modules/@material-ui/core/colors/green.js","../node_modules/@material-ui/core/styles/colorManipulator.js","../node_modules/@material-ui/core/styles/createTypography.js","../node_modules/@material-ui/core/styles/shadows.js","../node_modules/@material-ui/core/styles/shape.js","../node_modules/@material-ui/core/styles/createSpacing.js","../node_modules/@material-ui/core/styles/transitions.js","../node_modules/@material-ui/core/styles/zIndex.js","icons/addToSamplesBasket.svg","Apollo/Store/Showroom/UserView/resolvers.ts","lib/ShowroomSingleMediaDownload/index.tsx","icons/removeFromSamplesBasket.svg","components/Showroom/MobileActionsMenuLayout/styles.ts","components/Showroom/MobileActionsMenuLayout/ShowroomMobileActionsMenuLayout.tsx","components/Showroom/MobileMediaMenu/styles.ts","components/Showroom/MobileMediaMenu/ShowroomMobileMediaMenu.tsx","../node_modules/@splidejs/react-splide/dist/js/react-splide.esm.js","components/utils.ts","components/Showroom/Content/Contacts/ShowroomContact/styles.ts","components/Showroom/Content/Contacts/ShowroomContact/ShowroomPRContact.tsx","components/Showroom/Content/Contacts/styles.ts","components/Showroom/Content/Contacts/ShowroomPRContacts.tsx","components/Showroom/ShowroomContainerLayout/styles.ts","components/Showroom/ShowroomContainerLayout/ShowroomContainerLayout.tsx","components/Showroom/Content/Footer/styles.ts","components/Showroom/Content/Footer/ShowroomFooter.tsx","Apollo/Store/Showroom/UserView/Samples/resolvers.ts","components/Showroom/MediaActionsLayout/styles.ts","components/Showroom/MediaActionsLayout/ShowroomMediaActionsLayout.tsx","components/Showroom/BasketLayout/Item/styles.ts","components/Showroom/BasketLayout/Item/ShowroomBasketItem.tsx","components/Showroom/BasketLayout/styles.ts","components/Showroom/BasketLayout/ShowroomBasketLayout.tsx","Apollo/Store/Showroom/UserView/Samples/Form/resolvers.ts","../node_modules/@material-ui/core/esm/Step/Step.js","../node_modules/@material-ui/core/esm/internal/svg-icons/CheckCircle.js","../node_modules/@material-ui/core/esm/internal/svg-icons/Warning.js","../node_modules/@material-ui/core/esm/StepIcon/StepIcon.js","../node_modules/@material-ui/core/esm/StepLabel/StepLabel.js","icons/sampleRequestSuccess.svg","../node_modules/@material-ui/core/esm/StepConnector/StepConnector.js","../node_modules/@material-ui/core/esm/Stepper/Stepper.js","icons/emptyBasketMediaActions.svg","components/Showroom/SamplesForm/Steps/AboutRequest/styles.ts","components/Showroom/SamplesForm/Steps/AboutRequest/ShowroomSamplesFormStepsAboutRequest.tsx","components/Showroom/SamplesForm/Steps/AboutRequest/index.ts","components/Showroom/SamplesForm/Steps/AboutYou/styles.ts","components/Showroom/SamplesForm/Steps/AboutYou/ShowroomSamplesFormStepsAboutYou.tsx","components/Showroom/SamplesForm/Steps/AboutYou/index.ts","components/Showroom/SamplesForm/Steps/Optional/styles.ts","components/Showroom/SamplesForm/Steps/Optional/ShowroomSamplesFormStepsOptional.tsx","components/Showroom/SamplesForm/Steps/Optional/index.ts","components/Showroom/SamplesForm/styles.ts","components/Showroom/SamplesForm/ShowroomSamplesForm.tsx","components/Showroom/SamplesForm/index.ts","icons/addToSamplesBasketHovered.svg","components/Showroom/SamplesBasket/EmptyBasket/styles.ts","components/Showroom/SamplesBasket/EmptyBasket/ShowroomSamplesEmptyBasket.tsx","components/Showroom/SamplesBasket/style.ts","components/Showroom/SamplesBasket/ShowroomSamplesBasket.tsx","components/Showroom/Content/Header/styles.ts","components/Showroom/Content/Header/ShowroomContentHeader.tsx","Apollo/Store/Showroom/read.ts","lib/showroomFilters/index.ts","icons/showroomFilterIcon.svg","components/Showroom/Content/MediaItem/styles.ts","components/Showroom/MediaActions/styles.ts","components/Showroom/MediaActions/ShowroomMediaActions.tsx","components/Showroom/Layer/Media/styles.ts","components/Showroom/Layer/Media/ShowroomLayerMedia.tsx","components/Showroom/Layer/Media/index.ts","components/Showroom/Layer/Product/ProductDetails/styles.ts","components/Showroom/Layer/Product/ProductDetails/ShowroomProductDetails.tsx","components/Showroom/Layer/Product/ProductDetails/index.ts","components/Showroom/Layer/Product/styles.ts","components/Showroom/Layer/Product/ShowroomProductLayer.tsx","components/Showroom/Layer/Product/index.ts","components/Showroom/Layer/Zoom/styles.ts","components/Showroom/Layer/Zoom/ShowroomZoom.tsx","components/Showroom/Layer/styles.ts","components/Showroom/Layer/ShowroomLayer.tsx","components/Showroom/Layer/index.ts","components/Common/ShowroomImage/styles.ts","components/Common/ShowroomImage/ShowroomImage.tsx","components/Common/ShowroomImage/index.ts","components/Showroom/Content/MediaItem/ShowroomMediaItem.tsx","components/Showroom/Content/Section/Layout/Filters/FilterTree/styles.ts","components/Showroom/Content/Section/Layout/Filters/FilterTree/ShowroomContentFilterTree.tsx","components/Showroom/Content/Section/Layout/Filters/FilterTreeContainer/styles.ts","components/Showroom/Content/Section/Layout/Filters/FilterTreeContainer/ShowroomFilterTreeContainer.tsx","components/Showroom/Content/Section/Layout/Filters/FilterTreeContainer/index.ts","components/Showroom/Content/Section/Layout/Filters/MobileFilters/styles.ts","components/Showroom/Content/Section/Layout/Filters/MobileFilters/ShowroomMobileFilters.tsx","components/Showroom/Content/Section/Layout/Filters/MobileFilters/index.ts","components/Showroom/Content/Section/Layout/Filters/styles.ts","components/Showroom/Content/Section/Layout/Filters/ShowroomContentSectionFiltersLayout.tsx","../node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.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/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/AutoSizer/AutoSizer.js","../node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js","../node_modules/react-virtualized/dist/es/Collection/CollectionView.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/Collection/index.js","../node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js","../node_modules/react-virtualized/dist/es/ColumnSizer/index.js","../node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js","../node_modules/react-virtualized/dist/es/InfiniteLoader/index.js","../node_modules/react-virtualized/dist/es/List/List.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/Masonry/index.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/Table/index.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","../node_modules/react-virtualized/dist/es/WindowScroller/index.js","lib/flexSizeCalculator/index.ts","components/Showroom/Content/Section/Layout/Row/styles.ts","components/Showroom/Content/Section/Layout/Row/ShowroomContentSectionRowLayout.tsx","Apollo/Store/Showroom/UserView/Share/resolvers.ts","components/Showroom/Content/Section/Layout/SectionActions/styles.ts","components/Showroom/Content/Section/Layout/SectionActions/ShowroomSectionActions.tsx","components/Showroom/Content/Section/Layout/SectionActions/index.ts","components/Showroom/Content/Section/styles.ts","components/Showroom/Content/Section/ShowroomContentSection.tsx","../node_modules/@material-ui/core/esm/RadioGroup/RadioGroup.js","components/Showroom/Content/Share/styles.ts","components/Showroom/Content/Share/ShowroomContentShare.tsx","components/Showroom/Content/Share/index.ts","components/Showroom/Content/styles.ts","components/Showroom/Content/ShowroomContent.tsx","components/Showroom/Content/index.ts","containers/Download/images/BG1.jpg","containers/Download/images/index.ts","containers/Download/images/BG2.jpg","containers/Download/images/BG3.jpg","containers/Download/images/BG4.jpg","containers/Download/images/BG5.jpg","containers/Download/images/BG7.png","containers/Download/images/BG8.jpg","containers/Download/images/BG9.jpg","containers/Download/images/BG10.jpg","containers/Download/images/BG11.jpg","containers/Download/images/BG12.jpg","containers/Download/images/BG13.jpg","../node_modules/@material-ui/core/esm/CardContent/CardContent.js","../node_modules/@material-ui/core/esm/Badge/Badge.js","../node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js","../node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js","../node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js","../node_modules/@material-ui/core/esm/Radio/Radio.js","../node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js","../node_modules/react-helmet/es/Helmet.js","../node_modules/react-helmet/node_modules/prop-types/index.js","../node_modules/react-helmet/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-helmet/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-side-effect/lib/index.js","../node_modules/react-fast-compare/index.js","../node_modules/@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js","components/Common/CookieBanner/styles.ts","components/Common/CookieBanner/CookieBanner.tsx","components/Common/CookieBanner/index.ts","components/Common/Error/styles.ts","components/Common/Error/Error.tsx","components/Common/Error/index.ts","components/Showroom/Login/styles.ts","components/Showroom/Login/ShowroomLogin.tsx","containers/PublicShowroom/PublicShowroom.tsx","containers/PublicShowroom/index.ts"],"names":["chainPropTypes","propType1","propType2","elementAcceptingRef","PropTypes","element","isRequired","exactProp","propTypes","fnNameMatchRegex","getFunctionName","fn","match","concat","getFunctionComponentName","Component","fallback","arguments","length","undefined","displayName","name","getWrappedName","outerType","innerType","wrapperName","functionName","getDisplayName","_typeof","$$typeof","ForwardRef","render","Memo","type","HTMLElementType","props","propName","componentName","location","propFullName","window","Math","self","Function","refType","oneOfType","func","object","module","exports","require","assertThisInitialized","call","TypeError","__esModule","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","prototype","create","constructor","value","writable","configurable","ReferenceError","cloudinaryCore","Cloudinary","cloud_name","process","getVersion","url","matches","getImageUrl","publicId","options","format","rest","getVideoUrl","video_url","getVideoPreviewUrl","video_thumbnail_url","isFolderNameValid","isEmpty","toLowerCase","useIsShowroomMobileVersion","theme","useTheme","useMediaQuery","breakpoints","down","useGetCurrentShowroomId","React","useContext","ShowroomContext","showroomId","useGetCurrentShowroomData","isPublic","showroomData","data","useGetShowroomWithoutSectionsQuery","variables","id","fetchPolicy","getShowroom","useGetShowroomData","showroomPublicData","useGetPublicShowroomWithoutSectionsQuery","useGetPulblicShowroomData","useIsShowroomUserView","isUserView","useIsShowroomDowloadOptionEnabled","useGetShowroomDownloadEnabledQuery","downloadEnabled","useIsShowroomBasketEnabled","showroomBasketInfo","useGetShowroomBasketInfoQuery","useMemo","tenant","isSamplesEnabled","requestSamplesEnabled","hasSamples","useGetShowroomMediasByIds","sectionId","client","useApolloClient","useGetShowroomSectionLoadingMediaFieldsQuery","showroomSection","loaded","loading","rowMediaIds","useEffect","active","fetchMedias","a","mediaIds","reduce","acc","row","push","mediaChunks","chunk","promises","map","query","GET_MEDIAS_BY_IDS","Promise","all","responses","medias","flatMap","res","mediasByIds","updateShowroomSectionLoaded","updateShowroomMediaParams","updateShowroomSectionLoading","useGetShowroomScrollElement","scrollElement","filtersSort","useSortShowroomFilterTrees","filterTrees","sorted","sort","value1","value2","getFilterSortPosition","index","indexOf","Number","MAX_SAFE_INTEGER","value1Pos","value2Pos","_interopRequireDefault","_interopRequireWildcard","defineProperty","bpfrpt_proptype_VisibleCellRange","bpfrpt_proptype_Alignment","bpfrpt_proptype_OverscanIndicesGetter","bpfrpt_proptype_OverscanIndices","bpfrpt_proptype_OverscanIndicesGetterParams","bpfrpt_proptype_RenderedSection","bpfrpt_proptype_ScrollbarPresenceChange","bpfrpt_proptype_Scroll","bpfrpt_proptype_NoContentRenderer","bpfrpt_proptype_CellSize","bpfrpt_proptype_CellSizeGetter","bpfrpt_proptype_CellRangeRenderer","bpfrpt_proptype_CellRangeRendererParams","bpfrpt_proptype_StyleCache","bpfrpt_proptype_CellCache","bpfrpt_proptype_CellRenderer","bpfrpt_proptype_CellRendererParams","bpfrpt_proptype_CellPosition","_extends","assign","target","i","source","key","hasOwnProperty","apply","this","arrayMap","baseIteratee","baseMap","isArray","collection","iteratee","arraySome","baseSome","isIterateeCall","predicate","guard","default","_default","createElement","d","isImage","file","mediaType","MediaType","Image","isPdf","Pdf","isVideo","Video","getMediaTypeFromFileType","fileType","seasonYearFormat","seasonYear","stateManager","StateManager","cache","getCache","openEditorMode","update","isOpen","step","closeEditorMode","INITIAL_STATE","goToStep","goToSection","section","displaySectionOptions","currentSection","setDisplaySectionOptions","selected","get","updateShowroomParams","showroomParams","sections","cloneDeep","find","forEach","media","rowIndex","findIndex","includes","rows","sortedRow","mediaIndex","rowMediaId","splice","mediaId","cloudinaryId","width","height","originalFilename","createdAt","cloudinaryVersion","toString","isSample","updateSectionOptions","getNewMediasToAdd","selectedMedias","readQuery","SELECTED_LIBRARY_MEDIAS_EDITOR","librarySelectedMedias","sectionFilesIds","flatten","fixRows","emptyRow","startFixFrom","endFixFrom","maxRows","shouldBeEmpty","readSectionData","updateSection","sectionData","sectionsCopy","reorganizeSection","itemsPerRow","sortBy","updatedSection","addMediasToSection","newMedias","addSelectedMediasToSection","split","field","order","sortedArray","b","fieldA","fieldB","localeCompare","numeric","sensitivity","reverse","splittedItems","newRows","items","firstRows","slice","lastRows","addMediaToRow","start","currentRow","firstFiles","lastFiles","removeMediaFromSection","reject","pullAt","updatePrContactValues","values","prContacts","prContact","addEmptyContact","email","phone","jobTitle","deleteContact","moveMediaToRow","coordinates","fromRow","fromColumn","column","originRow","destinationRow","splicedItems","getCleanedShowroomParams","showroomParamsCopy","filter","every","_possibleConstructorReturn","_inherits","componentWillMount","state","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","componentDidUpdate","maybeSnapshot","snapshot","__suppressDeprecationWarning","baseSlice","toInteger","nativeCeil","ceil","nativeMax","max","array","size","resIndex","result","Array","_objectWithoutProperties2","_classCallCheck2","_createClass2","_defineProperty2","_CellSizeAndPositionManager","_maxElementSize","ScalingCellSizeAndPositionManager","_ref","_ref$maxScrollSize","maxScrollSize","getMaxElementSize","params","_cellSizeAndPositionManager","_maxScrollSize","getTotalSize","configure","getCellCount","getEstimatedCellSize","getLastMeasuredIndex","_ref2","containerSize","offset","totalSize","safeTotalSize","offsetPercentage","_getOffsetPercentage","round","getSizeAndPositionOfCell","getSizeAndPositionOfLastMeasuredCell","min","_ref3","_ref3$align","align","currentOffset","targetIndex","_safeOffsetToOffset","getUpdatedOffsetForIndex","_offsetToSafeOffset","_ref4","getVisibleCellRange","resetCell","_ref5","_ref6","_ref7","enumerable","_checkIndexBounds","_computeIndex","_constant","_getDisplaySameSlide","_mod","obj","Symbol","iterator","input","String","invalidType","createContext","track","getParams","ShowroomContextProvider","children","password","useTrackApi","Provider","memo","_AutoSizer","_List","_types","bpfrpt_proptype_RowRendererParams","ResizeObserver","Polyfill","overRest","setToString","useStyles","makeStyles","videoPlayerContainer","position","display","flexDirection","cursor","alignItems","justifyContent","videoPointerDisabled","videoCover","top","left","right","bottom","coverDisabled","pointerEvents","videoThumbnailContainer","backgroundSize","opacity","transition","videoThumbnailHidden","videoThumbnail","objectFit","objectPosition","videoPlayer","maxWidth","maxHeight","videoPlayerFullScreen","videoPreviewContainer","videoPlayerHidden","videoItemButtonContainer","background","videoPlayButton","padding","videoItemIcon","color","videoItem","VideoPlayer","videoId","config","overlay","onPlay","videoRef","useRef","previewVideoRef","useState","isVideoPlaying","setVideoPlaying","isPreviewPlaying","setPreviewPlaying","isFullScreen","setFullScreen","videoPlayed","setVideoPlayed","scrollActive","setScrollActive","videoPlayFailed","setVideoPlayFailed","classes","videoWidth","setVideoWidth","videoContainerRef","merge","controls","autoPlay","muted","fullScreen","preview","loop","autoplayOnScroll","showPlayButton","canPlayPreview","playOnScrollEnabled","canShowControls","showCover","canShowPlayButton","current","videoPreview","onplaying","onpause","onended","ev","playPreview","useCallback","currentTime","play","stopPreview","pause","videoContainer","observer","CustomResizeObserver","offsetWidth","observe","unobserve","handleFullScreenChange","fullscreenElement","video","append","document","body","removeChild","onload","addEventListener","e","webkitIsFullScreen","mozFullScreen","msFullscreenElement","openFullScreen","requestFullscreen","appendChild","mozRequestFullScreen","msRequestFullscreen","webkitRequestFullscreen","playVideo","console","log","stopVideo","IntersectionObserver","entries","isIntersecting","threshold","rootMargin","videoClickHandler","player","optimizedUrl","transformation","version","className","clsx","ref","controlsList","playsInline","src","previewPlayer","playButton","iconFontSize","IconButton","style","fontSize","alt","onMouseEnter","onMouseLeave","onClick","arrayReduce","baseEach","baseReduce","accumulator","initAccum","warning","objectWithoutPropertiesLoose","excluded","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","instance","Constructor","_defineProperties","descriptor","protoProps","staticProps","resultsList","flexFlow","flex","margin","resultsRow","paddingLeft","LARGE_DISPLAY_RATIO","getElementRatio","calculateElementMaxWidth","containerWidth","displayMode","calculateElementMinWidth","calculateFlexGrow","calculateElementWidth","limitWidth","ratio","elementWidth","calculateFlexElementEqualWidth","floor","FlexLayout","elements","containerClassName","gutterValue","isMobile","maxItemsPerRow","titleHeight","sameWidthProps","renderElement","setContainerWidth","containerRef","listRef","recompute","clientWidth","recomputeRowHeights","useUpdateEffect","containerElement","minWidth","generateStyleRules","flexGrow","boxSizing","screenWidth","remainingWidth","image","newWidth","buildAllRows","computeRowHeight","elementsWidth","totalFlexGrow","remainingSpace","resizedElements","flexElementWidth","calculateElementFlexWidth","newHeight","calculateHeight","buildRow","styleProps","rowFiles","isScrolling","onChildScroll","scrollTop","registerChild","disableHeight","autoHeight","rowCount","rowHeight","rowRenderer","onScroll","cellCount","overscanCellsCount","scrollDirection","startIndex","stopIndex","overscanStartIndex","overscanStopIndex","SCROLL_DIRECTION_VERTICAL","SCROLL_DIRECTION_HORIZONTAL","SCROLL_DIRECTION_FORWARD","SCROLL_DIRECTION_BACKWARD","cellCache","cellRenderer","columnSizeAndPositionManager","columnStartIndex","columnStopIndex","deferredMeasurementCache","horizontalOffsetAdjustment","isScrollingOptOut","parent","rowSizeAndPositionManager","rowStartIndex","rowStopIndex","styleCache","verticalOffsetAdjustment","visibleColumnIndices","visibleRowIndices","renderedCells","areOffsetsAdjusted","canCacheStyle","rowDatum","columnIndex","columnDatum","isVisible","stop","has","cellRendererParams","renderedCell","bpfrpt_proptype_AnimationTimeoutId","requestAnimationTimeout","cancelAnimationTimeout","_animationFrame","frame","caf","callback","delay","resolve","then","Date","now","raf","timeout","nonce","hostWindow","_window","global","attachEvent","requestFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","cancelFrame","cancel","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","resetTriggers","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollLeft","scrollWidth","scrollHeight","offsetHeight","scrollListener","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","animation","keyframeprefix","animationstartevent","domPrefixes","startEvents","pfx","elm","animationName","animationKeyframes","animationStyle","addResizeListener","doc","ownerDocument","elementStyle","getComputedStyle","getElementById","css","head","getElementsByTagName","setAttribute","styleSheet","cssText","createTextNode","createStyles","resizeTriggersHtml","trustedTypes","staticPolicy","createPolicy","createHTML","innerHTML","__animationListener__","removeResizeListener","detachEvent","removeEventListener","bpfrpt_proptype_RenderedRows","bpfrpt_proptype_RowRenderer","isArrayLike","isSymbol","other","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","IS_SCROLLING_TIMEOUT","_class","_temp","_possibleConstructorReturn2","_getPrototypeOf3","_assertThisInitialized2","_inherits2","ReactDOM","_onScroll","_dimensions","_detectElementResize","ownKeys","enumerableOnly","keys","symbols","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","getWindow","WindowScroller","_React$PureComponent","_getPrototypeOf2","_this","_len","args","_key","getDimensions","Element","warn","_child","updatePosition","scrollTo","_positionFromTop","_onResize","_isMounted","scrollOffset","getScrollOffset","_positionFromLeft","onResize","_this$state","thisNode","findDOMNode","getPositionOffset","dimensions","registerScrollListener","_registerResizeListener","prevScrollElement","unregisterScrollListener","_unregisterResizeListener","_this$state2","_onChildScroll","_registerChild","PureComponent","scrollingResetTimeInterval","serverHeight","serverWidth","root","cancelIcon","title","fontWeight","marginBottom","content","lineHeigh","actionsContainer","paddingBottom","buttonLabel","removeButtonLabel","confirmButtonLabel","confirmButtonModeconfirm","backgroundColor","palette","primary","main","light","confirmButtonModeremove","red","additionalContentWrapper","marginRight","DialogConfirm","open","additionalContent","dismissText","confirmText","confirmTypeButton","confirmButtonDisabled","onDismiss","onConfirm","isDoingAction","setIsDoingAction","controlled","isUndefined","Dialog","paper","disableBackdropClick","disableEscapeKeyDown","DialogTitle","disableTypography","DialogContent","DialogActions","Button","variant","label","CircularProgress","startIcon","disabled","react_1","useFirstMountState_1","effect","deps","isFirstMount","useFirstMountState","castPath","last","toKey","path","SHOWROOM_MEDIA_INFO_FRAGMENT","gql","SHOWROOM_SECTION_INFO","SHOWROOM_SECTION_INFO_WITH_ROWMEDIAIDS","SHOWROOM_INFO","GET_SHOWROOM_SECTION_FILTERS","SHOWROOM_FILTER_VALUE_INFO","SHOWROOM_FILTER_GROUP_INFO","GET_SHOWROOM_FILTER_VALUES","popper","zIndex","borderRadius","borderLeft","borderRight","borderBottom","marginTop","borderTop","marginLeft","popperContent","arrow","CustomPopper","anchor","placement","popperProps","TransitionComponent","transitionProps","contentClasses","onClickAway","arrowRef","setArrowRef","handleArrowRef","node","ClickAwayListener","Popper","anchorEl","modifiers","flip","enabled","TransitionProps","imageRoot","linearOverlay","imagePlaceholder","previewMediaPlaceholder","placeholderColor","previewMediaPlaceholderHidden","MediaImage","sizes","imageSizes","availableSizes","mobileBreakpoint","imageTresholds","defaultThresholds","imageAttributes","imgClassName","imgLoaded","setImgLoaded","defaultOptions","quality","crop","fetchFormat","resource_type","srcSet","cloudinarySize","imageSize","mobileSize","desktopSize","onLoad","join","scrollbarSize","recalc","canUseDOM","scrollDiv","overflow","baseGet","baseSortBy","baseUnary","compareMultiple","identity","iteratees","orders","arrayAggregator","baseAggregator","setter","initializer","_Grid","_accessibilityOverscanIndicesGetter","_defaultCellRangeRenderer","_defaultOverscanIndicesGetter","newObj","desc","set","RESISTANCE_COEF","UNCERTAINTY_THRESHOLD","_interopDefault","ex","_classCallCheck","_createClass","_objectWithoutProperties","passiveOption","property","attr","supportsPassiveOption","err","defaultEventOptions","capture","passive","mergeDefaultEventOptions","getEventListenerArgs","eventName","on","off","forEachListener","eventProps","substring","prop","isObject","substr","handler","EventListener","applyListeners","onOrOff","withOptions","str","_assertString","_merge","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","replace","endsWith","display_name_without_quotes","trim","test","validateDisplayName","ignore_max_length","parts","domain","pop","lower_domain","host_blacklist","user","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","require_tld","allow_ip_domain","_isIP","startsWith","noBracketdomain","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","pattern","emailUserUtf8Part","emailUserPart","user_parts","_i","blacklisted_chars","search","RegExp","defaults","defaultDayjs","extend","customParseFormat","advancedFormat","DayjsUtils","_a","_b","locale","dayjs","yearFormat","yearMonthFormat","dateTime12hFormat","dateTime24hFormat","time12hFormat","time24hFormat","dateFormat","withLocale","parse","date","isValid","isNull","getDiff","comparing","units","float","diff","isAfter","isBefore","isAfterDay","isBeforeDay","isBeforeYear","isAfterYear","startOfDay","clone","startOf","endOfDay","endOf","formatString","formatNumber","numberToFormat","getHours","hour","addDays","count","subtract","abs","add","setMonth","setHours","getMinutes","minute","setMinutes","getSeconds","second","setSeconds","getMonth","month","isSameDay","isSame","isSameMonth","isSameYear","isSameHour","getMeridiemText","ampm","startOfMonth","endOfMonth","getNextMonth","getPreviousMonth","getMonthArray","monthArray","prevMonth","getMonthText","getYear","year","setYear","mergeDateAndTime","time","getWeekdays","isEqual","getWeekArray","end","nestedWeeks","weekNumber","getYearRange","startDate","endDate","years","getCalendarHeaderText","getYearText","getDatePickerHeaderText","getDateTimePickerHeaderText","getDayText","getHourText","getMinuteText","getSecondText","MuiPickersContext","MuiPickersUtilsProvider","Utils","utils","libInstance","React.createElement","useUtils","checkUtils","arrayIncludes","itemOrItems","item","staticWrapperRoot","StaticWrapper","ModalDialog","onAccept","onClear","onSetToday","okLabel","cancelLabel","clearLabel","todayLabel","clearable","showTodayButton","wider","role","onClose","dialog","styles","dialogRoot","dialogRootWider","withAdditionalAction","withStyles","useIsomorphicEffect","runKeyHandler","keyHandlers","useKeyDown","keyHandlersRef","handleKeyDown","event","ModalWrapper","DialogProps","showTabs","InputComponent","DateInputProps","Enter","InlineWrapper","PopoverProps","inputRef","anchorOrigin","vertical","horizontal","transformOrigin","VariantContext","Wrapper","getWrapperFromVariant","Rifm","_React$Component","_state","_del","_handleChange","evt","stateValue","op","del","noOp","local","selectionStart","refuse","before","di","c","fv","onChange","_hKD","code","_hKU","_inheritsLoose","_proto","componentWillUnmount","componentDidMount","selectionEnd","day","hidden","daySelected","dayDisabled","hint","Day","tabIndex","getChildMapping","mapFn","Children","child","isValidElement","mapper","getProp","getNextChildMapping","prevChildMapping","onExited","nextChildMapping","prev","next","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","in","cloneElement","exit","enter","k","TransitionGroup","context","handleExited","_assertThisInitialized","contextValue","isMounting","firstRender","mounted","appear","currentChildMapping","_this$props","component","childFactory","_objectWithoutPropertiesLoose","TransitionGroupContext","defaultProps","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","_this2","appearing","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","only","noop","contextType","removeClass","removeOneClass","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","addOneClass","_addClass","_this$appliedClasses$","base","done","isYearOnlyView","views","isYearAndMonthViews","DayWrapper","onSelect","dayInCurrentMonth","handleClick","onKeyPress","slideTransition","duration","easing","transitionContainer","willChange","transform","slideEnterActive","slideExit","SlideTransition","transKey","slideDirection","transitionClasses","enterActive","exitActive","switchHeader","iconButton","daysHeader","dayLabel","textAlign","CalendarHeader","currentMonth","onMonthChange","leftArrowIcon","rightArrowIcon","leftArrowButtonProps","rightArrowButtonProps","disablePrevMonth","disableNextMonth","rtl","fill","KeyDownListener","onKeyDown","Calendar","loadingQueue","returnVal","minDate","maxDate","disableFuture","disablePast","Boolean","firstEnabledMonth","lastEnabledMonth","shouldDisableDate","isFinish","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","week","renderDay","selectedDate","currentMonthNumber","isDayInCurrentMonth","dayComponent","handleDaySelect","closestEnabledDate","today","forward","backward","findClosestEnabledDate","allowKeyboardControl","loadingIndicator","loadingElement","shouldDisableNextMonth","progressContainer","nextDate","nextMonth","lastDate","lastMonth","ClockType","minHeight","withTheme","WithUtils","withUtils","ClockPointer","toAnimateTransform","previousType","isInner","angle","hasSelected","pointer","animateTransform","thumb","border","noPoint","center","x","y","cx","cy","getAngleValue","offsetX","offsetY","atan","deg","delta","distance","angleStep","getMeridiem","convertToMeridiem","hours","meridiem","Clock","rect","isPointerInner","container","clock","onTouchMove","onTouchEnd","onMouseUp","onMouseMove","handleMove","pin","minutesStep","squareMask","outline","touchActions","userSelect","positions","clockNumber","clockNumberSelected","contrastText","ClockNumber","transformStyle","getHourNumbers","currentHours","hourNumbers","endHour","isSelected","getMinutesNumbers","f","ClockView","onHourChange","onMinutesChange","onSecondsChange","viewProps","currentMeridiem","updatedTimeWithMeridiem","minutesValue","updatedTime","secondsValue","datePickerDefaultProps","invalidDateMessage","minDateMessage","maxDateMessage","dateTimePickerDefaultProps","fontWeightMedium","yearSelected","yearDisabled","Year","forwardedRef","overflowY","YearSelection","onYearChange","animateYearScrolling","currentVariant","selectedYearRef","block","behavior","currentYear","onYearSelect","newDate","yearNumber","monthSelected","monthDisabled","Month","handleSelection","flexWrap","alignContent","MonthSelection","shouldDisableMonth","utilMinDate","utilMaxDate","isBeforeFirstEnabled","isAfterLastEnabled","onMonthSelect","monthNumber","monthText","getOrientation","viewsMap","minutes","seconds","containerLandscape","pickerView","overflowX","pickerViewLandscape","Picker","disableToolbar","openTo","unparsedMinDate","unparsedMaxDate","ToolbarComponent","orientation","isLandscape","customOrientation","setOrientation","eventHandler","useIsLandscape","openView","setOpenView","handleChangeAndOpenNext","nextViewToOpen","useViews","textColor","toolbarTxt","fade","toolbarBtnSelected","ToolbarText","ToolbarButton","typographyClassName","toolbarBtn","textTransform","toolbar","toolbarLandscape","PickerToolbar","PureDateInput","inputValue","inputVariant","validationError","InputProps","onOpen","openPicker","TextFieldComponent","TextField","PureDateInputProps","readOnly","error","helperText","getDisplayDate","invalidLabel","emptyLabel","labelFunc","getComparisonMaxDate","getComparisonMinDate","KeyboardDateInput","KeyboardButtonProps","InputAdornmentProps","mask","maskChar","keyboardIcon","rifmFormatter","inputMask","makeMaskFromFormat","formatter","parsed","n","maskedDateFormatter","text","useDateValues","initialFocusedDate","nowRef","useValueToDate","usePickerState","autoOk","onError","setIsOpenState","setIsOpen","newIsOpen","useOpenState","pickerDate","setPickerDate","acceptDate","wrapperProps","pickerProps","strictCompareDates","parsedValue","validate","pickerState","inputProps","useDebugValue","useKeyboardPickerState","displayDate","innerInputValue","setInnerInputValue","dateValue","parseInputString","innerInputProps","makePickerWithState","Input","useOptions","getCustomProps","DefaultToolbarComponent","dateRangeIcon","hideTabs","timeIcon","injectedProps","toolbarAmpmLeftPadding","separator","hourMinuteLabel","hourMinuteLabelAmpmLandscape","hourMinuteLabelReverse","ampmSelection","ampmLandscape","flexBasis","ampmSelectionWithSeconds","ampmLabel","useMeridiemMode","meridiemMode","handleMeridiemChange","timeWithMeridiem","mode","viewToTabIndex","tabsBackground","tabs","DateTimePickerTabs","view","indicatorColor","icon","_","paddingRight","DateTimePickerToolbar","justify","wrap","xs","direction","getDefaultFormat","formats","pick12hOr24hFormat","DateTimePicker","KeyboardDateTimePicker","dateLandscape","DatePickerToolbar","isYearOnly","isYearAndMonth","getFormatByViews","DatePicker","KeyboardDatePicker","dateTitle","dateInputsBox","dateInputIcon","dateInputMargin","dateInput","utc","timezone","inputLabel","inputClassName","timezoneLabel","displayElement","controlOpenState","nullable","onDateChange","formattedDate","noTimezoneDate","tz","textField","fullWidth","startAdornment","InputAdornment","datePicker","commonProps","defaultVale","placeholder","textFieldProps","DayJsUtils","t","s","u","toDate","$L","utcOffset","$u","$utils","$offset","r","init","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","getTimezoneOffset","$x","$localOffset","h","valueOf","isUTC","toISOString","toUTCString","l","arrayFilter","baseFilter","negate","UPLOAD_SHOWROOM_HERO","comparator","computed","baseOrderBy","replaceClassName","origClass","classToRemove","classList","remove","baseVal","baseAssignValue","createAggregator","groupBy","_setPrototypeOf","p","DEFAULT_SCROLLING_RESET_TIME_INTERVAL","_extends2","_clsx","_calculateSizeAndPositionDataAndUpdateScrollOffset","_ScalingCellSizeAndPositionManager","_createCallbackMemoizer","_updateScrollIndexHelper","_scrollbarSize","_reactLifecyclesCompat","_requestAnimationTimeout","SCROLL_POSITION_CHANGE_REASONS","Grid","_disablePointerEventsTimeoutId","needToResetStyleCache","onSectionRendered","_onGridRenderedMemoizer","indices","columnOverscanStartIndex","_columnStartIndex","columnOverscanStopIndex","_columnStopIndex","_renderedColumnStartIndex","_renderedColumnStopIndex","rowOverscanStartIndex","_rowStartIndex","rowOverscanStopIndex","_rowStopIndex","_renderedRowStartIndex","_renderedRowStopIndex","_scrollingContainer","handleScrollEvent","columnCount","cellSizeGetter","_wrapSizeGetter","columnWidth","estimatedCellSize","_getEstimatedColumnSize","_getEstimatedRowSize","instanceProps","prevColumnWidth","prevRowHeight","prevColumnCount","prevRowCount","prevIsScrolling","prevScrollToColumn","scrollToColumn","prevScrollToRow","scrollToRow","scrollbarSizeMeasured","scrollDirectionHorizontal","scrollDirectionVertical","scrollPositionChangeReason","_initialScrollTop","_getCalculatedScrollTop","_initialScrollLeft","_getCalculatedScrollLeft","_ref$alignment","alignment","scrollToAlignment","_ref$columnIndex","_ref$rowIndex","offsetProps","_ref2$scrollLeft","scrollLeftParam","_ref2$scrollTop","scrollTopParam","_debounceScrollEnded","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","_this$props5","columnOrRowCountJustIncreasedFromZero","sizeJustIncreasedFromZero","cellSizeAndPositionManager","previousCellsCount","previousCellSize","previousScrollToAlignment","previousScrollToIndex","previousSize","scrollToIndex","updateScrollIndexCallback","_this$props6","autoContainerWidth","containerProps","containerRole","containerStyle","noContentRenderer","_isScrolling","gridStyle","WebkitOverflowScrolling","_resetStyleCache","_calculateChildrenToRender","verticalScrollBarSize","horizontalScrollBarSize","_horizontalScrollBarSize","_verticalScrollBarSize","_scrollbarPresenceChanged","childrenToDisplay","_childrenToDisplay","showNoContentRenderer","_setScrollingContainerRef","cellRangeRenderer","overscanColumnCount","overscanIndicesGetter","overscanRowCount","getOffsetAdjustment","overscanColumnIndices","overscanRowIndices","hasFixedHeight","hasFixedWidth","_debounceScrollEndedCallback","recomputeGridSize","_onScrollMemoizer","_this3$props","clientHeight","onScrollbarPresenceChange","_ref8","_getScrollLeftForScrollToColumnStateUpdate","_getScrollTopForScrollToRowStateUpdate","maybeStateA","maybeStateB","cellSize","computeMetadataCallback","computeMetadataCallbackProps","nextCellsCount","nextCellSize","nextScrollToIndex","updateScrollOffsetForScrollToIndex","estimatedColumnSize","estimatedRowSize","_ref9","finalColumn","scrollBarSize","calculatedScrollLeft","finalRow","calculatedScrollTop","CellSizeAndPositionManager","_cellSizeGetter","_cellCount","_estimatedCellSize","_lastMeasuredIndex","lastMeasuredCellSizeAndPosition","isNaN","_cellSizeAndPositionData","_lastBatchedIndex","idealOffset","datum","maxOffset","minOffset","_findNearestCell","high","low","middle","interval","_binarySearch","lastMeasuredIndex","_exponentialSearch","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","getShim","ReactPropTypes","bool","number","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","chrome","requireAllKeys","cachedIndices","allInitialized","indexChanged","some","cachedValue","hasScrollToIndex","sizeHasChanged","win","request","oRequestAnimationFrame","msRequestAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","AutoSizer","defaultHeight","defaultWidth","disableWidth","_parentNode","parseInt","paddingTop","autoSizer","_autoSizer","parentNode","defaultView","HTMLElement","outerStyle","childParams","_setRef","List","widthDescriptor","onRowsRendered","getOffsetForCell","invalidateCellSizeAfterRender","measureAllCells","_ref6$columnIndex","_ref6$rowIndex","scrollToPosition","scrollToCell","noRowsRenderer","_cellRenderer","_onSectionRendered","accessibilityOverscanIndicesGetter","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","eachFunc","LTS","LT","L","LL","LLL","LLLL","zone","A","afternoon","S","milliseconds","SS","SSS","ss","m","mm","H","HH","hh","D","DD","Do","ordinal","M","MM","MMM","MMMM","Y","YY","YYYY","Z","ZZ","toUpperCase","regex","parser","exec","parseTwoDigitYear","$locale","Ls","getDate","getFullYear","v","g","UTC","_react","_react2","_propTypes2","InfiniteScroll","_Component","eventListenerOptions","mousewheelListener","pageLoaded","pageStart","attachScrollListener","isReverse","loadMore","parentElement","getParentElement","scrollComponent","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","testOptions","useCapture","isPassiveSupported","loader","defaultLoader","scrollEl","useWindow","el","scrollParent","getScrollParent","hasMore","initialLoad","deltaY","preventDefault","documentElement","pageYOffset","calculateOffset","offsetParent","calculateTopPosition","innerHeight","offsetTop","renderProps","filterProps","childrenArray","unshift","_WindowScroller","mountedInstances","onScrollWindow","disablePointerEventsTimeoutId","enablePointerEventsIfDisabled","originalBodyPointerEvents","enablePointerEventsAfterDelayCallback","__resetIsScrolling","currentTarget","maximumTimeout","enablePointerEventsAfterDelay","__handleWindowScrollEvent","isWindow","innerWidth","getBoundingBox","elementRect","containerRect","_elementRect","_containerRect","getBoundingClientRect","scrollY","scrollX","isFirst","baseAt","basePullAt","flatRest","isIndex","indexes","paths","skip","baseUnset","lastIndex","previous","baseExtremum","baseLt","shallowEqualObjects","objA","objB","aKeys","bKeys","len","shallowEqualArrays","arrA","arrB","_path","_excluded","sourceKeys","SvgSamples","svgRef","titleId","viewBox","xmlns","stringify","tagRE","parseTag","empty","pushTextNode","list","html","level","ignoreWhitespace","components","arr","byTag","inComponent","tag","charAt","isComment","nextChar","voidElement","tagName","attrRE","voidElements","expectingValueAfterEquals","attrs","buff","attrString","token","rootEl","withThemeCreator","defaultTheme","WithTheme","forwardRef","innerRef","hoistNonReactStatics","ResizeObserverBoxOptions","resizeObservers","msg","trigger","freeze","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","toJSON","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","getClientRects","isElement","scope","WeakMap","scrollRegexp","verticalRegexp","IE","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","cs","svg","ownerSVGElement","removePadding","writingMode","canScrollVertically","canScrollHorizontally","borderTopWidth","borderRightWidth","borderBottomWidth","horizontalPadding","verticalPadding","horizontalBorderArea","borderLeftWidth","verticalBorderArea","horizontalScrollbarThickness","verticalScrollbarThickness","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","Infinity","depth","broadcastActiveObservations","shallowestDepth","callbacks","ro","activeTargets","ot","entry","targetDepth","lastReportedSize","callbacks_1","gatherActiveObservationsAtDepth","skippedTargets","observationTargets","isActive","ErrorEvent","message","createEvent","initEvent","dispatchEvent","deliverResizeLoopError","queueMicroTask","toggle_1","el_1","MutationObserver","cb","characterData","textContent","watching","observerConfig","attributes","childList","subtree","events","scheduled","scheduler","Scheduler","stopped","listener","schedule","run","until","elementsHaveResized","disconnect","updateCount","ResizeObservation","CONTENT_BOX","isReplacedElement","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","connect","detail","firstObservation","box","lastObservation","contains","hasClass","keyBy","baseClone","copyObject","customOmitClone","getAllKeysIn","omit","isDeep","CLONE_DEEP_FLAG","SHOWROOM_LAYOUT_HEADER_HEIGHT","loadingContainer","dialogTitle","dialogContent","LayoutHeader","LayoutHeaderToolbar","LayoutHeaderShowroomNameContainer","LayoutHeaderBackButton","LayoutHeaderShowroomName","LayoutHeaderActionsContainer","LayoutHeaderActionButton","LayoutHeaderButtonLabel","LayoutHeaderButtonIcon","LayoutHeaderTabsContainer","tabDivider","alignSelf","LayoutHeaderTab","oppositeDirection","isHorizontal","getAnchor","defaultTransitionDuration","enteringScreen","leavingScreen","Drawer","_props$anchor","anchorProp","BackdropProps","_props$elevation","elevation","_props$ModalProps","ModalProps","BackdropPropsProp","_props$open","_props$PaperProps","PaperProps","SlideProps","_props$TransitionComp","Slide","_props$transitionDura","transitionDuration","_props$variant","drawer","Paper","square","capitalize","docked","slidingDrawer","Modal","BackdropComponent","Backdrop","modal","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","divider","paperAnchorDockedTop","paperAnchorDockedRight","paperAnchorDockedBottom","en","weekYear","isoWeekYear","isoWeek","getTime","offsetName","timeZoneName","Intl","DateTimeFormat","hour12","timeZone","formatToParts","toLocaleString","$set","$timezone","guess","resolvedOptions","setDefault","_SwipeableViews","SwipeableViewsContext","getDomTreeShapes","findNativeHandler","_reactSwipeableViewsCore","WebkitFlexShrink","flexShrink","axisProperties","translate","rotationMatrix","scrollPosition","scrollLength","clientLength","createTransition","easeFunction","applyRotationMatrix","touch","axis","pageX","pageY","adaptMouse","touches","rootNode","domTreeShapes","hasAttribute","getPropertyValue","nodeWhoClaimedTheScroll","startX","goingForward","areNotAtStart","areNotAtEnd","SwipeableViews","containerNode","ignoreNextScrollEvents","viewLength","lastX","vx","startY","isSwiping","started","transitionListener","touchMoveListener","activeSlide","indexCurrent","firstRenderTimeout","setRootNode","setContainerNode","setActiveSlide","updateHeight","handleSwipeStart","computedStyle","transformValues","rootStyle","tranformNormalized","handleSwipeMove","ignoreNativeScroll","onSwitching","resistance","dx","dy","constant","computeIndex","setIndexCurrent","displaySameSlide","isDragging","handleTouchStart","handleSwipeEnd","indexNew","indexLatest","hysteresis","indexMax","onChangeIndex","reason","handleTransitionEnd","onTouchStart","handleTouchEnd","handleMouseDown","onMouseDown","persist","handleMouseUp","handleMouseLeave","handleMouseMove","handleScroll","heightLatest","renderOnlyActive","disableLazyLoading","action","getDisplaySameSlide","slideUpdateHeight","animateTransitions","WebkitTransform","WebkitTransition","animateHeight","containerStyleProp","enableMouseEvents","slideStyleProp","slideStyle","slideClassName","springConfig","touchEvents","mouseEvents","additionalTranstion","WebkitFlexDirection","getSwipeableViewsContext","indexChild","_typeof2","newStartX","exp","getChildrenKey","oldKey","q","_autoPlay","_bindKeyboard","_virtualize","MyComponent","AutoPlay","timer","handleInterval","slideCount","mod","handleChangeIndex","meta","handleSwitching","clearInterval","startInterval","handleVisibilityChange","_shallowEqual","autoplay","setInterval","_reactEventListener","onVisibilityChange","BindKeyboard","_this$props$axis","_keycode","keyCode","searchInput","hasKeyCode","which","charCode","names","foundNamedKey","codes","aliases","charCodeAt","isEventKey","nameOrCode","fromCharCode","alias","Virtualize","_PureComponent","indexContainer","indexDiff","setIndex","setWindow","indexStart","indexStop","beforeAhead","overscanSlideBefore","afterAhead","overscanSlideAfter","slideRenderer","slides","slideIndex","black","white","encodeURI","default_fqdn_options","allow_trailing_dot","allow_wildcard","tld","allow_numeric_tld","part","allow_underscores","isIP","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","provider","API_URL","userViewerId","setUserViewerId","userViewerEmail","setUserViewerEmail","pendingTrackingEvents","setPendingTrackingEvents","useCookies","cookies","setCookie","trackApiConfig","baseURL","_ajax","axios","pendingEvents","post","setEmailIntoCookie","currentPendingTrackingEvents","isPlainObject","RadioGroupContext","Link","_props$color","_props$component","onBlur","onFocus","TypographyClasses","_props$underline","underline","_useIsFocusVisible","useIsFocusVisible","isFocusVisible","onBlurVisible","focusVisibleRef","_React$useState","focusVisible","setFocusVisible","handlerRef","useForkRef","Typography","button","underlineNone","textDecoration","underlineHover","underlineAlways","WebkitTapHighlightColor","verticalAlign","borderStyle","rootLabel","UserConsentInput","checked","inputError","onConsentChange","useTranslation","handleChangeConsent","FormControl","wrapper","FormGroup","FormControlLabel","control","Checkbox","checkbox","Trans","i18nKey","href","rel","FormHelperText","COOKIE_NAME","useUserConsent","cookie","useAcceptPrivacyTermsMutation","acceptPrivacyTerms","accepted","userConsent","setUserConsent","setInputError","changeConsent","onSubmit","submitFn","acceptConsent","privacy","newCookie","maxAge","renderInput","Card","_props$raised","raised","createDetectElementResize","wait","ms","triggerDownload","targetFileName","filename","link","click","doDownloads","downloads","remainingDownloads","hasPendingDownloads","downloadElement","useDownloadFiles","lastCallId","downloadFiles","onSuccess","waitForCompletion","callId","canUpdate","completedHandler","errorHandler","downloadPromises","downloadFile","downloadFn","responseType","response","msSaveOrOpenBlob","Blob","headers","URL","createObjectURL","_props$disableTypogra","_props$dividers","dividers","_props$disableSpacing","disableSpacing","spacing","MenuItem","_props$disableGutters","disableGutters","ListItemClasses","_props$role","tabIndexProp","ListItem","dense","gutters","typography","body1","_defineProperty","whiteSpace","up","body2","ListItemText","_props$inset","inset","primaryProp","primaryTypographyProps","secondaryProp","secondary","secondaryTypographyProps","ListContext","multiline","_props$disablePointer","disablePointerEvents","variantProp","muiFormControl","useFormControl","FormControlContext","positionEnd","positionStart","hiddenLabel","filled","marginDense","hasChildren","checkLength","getChildren","getAsArray","nodesToString","i18nOptions","stringNode","keepArray","transKeepBasicHtmlNodesFor","childIndex","childPropsCount","shouldKeepChild","childChildren","i18nIsDynamicList","renderNodes","targetString","i18n","combinedTOpts","emptyChildrenButNeedsHandling","getData","childs","interpolatedString","services","interpolator","interpolate","language","ast","HTML","renderInner","rootReactNode","mappedChildren","mapAST","hasValidReactChildren","pushTranslatedJSX","inner","mem","dummy","reactNode","astNode","reactNodes","translationContent","tmp","newTarget","mergeProps","isValidTranslationWithChildren","isEmptyTransWithHTML","isKnownComponent","_inner","transSupportBasicHtmlNodes","_inner3","_inner4","_ref$tOptions","tOptions","ns","i18nFromProps","tFromProps","additionalProps","I18nContext","i18nFromContext","defaultNSFromContext","defaultNS","getI18n","warnOnce","reactI18nextOptions","getDefaults","react","namespaces","defaultValue","transEmptyNodeValue","hashTransKey","interpolationOverride","interpolation","prefix","suffix","useAsParent","defaultTransParent","ListItemIcon","alignItemsFlexStart","webpackContext","req","webpackContextResolve","__webpack_require__","baseFlatten","baseIntersection","baseRest","castArrayLikeObject","intersection","arrays","mapped","SetCache","arrayIncludesWith","cacheHas","nativeMin","othLength","othIndex","caches","maxLength","seen","outer","isArrayLikeObject","limit","clip_rgb","rgb","_clipped","_unclipped","classToType","unpack","keyOrder","PI","TWOPI","PITHIRD","DEG2RAD","RAD2DEG","autodetect","last$1","clip_rgb$1","type$1","Color","me","chk","_rgb","hex","Color_1","chroma","chroma_1","unpack$1","rgb2cmyk","rgb2cmyk_1","unpack$2","cmyk2rgb","alpha","cmyk2rgb_1","unpack$3","type$2","cmyk","unpack$4","last$2","rnd","hsl2css","hsla","hsl2css_1","unpack$5","rgb2hsl","NaN","rgb2hsl_1","unpack$6","last$3","rgb2css","rgba","rgb2css_1","unpack$7","round$1","hsl2rgb","t3","t2","t1","h_","hsl2rgb_1","RE_RGB","RE_RGBA","RE_RGB_PCT","RE_RGBA_PCT","RE_HSL","RE_HSLA","round$2","css2rgb","named","rgb$1","i$1","rgb$2","i$2","rgb$3","i$3","hsl","rgb$4","hsl$1","rgb$5","css2rgb_1","type$3","unpack$8","gl","unpack$9","rgb2hcg","_g","rgb2hcg_1","unpack$a","hcg2rgb","assign$1","assign$2","assign$3","assign$4","assign$5","_c","hcg2rgb_1","unpack$b","type$4","hcg","unpack$c","last$4","round$3","rgb2hex","hxa","rgb2hex_1","RE_HEX","RE_HEXA","hex2rgb_1","u$1","type$5","unpack$d","sqrt","acos","rgb2hsi","min_","rgb2hsi_1","unpack$e","limit$1","TWOPI$1","cos","hsi2rgb","hsi2rgb_1","unpack$f","type$6","hsi","unpack$g","type$7","unpack$h","min$1","max$1","rgb2hsl$1","max_","rgb2hsv","unpack$i","floor$1","hsv2rgb","hsv2rgb_1","unpack$j","type$8","hsv","labConstants","Kn","Xn","Yn","Zn","t0","unpack$k","pow","rgb2lab","ref$1","rgb2xyz","rgb_xyz","xyz_lab","rgb2lab_1","unpack$l","pow$1","lab2rgb","z","lab_xyz","xyz_rgb","lab2rgb_1","unpack$m","type$9","lab","unpack$n","sqrt$1","atan2","round$4","lab2lch","lab2lch_1","unpack$o","rgb2lch","b_","rgb2lch_1","unpack$p","sin","cos$1","lch2lab","lch2lab_1","unpack$q","lch2rgb","lch2rgb_1","unpack$r","hcl2rgb","hcl","hcl2rgb_1","unpack$s","type$a","lch","w3cx11_1","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflower","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","laserlemon","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrod","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","maroon2","maroon3","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","purple2","purple3","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","type$b","unpack$t","rgb2num","rgb2num_1","type$c","num2rgb_1","num","type$d","unpack$u","type$e","round$5","temperature2rgb_1","kelvin","temp","unpack$v","round$6","rgb2temperature","minTemp","maxTemp","eps","rgb2temperature_1","temperature","type$f","mutate","clipped","darken","amount","brighten","darker","brighter","mc","channel","type$g","pow$2","EPS","MAX_ITER","luminance","lum","cur_lum","max_iter","mid","lm","rgb2luminance","luminance_x","type$h","mix","col1","col2","premultiply","saturate","desaturate","type$i","out","xyz0","xyz1","sqrt$2","pow$3","lrgb","x1","y1","z1","x2","y2","z2","lab$1","_hsx","hue0","hue1","sat0","sat1","lbv0","lbv1","sat","hue","lch$1","num$1","c1","c2","hcg$1","hsi$1","hsv$1","clip_rgb$2","pow$4","sqrt$3","PI$1","cos$2","sin$1","atan2$1","average","colors","weights","from","w","_average_lrgb","first","shift","xyz","cnt","ci","xyz2","A$1","col","type$j","pow$5","scale","_mode","_nacol","_spread","_domain","_pos","_padding","_classes","_colors","_out","_min","_max","_correctLightness","_colorCache","_useCache","_gamma","setColors","brewer","c$1","resetCache","getClass","tMapLightness","tMapDomain","getColor","val","bypassMap","analyze","limits","tOut","tBreaks","_m","range","_o","spread","correctLightness","L0","L1","pol","L_actual","L_ideal","L_diff","numColors","dm","dd","__range__","samples","asc","gamma","nodata","inclusive","ascending","bezier","I","lab0","lab1","lab2","lab3","I0","I1","bezier_1","blend","blend_f","c0","each","normal","multiply","darken$1","lighten","screen","burn","dodge","blend_1","type$k","clip_rgb$3","TWOPI$2","pow$6","sin$2","cos$3","cubehelix","rotations","lightness","dl","dh","fract","amp","cos_a","sin_a","digits","floor$2","random","random_1","log$1","pow$7","floor$3","MAX_VALUE","sum","min_log","LOG10E","max_log","pb","pr","cluster","assignments","clusterSizes","repeat","nb_iters","centroids","j","i$4","mindist","best","j$1","dist","newCentroids","j$2","i$5","j$3","j$4","kClusters","j$5","i$6","tmpKMeansBreaks","j$6","i$7","analyze_1","contrast","l1","l2","sqrt$4","atan2$2","abs$1","cos$4","PI$2","deltaE","C","a1","b1","L2","a2","b2","sl","sc","h1","c4","sh","delC","delA","delB","v1","v2","sum_sq","valid","scales","cool","hot","colorbrewer","OrRd","PuBu","BuPu","Oranges","BuGn","YlOrBr","YlGn","Reds","RdPu","Greens","YlGnBu","Purples","GnBu","Greys","YlOrRd","PuRd","Blues","PuBuGn","Viridis","Spectral","RdYlGn","RdBu","PiYG","PRGn","RdYlBu","BrBG","RdGy","PuOr","Set2","Accent","Set1","Set3","Dark2","Paired","Pastel2","Pastel1","list$1","colorbrewer_1","factory","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arrayLikeToArray","iter","_styles","_defaultTheme","createMuiTheme","createTheme","_utils","_createBreakpoints","_createMixins","_createPalette","_createTypography","_shadows","_shape","_createSpacing","_transitions","_zIndex","_options$breakpoints","breakpointsInput","_options$mixins","mixins","mixinsInput","_options$palette","paletteInput","spacingInput","_options$typography","typographyInput","muiTheme","deepmerge","overrides","shadows","transitions","argument","_breakpoints$values","sm","md","lg","xl","_breakpoints$unit","unit","_breakpoints$step","between","endIndex","upperbound","_toolbar","_extends3","_palette$primary","_indigo","dark","_palette$secondary","_pink","A200","A400","A700","_palette$error","_red","_palette$warning","_orange","_palette$info","info","_blue","_palette$success","success","_green","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","tonalOffset","getContrastText","_colorManipulator","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","formatMuiErrorMessage","_formatMuiErrorMessage","JSON","addLightOrDark","types","common","_common","_grey","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","intent","shade","tonalOffsetLight","tonalOffsetDark","A100","hexToRgb","rgbToHex","decomposeColor","int","intToHex","hslToRgb","recomposeColor","foreground","lumA","getLuminance","lumB","emphasize","coefficient","clamp","re","marker","toFixed","_ref$fontFamily","fontFamily","defaultFontFamily","_ref$fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","lineHeight","letterSpacing","casing","variants","h2","h3","h4","h5","h6","subtitle1","subtitle2","caseAllCaps","caption","overline","roundWithDeprecationWarning","createShadow","mui","_system","createUnarySpacing","output","easeInOut","easeOut","easeIn","sharp","shortest","shorter","short","standard","complex","formatMs","_options$duration","durationOption","_options$easing","easingOption","_options$delay","animatedProp","getAutoHeightDuration","mobileStepper","speedDial","appBar","snackbar","tooltip","_path2","setShowroomSelectedMedia","setSelectedPdfs","selectedPdfs","setShowroomSelectedTab","tab","selectedTab","openMediaMobileMenu","activeMediaMobileMenu","closeCurrentMediaMobileMenu","useDownloadSingleMedia","showroom","setLoading","useCustomNotifications","enqueueNotification","closeSnackbar","QualityOptions","Screen","Original","downloadSingleMedia","option","mediaUrl","extension","fileName","eventType","downloadQuality","autoHideDuration","SvgAddToSamplesBasket","fillRule","clipRule","SvgRemoveFromSamplesBasket","menuAppBar","boxShadow","custom","defaultBoxShadow","ShowroomMobileActionsMenuLayout","menuPosition","AppBar","touchEvent","menuListItem","subListCollapse","subList","subListItem","listItemInnerWrapper","listItemIcon","listItemText","ShowroomMobileMediaMenu","basketEnabled","useGetMobileMenuOpenedQuery","userView","useGetShowroomMediaMobileInfoQuery","isSamplesMedia","cachedMedia","samplesBasketData","useGetShowroomSamplesBasketQuery","isSampleAdded","showroomSamplesBasket","qualityOptions","downloadMedia","downloadMediaLoading","displayDownload","displayBasket","actionsAvailable","downloadListOpen","setDownloadListOpen","setOpen","closeMobileMenu","useTimeout","clear","ShowroomMobileMenuType","Section","disablePadding","disableRipple","Collapse","Divider","toggleSampleBasketMedia","uuid","MEDIA_PREFERS_REDUCED_MOTION","STATES","CREATED","MOUNTED","IDLE","MOVING","SCROLLING","DRAGGING","DESTROYED","arrayLike","nextTick","typeOf","subject","isFunction","isString","isHTMLElement","toArray","toggleClass","children2","nodes","insertBefore","selector","child2","forOwn","removeAttribute","elms","display2","preventScroll","getAttribute","parseHtml","DOMParser","parseFromString","prevent","stopPropagation","stopImmediatePropagation","querySelector","queryAll","querySelectorAll","timeOf","timeStamp","PROJECT_CODE","DATA_ATTRIBUTE","assert","condition","approximatelyEqual","epsilon","exclusive","minimum","maximum","sign","replacements","replacement","pad","ids","EventBinder","listeners","forEachEvent","targets","events2","eventNS","fragment","namespace","isEventTarget","remover","unbind","dispatch","CustomEvent","bubbles","initCustomEvent","destroy","EVENT_MOUNTED","EVENT_READY","EVENT_MOVE","EVENT_MOVED","EVENT_CLICK","EVENT_ACTIVE","EVENT_INACTIVE","EVENT_VISIBLE","EVENT_HIDDEN","EVENT_REFRESH","EVENT_UPDATED","EVENT_RESIZE","EVENT_RESIZED","EVENT_DRAG","EVENT_DRAGGING","EVENT_DRAGGED","EVENT_SCROLL","EVENT_SCROLLED","EVENT_DESTROY","EVENT_ARROWS_MOUNTED","EVENT_ARROWS_UPDATED","EVENT_PAGINATION_MOUNTED","EVENT_PAGINATION_UPDATED","EVENT_NAVIGATION_MOUNTED","EVENT_AUTOPLAY_PLAY","EVENT_AUTOPLAY_PLAYING","EVENT_AUTOPLAY_PAUSE","EVENT_LAZYLOAD_LOADED","EVENT_SLIDE_KEYDOWN","EVENT_SHIFTED","EVENT_END_INDEX_CHANGED","EventInterface","Splide22","bus","createDocumentFragment","binder","emit","RequestInterval","onInterval","onUpdate","startTime","rate","paused","resume","rewind","isPaused","ARROW_LEFT","ARROW","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","TTB","ORIENTATION_MAP","X","ROLE","TAB_INDEX","ARIA_CONTROLS","ARIA_PREFIX","ARIA_CURRENT","ARIA_SELECTED","ARIA_LABEL","ARIA_LABELLEDBY","ARIA_HIDDEN","ARIA_ORIENTATION","ARIA_ROLEDESCRIPTION","ARIA_LIVE","ARIA_BUSY","ARIA_ATOMIC","ALL_ATTRIBUTES","CLASS_ROOT","CLASS_TRACK","CLASS_PREFIX","CLASS_LIST","CLASS_SLIDE","CLASS_CLONE","CLASS_ARROWS","CLASS_ARROW","CLASS_ARROW_PREV","CLASS_ARROW_NEXT","CLASS_PAGINATION","CLASS_PAGINATION_PAGE","CLASS_PROGRESS_BAR","CLASS_PROGRESS","CLASS_TOGGLE","CLASS_ACTIVE","STATUS_CLASS_PREFIX","CLASS_PREV","CLASS_NEXT","CLASS_VISIBLE","CLASS_LOADING","CLASS_FOCUS_IN","CLASS_OVERFLOW","STATUS_CLASSES","CLASSES","slide","arrows","pagination","page","spinner","POINTER_DOWN_EVENTS","POINTER_MOVE_EVENTS","POINTER_UP_EVENTS","SLIDE","LOOP","FADE","Slide$1","destroyed","Components","isNavigation","updateOnMove","slideFocus","Direction","isClone","initNavigation","splides","Slide2","splide","Slides","getAt","slideX","onMove","curr","updateActivity","visible","is","trackRect","Elements","slideRect","focusableNodes","activeElement","updateVisibility","cloneStatus","mount","slideLabel","useContainer","isWithin","SCROLL_LISTENER_OPTIONS","NORMALIZATION_MAP","Spacebar","Right","Left","Up","Down","normalizeKey","KEYBOARD_EVENT","SRC_DATA_ATTRIBUTE","SRCSET_DATA_ATTRIBUTE","IMAGE_SELECTOR","TRIGGER_KEYS","ComponentConstructors","Media","Components2","reducedMotion","queries","completely","register","options2","query2","queryList","matchMedia","merged","merged2","refresh","opts","notify","setup","isMin","mediaQuery","enable","axisOnly","orient","isUsingKey","_EventInterface","rootClasses","trackClasses","bar","toggle","carousel","getClasses","labelledby","closest","nodeType","drag","_EventInterface2","_Components2$Elements","Slides2","forEach$1","Slide1","excludeClones","matcher","getIn","Controller2","Controller","toIndex","max2","hasFocus","perPage","images","img","observeImages","getLength","isEnough","Layout","rootRect","_EventInterface3","_Components2$Elements2","styleSlides","cssPadding","resize","force","newRect","cssHeight","cssTrackHeight","gap","fixedWidth","cssSlideSize","fixedHeight","isOverflow","heightRatio","listSize","slideSize","withoutGap","getGap","sliderSize","Throttle","getPadding","Clones","cloneCount","Elements2","clones","remount","computeCloneCount","isHead","cloneNode","generate","clones2","fixedSize","Move","_EventInterface4","_Components2$Layout","_Components2$Directio","_Components2$Elements3","reposition","isBusy","Scroll","jump","toPosition","preventLoop","destination","exceededMax","getEnd","backwards","excess","getLimit","getPosition","minDistance","trimming","focus2","trimSpace","move","dest","shifted","canShift","exceededLimit","exceededMin","perMove","_EventInterface5","Move2","_Components2$Slides","omitEnd","isLoop","isSlide","getNext","getAdjacent","getPrev","currIndex","prevIndex","onResized","computeDestIndex","snapPage","computeMovableDestIndex","toPage","waitForTransition","go","allowSameIndex","indicator","scroll","snap","getIndex","toDest","closest2","Arrows","created","wrapperClasses","createArrow","prev2","arrowPath","nextIndex","prevLabel","nextLabel","Autoplay","hovered","focused","_EventInterface6","_Components2$Elements4","resetProgress","autoToggle","pauseOnHover","pauseOnFocus","listen","Cover","cover","cover2","_EventInterface8","friction","onScrolled","noConstrain","noDistance","onEnd","to","easingFunc","Drag","basePosition","baseEvent","prevBaseEvent","isFree","dragging","clickPrevented","_EventInterface9","Scroll2","_Components2$Directio2","exceeded","disable","onPointerDown","isTouch","isTouchEvent","target2","noDrag","isDraggable","onPointerMove","onPointerUp","save","cancelable","diffCoord","expired","diffTime","hasExceeded","isSliderDirection","thresholds","dragMinThreshold","isObj","mouse","shouldStart","velocity","computeVelocity","flickPower","flickMaxPages","computeDestination","rewindByDrag","orthogonal","coordOf","getBaseEvent","changedTouches","TouchEvent","Keyboard","_EventInterface10","keyboard","onKeydown","_disabled","LazyLoad","_EventInterface11","isSequential","lazyLoad","srcset","loadNext","check","preloadPages","load","Pagination","paginationClasses","dir","getDirection","nextPage","paginationDirection","_button","select","li","class","paginationKeyboard","createPagination","Sync","isParent","sync","navigate","Wheel","lastTime","onWheel","wheelMinThreshold","sleep","wheelSleep","releaseWheel","shouldPrevent","wheel","Live","live","sr","DEFAULTS","speed","rewindSpeed","Fade","endCallback","getSpeed","useScroll","_Splide","_Splide2","initialState","states","State","_E","Extensions","_C","_T","_this$event","Splide","EVENTS","isObject2","isEqualDeep","subject1","subject2","keys1","keys2","merge2","forOwn2","SplideTrack","Splide2","splideRef","React2","createRef","extensions","getSlides","array1","array2","newSlides","Root","hasTrack","SplideSlide","React3","refCaller","cardRoot","cardContent","contactName","textOverflow","secondaryMono1","contactData","contactButtons","contactBtnRoot","contactBtnLabel","ShowroomPRContact","contact","commonButtonProps","disableElevation","CardContent","sectionContainer","titleContainer","buttonContainer","navButton","contactContainer","slider","ShowroomPRContacts","setScreenWidth","useGetShowroomPrContactsQuery","cleanPrContacts","slideRef","handlePrev","handleNext","showButtons","ShowroomContainerLayout","containerClasses","computedClasses","Container","showroomFooter","showroomFooterContainer","showroomFooterGridContainer","showroomFooterSectionTitle","showroomFooterColumn","showroomFooterPrContactName","showroomFooterLink","showroomFooterPdf","showroomFooterPdfIcon","showroomFooterPdfLabel","ShowroomFooter","pdfColumn","pdfs","downloadPdfEnabled","columns","pdf","zeroMinWidth","publicUrl","noWrap","setIsRequestSamplesFormOpen","isRequestSamplesFormOpen","setIsRequestSamplesValid","isRequestSamplesFormValid","mediaActionsWrapper","mediaActionsWrapperMobile","mediaActionsInnerWrapper","mediaActionsContainer","actionButton","actionButtonIcon","actionButtonDownloadIcon","actionButtonDownloadIconActive","mediaActionsContainerVisible","actionsMenuDesktop","actionsMenuDivider","actionsMobileButton","actionsMobileIcon","zoomButtonContainer","zoomButton","zoomButtonLabel","singleDownloadMenuPaper","singleDownloadMenuList","singleDownloadMenuItem","singleDownloadMenuDivider","ShowroomMediaActionsLayout","actions","mobileActions","displayed","mobileMenuOpen","onDisplay","onHide","onOpenMobileMenu","onCloseMobileMenu","runTimeout","onMouseEnterHandler","onMouseLeaveHandler","onTouchStartHandler","onTouchEndHandler","mobileVersion","onContextMenu","basketItem","backgroundPosition","basketItemLandscape","basketItemPortrait","ShowroomBasketItem","menuType","getDesktopActions","getMobileActions","desktopActions","actionsDisplayed","setActionsDisplayed","backgroundImage","layoutRoot","layoutRootMobile","headerContainer","headerContainerMobile","titleMobile","actionsContainerMobile","actionBtnLabel","actionDivider","launchmetricsGrey","closeBasketBtn","closeBasketIcon","basketContainer","basketContainerMobile","basketCounter","ShowroomBasketLayout","elementName","emptyBasketComponent","getItemDesktopActions","getItemMobileActions","basketHeader","Fragment","flexItem","updateRequestSamplesForm","Step","_props$active","alternativeLabel","_props$completed","completed","connectorProp","connector","_props$disabled","_props$expanded","expanded","newChildren","createSvgIcon","StepIcon","_props$error","Warning","CheckCircle","SvgIcon","textAnchor","StepLabel","_props$alternativeLab","optional","_props$orientation","StepIconComponentProp","StepIconComponent","StepIconProps","iconContainer","labelContainer","muiName","_circle","_path3","_path4","_path5","_g2","_defs","StepConnector","line","lineHorizontal","lineVertical","borderColor","borderTopStyle","borderLeftStyle","defaultConnector","Stepper","_props$activeStep","activeStep","_props$connector","_props$nonLinear","nonLinear","steps","SvgSampleRequestSuccess","rx","ry","fillOpacity","filterUnits","colorInterpolationFilters","floodOpacity","stdDeviation","in2","gradientUnits","stopColor","stopOpacity","_rect","_line","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","header","requestDateBox","requestDateTitle","requestDateInputsBox","requestDateInputIcon","requestDateInputMargin","requestDateInput","requestPlaceBox","requestPlaceTitle","requestPlaceInput","requestPlaceCityBox","requestPlaceInputMargin","ShowroomSamplesFormStepsAboutRequest","useGetShowroomQuery","setLanguage","countryNames","setCountryNames","dateLocale","useDateLocale","countries","registerLocale","getNames","useGetShowroomSamplesFormQuery","form","returnDate","deliveryDate","streetAdress","city","zipCode","country","onChangeDate","Autocomplete","getName","getAlpha2Code","aboutYouBox","aboutYouTitle","aboutYouInput","userConsentWrapper","renderUserConsentInput","returnPartialData","firstName","lastName","company","phoneNumber","isEmail","emailIsValid","setEmailIsValid","FormHelperTextProps","ShowroomSamplesFormStepsAboutYou","optionalDateContainer","optionalSelectorBox","optionalBoxDivider","optionalTitle","optionalInput","optionalInputStartDate","optionalInputEndDate","additionalCommentsInputLabel","ShowroomSamplesFormStepsOptional","occasionType","runThroughDate","publication","storyTheme","celebrity","additionalComments","shootDateStart","shootDateEnd","shootLocation","photographer","modelName","additionalTextFieldInput","runThroughDateInput","celebrityEventInputs","otherInputs","photoShootInputs","occasionTypeFields","OccasionType","Celebrity","Photo","Other","sortedTyleForms","None","Select","samplesFormContainer","samplesFormContainerSteps","samplesFormContainerHeader","samplesFormContainerFooter","samplesFormContainerFooterToolbar","samplesFormContainerFooterCancelButtonBox","editorHeader","stepIconText","headerDivider","ShowroomSamplesForm","isMobileVersion","currentStep","setCurrentStep","identify","useIdentifyUser","onSubmitWithConsent","useRequestSamplesMutation","requestSamples","loadingRequest","useGetShowroomSamplesOptionsQuery","currentStepComponent","headerComponent","submitForm","showroomViewerId","externalGuest","Site","siteId","ecoAccountId","EcosystemAccountID","EcoAccountName","EcosystemAccountName","SalesforceId","salesforceAccountId","sfparentid","salesforceAccountParentId","samplesRequestTrack","clearSamplesBasket","dangerouslySetInnerHTML","__html","handleCancelClick","handleNextClick","Toolbar","SvgEmptyBasketMediaActions","stroke","strokeWidth","strokeLinecap","strokeLinejoin","rootMobile","mediaColumn","mediaColumnMobile","mediaColumnInner","mediaColumnPortraitInner","mediaColumnLandscapeInner","mediaImg","textColumn","textColumnMobile","textColumnInner","textColumnInnerMobile","textWrapper","ShowroomSamplesEmptyBasket","useGetShowroomSectionsQuery","setAnchor","handleAnchorRef","sampleMedia","allMedias","flattenDeep","imgWidth","disablePortal","samplesBasketWrapperMobile","deleteButton","deleteButtonIcon","requestAllSamplesListItem","requestAllSamplesListItemIcon","requestAllSamplesIcon","requestAllSamplesListItemRoot","ShowroomSamplesBasket","getMediaButtons","SamplesBasket","HEADER_HEIGHT","showroomAppBar","showroomHeader","showroomHeaderPreviewScroll","showroomHeaderMobile","showroomHeaderPreviewView","showroomLogo","backgroundRepeat","showroomLogoMobile","showroomLogoMobileLeftAlign","boxShadowHeader","headerLeftSection","headerLeftSectionEmpty","actionButtonMobile","selectedButton","secondaryColor","tabContainer","tabContainerMobile","basketBadge","basketBadgeMobile","headerPopper","headerPopperContent","ShowroomContentHeader","logo","headerRef","basketRef","lastElementCount","showAddedToBasket","setShowAddedToBasket","popperAnchor","displayActions","dialogElement","ShowroomTab","Samples","disableFocusRipple","Badge","badgeContent","badge","ArrowPopper","keepMounted","buildShowroomFiltersTree","rawData","topFilters","groups","buildTreeValues","prevGroups","filterTreeValue","groupList","groupLength","group","filterChilds","trees","topFilter","tree","getSelectedValuesTopFilterGroup","selectedValues","groupIds","uniq","selectedValue","groupId","buckets","readFragment","__typename","bucket","searchMedias","firstGroups","filterByCategory","filteredCategories","category","filters","categoryMedias","Set","SvgAddToSamplesBasketHovered","_rect2","_circle2","previewMediaGridImg","layerEnabled","WebkitUserSelect","MozUserSelect","WebkitTouchCallout","previewLabel","displayLabel","zoomButtonContainerDisplayed","ShowroomMediaActions","zoomButtonAction","wrapperRef","actionsContainerRef","tooltipProps","setTooltipProps","clearTooltip","menuAnchor","setMenuAnchor","closeMenu","setDisplayed","mediaCloudinaryId","showMobileMediaMenu","samplesIconHovered","setSamplesIconHovered","onWrapperMouseEnter","onWrapperMouseLeave","downloadButton","addSampleButton","samplesIconId","SamplesIcon","RemoveFromSamplesBasketIcon","AddToSamplesBasketIconHovered","AddToSamplesBasketIcon","mediaActions","buttonsMenu","singleDownloadMenu","Menu","getContentAnchorEl","imageItem","imageItemPortrait","ShowroomLayerMedia","imageStyle","imageUrl","mediaContent","draggable","fieldSection","borderGreyColor","sampleSection","productTypeField","productDecscriptionWrapper","fieldContainer","fieldValue","prices","commonFields","productFields","descriptionFieldsNoColor","ProductDetails","selectedGalleriesFields","selectedSamplesFields","displayableTags","tagRelationships","allowedRelationships","associatedTags","locations","tags","multiDesigner","isSampleLinked","displayField","fieldKey","fieldType","selectedFields","displaySampleFields","fields","sampleInfo","availableFields","priceWithValues","price","currency","handleDisplayCommonField","joinDescriptionTag","relationship","relations","library","libraryFolders","season","colorTags","parentType","sampleType","ShowroomProductDetails","layerContainer","imageContainer","detailContainer","mediaLabel","overflowWrap","imageItemImg","globalDescription","ShowroomProductLayer","sectionOptions","useGetShowroomMediaQuery","showroomMedia","productLayerSettings","samplesFields","galleriesFields","imageItemCard","imageItemCardContent","ShowroomZoom","showroomGridItemLabel","showroomDialogAppBar","showroomDialogTitle","showroomDialogBackButton","showroomDialogCloseButton","zoomToolbar","zoomLogo","fullLogo","zoomLogoImg","showroomZoomArrowIcon","showroomZoomCloseIcon","currentImageLabel","showroomZoomArrowButton","previewHeader","previewHeaderResponsive","swipeableWrapper","swipeableSlide","VirtualizedSwipeableViews","bindKeyboard","virtualize","ShowroomLayer","imageFiles","showLabel","initialIndex","onImageChange","currentImage","setCurrentImage","onExitedHanlder","imageLayerRenderer","zoomLayer","productLayer","Theme","pictureBox","clickable","ShowroomImage","ShowroomMediaItem","imageProps","onMediaAction","mediaActionHandler","labelComponent","filterTreeContainer","filterHeader","filterTitle","collapseIcon","filterValuesContainer","filterValueBox","filterValueLabelRoot","filterValueLabel","filterValueLabelText","filterValueLabelParent","filterValueLabelCounter","filterValueCheckboxRoot","filterValueCheckBoxIcon","childDivider","showMoreButton","showMoreButtonLabel","ShowroomContentFilterTree","selectedFilters","maxInitialItems","onFilterToggle","viewAll","setViewAll","buttonClasses","onClickHandler","onShowMoreHandler","renderChild","addDivider","checkStatus","selectedFilter","indeterminate","htmlColor","indeterminateIcon","checkedIcon","renderedElements","renderElements","lastParent","lastChild","firstChilds","showMoreChilds","totalTreeItems","showroomFilterTreeInnerWrapper","treeDivider","ShowroomFilterTreeContainer","sortedFilters","containerHeight","topOffset","fileTreeMaxHeight","filterTree","SvgShowroomFilterIcon","filterIcon","closeIcon","filterContainer","ShowroomMobileFilters","showroomFiltersContainer","showroomFilterTreeContainerWebkit","showroomFilterTreeContainer","showroomResultsContainer","refreshOverlay","refreshOverlayActive","ShowroomContentSectionFiltersLayout","refreshing","onCloseFilters","onLoadMoreMedias","showFilters","totalItems","renderItem","setContainerHeight","windowHeight","renderFlexItem","calculateSizeAndPositionDataAndUpdateScrollOffset","createCallbackMemoizer","updateScrollIndexHelper","defaultOverscanIndicesGetter","ArrowKeyStepper","_this$_getScrollState","_getScrollState","scrollToColumnPrevious","scrollToRowPrevious","_this$_getScrollState2","_updateScrollState","_this$_getScrollState3","_onKeyDown","isControlled","onScrollToChange","CellMeasurer","_this$props$columnInd","_this$props$rowIndex","_this$_getCellMeasure","_getCellMeasurements","getHeight","getWidth","_maybeMeasureCell","measure","_measure","styleWidth","styleHeight","_this$props2$columnIn","_this$props2$rowIndex","_this$_getCellMeasure2","CollectionView","cellLayoutManager","_onSectionRenderedMemoizer","getLastRenderedIndices","getScrollPositionForCell","cellIndex","_setScrollPosition","_enablePointerEventsAfterDelay","isScrollingChange","_cellLayoutManager$ge","totalHeight","totalWidth","_scrollbarSizeMeasured","_calculateSizeAndPositionDataOnNextUpdate","_updateScrollPositionForScrollToCell","_invokeOnSectionRenderedHelper","_cellLayoutManager$ge2","horizontalOverscanSize","verticalOverscanSize","_this$state3","_lastRenderedCellCount","_lastRenderedCellLayoutManager","calculateSizeAndPositionData","_cellLayoutManager$ge3","cellRenderers","collectionStyle","_indexMap","_indices","SectionManager","sectionSize","_sectionSize","_cellMetadata","_sections","getSections","getCellIndices","sectionXStart","sectionXStop","sectionYStart","sectionYStop","sectionX","sectionY","cellMetadatum","addCellIndex","_ref$align","cellOffset","Collection","_lastRenderedCellIndices","_isScrollingChange","_setCollectionViewRef","_collectionView","recomputeCellSizesAndPositions","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","unloadedRanges","loadMoreRows","unloadedRange","promise","lastRenderedStartIndex","lastRenderedStopIndex","isRangeVisible","currentIndex","recomputeSize","forceUpdateReactVirtualizedComponent","isRowLoaded","minimumBatchSize","rangeStartIndex","rangeStopIndex","potentialStopIndex","_index","firstUnloadedRange","_index2","scanForUnloadedRanges","squashedUnloadedRanges","_toConsumableArray","_loadUnloadedRanges","registeredChild","ge","_GEP","_GEA","gt","_GTP","_GTA","lt","_LTP","_LTA","le","_LEP","_LEA","eq","_EQP","_EQA","IntervalTreeNode","leftPoints","rightPoints","proto","copy","rebuild","intervals","ntree","createIntervalTree","rebuildWithInterval","rebuildWithoutInterval","idx","reportLeftRange","hi","reportRightRange","lo","reportRange","compareNumbers","compareBegin","compareEnd","pts","leftIntervals","rightIntervals","centerIntervals","IntervalTree","insert","weight","bounds","queryPoint","queryInterval","tproto","PositionCache","defaultCellHeight","unmeasuredCellCount","tallestColumnSize","renderCallback","_intervalTree","_slicedToArray","_leftMap","columnSizeMap","_columnSizeMap","columnHeight","Masonry","eventScrollTop","_getEstimatedTotalHeight","_debounceResetIsScrolling","_positionCache","_invalidateOnUpdateStartIndex","_invalidateOnUpdateStopIndex","_populatePositionCache","_checkInvalidateOnUpdate","_invokeOnScrollCallback","_invokeOnCellsRenderedCallback","_debounceResetIsScrollingId","cellMeasurerCache","keyMapper","overscanByPixels","rowDirection","estimateTotalHeight","shortestColumnSize","measuredCellCount","_style","batchSize","_startIndex","_stopIndex","_debounceResetIsScrollingCallback","estimatedColumnCount","_onScrollMemoized","_startIndexMemoized","_stopIndexMemoized","onCellsRendered","cellPositioner","_cellPositioner","setPosition","CellMeasurerCacheDecorator","_cellMeasurerCache","_columnIndexOffset","_rowIndexOffset","_params$columnIndexOf","columnIndexOffset","_params$rowIndexOffse","rowIndexOffset","clearAll","MultiGrid","showHorizontalScrollbar","showVerticalScrollbar","_bottomLeftGrid","_bottomRightGrid","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","SortDirection","ASC","DESC","SortIndicator","sortDirection","defaultHeaderRenderer","dataKey","showSortIndicator","defaultRowRenderer","onRowClick","onRowDoubleClick","onRowMouseOut","onRowMouseOver","onRowRightClick","rowData","a11yProps","onDoubleClick","onMouseOut","onMouseOver","Column","cellDataGetter","cellData","defaultSortDirection","headerRenderer","Table","scrollbarWidth","_createColumn","_createRow","_ref3$columnIndex","_ref3$rowIndex","_setScrollbarWidth","disableHeader","gridClassName","headerHeight","headerRowRenderer","rowClassName","rowStyle","availableRowsHeight","rowClass","rowStyleObject","_cachedColumnStyles","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","msFlex","WebkitFlex","_createHeader","getScrollbarWidth","SizeCalculator","getMaxWidth","getFlexGrow","proposedWidth","getComputedWidth","showroomGridRowDisplayContainer","showroomGridRow","showroomGridItem","showroomGridItemContent","ShowroomContentSectionRowLayout","sizeCalculator","ratios","totalRatioSum","total","currentRatio","setDialogIsOpen","isDialogOpen","setShowroomShareMediaQuality","mediaQuality","showroomActionsContainer","showroomActionTab","showroomActionBox","showroomActionTextMobile","showroomActionBoxIcon","showroomDownloadMenu","showroomDownloadMenuMobile","canDownloadPdfs","showroomDownloadMenuMobileNoMedia","showroomDownloadMenuMobileSubmenuOpened","uniqueMediaType","showroomDownloadMenuItem","showroomDownloadMenuItemMobile","showroomDownloadMenuSubItem","showroomDownloadMenuDivider","stickyBar","stickyBarMobileOpened","stickyBarMobileOpenedNoMedia","stickyBarMobileOpenedSubmenuOpened","actionContainer","mobileButtonDivider","ShowroomSectionActions","selectedSection","onShowFilters","filteredMedias","hasFilters","useGetShowroomSelectedTabQuery","selectedAction","setSelectedAction","setAnchorEl","filterMediasBy","setFilterMediasBy","videoMedias","imageMedias","pdfMedias","showroomPdfs","canDisplayDownloadOption","canDisplayDownloadPdfOption","optionAvailable","handleShareMedias","createMenuItem","downloadMenuOptions","menuItems","downloadMediaActionButton","displayFilterButton","bottomStickyBar","Tabs","newValue","TabIndicatorProps","Tab","textColorInherit","showroomGrid","edgeToEdge","showroomContentSectionLoading","ShowroomContentSection","showroomSections","loadingSections","zoomViewOpen","setZoomViewOpen","initialZoomImage","setInitialZoomImage","sectionMedias","setFilteredMedias","refreshingSearch","setRefreshingSearch","currentMediaPage","setCurrentMediaPage","currentFilterTrees","setCurrentFilterTrees","setSelectedFilters","setShowFilters","useGetShowroomSectionFiltersUserViewQuery","globalSelectedFilters","isFilterSection","mediasByIndex","showroomSectionFilters","filterValue","selectedSet","deleteFilter","filterToDelete","delete","deleteFilterParent","addFilter","filterToAdd","newSelectedFilters","newBuckets","filtersData","showroomFilterValues","selectedTopFilterGroups","selectedValuesIds","filterBucket","otherFiltersSelected","filteredMediaIds","newMediaIds","orderBy","updateFilterValues","handleZoomViewClose","handleZoomViewOpen","zoom","imageId","handleFiltersDisplay","renderMediaItem","renderMediaRowItem","renderMediaFlex","RadioGroup","nameProp","valueProp","rootRef","_useControlled","useControlled","_useControlled2","setValue","handleRef","useId","radioButtonBox","directDownloadAlertMessageBox","ShowroomContentShare","showroomObj","useGetShowroomShareOptionsQuery","share","useGetShowroomSelectedMediaQuery","emailToSendError","setEmailToSendError","emailToSend","setEmailToSend","downloadOptionSelected","setDownloadOptionSelected","useGetArchiveStatusLazyQuery","pollInterval","getArchiveStatus","getArchiveStatusData","stopPolling","closeDialog","buildTrackEvent","onSuccessHandler","trackEvents","onErrorHandler","directDownloadAction","generatedUrls","useGenerateShowroomArchiveMutation","generateShowroomArchiveZip","useGetZipFileLazyQuery","onCompleted","archiveFiles","getZipFileQuery","getArchive","ArchiveStatus","Pending","Completed","exportMedia","pdfIds","recipients","isDirectDownload","removeAfter","generateShowroomArchive","Radio","onConfirmHandler","doExport","showroomContentContainer","showroomContentContainerMobile","showroomContentDownloadableMobile","showroomHero","showroomHeroMobile","showroomHeroMobileMedia","showroomHeroBackground","showroomHeroBackgroundMobile","showroomHeroBackgroundVideo","showroomHeroContainer","showroomHeroContainerNoMedia","showroomHeroContainerMobile","showroomHeroContainerCollapse","showroomHeroTitle","showroomHeroContent","wordBreak","showroomTitle","showroomTitleMobile","showroomTitleMediaMobile","sectionTabsContainer","sectionTabsBox","sectionTabBox","tabLabel","tabSelected","showroomGridContainer","showroomGridContainerMobile","showroomGridItemPortrait","showroomGridItemLandscape","zoomEnabled","showroomDialogPrevButtonContainer","showroomDialogPrevButton","showroomDialogNextButtonContainer","showroomDialogNextButton","ShowroomContent","setSelectedSection","isExpanded","setIsExpanded","currentIsMobileVersion","changeLanguage","handleExpand","showroomLogoPublicUrl","showroomLogoPublicId","sectionTabs","canDisplayHeroMedia","displayHeroMedia","heroMedia","canDisplayHeroContent","displayHeroContent","hero","heroMediaBanner","heroContent","shouldCropText","showReadMore","showReadLess","heroBackgroundColor","heroFontColor","heroTitle","libraryCollection","librarySeason","getNewImage","imgArr","minAct","maxAct","rand","_props$anchorOrigin","ComponentProp","invisibleProp","invisible","_props$max","_props$overlap","overlap","_props$showZero","showZero","displayValue","dot","RADIUS_STANDARD","colorPrimary","colorSecondary","colorError","RADIUS_DOT","anchorOriginTopRightRectangle","anchorOriginTopRightRectangular","anchorOriginBottomRightRectangle","anchorOriginBottomRightRectangular","anchorOriginTopLeftRectangle","anchorOriginTopLeftRectangular","anchorOriginBottomLeftRectangle","anchorOriginBottomLeftRectangular","anchorOriginTopRightCircle","anchorOriginTopRightCircular","anchorOriginBottomRightCircle","anchorOriginBottomRightCircular","anchorOriginTopLeftCircle","anchorOriginTopLeftCircular","anchorOriginBottomLeftCircle","anchorOriginBottomLeftCircular","layer","RadioButtonUncheckedIcon","RadioButtonCheckedIcon","defaultCheckedIcon","RadioButtonIcon","defaultIcon","checkedProp","onChangeProp","_props$size","radioGroup","createChainedFunction","SwitchBase","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","objectAssign","rafPolyfill","cafPolyfill","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","headElement","tagNodes","indexToDelete","newElement","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","generateTitleAsReactComponent","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","noscript","script","HelmetExport","HelmetWrapper","inherits","shouldComponentUpdate","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","defaultTitle","defer","titleTemplate","peek","mappedState","Helmet","withSideEffect","renderStatic","React__default","reducePropsToState","handleStateChangeOnClient","WrappedComponent","emitChange","SideEffect","recordedState","hasElementType","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","flags","ServerStyleSheets","sheetsManager","sheetsRegistry","SheetsRegistry","generateClassName","createGenerateClassName","StylesProvider","serverGenerateClassName","legalLink","CookieBanner","onAcceptPolicy","sameSite","secure","imaxtreeButton","cardWrapperMobile","card","cardMobile","galleriesLogo","subtitle","fixed","centeredCard","backgroundLogo","blackLine","cardContentRoot","cardHeader","cardLogo","cardTitle","bottomButtonsBackground","cardContentTitle","cardContentSubTitle","cardContentInputBox","cardContentInput","cardContentInputItem","privacyPolicyWrapper","privacyPolicyLabelRoot","ShowroomLogin","publicFields","wrongEmail","wrongPassword","onChangeEmail","onChangePassword","defaultBackground","PublicShowroom","useParams","onSubmitFormConsent","useGetPublicShowroomLazyQuery","getPublicShowroom","useGetPublicShowroomFieldsQuery","loadingPublicFields","errorPublicFields","dataPublicFields","showroomPassword","setPassword","setWrongPassword","setEmail","setWrongEmail","isCheckPasswordQuery","setIsCheckPasswordQuery","customLogo","setCustomLogo","customTitle","setCustomTitle","customDescription","setCustomDescription","HelmetComponent","publicShowroomFields","tenantName","generateUserViewer","newId","tenantData","checkUserViewerId","passwordBackground","handleSubmitPassword","LoadingAnimation"],"mappings":"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","file":"static/js/10.544fd87b.chunk.js","sourcesContent":["export default function chainPropTypes(propType1, propType2) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function validate() {\n return propType1.apply(void 0, arguments) || propType2.apply(void 0, arguments);\n };\n}","import PropTypes from 'prop-types';\nimport chainPropTypes from './chainPropTypes';\n\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n var _elementType$prototyp = elementType.prototype,\n prototype = _elementType$prototyp === void 0 ? {} : _elementType$prototyp;\n return Boolean(prototype.isReactComponent);\n}\n\nfunction acceptingRef(props, propName, componentName, location, propFullName) {\n var element = props[propName];\n var safePropName = propFullName || propName;\n\n if (element == null) {\n return null;\n }\n\n var warningHint;\n var elementType = element.type;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n\n if (typeof elementType === 'function' && !isClassComponent(elementType)) {\n warningHint = 'Did you accidentally use a plain function component for an element instead?';\n }\n\n if (warningHint !== undefined) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an element that can hold a ref. \".concat(warningHint, \" \") + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n\n return null;\n}\n\nvar elementAcceptingRef = chainPropTypes(PropTypes.element, acceptingRef);\nelementAcceptingRef.isRequired = chainPropTypes(PropTypes.element.isRequired, acceptingRef);\nexport default elementAcceptingRef;","import * as PropTypes from 'prop-types';\nimport chainPropTypes from './chainPropTypes';\n\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n var _elementType$prototyp = elementType.prototype,\n prototype = _elementType$prototyp === void 0 ? {} : _elementType$prototyp;\n return Boolean(prototype.isReactComponent);\n}\n\nfunction elementTypeAcceptingRef(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var safePropName = propFullName || propName;\n\n if (propValue == null) {\n return null;\n }\n\n var warningHint;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n\n if (typeof propValue === 'function' && !isClassComponent(propValue)) {\n warningHint = 'Did you accidentally provide a plain function component instead?';\n }\n\n if (warningHint !== undefined) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an element type that can hold a ref. \".concat(warningHint, \" \") + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n\n return null;\n}\n\nexport default chainPropTypes(PropTypes.elementType, elementTypeAcceptingRef);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// This module is based on https://github.com/airbnb/prop-types-exact repository.\n// However, in order to reduce the number of dependencies and to remove some extra safe checks\n// the module was forked.\n// Only exported for test purposes.\nexport var specialProperty = \"exact-prop: \\u200B\";\nexport default function exactProp(propTypes) {\n if (process.env.NODE_ENV === 'production') {\n return propTypes;\n }\n\n return _extends({}, propTypes, _defineProperty({}, specialProperty, function (props) {\n var unsupportedProps = Object.keys(props).filter(function (prop) {\n return !propTypes.hasOwnProperty(prop);\n });\n\n if (unsupportedProps.length > 0) {\n return new Error(\"The following props are not supported: \".concat(unsupportedProps.map(function (prop) {\n return \"`\".concat(prop, \"`\");\n }).join(', '), \". Please remove them.\"));\n }\n\n return null;\n }));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { ForwardRef, Memo } from 'react-is'; // Simplified polyfill for IE 11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\n\nvar fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n var match = \"\".concat(fn).match(fnNameMatchRegex);\n var name = match && match[1];\n return name || '';\n}\n/**\n * @param {function} Component\n * @param {string} fallback\n * @returns {string | undefined}\n */\n\nfunction getFunctionComponentName(Component) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? \"\".concat(wrapperName, \"(\").concat(functionName, \")\") : wrapperName);\n}\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE 11 support\n *\n * @param {React.ReactType} Component\n * @returns {string | undefined}\n */\n\n\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n if (_typeof(Component) === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n\n default:\n return undefined;\n }\n }\n\n return undefined;\n}","export default function HTMLElementType(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n\n var propValue = props[propName];\n var safePropName = propFullName || propName;\n\n if (propValue == null) {\n return null;\n }\n\n if (propValue && propValue.nodeType !== 1) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an HTMLElement.\");\n }\n\n return null;\n}","/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nexport default typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();","import PropTypes from 'prop-types';\nvar refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);\nexport default refType;","/** @license Material-UI v4.12.2\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 */\nexport { default as borders } from './borders';\nexport * from './borders';\nexport { default as breakpoints } from './breakpoints';\nexport { default as compose } from './compose';\nexport { default as styleFunctionSx } from './styleFunctionSx';\nexport * from './styleFunctionSx';\nexport { default as display } from './display';\nexport { default as flexbox } from './flexbox';\nexport * from './flexbox';\nexport { default as grid } from './grid';\nexport * from './grid';\nexport { default as palette } from './palette';\nexport * from './palette';\nexport { default as positions } from './positions';\nexport * from './positions';\nexport { default as shadows } from './shadows';\nexport { default as sizing } from './sizing';\nexport * from './sizing';\nexport { default as spacing } from './spacing';\nexport * from './spacing';\nexport { default as style } from './style';\nexport { default as typography } from './typography';\nexport * from './typography';","export { default } from './StylesProvider';\nexport * from './StylesProvider';","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { Cloudinary, Transformation } from 'cloudinary-core';\nimport isEmpty from 'lodash/isEmpty';\n\nexport const cloudinaryCore = new Cloudinary({ cloud_name: process.env.REACT_APP_CLOUDINARY_APP });\n\nexport const getVersion = (url: string) => {\n\tconst matches = url.match(/upload\\/v(\\d+)\\//);\n\treturn matches ? matches[1] : null;\n};\n\nexport const getImageUrl = (publicId: string, options: Transformation.Options = {}) => {\n\tconst { format, ...rest } = options;\n\treturn cloudinaryCore.url(`${publicId}.${format || 'jpg'}`, { ...rest });\n};\n\nexport const getVideoUrl = (publicId: string, options?: Transformation.VideoOptions) => {\n\treturn cloudinaryCore.video_url(publicId, options);\n};\n\nexport const getVideoPreviewUrl = (publicId: string, options?: Transformation | Transformation.VideoOptions) => {\n\treturn cloudinaryCore.video_thumbnail_url(publicId, { format: 'jpg', ...options });\n};\n\nexport const isFolderNameValid = (name: string) => isEmpty(name.match(/[?&#\\\\%<>+/]/gi)) && name.toLowerCase() !== 'samples';\n","import { ApolloQueryResult, useApolloClient } from '@apollo/client';\nimport chunk from 'lodash/chunk';\nimport React from 'react';\n\nimport { GET_MEDIAS_BY_IDS } from 'Apollo/Store/Media/queries';\nimport { updateShowroomMediaParams, updateShowroomSectionLoaded, updateShowroomSectionLoading } from 'Apollo/Store/Showroom/Editor/resolvers';\nimport {\n\tGetMediasByIdsQuery,\n\tuseGetPublicShowroomWithoutSectionsQuery,\n\tuseGetShowroomBasketInfoQuery,\n\tuseGetShowroomDownloadEnabledQuery,\n\tuseGetShowroomSectionLoadingMediaFieldsQuery,\n\tuseGetShowroomWithoutSectionsQuery\n} from 'generated/graphql';\n\nimport { ShowroomFilterTree } from 'Types/showroom';\n\nimport { useTheme } from '@material-ui/core/styles';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport { ShowroomContext } from 'context/showroom/ShowroomContext';\n\nconst FETCH_ROWS_BATCH_SIZE = 10;\n\n// The following hooks are utility functions to reuse the fetching of different informations inside the showroom components. Most of them are relying on the current showroom id state\n// NOTE: These hooks were made to avoid writing the same code in different showroom components. If a component needs a super specific bunch of data. It's ok to use the useQuery method directly in the component\nexport const useIsShowroomMobileVersion = () => {\n\tconst theme = useTheme();\n\treturn useMediaQuery(theme.breakpoints.down('md'));\n};\n\nexport const useGetCurrentShowroomId = () => {\n\tconst { showroomId } = React.useContext(ShowroomContext);\n\treturn showroomId;\n};\n\nconst useGetShowroomData = () => {\n\tconst showroomId = useGetCurrentShowroomId();\n\tconst { data } = useGetShowroomWithoutSectionsQuery({ variables: { id: showroomId }, fetchPolicy: 'cache-only' });\n\treturn data?.getShowroom;\n};\n\nconst useGetPulblicShowroomData = () => {\n\tconst showroomId = useGetCurrentShowroomId();\n\tconst { data } = useGetPublicShowroomWithoutSectionsQuery({ variables: { id: showroomId }, fetchPolicy: 'cache-only' });\n\treturn data?.getShowroom;\n};\n\nexport const useGetCurrentShowroomData = () => {\n\tconst { isPublic } = React.useContext(ShowroomContext);\n\tconst showroomData = useGetShowroomData();\n\tconst showroomPublicData = useGetPulblicShowroomData();\n\treturn isPublic ? showroomPublicData : showroomData;\n};\n\nexport const useIsShowroomUserView = () => {\n\tconst { isUserView } = React.useContext(ShowroomContext);\n\treturn isUserView;\n};\n\nexport const useIsShowroomDowloadOptionEnabled = () => {\n\tconst showroomId = useGetCurrentShowroomId();\n\tconst { data } = useGetShowroomDownloadEnabledQuery({ variables: { showroomId }, fetchPolicy: 'cache-only' });\n\treturn data.getShowroom.downloadEnabled;\n};\n\nexport const useIsShowroomBasketEnabled = () => {\n\tconst showroomId = useGetCurrentShowroomId();\n\tconst { data } = useGetShowroomBasketInfoQuery({ variables: { showroomId }, fetchPolicy: 'cache-only' });\n\tconst { getShowroom: showroomBasketInfo } = data;\n\tconst displayBasket = React.useMemo(\n\t\t() => showroomBasketInfo.tenant.isSamplesEnabled && showroomBasketInfo.requestSamplesEnabled && showroomBasketInfo.hasSamples,\n\t\t[showroomBasketInfo]\n\t);\n\treturn displayBasket;\n};\n\nexport const useGetShowroomMediasByIds = (sectionId: string) => {\n\tconst client = useApolloClient();\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroomSection: { loaded, loading, rowMediaIds }\n\t\t}\n\t} = useGetShowroomSectionLoadingMediaFieldsQuery({\n\t\tvariables: {\n\t\t\tid: sectionId\n\t\t}\n\t});\n\n\tReact.useEffect(() => {\n\t\tif (loaded) return;\n\n\t\tlet active = true;\n\t\tconst fetchMedias = async () => {\n\t\t\tconst mediaIds = rowMediaIds.reduce((acc, row) => {\n\t\t\t\tacc.push(...row.mediaIds);\n\t\t\t\treturn acc;\n\t\t\t}, []);\n\t\t\tconst mediaChunks = chunk(mediaIds, FETCH_ROWS_BATCH_SIZE);\n\t\t\tconst promises: Promise>[] = mediaChunks.map(mediaIds => {\n\t\t\t\treturn client.query({\n\t\t\t\t\tquery: GET_MEDIAS_BY_IDS,\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tmediaIds: mediaIds\n\t\t\t\t\t},\n\t\t\t\t\tfetchPolicy: 'cache-first'\n\t\t\t\t});\n\t\t\t});\n\t\t\tconst responses = await Promise.all(promises);\n\n\t\t\tif (!active) return;\n\n\t\t\tconst medias = responses.flatMap(res => res.data.mediasByIds);\n\t\t\tupdateShowroomSectionLoaded(sectionId, true);\n\t\t\tupdateShowroomMediaParams(sectionId, medias);\n\t\t\tupdateShowroomSectionLoading(sectionId, false);\n\t\t};\n\n\t\tfetchMedias();\n\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t};\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [client, loaded, sectionId]);\n\n\treturn {\n\t\tloading,\n\t\tloaded\n\t};\n};\n\nexport const useGetShowroomScrollElement = () => {\n\tconst { scrollElement } = React.useContext(ShowroomContext);\n\treturn scrollElement || window;\n};\n\nconst filtersSort = ['brand', 'season', 'collection', 'accessories', 'clothes', 'makeup', 'hairstyle', 'color', 'fabric'];\n\nexport const useSortShowroomFilterTrees = (filterTrees: ShowroomFilterTree[]) => {\n\tconst sorted = React.useMemo(\n\t\t() =>\n\t\t\t[...filterTrees].sort((value1, value2) => {\n\t\t\t\tconst getFilterSortPosition = (value: ShowroomFilterTree) => {\n\t\t\t\t\tconst index = filtersSort.indexOf(value.name);\n\t\t\t\t\treturn index === -1 ? Number.MAX_SAFE_INTEGER : index;\n\t\t\t\t};\n\t\t\t\tconst value1Pos = getFilterSortPosition(value1);\n\t\t\t\tconst value2Pos = getFilterSortPosition(value2);\n\t\t\t\tif (value1Pos < value2Pos) return -1;\n\t\t\t\telse if (value1Pos === value2Pos) return 0;\n\t\t\t\telse return 1;\n\t\t\t}),\n\t\t[filterTrees]\n\t);\n\n\treturn { sorted };\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bpfrpt_proptype_VisibleCellRange = exports.bpfrpt_proptype_Alignment = exports.bpfrpt_proptype_OverscanIndicesGetter = exports.bpfrpt_proptype_OverscanIndices = exports.bpfrpt_proptype_OverscanIndicesGetterParams = exports.bpfrpt_proptype_RenderedSection = exports.bpfrpt_proptype_ScrollbarPresenceChange = exports.bpfrpt_proptype_Scroll = exports.bpfrpt_proptype_NoContentRenderer = exports.bpfrpt_proptype_CellSize = exports.bpfrpt_proptype_CellSizeGetter = exports.bpfrpt_proptype_CellRangeRenderer = exports.bpfrpt_proptype_CellRangeRendererParams = exports.bpfrpt_proptype_StyleCache = exports.bpfrpt_proptype_CellCache = exports.bpfrpt_proptype_CellRenderer = exports.bpfrpt_proptype_CellRendererParams = exports.bpfrpt_proptype_CellPosition = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _ScalingCellSizeAndPositionManager = _interopRequireDefault(require(\"./utils/ScalingCellSizeAndPositionManager\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar bpfrpt_proptype_CellPosition = process.env.NODE_ENV === 'production' ? null : {\n \"columnIndex\": _propTypes[\"default\"].number.isRequired,\n \"rowIndex\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_CellPosition = bpfrpt_proptype_CellPosition;\nvar bpfrpt_proptype_CellRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"columnIndex\": _propTypes[\"default\"].number.isRequired,\n \"isScrolling\": _propTypes[\"default\"].bool.isRequired,\n \"isVisible\": _propTypes[\"default\"].bool.isRequired,\n \"key\": _propTypes[\"default\"].string.isRequired,\n \"parent\": _propTypes[\"default\"].object.isRequired,\n \"rowIndex\": _propTypes[\"default\"].number.isRequired,\n \"style\": _propTypes[\"default\"].object.isRequired\n};\nexports.bpfrpt_proptype_CellRendererParams = bpfrpt_proptype_CellRendererParams;\nvar bpfrpt_proptype_CellRenderer = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].func;\nexports.bpfrpt_proptype_CellRenderer = bpfrpt_proptype_CellRenderer;\nvar bpfrpt_proptype_CellCache = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].objectOf(_propTypes[\"default\"].node.isRequired);\nexports.bpfrpt_proptype_CellCache = bpfrpt_proptype_CellCache;\nvar bpfrpt_proptype_StyleCache = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].objectOf(_propTypes[\"default\"].object.isRequired);\nexports.bpfrpt_proptype_StyleCache = bpfrpt_proptype_StyleCache;\nvar bpfrpt_proptype_CellRangeRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"cellCache\": _propTypes[\"default\"].objectOf(_propTypes[\"default\"].node.isRequired).isRequired,\n \"cellRenderer\": _propTypes[\"default\"].func.isRequired,\n \"columnSizeAndPositionManager\": function columnSizeAndPositionManager() {\n return (typeof _ScalingCellSizeAndPositionManager[\"default\"] === \"function\" ? _propTypes[\"default\"].instanceOf(_ScalingCellSizeAndPositionManager[\"default\"]).isRequired : _propTypes[\"default\"].any.isRequired).apply(this, arguments);\n },\n \"columnStartIndex\": _propTypes[\"default\"].number.isRequired,\n \"columnStopIndex\": _propTypes[\"default\"].number.isRequired,\n \"deferredMeasurementCache\": _propTypes[\"default\"].object,\n \"horizontalOffsetAdjustment\": _propTypes[\"default\"].number.isRequired,\n \"isScrolling\": _propTypes[\"default\"].bool.isRequired,\n \"isScrollingOptOut\": _propTypes[\"default\"].bool.isRequired,\n \"parent\": _propTypes[\"default\"].object.isRequired,\n \"rowSizeAndPositionManager\": function rowSizeAndPositionManager() {\n return (typeof _ScalingCellSizeAndPositionManager[\"default\"] === \"function\" ? _propTypes[\"default\"].instanceOf(_ScalingCellSizeAndPositionManager[\"default\"]).isRequired : _propTypes[\"default\"].any.isRequired).apply(this, arguments);\n },\n \"rowStartIndex\": _propTypes[\"default\"].number.isRequired,\n \"rowStopIndex\": _propTypes[\"default\"].number.isRequired,\n \"scrollLeft\": _propTypes[\"default\"].number.isRequired,\n \"scrollTop\": _propTypes[\"default\"].number.isRequired,\n \"styleCache\": _propTypes[\"default\"].objectOf(_propTypes[\"default\"].object.isRequired).isRequired,\n \"verticalOffsetAdjustment\": _propTypes[\"default\"].number.isRequired,\n \"visibleColumnIndices\": _propTypes[\"default\"].object.isRequired,\n \"visibleRowIndices\": _propTypes[\"default\"].object.isRequired\n};\nexports.bpfrpt_proptype_CellRangeRendererParams = bpfrpt_proptype_CellRangeRendererParams;\nvar bpfrpt_proptype_CellRangeRenderer = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].func;\nexports.bpfrpt_proptype_CellRangeRenderer = bpfrpt_proptype_CellRangeRenderer;\nvar bpfrpt_proptype_CellSizeGetter = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].func;\nexports.bpfrpt_proptype_CellSizeGetter = bpfrpt_proptype_CellSizeGetter;\nvar bpfrpt_proptype_CellSize = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].number]);\nexports.bpfrpt_proptype_CellSize = bpfrpt_proptype_CellSize;\nvar bpfrpt_proptype_NoContentRenderer = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].func;\nexports.bpfrpt_proptype_NoContentRenderer = bpfrpt_proptype_NoContentRenderer;\nvar bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {\n \"clientHeight\": _propTypes[\"default\"].number.isRequired,\n \"clientWidth\": _propTypes[\"default\"].number.isRequired,\n \"scrollHeight\": _propTypes[\"default\"].number.isRequired,\n \"scrollLeft\": _propTypes[\"default\"].number.isRequired,\n \"scrollTop\": _propTypes[\"default\"].number.isRequired,\n \"scrollWidth\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_Scroll = bpfrpt_proptype_Scroll;\nvar bpfrpt_proptype_ScrollbarPresenceChange = process.env.NODE_ENV === 'production' ? null : {\n \"horizontal\": _propTypes[\"default\"].bool.isRequired,\n \"vertical\": _propTypes[\"default\"].bool.isRequired,\n \"size\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_ScrollbarPresenceChange = bpfrpt_proptype_ScrollbarPresenceChange;\nvar bpfrpt_proptype_RenderedSection = process.env.NODE_ENV === 'production' ? null : {\n \"columnOverscanStartIndex\": _propTypes[\"default\"].number.isRequired,\n \"columnOverscanStopIndex\": _propTypes[\"default\"].number.isRequired,\n \"columnStartIndex\": _propTypes[\"default\"].number.isRequired,\n \"columnStopIndex\": _propTypes[\"default\"].number.isRequired,\n \"rowOverscanStartIndex\": _propTypes[\"default\"].number.isRequired,\n \"rowOverscanStopIndex\": _propTypes[\"default\"].number.isRequired,\n \"rowStartIndex\": _propTypes[\"default\"].number.isRequired,\n \"rowStopIndex\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_RenderedSection = bpfrpt_proptype_RenderedSection;\nvar bpfrpt_proptype_OverscanIndicesGetterParams = process.env.NODE_ENV === 'production' ? null : {\n // One of SCROLL_DIRECTION_HORIZONTAL or SCROLL_DIRECTION_VERTICAL\n \"direction\": _propTypes[\"default\"].oneOf([\"horizontal\", \"vertical\"]).isRequired,\n // One of SCROLL_DIRECTION_BACKWARD or SCROLL_DIRECTION_FORWARD\n \"scrollDirection\": _propTypes[\"default\"].oneOf([-1, 1]).isRequired,\n // Number of rows or columns in the current axis\n \"cellCount\": _propTypes[\"default\"].number.isRequired,\n // Maximum number of cells to over-render in either direction\n \"overscanCellsCount\": _propTypes[\"default\"].number.isRequired,\n // Begin of range of visible cells\n \"startIndex\": _propTypes[\"default\"].number.isRequired,\n // End of range of visible cells\n \"stopIndex\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_OverscanIndicesGetterParams = bpfrpt_proptype_OverscanIndicesGetterParams;\nvar bpfrpt_proptype_OverscanIndices = process.env.NODE_ENV === 'production' ? null : {\n \"overscanStartIndex\": _propTypes[\"default\"].number.isRequired,\n \"overscanStopIndex\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_OverscanIndices = bpfrpt_proptype_OverscanIndices;\nvar bpfrpt_proptype_OverscanIndicesGetter = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].func;\nexports.bpfrpt_proptype_OverscanIndicesGetter = bpfrpt_proptype_OverscanIndicesGetter;\nvar bpfrpt_proptype_Alignment = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].oneOf([\"auto\", \"end\", \"start\", \"center\"]);\nexports.bpfrpt_proptype_Alignment = bpfrpt_proptype_Alignment;\nvar bpfrpt_proptype_VisibleCellRange = process.env.NODE_ENV === 'production' ? null : {\n \"start\": _propTypes[\"default\"].number,\n \"stop\": _propTypes[\"default\"].number\n};\nexports.bpfrpt_proptype_VisibleCellRange = bpfrpt_proptype_VisibleCellRange;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;","import { MediaType, Image, Pdf, Video } from 'generated/graphql';\n\nexport const isImage = (file: { mediaType: MediaType }): file is Image => file.mediaType === MediaType.Image;\n\nexport const isPdf = (file: { mediaType: MediaType }): file is Pdf => file.mediaType === MediaType.Pdf;\n\nexport const isVideo = (file: { mediaType: MediaType }): file is Video => file.mediaType === MediaType.Video;\n\nexport const getMediaTypeFromFileType = (fileType: string): MediaType => {\n\tif (fileType.match(/^video/)) return MediaType.Video;\n\tif (fileType.match(/^application\\/pdf/)) return MediaType.Pdf;\n\treturn MediaType.Image;\n};\n\nexport const seasonYearFormat = (seasonYear: number): string => {\n\tif (!seasonYear) return null;\n\treturn seasonYear < 10 ? '200' + seasonYear : '20' + seasonYear;\n};\n","import assign from 'lodash/assign';\nimport chunk from 'lodash/chunk';\nimport cloneDeep from 'lodash/cloneDeep';\nimport filter from 'lodash/filter';\nimport findIndex from 'lodash/findIndex';\nimport flatten from 'lodash/flatten';\nimport isEmpty from 'lodash/isEmpty';\nimport map from 'lodash/map';\nimport pullAt from 'lodash/pullAt';\nimport reject from 'lodash/reject';\n\nimport { getCache } from 'Apollo';\nimport StateManager from 'Apollo/StateManager';\nimport {\n\tShowroomParams,\n\tShowroomPrContactParams,\n\tSectionFileUi,\n\tSectionRowUi,\n\tGetLibrarySelectedMediasEditorQuery,\n\tImage,\n\tVideo,\n\tShowroomSectionUi,\n\tShowroomSectionOptionsUi,\n\tMedia,\n\tShowroomEditor,\n\tMediaType\n} from 'generated/graphql';\n\nimport { AddMediaToSectionParams, SectionData } from 'Types/showroom';\n\nimport { SELECTED_LIBRARY_MEDIAS_EDITOR } from './queries';\nimport INITIAL_STATE from './state';\n\nconst path = 'showroom.editor';\nconst stateManager = new StateManager(path);\nconst cache = getCache();\n\nexport type EditorDragAndDropCoordinates = {\n\tfromRow: number;\n\trow: number;\n\tfromColumn: number;\n\tcolumn: number;\n};\n\nexport const openEditorMode = (showroomId?: string) => {\n\tstateManager.update({\n\t\tisOpen: true,\n\t\tshowroomId: showroomId ? showroomId : null,\n\t\tstep: 0\n\t});\n};\n\nexport const closeEditorMode = () => {\n\tstateManager.update({\n\t\t...INITIAL_STATE\n\t});\n};\n\nexport const goToStep = (step: number) => {\n\tstateManager.update({\n\t\tstep\n\t});\n};\n\nexport const goToSection = (section: number) => {\n\tstateManager.update({\n\t\tdisplaySectionOptions: null,\n\t\tcurrentSection: section\n\t});\n};\n\nexport const setDisplaySectionOptions = (type: string) => {\n\tconst selected = stateManager.get().displaySectionOptions;\n\tstateManager.update({\n\t\tdisplaySectionOptions: selected === type ? null : type\n\t});\n};\n\nexport const updateShowroomParams = (showroomParams: Partial) => {\n\tstateManager.update({\n\t\tshowroomParams: assign({}, stateManager.get().showroomParams, showroomParams)\n\t});\n};\n\nexport const updateShowroomMediaParams = (sectionId: string, medias: Partial[]) => {\n\tconst { showroomParams }: ShowroomEditor = stateManager.get();\n\tconst sections = cloneDeep(showroomParams.sections);\n\tconst section: ShowroomSectionUi = sections.find(section => section.id === sectionId);\n\tmedias.forEach(media => {\n\t\tconst rowIndex = findIndex(section.rowMediaIds, row => row.mediaIds.includes(media.id));\n\t\tconst row = section.rows[rowIndex * 2 + 1];\n\t\tconst sortedRow = section.rowMediaIds[rowIndex];\n\t\tconst mediaIndex = findIndex(sortedRow.mediaIds, rowMediaId => rowMediaId === media.id);\n\n\t\trow.medias.splice(mediaIndex, 0, {\n\t\t\tmediaId: media.id,\n\t\t\tpublicId: media.cloudinaryId,\n\t\t\tmediaType: media.mediaType,\n\t\t\twidth: media.mediaType === MediaType.Image ? (media as Image).width : media.mediaType === MediaType.Video ? (media as Video).width : 0,\n\t\t\theight: media.mediaType === MediaType.Image ? (media as Image).height : media.mediaType === MediaType.Video ? (media as Video).height : 0,\n\t\t\toriginalFilename: media.name || '',\n\t\t\tcreatedAt: media.createdAt || 0,\n\t\t\tcloudinaryVersion: media.cloudinaryVersion?.toString(),\n\t\t\tisSample: media.isSample\n\t\t});\n\t});\n\tstateManager.update({\n\t\tshowroomParams: { ...showroomParams, sections }\n\t});\n};\n\nexport const updateShowroomSectionLoading = (sectionId: string, loading: boolean) => {\n\tconst { showroomParams } = stateManager.get();\n\tconst sections = cloneDeep(showroomParams.sections);\n\tconst section: ShowroomSectionUi = sections?.find(section => section.id === sectionId);\n\tif (section) {\n\t\tsection.loading = loading;\n\t\tstateManager.update({\n\t\t\tshowroomParams: { ...showroomParams, sections }\n\t\t});\n\t}\n};\n\nexport const updateShowroomSectionLoaded = (sectionId: string, loaded: boolean) => {\n\tconst { showroomParams } = stateManager.get();\n\tconst sections = cloneDeep(showroomParams.sections);\n\tconst section: ShowroomSectionUi = sections?.find(section => section.id === sectionId);\n\tif (section) {\n\t\tsection.loaded = loaded;\n\t\tstateManager.update({\n\t\t\tshowroomParams: { ...showroomParams, sections }\n\t\t});\n\t}\n};\n\nexport const updateSectionOptions = (section: number, options: Partial) => {\n\tconst showroomParams = cloneDeep(stateManager.get().showroomParams);\n\tshowroomParams.sections[section].options = assign({}, showroomParams.sections[section].options, options);\n\tstateManager.update({\n\t\tshowroomParams\n\t});\n};\n\nconst getNewMediasToAdd = (section: ShowroomSectionUi): SectionFileUi[] => {\n\tconst { librarySelectedMedias: selectedMedias } = cache.readQuery({ query: SELECTED_LIBRARY_MEDIAS_EDITOR });\n\tconst sectionFilesIds = map(flatten(map(section.rows, 'medias')), 'mediaId').reduce((acc, mediaId) => {\n\t\tacc[mediaId] = mediaId;\n\t\treturn acc;\n\t}, {});\n\n\treturn selectedMedias.reduce((acc: SectionFileUi[], media: Image | Video) => {\n\t\tif (!sectionFilesIds[media.id])\n\t\t\tacc.push({\n\t\t\t\tmediaId: media.id,\n\t\t\t\tmediaType: media.mediaType,\n\t\t\t\tpublicId: media.cloudinaryId,\n\t\t\t\tcloudinaryVersion: media.cloudinaryVersion.toString(),\n\t\t\t\twidth: media.width,\n\t\t\t\theight: media.height,\n\t\t\t\toriginalFilename: media.name,\n\t\t\t\tcreatedAt: media.createdAt,\n\t\t\t\tisSample: media.isSample\n\t\t\t});\n\t\treturn acc;\n\t}, []);\n};\n\n/**\n * This function takes care of the empty rows after moving images\n * - If the row should be empty but it's not, we add an extra empty row\n * - If the row is empty and it shouldn't we remove the empty one.\n * @param currentSection The section to act\n * @param emptyRow An empty row used to generate new emptyRows\n * @param row The affected row where the algorithm should apply\n */\nconst fixRows = (currentSection: ShowroomSectionUi, emptyRow: SectionRowUi, row: number) => {\n\tlet startFixFrom;\n\tlet endFixFrom;\n\n\tconst maxRows = currentSection.rows.length - 1;\n\n\tif (row === 0) {\n\t\tstartFixFrom = row;\n\t\tendFixFrom = row + 2;\n\t} else if (row === maxRows) {\n\t\tstartFixFrom = row - 2;\n\t\tendFixFrom = row;\n\t} else {\n\t\tstartFixFrom = row - 3 <= 0 ? 0 : row - 3;\n\t\tendFixFrom = row + 3 >= maxRows ? maxRows : row + 3;\n\t}\n\n\twhile (startFixFrom <= endFixFrom && startFixFrom !== currentSection.rows.length) {\n\t\tconst shouldBeEmpty = startFixFrom % 2 === 0;\n\n\t\tif (shouldBeEmpty && !isEmpty(currentSection.rows[startFixFrom].medias)) {\n\t\t\tcurrentSection.rows.splice(startFixFrom, 0, cloneDeep(emptyRow));\n\t\t\tstartFixFrom++;\n\t\t} else {\n\t\t\tif (!shouldBeEmpty && isEmpty(currentSection.rows[startFixFrom].medias)) {\n\t\t\t\tcurrentSection.rows.splice(startFixFrom, 1);\n\t\t\t} else {\n\t\t\t\tstartFixFrom++;\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst readSectionData = (section: number): SectionData => {\n\tconst {\n\t\tshowroomParams: { sections }\n\t}: ShowroomEditor = stateManager.get();\n\treturn cloneDeep(sections[section]);\n};\n\nconst updateSection = (section: number, sectionData: SectionData) => {\n\tconst {\n\t\tshowroomParams: { sections }\n\t}: ShowroomEditor = stateManager.get();\n\tconst sectionsCopy = [...sections];\n\tsectionsCopy[section] = sectionData;\n\tupdateShowroomParams({ sections: sectionsCopy });\n};\n\nexport const reorganizeSection = (section: number, itemsPerRow: number, sortBy: string) => {\n\tconst currentSection = readSectionData(section);\n\tconst medias = flatten(currentSection.rows.map(row => row.medias));\n\tcurrentSection.rows = [];\n\tconst updatedSection = addMediasToSection({ newMedias: medias, section: currentSection, itemsPerRow, sortBy, rowIndex: 0 });\n\tupdateSection(section, updatedSection);\n};\n\nexport const addSelectedMediasToSection = (section: number, itemsPerRow: number, sortBy: string, rowIndex: number) => {\n\tconst currentSection = readSectionData(section);\n\tconst newMedias: SectionFileUi[] = getNewMediasToAdd(currentSection);\n\tconst updatedSection = addMediasToSection({ newMedias, section: currentSection, itemsPerRow, sortBy, rowIndex });\n\tupdateSection(section, updatedSection);\n};\n\nexport const addMediasToSection = ({ newMedias, section, itemsPerRow, sortBy, rowIndex }: AddMediaToSectionParams) => {\n\tconst currentSection = cloneDeep(section);\n\tconst [field, order] = sortBy.split(':');\n\tconst sortedArray = newMedias.sort((a, b) => {\n\t\tconst fieldA = field === 'originalFilename' ? a.originalFilename.toLowerCase() : a[field];\n\t\tconst fieldB = field === 'originalFilename' ? b.originalFilename.toLowerCase() : b[field];\n\t\treturn fieldA.toString().localeCompare(fieldB.toString(), undefined, { numeric: true, sensitivity: 'base' });\n\t});\n\n\tif (order === 'desc') sortedArray.reverse();\n\n\tconst splittedItems = chunk(sortedArray, itemsPerRow);\n\n\tconst newRows: SectionRowUi[] = [];\n\tsplittedItems.forEach(items => {\n\t\tnewRows.push({\n\t\t\tmedias: []\n\t\t});\n\t\tnewRows.push({\n\t\t\tmedias: items\n\t\t});\n\t});\n\n\tconst firstRows = currentSection.rows.slice(0, rowIndex) || [];\n\tconst lastRows = currentSection.rows.slice(rowIndex) || [];\n\n\tif (isEmpty(lastRows))\n\t\tnewRows.push({\n\t\t\tmedias: []\n\t\t});\n\n\tcurrentSection.rows = [...firstRows, ...newRows, ...lastRows];\n\n\tconst emptyRow = currentSection.rows.find(row => isEmpty(row.medias));\n\tfixRows(currentSection, emptyRow, rowIndex);\n\n\treturn currentSection;\n};\n\nexport const addMediaToRow = (section: number, row: number, start: number) => {\n\tconst currentSection = readSectionData(section);\n\n\tconst newMedias: SectionFileUi[] = getNewMediasToAdd(currentSection);\n\tconst currentRow = currentSection.rows[row];\n\tconst firstFiles = currentRow.medias?.slice(0, start) || [];\n\tconst lastFiles = currentRow.medias?.slice(start) || [];\n\n\tcurrentRow.medias = [...firstFiles, ...newMedias, ...lastFiles];\n\tupdateSection(section, currentSection);\n};\n\nexport const removeMediaFromSection = (section: number, row: number, mediaId: string) => {\n\tconst currentSection = readSectionData(section);\n\tconst currentRow = currentSection.rows[row];\n\tcurrentRow.medias = reject(currentRow.medias, { publicId: mediaId });\n\tif (isEmpty(currentRow.medias)) pullAt(currentSection.rows, [row, row + 1]);\n\tupdateSection(section, currentSection);\n};\n\nexport const updatePrContactValues = (values: Partial, index: number) => {\n\tconst prContacts = [...stateManager.get().showroomParams.prContacts];\n\tconst prContact = { ...prContacts[index], ...values };\n\tprContacts[index] = prContact;\n\tupdateShowroomParams({ prContacts });\n};\n\nexport const addEmptyContact = () => {\n\tconst prContacts = [...stateManager.get().showroomParams.prContacts];\n\tprContacts.push({\n\t\tname: '',\n\t\temail: '',\n\t\tphone: '',\n\t\tjobTitle: ''\n\t});\n\tupdateShowroomParams({ prContacts });\n};\n\nexport const deleteContact = (index: number) => {\n\tconst prContacts = [...stateManager.get().showroomParams.prContacts];\n\tprContacts.splice(index, 1);\n\tupdateShowroomParams({ prContacts });\n};\n\nexport const moveMediaToRow = (section: number, coordinates: EditorDragAndDropCoordinates) => {\n\tconst currentSection = readSectionData(section);\n\n\tconst { fromRow, fromColumn, row, column } = coordinates;\n\n\tconst originRow = currentSection.rows[fromRow];\n\tconst destinationRow = currentSection.rows[row];\n\n\tconst splicedItems = originRow.medias.splice(fromColumn, 1);\n\n\tif (fromRow === row && column / 2 > fromColumn) {\n\t\tdestinationRow.medias.splice(column / 2 - 1, 0, splicedItems[0]);\n\t} else {\n\t\tdestinationRow.medias.splice(column / 2, 0, splicedItems[0]);\n\t}\n\n\tconst emptyRow = currentSection.rows.find(row => row.medias.length === 0);\n\n\tfixRows(currentSection, emptyRow, fromRow);\n\tfixRows(currentSection, emptyRow, row);\n\n\tif (!isEmpty(currentSection.rows[currentSection.rows.length - 1].medias)) {\n\t\tcurrentSection.rows = [...currentSection.rows, cloneDeep(emptyRow)];\n\t}\n\n\tupdateSection(section, currentSection);\n\treturn currentSection;\n};\n\nexport const getCleanedShowroomParams = (): Partial => {\n\tconst { showroomParams } = stateManager.get();\n\n\tconst showroomParamsCopy = cloneDeep(showroomParams);\n\n\tshowroomParamsCopy.sections.forEach(section => {\n\t\tsection.rows = filter(section.rows, row => !isEmpty(row.medias));\n\t});\n\n\tshowroomParamsCopy.prContacts = showroomParamsCopy.prContacts.filter(prContact => !Object.values(prContact).every(value => !value));\n\n\treturn showroomParamsCopy;\n};\n","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","/**\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","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nmodule.exports = chunk;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _CellSizeAndPositionManager = _interopRequireDefault(require(\"./CellSizeAndPositionManager\"));\n\nvar _maxElementSize = require(\"./maxElementSize.js\");\n\nvar _types = require(\"../types\");\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 ? (0, _maxElementSize.getMaxElementSize)() : _ref$maxScrollSize,\n params = (0, _objectWithoutProperties2[\"default\"])(_ref, [\"maxScrollSize\"]);\n (0, _classCallCheck2[\"default\"])(this, ScalingCellSizeAndPositionManager);\n (0, _defineProperty2[\"default\"])(this, \"_cellSizeAndPositionManager\", void 0);\n (0, _defineProperty2[\"default\"])(this, \"_maxScrollSize\", void 0);\n // Favor composition over inheritance to simplify IE10 support\n this._cellSizeAndPositionManager = new _CellSizeAndPositionManager[\"default\"](params);\n this._maxScrollSize = maxScrollSize;\n }\n\n (0, _createClass2[\"default\"])(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 return ScalingCellSizeAndPositionManager;\n}();\n\nexports[\"default\"] = ScalingCellSizeAndPositionManager;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"checkIndexBounds\", {\n enumerable: true,\n get: function get() {\n return _checkIndexBounds.default;\n }\n});\nObject.defineProperty(exports, \"computeIndex\", {\n enumerable: true,\n get: function get() {\n return _computeIndex.default;\n }\n});\nObject.defineProperty(exports, \"constant\", {\n enumerable: true,\n get: function get() {\n return _constant.default;\n }\n});\nObject.defineProperty(exports, \"getDisplaySameSlide\", {\n enumerable: true,\n get: function get() {\n return _getDisplaySameSlide.default;\n }\n});\nObject.defineProperty(exports, \"mod\", {\n enumerable: true,\n get: function get() {\n return _mod.default;\n }\n});\n\nvar _checkIndexBounds = _interopRequireDefault(require(\"./checkIndexBounds\"));\n\nvar _computeIndex = _interopRequireDefault(require(\"./computeIndex\"));\n\nvar _constant = _interopRequireDefault(require(\"./constant\"));\n\nvar _getDisplaySameSlide = _interopRequireDefault(require(\"./getDisplaySameSlide\"));\n\nvar _mod = _interopRequireDefault(require(\"./mod\"));","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType = _typeof(input);\n\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import React from 'react';\n\nimport { ShowroomGetParams } from 'generated/graphql';\n\nimport { TrackFn, useTrackApi } from 'lib/trackApi';\n\nexport type ContextState = {\n\tshowroomId: string;\n\tisUserView: boolean;\n\ttrack: TrackFn;\n\tgetParams: ShowroomGetParams;\n\tscrollElement: Element;\n\tisPublic: boolean;\n};\n\nexport type ComponentProps = {\n\tshowroomId: string;\n\ttenant: string;\n\tisUserView: boolean;\n\tchildren: React.ReactElement;\n\tpassword?: string;\n\tscrollElement?: Element;\n\tisPublic?: boolean;\n};\n\nexport const ShowroomContext = React.createContext({\n\tshowroomId: null,\n\tisUserView: false,\n\ttrack: null,\n\tgetParams: null,\n\tscrollElement: null,\n\tisPublic: false\n});\n\n/**\n * Context to share some global variables across the diferent showroom components.\n * @param props - Provides the showroom data, the showroom mode (user view or editing) and the component tree that need the values\n * @returns Component with that provides the showroom global values\n *\n */\nconst ShowroomContextProvider = (props: ComponentProps) => {\n\tconst { showroomId, tenant, isUserView, children, password, scrollElement = null, isPublic } = props;\n\n\tconst { track } = useTrackApi('showroom', tenant, isUserView);\n\n\tconst getParams: ShowroomGetParams = React.useMemo(() => {\n\t\tconst params: ShowroomGetParams = { id: showroomId };\n\t\tif (!isUserView) return params;\n\t\tif (password) params.password = password;\n\t\tparams.tenant = tenant;\n\t\treturn params;\n\t}, [isUserView, password, showroomId, tenant]);\n\n\tconst state: ContextState = React.useMemo(\n\t\t() => ({\n\t\t\tshowroomId,\n\t\t\tisUserView,\n\t\t\ttrack,\n\t\t\tgetParams,\n\t\t\tscrollElement,\n\t\t\tisPublic\n\t\t}),\n\t\t[showroomId, isUserView, track, getParams, scrollElement, isPublic]\n\t);\n\n\treturn {children};\n};\n\nexport default React.memo(ShowroomContextProvider);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _AutoSizer[\"default\"];\n }\n});\nObject.defineProperty(exports, \"AutoSizer\", {\n enumerable: true,\n get: function get() {\n return _AutoSizer[\"default\"];\n }\n});\n\nvar _AutoSizer = _interopRequireDefault(require(\"./AutoSizer\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _List[\"default\"];\n }\n});\nObject.defineProperty(exports, \"List\", {\n enumerable: true,\n get: function get() {\n return _List[\"default\"];\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_RowRendererParams\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_RowRendererParams;\n }\n});\n\nvar _List = _interopRequireDefault(require(\"./List\"));\n\nvar _types = require(\"./types\");","import { ResizeObserver as Polyfill } from '@juggle/resize-observer';\n\nexport default window.ResizeObserver || Polyfill;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","import { CSSProperties } from 'react';\n\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport type VideoPlayerStyleProps = {\n\tobjectFit: CSSProperties['objectFit'];\n};\n\nexport const Theme = useTheme;\nexport const useStyles = makeStyles(theme => ({\n\tvideoPlayerContainer: {\n\t\tposition: 'relative',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tcursor: 'pointer',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\twidth: '100%',\n\t\theight: '100%'\n\t},\n\tvideoPointerDisabled: {\n\t\tcursor: 'default'\n\t},\n\tvideoCover: {\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0\n\t},\n\tcoverDisabled: {\n\t\tpointerEvents: 'none'\n\t},\n\tvideoThumbnailContainer: {\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tbackgroundSize: 'cover',\n\t\topacity: 1,\n\t\ttransition: 'opacity 250ms'\n\t},\n\tvideoThumbnailHidden: {\n\t\topacity: 0\n\t},\n\tvideoThumbnail: {\n\t\twidth: '100%',\n\t\theight: '100%',\n\t\tobjectFit: 'cover',\n\t\tobjectPosition: '50% 50%'\n\t},\n\tvideoPlayer: {\n\t\tmaxWidth: '100%',\n\t\tmaxHeight: '100%',\n\t\theight: (props: VideoPlayerStyleProps) => (props.objectFit === 'cover' ? '100%' : ''),\n\t\twidth: (props: VideoPlayerStyleProps) => (props.objectFit === 'cover' ? '100%' : ''),\n\t\tobjectFit: (props: VideoPlayerStyleProps) => props.objectFit\n\t},\n\tvideoPlayerFullScreen: {\n\t\tobjectFit: 'contain !important' as any\n\t},\n\tvideoPreviewContainer: {\n\t\tposition: 'relative',\n\t\theight: '100%',\n\t\twidth: '100%'\n\t},\n\tvideoPlayerHidden: {\n\t\tdisplay: 'none'\n\t},\n\tvideoItemButtonContainer: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\tposition: 'absolute',\n\t\tbackground: 'rgb(0 0 0 / 38%)',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tpointerEvents: 'none'\n\t},\n\tvideoPlayButton: {\n\t\tpadding: 0\n\t},\n\tvideoItemIcon: {\n\t\tcolor: '#FFF'\n\t},\n\tvideoItem: {\n\t\twidth: '100%'\n\t}\n}));\n","import clsx from 'clsx';\nimport merge from 'lodash/merge';\nimport min from 'lodash/min';\nimport React from 'react';\n\nimport CustomResizeObserver from 'lib/ResizeObserver';\nimport { getVideoPreviewUrl, getVideoUrl } from 'lib/cloudinary';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport PlayCircleOutline from '@material-ui/icons/PlayCircleOutline';\n\nimport { useStyles } from './styles';\n\ntype PlayerOptions = {\n\tcontrols: boolean;\n\tautoPlay: boolean;\n\tmuted: boolean;\n\tfullScreen: boolean;\n\tpreview: boolean;\n\tloop: boolean;\n\tautoplayOnScroll: boolean;\n\tshowPlayButton: boolean;\n};\n\nexport type ComponentProps = {\n\tid: string;\n\tvideoId: string;\n\tcloudinaryVersion: string;\n\tconfig?: Partial;\n\toverlay?: React.ReactElement;\n\tonPlay?: React.EffectCallback;\n\tobjectFit?: React.CSSProperties['objectFit'];\n};\n\nconst VideoPlayer = (props: ComponentProps) => {\n\tconst { videoId, id, config, overlay, cloudinaryVersion, onPlay, objectFit = 'cover' } = props;\n\n\tconst videoRef = React.useRef();\n\tconst previewVideoRef = React.useRef();\n\tconst [isVideoPlaying, setVideoPlaying] = React.useState(false);\n\tconst [isPreviewPlaying, setPreviewPlaying] = React.useState(false);\n\tconst [isFullScreen, setFullScreen] = React.useState(false);\n\tconst [videoPlayed, setVideoPlayed] = React.useState(false);\n\tconst [scrollActive, setScrollActive] = React.useState(true);\n\tconst [videoPlayFailed, setVideoPlayFailed] = React.useState(false);\n\tconst classes = useStyles({ objectFit });\n\n\tconst [videoWidth, setVideoWidth] = React.useState(0);\n\tconst videoContainerRef = React.useRef();\n\n\tconst options = React.useMemo(() => {\n\t\tconst defaultOptions: PlayerOptions = {\n\t\t\tcontrols: false,\n\t\t\tautoPlay: false,\n\t\t\tmuted: true,\n\t\t\tfullScreen: true,\n\t\t\tpreview: true,\n\t\t\tloop: false,\n\t\t\tautoplayOnScroll: false,\n\t\t\tshowPlayButton: true\n\t\t};\n\t\treturn merge(defaultOptions, config);\n\t}, [config]);\n\n\tconst canPlayPreview = React.useMemo(() => options.preview && !videoPlayed, [videoPlayed, options.preview]);\n\tconst playOnScrollEnabled = options.autoplayOnScroll && scrollActive;\n\tconst canShowControls = isFullScreen || (options.controls && !playOnScrollEnabled) || videoPlayFailed;\n\tconst showCover = !canShowControls && ((!videoPlayed && !isPreviewPlaying) || (videoPlayed && !isVideoPlaying && playOnScrollEnabled));\n\tconst canShowPlayButton = options.showPlayButton && !options.autoPlay && !isVideoPlaying && !isPreviewPlaying && !canShowControls;\n\n\t/* PREVIEW ACTIONS AND USE EFFECTS */\n\tReact.useEffect(() => {\n\t\tif (previewVideoRef.current) {\n\t\t\tconst { current: videoPreview } = previewVideoRef;\n\t\t\tvideoPreview.onplaying = () => setPreviewPlaying(true);\n\t\t\tvideoPreview.onpause = () => setPreviewPlaying(false);\n\t\t\tvideoPreview.onended = ev => {\n\t\t\t\tsetPreviewPlaying(false);\n\t\t\t};\n\t\t}\n\t}, []);\n\n\tconst playPreview = React.useCallback(async () => {\n\t\tif (!canPlayPreview) return;\n\t\tif (onPlay) onPlay();\n\t\tif (!isPreviewPlaying) {\n\t\t\tpreviewVideoRef.current.currentTime = 0;\n\t\t\tpreviewVideoRef.current.play();\n\t\t}\n\t}, [canPlayPreview, isPreviewPlaying, onPlay]);\n\n\tconst stopPreview = React.useCallback(() => {\n\t\tif (!canPlayPreview) return;\n\t\tif (isPreviewPlaying) previewVideoRef.current.pause();\n\t}, [canPlayPreview, isPreviewPlaying]);\n\n\t/* RESIZE OBSERVER FOR SETTING PLAY BUTTON FONT SIZE DYNAMICALLY */\n\tReact.useEffect(() => {\n\t\tif (videoContainerRef.current) {\n\t\t\tconst { current: videoContainer } = videoContainerRef;\n\t\t\t// @ts-ignore\n\t\t\tconst observer = new CustomResizeObserver(() => {\n\t\t\t\tsetVideoWidth(videoContainer.offsetWidth);\n\t\t\t});\n\t\t\tobserver.observe(videoContainer);\n\t\t\treturn () => observer.unobserve(videoContainer);\n\t\t}\n\t}, [videoContainerRef]);\n\n\tconst handleFullScreenChange = React.useCallback(\n\t\t(fullscreenElement, video) => {\n\t\t\tif (!fullscreenElement) videoContainerRef.current ? videoContainerRef.current.append(video) : document.body.removeChild(video);\n\t\t\tsetFullScreen(!!fullscreenElement);\n\t\t\tif (!fullscreenElement) {\n\t\t\t\tvideo.pause();\n\t\t\t\tvideo.options = options;\n\t\t\t} else video.play();\n\t\t},\n\t\t[options]\n\t);\n\n\t/* VIDEO EVENT LISTENERS */\n\tReact.useEffect(() => {\n\t\tconst { current: video } = videoRef;\n\t\tvideo.onplaying = ev => {\n\t\t\tsetVideoPlayed(true);\n\t\t\tsetVideoPlaying(true);\n\t\t\tsetPreviewPlaying(false);\n\t\t};\n\t\tvideo.onpause = ev => {\n\t\t\tsetVideoPlaying(false);\n\t\t};\n\t\tvideo.onended = ev => {\n\t\t\tsetVideoPlaying(false);\n\t\t};\n\t\tvideo.onload = ev => {\n\t\t\tsetVideoPlaying(false);\n\t\t};\n\t\tvideo.addEventListener('fullscreenchange', function (e) {\n\t\t\thandleFullScreenChange(document.fullscreenElement, video);\n\t\t});\n\t\tvideo.addEventListener('webkitfullscreenchange', function () {\n\t\t\t//We should put the video back in its original container when exiting full screen\n\t\t\t//@ts-ignore\n\t\t\thandleFullScreenChange(document.webkitIsFullScreen, video);\n\t\t});\n\t\tvideo.addEventListener('mozfullscreenchange', function () {\n\t\t\t//@ts-ignore\n\t\t\thandleFullScreenChange(document.mozFullScreen, video);\n\t\t});\n\t\tvideo.addEventListener('msfullscreenchange', function () {\n\t\t\t//@ts-ignore\n\t\t\thandleFullScreenChange(document.msFullscreenElement, video);\n\t\t});\n\t}, [handleFullScreenChange]);\n\n\tconst openFullScreen = React.useCallback(async () => {\n\t\tconst { current: video } = videoRef;\n\t\tif (video.requestFullscreen) {\n\t\t\tdocument.body.appendChild(video);\n\t\t\tawait video.requestFullscreen();\n\t\t}\n\t\t//@ts-ignore\n\t\telse if (video.mozRequestFullScreen) {\n\t\t\tdocument.body.appendChild(video);\n\t\t\t//@ts-ignore\n\t\t\tawait video.mozRequestFullScreen();\n\t\t}\n\t\t//@ts-ignore\n\t\telse if (video.msRequestFullscreen) {\n\t\t\tdocument.body.appendChild(video);\n\t\t\t//@ts-ignore\n\t\t\tawait video.msRequestFullscreen();\n\t\t}\n\t\t//@ts-ignore\n\t\telse if (video.webkitRequestFullscreen) {\n\t\t\tdocument.body.appendChild(video);\n\t\t\t//@ts-ignore\n\t\t\tawait video.webkitRequestFullscreen();\n\t\t}\n\t}, []);\n\n\tconst playVideo = React.useCallback(async () => {\n\t\tconst { current: video } = videoRef;\n\t\tif (!isVideoPlaying) {\n\t\t\ttry {\n\t\t\t\tif (onPlay) onPlay();\n\t\t\t\tawait video.play();\n\t\t\t} catch (err) {\n\t\t\t\tsetVideoPlayed(true);\n\t\t\t\tsetVideoPlayFailed(true);\n\t\t\t\tsetScrollActive(false);\n\t\t\t\tconsole.log(err);\n\t\t\t}\n\t\t}\n\t}, [isVideoPlaying, onPlay]);\n\n\tconst stopVideo = React.useCallback(() => {\n\t\tconst { current: video } = videoRef;\n\t\tif (isVideoPlaying) video.pause();\n\t}, [isVideoPlaying]);\n\n\t/* PLAY VIDEO ON SCROLL ON MOBILE VERSION */\n\tReact.useEffect(() => {\n\t\tif (videoContainerRef.current && playOnScrollEnabled) {\n\t\t\tconst { current: videoContainer } = videoContainerRef;\n\t\t\tconst observer = new IntersectionObserver(\n\t\t\t\tentries => {\n\t\t\t\t\tconst { isIntersecting } = entries[0];\n\t\t\t\t\tif (isIntersecting) playVideo();\n\t\t\t\t\telse stopVideo();\n\t\t\t\t},\n\t\t\t\t{ threshold: 0.6, rootMargin: '-20% 0px -20% 0px' }\n\t\t\t);\n\t\t\tobserver.observe(videoContainer);\n\t\t\treturn () => observer.unobserve(videoContainer);\n\t\t}\n\t}, [playOnScrollEnabled, playVideo, stopVideo]);\n\n\tconst videoClickHandler = React.useCallback(\n\t\tasync (ev: React.MouseEvent) => {\n\t\t\tconst { current: video } = videoRef;\n\t\t\t// We don't handle this action if someone else already has control over the video\n\t\t\tif (canShowControls || options.autoPlay) return;\n\t\t\tif (isVideoPlaying && !playOnScrollEnabled) return video.pause();\n\t\t\tif (options.fullScreen) await openFullScreen();\n\t\t\tif (!videoPlayed) video.muted = options.muted;\n\t\t\tawait playVideo();\n\t\t\tsetScrollActive(false);\n\t\t},\n\t\t[\n\t\t\tcanShowControls,\n\t\t\tisVideoPlaying,\n\t\t\topenFullScreen,\n\t\t\toptions.autoPlay,\n\t\t\toptions.fullScreen,\n\t\t\toptions.muted,\n\t\t\tplayOnScrollEnabled,\n\t\t\tvideoPlayed,\n\t\t\tplayVideo\n\t\t]\n\t);\n\n\tconst player = React.useMemo(() => {\n\t\tconst optimizedUrl = getVideoUrl(videoId, { transformation: 'videoFull', version: cloudinaryVersion, format: 'webm' });\n\t\tconst url = getVideoUrl(videoId);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}, [videoId, classes, canPlayPreview, isFullScreen, options, canShowControls, cloudinaryVersion]);\n\n\tconst previewPlayer = React.useMemo(() => {\n\t\tif (!canPlayPreview) return null;\n\n\t\tconst optimizedUrl = getVideoUrl(videoId, { transformation: 'videoPreview', version: cloudinaryVersion, format: 'webm' });\n\t\tconst url = getVideoUrl(videoId);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}, [canPlayPreview, videoId, classes, cloudinaryVersion]);\n\n\tconst playButton = React.useMemo(() => {\n\t\tconst iconFontSize = min([videoWidth * 0.9, 100]) + 'px';\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [videoId, videoWidth]);\n\n\tconst videoThumbnail = React.useMemo(\n\t\t() => (\n\t\t\t\n\t\t\t\t\"cover\"\n\t\t\t\n\t\t),\n\t\t[id, classes, showCover, videoId, cloudinaryVersion]\n\t);\n\n\treturn (\n\t\t\n\t\t\t{overlay || null}\n\t\t\t{player}\n\t\t\t{previewPlayer}\n\t\t\t
\n\t\t\t\t{videoThumbnail}\n\t\t\t\t{canShowPlayButton ? playButton : null}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default React.memo(VideoPlayer);\n","import VideoPlayer from './VideoPlayer';\nexport default VideoPlayer;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n}), 'Search');\n\nexports.default = _default;","var arrayReduce = require('./_arrayReduce'),\n baseEach = require('./_baseEach'),\n baseIteratee = require('./_baseIteratee'),\n baseReduce = require('./_baseReduce'),\n isArray = require('./isArray');\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.38 21.01c.49.49 1.28.49 1.77 0l8.31-8.31c.39-.39.39-1.02 0-1.41L9.15 2.98c-.49-.49-1.28-.49-1.77 0s-.49 1.28 0 1.77L14.62 12l-7.25 7.25c-.48.48-.48 1.28.01 1.76z\"\n}), 'ArrowForwardIosRounded');\n\nexports.default = _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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2014-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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport type LayoutProps = {\n\tmargin: number;\n};\n\nexport const useStyles = makeStyles(theme => ({\n\tresultsList: {\n\t\tdisplay: 'flex',\n\t\tflexFlow: 'wrap',\n\t\tflex: 1,\n\t\tmargin: (props: LayoutProps) => `0px -${props.margin / 2}px`\n\t},\n\tresultsRow: {\n\t\tdisplay: 'flex',\n\t\tflexFlow: 'nowrap',\n\t\tpaddingLeft: 0\n\t}\n}));\n","import clsx from 'clsx';\nimport React from 'react';\nimport useUpdateEffect from 'react-use/lib/useUpdateEffect';\nimport AutoSizer from 'react-virtualized/dist/commonjs/AutoSizer';\nimport List, { ListRowRenderer } from 'react-virtualized/dist/commonjs/List';\nimport WindowScroller from 'react-virtualized/dist/commonjs/WindowScroller';\n\nimport CustomResizeObserver from 'lib/ResizeObserver';\n\nimport { useStyles } from './styles';\n\nconst LARGE_DISPLAY_RATIO = 0.4 / 0.3;\n\ntype RenderElementProps = {\n\tkey: string;\n\tstyleProps: React.CSSProperties;\n\trowFiles: number;\n};\n\ntype BaseElement = {\n\tid: string;\n\twidth: number;\n\theight: number;\n};\n\nexport type RenderFlexElementFn = (element: T, props: RenderElementProps) => React.ReactElement;\ntype FlexDisplayMode = 'normal' | 'large';\n\nexport type SameWidthProps = {\n\tminWidth: number;\n\tmaxWidth: number;\n};\n\nexport type ComponentProps = {\n\telements: T[];\n\tdisplayMode: FlexDisplayMode;\n\trenderElement: RenderFlexElementFn;\n\tmaxItemsPerRow: number;\n\ttitleHeight?: number;\n\tgutterValue?: number;\n\tcontainerClassName?: string;\n\tisMobile?: boolean;\n\tsameWidthProps?: SameWidthProps;\n\tscrollElement?: Element | typeof window;\n};\n\n// TODO: Use the new flex size calculator\nconst getElementRatio = (element: BaseElement) => element.width / element.height;\n\nexport const calculateElementMaxWidth = (element: BaseElement, containerWidth: number, displayMode: FlexDisplayMode) => {\n\tconst ratio = getElementRatio(element);\n\tconst factor = 0.3 * (displayMode === 'large' ? LARGE_DISPLAY_RATIO : 1);\n\treturn ratio * factor * containerWidth;\n};\nexport const calculateElementMinWidth = (element: BaseElement, containerWidth: number) => Math.min(getElementRatio(element) * 210, containerWidth);\nexport const calculateFlexGrow = (element: BaseElement) => getElementRatio(element) * 2;\nexport const calculateElementWidth = (element: BaseElement, containerWidth: number, displayMode: FlexDisplayMode, limitWidth: boolean) => {\n\tconst ratio = getElementRatio(element);\n\tconst maxWidth = calculateElementMaxWidth(element, containerWidth, displayMode);\n\tconst elementWidth = ratio * 0.2 * (displayMode === 'large' ? LARGE_DISPLAY_RATIO : 1) * containerWidth;\n\tconst width = limitWidth ? Math.min(elementWidth, maxWidth) : elementWidth;\n\treturn Math.max(width, calculateElementMinWidth(element, containerWidth));\n};\nexport const calculateHeight = (element: BaseElement, newWidth: number) => {\n\tconst ratio = getElementRatio(element);\n\treturn newWidth / ratio;\n};\n\nexport const calculateFlexElementEqualWidth = (containerWidth: number, itemsPerRow: number) => {\n\treturn Math.floor(containerWidth / itemsPerRow);\n};\n\nexport const calculateElementFlexWidth = (\n\telement: BaseElement,\n\tcontainerWidth: number,\n\tremainingSpace: number,\n\ttotalFlexGrow: number,\n\tdisplayMode: FlexDisplayMode,\n\tlimitWidth: boolean\n) => {\n\tconst width = calculateElementWidth(element, containerWidth, displayMode, limitWidth);\n\tconst maxWidth = calculateElementMaxWidth(element, containerWidth, displayMode);\n\tconst flexGrow = calculateFlexGrow(element);\n\tconst flexElementWidth = (flexGrow / totalFlexGrow) * remainingSpace + width;\n\treturn limitWidth ? Math.min(flexElementWidth, maxWidth) : flexElementWidth;\n};\n\nexport const buildAllRows = (\n\telements: T[],\n\tmaxItemsPerRow: number,\n\tgutterValue: number,\n\tcontainerWidth: number,\n\tdisplayMode: FlexDisplayMode,\n\tlimitWidth: boolean,\n\tsameWidthProps?: SameWidthProps,\n\titemsPerRow?: number\n): T[][] => {\n\tconst result = [];\n\tconst screenWidth = containerWidth; // Can be overriden if there is a scrollbar for example\n\tlet row = [];\n\tlet remainingWidth = screenWidth;\n\n\tfor (const image of elements) {\n\t\tconst newWidth = !sameWidthProps\n\t\t\t? calculateElementWidth(image, containerWidth, displayMode, limitWidth) + gutterValue\n\t\t\t: calculateFlexElementEqualWidth(containerWidth, itemsPerRow);\n\t\tif (remainingWidth - newWidth < 0 || row.length === maxItemsPerRow) {\n\t\t\tresult.push(row);\n\t\t\trow = [image];\n\t\t\tremainingWidth = screenWidth - newWidth;\n\t\t} else {\n\t\t\trow.push(image);\n\t\t\t// Handle too big for width\n\t\t\tremainingWidth = remainingWidth - newWidth;\n\t\t}\n\t}\n\tresult.push(row);\n\treturn result;\n};\n\nconst FlexLayout = (props: ComponentProps) => {\n\tconst {\n\t\telements,\n\t\tdisplayMode,\n\t\tcontainerClassName = '',\n\t\tgutterValue = 15,\n\t\tisMobile = false,\n\t\tmaxItemsPerRow,\n\t\tscrollElement = window,\n\t\ttitleHeight = 0,\n\t\tsameWidthProps = null\n\t} = props;\n\tconst { renderElement } = props;\n\n\tconst classes = useStyles({ margin: gutterValue });\n\tconst [containerWidth, setContainerWidth] = React.useState(1500);\n\tconst containerRef = React.useRef();\n\tconst listRef = React.useRef();\n\n\tconst recompute = React.useCallback(() => {\n\t\tsetContainerWidth(containerRef.current?.clientWidth);\n\t\tlistRef.current?.recomputeRowHeights();\n\t}, []);\n\n\tuseUpdateEffect(() => {\n\t\trecompute();\n\t}, [elements, recompute]);\n\n\tReact.useEffect(() => {\n\t\tsetContainerWidth(containerRef.current.clientWidth);\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tconst { current: containerElement } = containerRef;\n\t\tconst observer = new CustomResizeObserver(() => {\n\t\t\trecompute();\n\t\t});\n\t\tobserver.observe(containerElement);\n\t\treturn () => {\n\t\t\tobserver.unobserve(containerElement);\n\t\t};\n\t}, [recompute]);\n\n\tconst itemsPerRow = React.useMemo(() => {\n\t\tif (!sameWidthProps) return null;\n\t\tlet itemsPerRow = Math.min(Math.ceil(containerWidth / sameWidthProps.maxWidth), maxItemsPerRow);\n\t\treturn Math.min(itemsPerRow, Math.floor(containerWidth / sameWidthProps.minWidth));\n\t}, [containerWidth, maxItemsPerRow, sameWidthProps]);\n\n\tconst generateStyleRules = React.useCallback(\n\t\t(element: BaseElement): React.CSSProperties => {\n\t\t\tconst ratio = getElementRatio(element);\n\t\t\tconst flexGrow = calculateFlexGrow(element);\n\t\t\tconst maxWidth = !sameWidthProps\n\t\t\t\t? calculateElementMaxWidth(element, containerWidth, displayMode)\n\t\t\t\t: Math.min(containerWidth / itemsPerRow, sameWidthProps.maxWidth);\n\t\t\treturn {\n\t\t\t\tflex: displayMode === 'large' ? `${flexGrow} 1 ${ratio * 25}%` : `${flexGrow} 1 ${ratio * 20}%`,\n\t\t\t\tminWidth: !sameWidthProps\n\t\t\t\t\t? calculateElementMinWidth(element, containerWidth)\n\t\t\t\t\t: Math.max(containerWidth / itemsPerRow, sameWidthProps.minWidth),\n\t\t\t\tmaxWidth: !isMobile ? maxWidth : '0 !important',\n\t\t\t\tpadding: gutterValue / 2,\n\t\t\t\theight: '100%',\n\t\t\t\tboxSizing: 'border-box'\n\t\t\t};\n\t\t},\n\t\t[containerWidth, displayMode, gutterValue, isMobile, sameWidthProps, itemsPerRow]\n\t);\n\n\tconst rows = React.useMemo(\n\t\t() => buildAllRows(elements, maxItemsPerRow, gutterValue, containerWidth, displayMode, !isMobile, sameWidthProps, itemsPerRow),\n\t\t[containerWidth, displayMode, elements, gutterValue, isMobile, maxItemsPerRow, sameWidthProps, itemsPerRow]\n\t);\n\tconst computeRowHeight = React.useCallback(\n\t\t({ index }: { index: number }): number => {\n\t\t\tconst row = rows[index];\n\t\t\tlet elementsWidth = 0;\n\t\t\tlet totalFlexGrow = 0;\n\t\t\tif (row.length === 0) return 0;\n\t\t\trow.forEach(element => {\n\t\t\t\telementsWidth += calculateElementWidth(element, containerWidth, displayMode, !isMobile);\n\t\t\t\ttotalFlexGrow += calculateFlexGrow(element);\n\t\t\t});\n\t\t\tconst remainingSpace = containerWidth - elementsWidth;\n\t\t\tconst resizedElements = row.map(element => {\n\t\t\t\tconst newWidth = !sameWidthProps\n\t\t\t\t\t? calculateElementFlexWidth(element, containerWidth, remainingSpace, totalFlexGrow, displayMode, !isMobile)\n\t\t\t\t\t: calculateFlexElementEqualWidth(containerWidth, itemsPerRow);\n\t\t\t\tconst newHeight = calculateHeight(element, newWidth);\n\t\t\t\treturn { width: newWidth, height: newHeight };\n\t\t\t});\n\t\t\tconst maxHeight = Math.max(...resizedElements.map(element => element.height));\n\t\t\treturn titleHeight + maxHeight;\n\t\t},\n\t\t[rows, containerWidth, titleHeight, displayMode, isMobile, sameWidthProps, itemsPerRow]\n\t);\n\n\tconst buildRow: ListRowRenderer = React.useCallback(\n\t\t({ index, key, style }) => {\n\t\t\tconst row = rows[index];\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t{row.map(element =>\n\t\t\t\t\t\trenderElement(element, { key: `flexItem-${element.id}`, styleProps: generateStyleRules(element), rowFiles: row.length })\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t);\n\t\t},\n\t\t[rows, classes, renderElement, generateStyleRules]\n\t);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{({ height, isScrolling, onChildScroll, scrollTop, registerChild }) => (\n\t\t\t\t\t\n\t\t\t\t\t\t{({ width }) => (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default React.memo(FlexLayout) as typeof FlexLayout;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 9v10H8V9h8m-1.5-6h-5l-1 1H5v2h14V4h-3.5l-1-1zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7z\"\n}), 'DeleteOutlined');\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = defaultOverscanIndicesGetter;\nexports.SCROLL_DIRECTION_VERTICAL = exports.SCROLL_DIRECTION_HORIZONTAL = exports.SCROLL_DIRECTION_FORWARD = exports.SCROLL_DIRECTION_BACKWARD = void 0;\n\nvar _types = require(\"./types\");\n\nvar SCROLL_DIRECTION_BACKWARD = -1;\nexports.SCROLL_DIRECTION_BACKWARD = SCROLL_DIRECTION_BACKWARD;\nvar SCROLL_DIRECTION_FORWARD = 1;\nexports.SCROLL_DIRECTION_FORWARD = SCROLL_DIRECTION_FORWARD;\nvar SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexports.SCROLL_DIRECTION_HORIZONTAL = SCROLL_DIRECTION_HORIZONTAL;\nvar 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\nexports.SCROLL_DIRECTION_VERTICAL = SCROLL_DIRECTION_VERTICAL;\n\nfunction 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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = defaultCellRangeRenderer;\n\nvar _types = require(\"./types\");\n\n/**\n * Default implementation of cellRangeRenderer used by Grid.\n * This renderer supports cell-caching while the user is scrolling.\n */\nfunction 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}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bpfrpt_proptype_AnimationTimeoutId = exports.requestAnimationTimeout = exports.cancelAnimationTimeout = void 0;\n\nvar _animationFrame = require(\"./animationFrame\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar bpfrpt_proptype_AnimationTimeoutId = process.env.NODE_ENV === 'production' ? null : {\n \"id\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_AnimationTimeoutId = bpfrpt_proptype_AnimationTimeoutId;\n\nvar cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n return (0, _animationFrame.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\n\nexports.cancelAnimationTimeout = cancelAnimationTimeout;\n\nvar 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 = (0, _animationFrame.raf)(timeout);\n }\n };\n\n var frame = {\n id: (0, _animationFrame.raf)(timeout)\n };\n return frame;\n};\n\nexports.requestAnimationTimeout = requestAnimationTimeout;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createDetectElementResize;\n\n/**\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 **/\nfunction 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}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bpfrpt_proptype_Scroll = exports.bpfrpt_proptype_RenderedRows = exports.bpfrpt_proptype_RowRenderer = exports.bpfrpt_proptype_RowRendererParams = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar bpfrpt_proptype_RowRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"index\": _propTypes[\"default\"].number.isRequired,\n \"isScrolling\": _propTypes[\"default\"].bool.isRequired,\n \"isVisible\": _propTypes[\"default\"].bool.isRequired,\n \"key\": _propTypes[\"default\"].string.isRequired,\n \"parent\": _propTypes[\"default\"].object.isRequired,\n \"style\": _propTypes[\"default\"].object.isRequired\n};\nexports.bpfrpt_proptype_RowRendererParams = bpfrpt_proptype_RowRendererParams;\nvar bpfrpt_proptype_RowRenderer = process.env.NODE_ENV === 'production' ? null : _propTypes[\"default\"].func;\nexports.bpfrpt_proptype_RowRenderer = bpfrpt_proptype_RowRenderer;\nvar bpfrpt_proptype_RenderedRows = process.env.NODE_ENV === 'production' ? null : {\n \"overscanStartIndex\": _propTypes[\"default\"].number.isRequired,\n \"overscanStopIndex\": _propTypes[\"default\"].number.isRequired,\n \"startIndex\": _propTypes[\"default\"].number.isRequired,\n \"stopIndex\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_RenderedRows = bpfrpt_proptype_RenderedRows;\nvar bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {\n \"clientHeight\": _propTypes[\"default\"].number.isRequired,\n \"scrollHeight\": _propTypes[\"default\"].number.isRequired,\n \"scrollTop\": _propTypes[\"default\"].number.isRequired\n};\nexports.bpfrpt_proptype_Scroll = bpfrpt_proptype_Scroll;","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.IS_SCROLLING_TIMEOUT = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar ReactDOM = _interopRequireWildcard(require(\"react-dom\"));\n\nvar _onScroll = require(\"./utils/onScroll\");\n\nvar _dimensions = require(\"./utils/dimensions\");\n\nvar _detectElementResize = _interopRequireDefault(require(\"../vendor/detectElementResize\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\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) { (0, _defineProperty2[\"default\"])(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\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 */\nvar IS_SCROLLING_TIMEOUT = 150;\nexports.IS_SCROLLING_TIMEOUT = IS_SCROLLING_TIMEOUT;\n\nvar getWindow = function getWindow() {\n return typeof window !== 'undefined' ? window : undefined;\n};\n\nvar WindowScroller = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n (0, _inherits2[\"default\"])(WindowScroller, _React$PureComponent);\n\n function WindowScroller() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2[\"default\"])(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 = (0, _possibleConstructorReturn2[\"default\"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3[\"default\"])(WindowScroller)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_window\", getWindow());\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_isMounted\", false);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_positionFromTop\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_positionFromLeft\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_detectElementResize\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_child\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"state\", _objectSpread({}, (0, _dimensions.getDimensions)(_this.props.scrollElement, _this.props), {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n }));\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_onResize\", function () {\n _this.updatePosition();\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 = (0, _dimensions.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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"__resetIsScrolling\", function () {\n _this.setState({\n isScrolling: false\n });\n });\n return _this;\n }\n\n (0, _createClass2[\"default\"])(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 = (0, _dimensions.getPositionOffset)(thisNode, scrollElement);\n this._positionFromTop = offset.top;\n this._positionFromLeft = offset.left;\n }\n\n var dimensions = (0, _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 = (0, _detectElementResize[\"default\"])();\n this.updatePosition(scrollElement);\n\n if (scrollElement) {\n (0, _onScroll.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 (0, _onScroll.unregisterScrollListener)(this, prevScrollElement);\n (0, _onScroll.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 (0, _onScroll.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 return WindowScroller;\n}(React.PureComponent), (0, _defineProperty2[\"default\"])(_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[\"default\"].func.isRequired,\n\n /** Callback to be invoked on-resize: ({ height, width }) */\n \"onResize\": _propTypes[\"default\"].func.isRequired,\n\n /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */\n \"onScroll\": _propTypes[\"default\"].func.isRequired,\n\n /** Element to attach scroll event listeners. Defaults to window. */\n \"scrollElement\": _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].any, function () {\n return (typeof Element === \"function\" ? _propTypes[\"default\"].instanceOf(Element) : _propTypes[\"default\"].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[\"default\"].number.isRequired,\n\n /** Height used for server-side rendering */\n \"serverHeight\": _propTypes[\"default\"].number.isRequired,\n\n /** Width used for server-side rendering */\n \"serverWidth\": _propTypes[\"default\"].number.isRequired\n}), _temp);\nexports[\"default\"] = WindowScroller;\n(0, _defineProperty2[\"default\"])(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});","import { makeStyles } from '@material-ui/core/styles';\nimport red from '@material-ui/core/colors/red';\n\nexport const useStyles = makeStyles(theme => ({\n\troot: {\n\t\tpadding: '100px 90px',\n\t\twidth: 555,\n\t\tmaxWidth: '90%',\n\t\t[theme.breakpoints.down('md')]: {\n\t\t\tpadding: '50px 45px'\n\t\t}\n\t},\n\tcancelIcon: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tright: 0,\n\t\tmargin: 10\n\t},\n\ttitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 38,\n\t\tpadding: 0,\n\t\tmarginBottom: 30\n\t},\n\tcontent: {\n\t\tfontWeight: \"normal\",\n\t\tfontSize: 14,\n\t\tmarginBottom: 35,\n\t\tpadding: 0,\n\t\tlineHeigh: 22\n\t},\n\tactionsContainer: {\n\t\tpaddingBottom: 0\n\t},\n\tbuttonLabel: {\n\t\tfontSize: 14\n\t},\n\tremoveButtonLabel: {\n\t\tcolor: \"#FFF\"\n\t},\n\tconfirmButtonLabel: {\n\t\tcolor: \"#000\"\n\t},\n\tconfirmButtonModeconfirm: {\n\t\tbackgroundColor: theme.palette.primary.main,\n\t\t'&:hover': {\n\t\t\tbackgroundColor: theme.palette.primary.light\n\t\t}\n\t},\n\tconfirmButtonModeremove: {\n\t\tbackgroundColor: red[400],\n\t\t'&:hover': {\n\t\t\tbackgroundColor: red[500]\n\t\t}\n\t},\n\tadditionalContentWrapper: {\n\t\tflex: 1,\n\t\tmarginRight: 40\n\t}\n}));\n","import clsx from 'clsx';\nimport isUndefined from 'lodash/isUndefined';\nimport React from 'react';\n\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport IconButton from '@material-ui/core/IconButton';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport RemoveIcon from '@material-ui/icons/DeleteOutlined';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\topen: boolean;\n\ttitle?: string | JSX.Element;\n\tcontent?: string | JSX.Element;\n\tadditionalContent?: JSX.Element;\n\tdismissText?: string;\n\tconfirmText: string;\n\tconfirmTypeButton: 'confirm' | 'remove';\n\tconfirmButtonDisabled?: boolean;\n\tloading?: boolean;\n\tonDismiss?(): void;\n\tonConfirm(): void;\n};\n\nconst DialogConfirm = (props: ComponentProps) => {\n\tconst classes = useStyles();\n\n\tconst { open, title, content, additionalContent, dismissText, confirmText, confirmTypeButton, confirmButtonDisabled, loading } = props;\n\tconst { onDismiss, onConfirm } = props;\n\n\tconst [isDoingAction, setIsDoingAction] = React.useState(false);\n\n\tconst controlled = !isUndefined(loading);\n\tconst isButtonDisplayed = () => (controlled ? !loading : !isDoingAction);\n\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tReact.useEffect(() => setIsDoingAction(false), [open]);\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{title}\n\t\t\t\n\t\t\t{content}\n\t\t\t\n\t\t\t\t{additionalContent ?
{additionalContent}
: null}\n\t\t\t\t\n\t\t\t\t{isButtonDisplayed() ? (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetIsDoingAction(true);\n\t\t\t\t\t\t\tonConfirm();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstartIcon={confirmTypeButton === 'remove' ? : null}\n\t\t\t\t\t\tdata-testid=\"confirmDialogConfirm\"\n\t\t\t\t\t\tdisabled={confirmButtonDisabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{confirmText}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default React.memo(DialogConfirm);\n","import DialogConfirm from './DialogConfirm';\nexport default DialogConfirm;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z\"\n}), 'SaveAlt');\n\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar useFirstMountState_1 = require(\"./useFirstMountState\");\nvar useUpdateEffect = function (effect, deps) {\n var isFirstMount = useFirstMountState_1.useFirstMountState();\n react_1.useEffect(function () {\n if (!isFirstMount) {\n return effect();\n }\n }, deps);\n};\nexports.default = useUpdateEffect;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","import { gql } from '@apollo/client';\n\nexport const SHOWROOM_MEDIA_INFO_FRAGMENT = gql`\n\tfragment MediaInfo on Media {\n\t\tid\n\t\tmediaType\n\t\tcloudinaryId\n\t\tcloudinaryVersion\n\t\tname\n\t\tglobalDescription\n\t\tisSample\n\t\textension\n\t\twidth\n\t\theight\n\t\t... on Video {\n\t\t\tduration\n\t\t}\n\t}\n`;\n\nexport const SHOWROOM_SECTION_INFO = gql`\n\tfragment ShowroomSectionInfo on ShowroomSection {\n\t\tid\n\t\tname\n\t\trows {\n\t\t\tmedias {\n\t\t\t\t...MediaInfo\n\t\t\t}\n\t\t}\n\t\toptions {\n\t\t\tspacing\n\t\t\tfullWidth\n\t\t\tdisplayLabel\n\t\t\tzoomLayer\n\t\t\tproductLayer\n\t\t\tproductLayerSettings {\n\t\t\t\tgalleriesFields\n\t\t\t\tsamplesFields\n\t\t\t}\n\t\t\tglobalSelectedFilters {\n\t\t\t\tgalleriesFields\n\t\t\t\tsamplesFields\n\t\t\t}\n\t\t}\n\t}\n\t${SHOWROOM_MEDIA_INFO_FRAGMENT}\n`;\n\nexport const SHOWROOM_SECTION_INFO_WITH_ROWMEDIAIDS = gql`\n\tfragment ShowroomSectionInfoWithRowMediaIds on ShowroomSection {\n\t\t...ShowroomSectionInfo\n\t\trowMediaIds {\n\t\t\tid\n\t\t\tmediaIds\n\t\t}\n\t}\n\t${SHOWROOM_SECTION_INFO}\n`;\n\nexport const SHOWROOM_INFO = gql`\n\tfragment ShowroomInfo on Showroom {\n\t\tid\n\t\tname\n\t\tdownloadEnabled\n\t\tdownloadPdfEnabled\n\t\trequestSamplesEnabled\n\t\tsamplesDepartmentId\n\t\theroMedia {\n\t\t\tpublicId\n\t\t\tpublicUrl\n\t\t\tmediaType\n\t\t}\n\t\tdisplayHeroMedia\n\t\tdisplayHeroContent\n\t\theroTitle\n\t\theroContent\n\t\theroFontColor\n\t\theroBackgroundColor\n\t\tindustry\n\t\tcreatedAt\n\t\tupdatedAt\n\t\tlanguage\n\t\tarchive\n\t\tlibrary {\n\t\t\tid\n\t\t\tlogo {\n\t\t\t\tpublicId\n\t\t\t\tpublicUrl\n\t\t\t}\n\t\t}\n\t\tlibrarySeason\n\t\tlibraryCollection\n\t\ttenant {\n\t\t\tid\n\t\t\tuuid\n\t\t\tname\n\t\t\ttenant\n\t\t\tEcosystemAccountID\n\t\t\tEcosystemAccountName\n\t\t\tsalesforceAccountId\n\t\t\tsalesforceAccountParentId\n\t\t\tlogo {\n\t\t\t\tpublicId\n\t\t\t\tpublicUrl\n\t\t\t}\n\t\t\tisSamplesEnabled\n\t\t}\n\t\thasSamples\n\t\tpdfs {\n\t\t\tmediaType\n\t\t\tpublicId\n\t\t\tpublicUrl\n\t\t\toriginalFilename\n\t\t\tcreatedAt\n\t\t}\n\t\tprContacts {\n\t\t\tid\n\t\t\tname\n\t\t\tjobTitle\n\t\t\temail\n\t\t\tphone\n\t\t}\n\t}\n`;\n\nexport const SHOWROOMS = gql`\n\tquery getShowrooms($archive: Boolean) {\n\t\tgetShowrooms(archive: $archive) {\n\t\t\tid\n\t\t\tname\n\t\t\tpassword\n\t\t}\n\t}\n`;\n\nexport const GET_PUBLIC_SHOWROOM = gql`\n\tquery getPublicShowroom($id: String!, $tenant: String, $password: String) {\n\t\tgetShowroom(id: $id, tenant: $tenant, password: $password) {\n\t\t\t...ShowroomInfo\n\t\t\tsections {\n\t\t\t\t...ShowroomSectionInfoWithRowMediaIds\n\t\t\t}\n\t\t}\n\t}\n\t${SHOWROOM_INFO}\n\t${SHOWROOM_SECTION_INFO_WITH_ROWMEDIAIDS}\n`;\n\nexport const GET_SHOWROOM_SECTIONS = gql`\n\tquery getShowroomSections($id: String!, $tenant: String, $password: String) {\n\t\tgetShowroom(id: $id, tenant: $tenant, password: $password) {\n\t\t\tsections {\n\t\t\t\t...ShowroomSectionInfoWithRowMediaIds\n\t\t\t}\n\t\t}\n\t}\n\t${SHOWROOM_SECTION_INFO_WITH_ROWMEDIAIDS}\n`;\n\nexport const GET_PUBLIC_SHOWROOM_WITHOUT_SECTIONS = gql`\n\tquery getPublicShowroomWithoutSections($id: String!, $tenant: String, $password: String) {\n\t\tgetShowroom(id: $id, tenant: $tenant, password: $password) {\n\t\t\t...ShowroomInfo\n\t\t}\n\t}\n\t${SHOWROOM_INFO}\n`;\n\nexport const GET_SHOWROOM = gql`\n\tquery getShowroom($id: String!, $tenant: String, $password: String) {\n\t\tgetShowroom(id: $id, tenant: $tenant, password: $password) {\n\t\t\t...ShowroomInfo\n\t\t\tpassword\n\t\t\tsections {\n\t\t\t\t...ShowroomSectionInfoWithRowMediaIds\n\t\t\t}\n\t\t}\n\t}\n\t${SHOWROOM_INFO}\n\t${SHOWROOM_SECTION_INFO_WITH_ROWMEDIAIDS}\n`;\n\nexport const GET_SHOWROOM_WITHOUT_SECTIONS = gql`\n\tquery getShowroomWithoutSections($id: String!, $tenant: String, $password: String) {\n\t\tgetShowroom(id: $id, tenant: $tenant, password: $password) {\n\t\t\t...ShowroomInfo\n\t\t\tpassword\n\t\t}\n\t}\n\t${SHOWROOM_INFO}\n`;\n\nexport const GET_SHOWROOM_PUBLIC_FIELDS = gql`\n\tquery getPublicShowroomFields($id: String!, $tenant: String!) {\n\t\tpublicShowroomFields(id: $id, tenant: $tenant) {\n\t\t\tid\n\t\t\tname\n\t\t\tlanguage\n\t\t\tlibraryCollection\n\t\t\tlibrarySeason\n\t\t\theroMedia {\n\t\t\t\tmediaType\n\t\t\t\tpublicId\n\t\t\t\tpublicUrl\n\t\t\t}\n\t\t\tlogo\n\t\t\tdefaultBackground {\n\t\t\t\tpublicUrl\n\t\t\t\tpublicId\n\t\t\t\tmediaType\n\t\t\t\t... on ShowroomImage {\n\t\t\t\t\twidth\n\t\t\t\t\theight\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const REMOVE_SHOWROOM = gql`\n\tmutation deleteShowroom($showroomId: String!) {\n\t\tdeleteShowroom(showroomId: $showroomId)\n\t}\n`;\n\nexport const REMOVE_SHOWROOMS = gql`\n\tmutation deleteShowrooms($ids: [String]!) {\n\t\tdeleteShowrooms(ids: $ids)\n\t}\n`;\n\nexport const UPDATE_SHOWROOMS_FROM_LIST = gql`\n\tmutation updateShowroomsFromList($ids: [String]!, $params: ShowroomUpdateParams) {\n\t\tupdateShowrooms(ids: $ids, params: $params) {\n\t\t\tid\n\t\t\tname\n\t\t\tpassword\n\t\t}\n\t}\n`;\n\nexport const GENERATE_SHOWROOM_ARCHIVE = gql`\n\tmutation generateShowroomArchive($params: GenerateShowroomArchiveParams!) {\n\t\tgenerateShowroomArchive(params: $params) {\n\t\t\tid\n\t\t}\n\t}\n`;\n\nexport const DUPLICATE_SHOWROOM = gql`\n\tmutation duplicateShowroom($showroomId: String!) {\n\t\tduplicateShowroom(showroomId: $showroomId) {\n\t\t\tid\n\t\t\tname\n\t\t\tpassword\n\t\t\tarchive\n\t\t}\n\t}\n`;\n\nexport const GET_SHOWROOM_SHARE_INFO = gql`\n\tquery getShowroomShareInfo($showroomId: String!) {\n\t\tgetShowroom(id: $showroomId) {\n\t\t\tid\n\t\t\tname\n\t\t\tpassword\n\t\t}\n\t}\n`;\n\nexport const GET_SHOWROOM_DOWNLOAD_ENABLED = gql`\n\tquery getShowroomDownloadEnabled($showroomId: String!) {\n\t\tgetShowroom(id: $showroomId) {\n\t\t\tid\n\t\t\tdownloadEnabled\n\t\t}\n\t}\n`;\n\nexport const GET_SHOWROOM_BASKET_INFO = gql`\n\tquery getShowroomBasketInfo($showroomId: String!) {\n\t\tgetShowroom(id: $showroomId) {\n\t\t\tid\n\t\t\ttenant {\n\t\t\t\tisSamplesEnabled\n\t\t\t}\n\t\t\trequestSamplesEnabled\n\t\t\thasSamples\n\t\t}\n\t}\n`;\n\nexport const GET_SHOWROOM_SECTION_FILTERS = gql`\n\tquery getShowroomSectionFiltersUserView($params: ShowroomGetParams!, $section: Int!) {\n\t\tshowroomSectionFilters(params: $params, section: $section) {\n\t\t\tid\n\t\t\tgroups\n\t\t\tvalues {\n\t\t\t\tid\n\t\t\t\tgroupId\n\t\t\t\tvalue\n\t\t\t\tmediaIds\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const SHOWROOM_FILTER_VALUE_INFO = gql`\n\tfragment ShowroomFilterValueInfo on ShowroomFilterValue {\n\t\tid\n\t\tgroupId\n\t\tmediaIds\n\t}\n`;\n\nexport const SHOWROOM_FILTER_GROUP_INFO = gql`\n\tfragment ShowroomFilterGroupsInfo on ShowroomFilter {\n\t\tid\n\t\tgroups\n\t}\n`;\n\nexport const GET_SHOWROOM_FILTER_VALUES = gql`\n\tquery getShowroomSectionFilterValues($ids: [String]) {\n\t\tshowroomFilterValues(ids: $ids) @client {\n\t\t\t...ShowroomFilterValueInfo\n\t\t}\n\t}\n\t${SHOWROOM_FILTER_VALUE_INFO}\n`;\n\nexport const GET_SHOWROOM_PR_CONTACTS = gql`\n\tquery getShowroomPrContacts($showroomId: String!) {\n\t\tgetShowroom(id: $showroomId) {\n\t\t\tid\n\t\t\tprContacts {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\tjobTitle\n\t\t\t\temail\n\t\t\t\tphone\n\t\t\t}\n\t\t}\n\t}\n`;\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\ntype ArrowPopperStyleProps = {\n\tcolor: string;\n};\n\nexport const useStyles = makeStyles(theme => ({\n\tpopper: {\n\t\twidth: 350,\n\t\tzIndex: 1500,\n\t\tfontSize: 14,\n\t\tborderRadius: 3,\n\t\tbackgroundColor: ({ color }: ArrowPopperStyleProps) => color,\n\n\t\t'&[x-placement*=\"bottom\"] .arrow': {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tborderLeft: '1em solid transparent',\n\t\t\tborderRight: '1em solid transparent',\n\t\t\tborderBottom: ({ color }: ArrowPopperStyleProps) => `1em solid ${color}`,\n\t\t\tmarginTop: '-0.9em'\n\t\t},\n\n\t\t'&[x-placement*=\"top\"] .arrow': {\n\t\t\tbottom: 0,\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tborderLeft: '1em solid transparent',\n\t\t\tborderRight: '1em solid transparent',\n\t\t\tborderTop: ({ color }: ArrowPopperStyleProps) => `1em solid ${color}`,\n\t\t\tmarginBottom: '-0.9em'\n\t\t},\n\n\t\t'&[x-placement*=\"left\"] .arrow': {\n\t\t\tright: 0,\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tborderTop: '1em solid transparent',\n\t\t\tborderBottom: '1em solid transparent',\n\t\t\tborderLeft: ({ color }: ArrowPopperStyleProps) => `1em solid ${color}`,\n\t\t\tmarginRight: '-0.9em'\n\t\t},\n\n\t\t'&[x-placement*=\"right\"] .arrow': {\n\t\t\tleft: 0,\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tborderTop: '1em solid transparent',\n\t\t\tborderBottom: '1em solid transparent',\n\t\t\tborderLeft: ({ color }: ArrowPopperStyleProps) => `1em solid ${color}`,\n\t\t\tmarginLeft: '-0.9em'\n\t\t}\n\t},\n\tpopperContent: {\n\t\tpadding: 10\n\t},\n\tarrow: {\n\t\tposition: 'absolute',\n\t\tfontSize: 7,\n\t\twidth: '3em',\n\t\theight: '3em',\n\t\tzIndex: 1500\n\t}\n}));\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport ClickAwayListener, { ClickAwayListenerProps } from '@material-ui/core/ClickAwayListener';\nimport Popper, { PopperPlacementType, PopperProps } from '@material-ui/core/Popper';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tid: string;\n\tanchor: PopperProps['anchorEl'];\n\tchildren: React.ReactNode;\n\tTransitionComponent?: React.ElementType;\n\ttransitionProps?: any;\n\tbackgroundColor?: string;\n\tclassName?: string;\n\tplacement?: PopperPlacementType;\n\tpopperProps?: Partial>;\n\tonClickAway?: ClickAwayListenerProps['onClickAway'];\n\tcontentClasses?: string[];\n};\n\nconst CustomPopper = (props: ComponentProps) => {\n\tconst { id, anchor, className, children, placement, popperProps, backgroundColor, TransitionComponent, transitionProps, contentClasses } = props;\n\tconst { onClickAway } = props;\n\n\tconst classes = useStyles({ color: backgroundColor || 'white' });\n\n\tconst [arrowRef, setArrowRef] = React.useState();\n\tconst handleArrowRef = React.useCallback(node => setArrowRef(node), []);\n\n\tconst popperContent = React.useMemo(() => {\n\t\tconst content =
{children}
;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
\n\t\t\t\t{onClickAway ? onClickAway(ev)}>{content} : content}\n\t\t\t\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [children, handleArrowRef, onClickAway]);\n\n\treturn (\n\t\t\n\t\t\t{({ TransitionProps }) => {\n\t\t\t\tif (!!TransitionComponent)\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{popperContent}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\telse return popperContent;\n\t\t\t}}\n\t\t\n\t);\n};\n\nexport default React.memo(CustomPopper);\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\ntype ImageStyleProps = {\n\tplaceholderColor?: string;\n};\n\nexport const Theme = useTheme;\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\timageRoot: {\n\t\t\tposition: 'relative',\n\t\t\theight: '100%',\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column'\n\t\t},\n\t\timage: {\n\t\t\tobjectFit: 'cover',\n\t\t\tobjectPosition: 'center center',\n\t\t\twidth: '100%',\n\t\t\theight: '100%'\n\t\t},\n\t\tlinearOverlay: {\n\t\t\tposition: 'absolute',\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tbackground: 'linear-gradient(202.42deg, rgba(0, 0, 0, 0.12) -0.5%, rgba(0, 0, 0, 0) 24.05%)'\n\t\t},\n\t\timagePlaceholder: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tbackgroundColor: '#DEAB86',\n\t\t\tzIndex: 2\n\t\t},\n\t\tpreviewMediaPlaceholder: {\n\t\t\tposition: 'absolute',\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tboxSizing: 'border-box',\n\t\t\ttransition: 'all .5s linear',\n\t\t\topacity: 1,\n\t\t\tpointerEvents: 'none',\n\t\t\tzIndex: 1,\n\t\t\tbackgroundColor: (props: ImageStyleProps) => props.placeholderColor || '#EBE8E6'\n\t\t},\n\t\tpreviewMediaPlaceholderHidden: {\n\t\t\topacity: 0\n\t\t}\n\t};\n});\n","import { Transformation } from 'cloudinary-core';\nimport clsx from 'clsx';\nimport React, { ImgHTMLAttributes } from 'react';\n\nimport { Image, Video, Pdf } from 'generated/graphql';\n\nimport { getImageUrl } from 'lib/cloudinary';\nimport { isVideo } from 'lib/media';\nimport { ImageSizeThreshold, ImageSizeValues, imageThresholds as defaultThresholds, imageSizes as availableSizes } from 'lib/mediaThresholds';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tid: string;\n\tmedia: Image | Video | Pdf;\n\tplaceholderColor?: string;\n\tlabel?: React.ReactElement;\n\tcontainerClassName?: string;\n\timgClassName?: string;\n\tonClick?: React.MouseEventHandler;\n\tsizes?: ImageSizeValues;\n\tmobileBreakpoint?: number;\n\timageTresholds?: ImageSizeThreshold[];\n\timageAttributes?: Omit, 'className' | 'src' | 'onLoad' | 'srcSet' | 'sizes' | 'onClick'>;\n};\n\nconst MediaImage = (props: ComponentProps) => {\n\tconst {\n\t\tid,\n\t\tmedia,\n\t\tplaceholderColor = '',\n\t\tlabel = null,\n\t\tsizes: imageSizes = availableSizes.default,\n\t\tmobileBreakpoint = 959,\n\t\timageTresholds = defaultThresholds,\n\t\timageAttributes = {},\n\t\tcontainerClassName = '',\n\t\timgClassName = '',\n\t\tonClick\n\t} = props;\n\n\tconst classes = useStyles({ placeholderColor });\n\n\tconst [imgLoaded, setImgLoaded] = React.useState(false);\n\n\tconst ratio = media.width / media.height;\n\n\tconst defaultOptions: Transformation.Options = React.useMemo(\n\t\t() => ({\n\t\t\tquality: 'auto:good',\n\t\t\twidth: ratio > 1.0 ? 2000 : 1000,\n\t\t\tcrop: 'scale',\n\t\t\tversion: media.cloudinaryVersion.toString(),\n\t\t\tfetchFormat: 'auto',\n\t\t\tresource_type: isVideo(media) ? 'video' : 'image'\n\t\t}),\n\t\t[media, ratio]\n\t);\n\n\tconst srcSet = React.useMemo(\n\t\t() =>\n\t\t\timageTresholds.map(\n\t\t\t\tthreshold =>\n\t\t\t\t\t`${getImageUrl(media.cloudinaryId, {\n\t\t\t\t\t\t...defaultOptions,\n\t\t\t\t\t\twidth: threshold.cloudinarySize,\n\t\t\t\t\t\tcrop: 'scale'\n\t\t\t\t\t})} ${threshold.imageSize}w`\n\t\t\t),\n\t\t[imageTresholds, media, defaultOptions]\n\t);\n\n\tconst sizes = React.useMemo(() => {\n\t\tconst mobileSize = imageSizes[0] * ratio;\n\t\tconst desktopSize = imageSizes[1] * ratio;\n\t\treturn `(max-width: ${mobileBreakpoint}px) ${Math.min(100, mobileSize)}vw, ${Math.min(100, desktopSize)}vw`;\n\t}, [imageSizes, mobileBreakpoint, ratio]);\n\n\tconst onLoad = React.useCallback(() => {\n\t\tsetImgLoaded(true);\n\t}, []);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t{label}\n\t\t
\n\t);\n};\n\nexport default React.memo(MediaImage);\n","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}","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","export { default } from './ArrowPopper';","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'DeleteOutline');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _Grid[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Grid\", {\n enumerable: true,\n get: function get() {\n return _Grid[\"default\"];\n }\n});\nObject.defineProperty(exports, \"accessibilityOverscanIndicesGetter\", {\n enumerable: true,\n get: function get() {\n return _accessibilityOverscanIndicesGetter[\"default\"];\n }\n});\nObject.defineProperty(exports, \"defaultCellRangeRenderer\", {\n enumerable: true,\n get: function get() {\n return _defaultCellRangeRenderer[\"default\"];\n }\n});\nObject.defineProperty(exports, \"defaultOverscanIndicesGetter\", {\n enumerable: true,\n get: function get() {\n return _defaultOverscanIndicesGetter[\"default\"];\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_NoContentRenderer\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_NoContentRenderer;\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_Alignment\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_Alignment;\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_CellPosition\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_CellPosition;\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_CellSize\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_CellSize;\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_OverscanIndicesGetter\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_OverscanIndicesGetter;\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_RenderedSection\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_RenderedSection;\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_CellRendererParams\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_CellRendererParams;\n }\n});\nObject.defineProperty(exports, \"bpfrpt_proptype_Scroll\", {\n enumerable: true,\n get: function get() {\n return _types.bpfrpt_proptype_Scroll;\n }\n});\n\nvar _Grid = _interopRequireDefault(require(\"./Grid\"));\n\nvar _accessibilityOverscanIndicesGetter = _interopRequireDefault(require(\"./accessibilityOverscanIndicesGetter\"));\n\nvar _defaultCellRangeRenderer = _interopRequireDefault(require(\"./defaultCellRangeRenderer\"));\n\nvar _defaultOverscanIndicesGetter = _interopRequireDefault(require(\"./defaultOverscanIndicesGetter\"));\n\nvar _types = require(\"./types\");","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.67 3.87L9.9 2.1 0 12l9.9 9.9 1.77-1.77L3.54 12z\"\n}), 'ArrowBackIos');\n\nexports.default = _default;","function _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nmodule.exports = _interopRequireWildcard;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n RESISTANCE_COEF: 0.6,\n // This value is closed to what browsers are using internally to\n // trigger a native scroll.\n UNCERTAINTY_THRESHOLD: 3 // px\n\n};\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _classCallCheck = _interopDefault(require('@babel/runtime/helpers/classCallCheck'));\nvar _createClass = _interopDefault(require('@babel/runtime/helpers/createClass'));\nvar _possibleConstructorReturn = _interopDefault(require('@babel/runtime/helpers/possibleConstructorReturn'));\nvar _getPrototypeOf = _interopDefault(require('@babel/runtime/helpers/getPrototypeOf'));\nvar _inherits = _interopDefault(require('@babel/runtime/helpers/inherits'));\nvar _typeof = _interopDefault(require('@babel/runtime/helpers/typeof'));\nvar _objectWithoutProperties = _interopDefault(require('@babel/runtime/helpers/objectWithoutProperties'));\nvar _extends = _interopDefault(require('@babel/runtime/helpers/extends'));\nvar React = _interopDefault(require('react'));\nvar PropTypes = _interopDefault(require('prop-types'));\nvar warning = _interopDefault(require('warning'));\n\nfunction defineProperty(object, property, attr) {\n return Object.defineProperty(object, property, attr);\n} // Passive options\n// Inspired by https://github.com/Modernizr/Modernizr/blob/master/feature-detects/dom/passiveeventlisteners.js\n\n\nvar passiveOption = function () {\n var cache = null;\n return function () {\n if (cache !== null) {\n return cache;\n }\n\n var supportsPassiveOption = false;\n\n try {\n window.addEventListener('test', null, defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n }));\n } catch (err) {//\n }\n\n cache = supportsPassiveOption;\n return supportsPassiveOption;\n }();\n}();\n\nvar defaultEventOptions = {\n capture: false,\n passive: false\n};\n\nfunction mergeDefaultEventOptions(options) {\n return _extends({}, defaultEventOptions, options);\n}\n\nfunction getEventListenerArgs(eventName, callback, options) {\n var args = [eventName, callback];\n args.push(passiveOption ? options : options.capture);\n return args;\n}\n\nfunction on(target, eventName, callback, options) {\n // eslint-disable-next-line prefer-spread\n target.addEventListener.apply(target, getEventListenerArgs(eventName, callback, options));\n}\n\nfunction off(target, eventName, callback, options) {\n // eslint-disable-next-line prefer-spread\n target.removeEventListener.apply(target, getEventListenerArgs(eventName, callback, options));\n}\n\nfunction forEachListener(props, iteratee) {\n var children = props.children,\n target = props.target,\n eventProps = _objectWithoutProperties(props, [\"children\", \"target\"]);\n\n Object.keys(eventProps).forEach(function (name) {\n if (name.substring(0, 2) !== 'on') {\n return;\n }\n\n var prop = eventProps[name];\n\n var type = _typeof(prop);\n\n var isObject = type === 'object';\n var isFunction = type === 'function';\n\n if (!isObject && !isFunction) {\n return;\n }\n\n var capture = name.substr(-7).toLowerCase() === 'capture';\n var eventName = name.substring(2).toLowerCase();\n eventName = capture ? eventName.substring(0, eventName.length - 7) : eventName;\n\n if (isObject) {\n iteratee(eventName, prop.handler, prop.options);\n } else {\n iteratee(eventName, prop, mergeDefaultEventOptions({\n capture: capture\n }));\n }\n });\n}\n\nfunction withOptions(handler, options) {\n process.env.NODE_ENV !== \"production\" ? warning(options, 'react-event-listener: should be specified options in withOptions.') : void 0;\n return {\n handler: handler,\n options: mergeDefaultEventOptions(options)\n };\n}\n\nvar EventListener =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(EventListener, _React$PureComponent);\n\n function EventListener() {\n _classCallCheck(this, EventListener);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(EventListener).apply(this, arguments));\n }\n\n _createClass(EventListener, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.applyListeners(on);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n this.applyListeners(off, prevProps);\n this.applyListeners(on);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.applyListeners(off);\n }\n }, {\n key: \"applyListeners\",\n value: function applyListeners(onOrOff) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props;\n var target = props.target;\n\n if (target) {\n var element = target;\n\n if (typeof target === 'string') {\n element = window[target];\n }\n\n forEachListener(props, onOrOff.bind(null, element));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children || null;\n }\n }]);\n\n return EventListener;\n}(React.PureComponent);\n\nEventListener.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * You can provide a single child too.\n */\n children: PropTypes.node,\n\n /**\n * The DOM target to listen to.\n */\n target: PropTypes.oneOfType([PropTypes.object, PropTypes.string]).isRequired\n} : {};\n\nexports.withOptions = withOptions;\nexports.default = EventListener;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: []\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name = display_email[1]; // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n\n str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n\n var user = parts.join('@');\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import defaultDayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\n\ndefaultDayjs.extend(customParseFormat);\ndefaultDayjs.extend(advancedFormat);\nvar withLocale = function (dayjs, locale) {\n return !locale ? dayjs : function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return dayjs.apply(void 0, args).locale(locale);\n };\n};\nvar DayjsUtils = /** @class */ (function () {\n function DayjsUtils(_a) {\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, instance = _b.instance, dayjs = _b.dayjs;\n this.yearFormat = \"YYYY\";\n this.yearMonthFormat = \"MMMM YYYY\";\n this.dateTime12hFormat = \"MMMM Do hh:mm a\";\n this.dateTime24hFormat = \"MMMM Do HH:mm\";\n this.time12hFormat = \"hh:mm A\";\n this.time24hFormat = \"HH:mm\";\n this.dateFormat = \"MMMM Do\";\n this.dayjs = withLocale(instance || dayjs || defaultDayjs, locale);\n this.locale = locale;\n }\n DayjsUtils.prototype.parse = function (value, format) {\n if (value === \"\") {\n return null;\n }\n return this.dayjs(value, format);\n };\n DayjsUtils.prototype.date = function (value) {\n if (value === null) {\n return null;\n }\n return this.dayjs(value);\n };\n DayjsUtils.prototype.isValid = function (value) {\n return this.dayjs(value).isValid();\n };\n DayjsUtils.prototype.isNull = function (date) {\n return date === null;\n };\n DayjsUtils.prototype.getDiff = function (date, comparing, units, float) {\n return date.diff(comparing, units, float);\n };\n DayjsUtils.prototype.isAfter = function (date, value) {\n return date.isAfter(value);\n };\n DayjsUtils.prototype.isBefore = function (date, value) {\n return date.isBefore(value);\n };\n DayjsUtils.prototype.isAfterDay = function (date, value) {\n return date.isAfter(value, \"day\");\n };\n DayjsUtils.prototype.isBeforeDay = function (date, value) {\n return date.isBefore(value, \"day\");\n };\n DayjsUtils.prototype.isBeforeYear = function (date, value) {\n return date.isBefore(value, \"year\");\n };\n DayjsUtils.prototype.isAfterYear = function (date, value) {\n return date.isAfter(value, \"year\");\n };\n DayjsUtils.prototype.startOfDay = function (date) {\n return date.clone().startOf(\"day\");\n };\n DayjsUtils.prototype.endOfDay = function (date) {\n return date.clone().endOf(\"day\");\n };\n DayjsUtils.prototype.format = function (date, formatString) {\n return this.dayjs(date).format(formatString);\n };\n DayjsUtils.prototype.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n DayjsUtils.prototype.getHours = function (date) {\n return date.hour();\n };\n DayjsUtils.prototype.addDays = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"day\")\n : date.clone().add(count, \"day\");\n };\n DayjsUtils.prototype.setMonth = function (date, count) {\n return date.clone().set(\"month\", count);\n };\n DayjsUtils.prototype.setHours = function (date, count) {\n return date.clone().set(\"hour\", count);\n };\n DayjsUtils.prototype.getMinutes = function (date) {\n return date.minute();\n };\n DayjsUtils.prototype.setMinutes = function (date, count) {\n return date.clone().set(\"minute\", count);\n };\n DayjsUtils.prototype.getSeconds = function (date) {\n return date.second();\n };\n DayjsUtils.prototype.setSeconds = function (date, count) {\n return date.clone().set(\"second\", count);\n };\n DayjsUtils.prototype.getMonth = function (date) {\n return date.month();\n };\n DayjsUtils.prototype.isSameDay = function (date, comparing) {\n return date.isSame(comparing, \"day\");\n };\n DayjsUtils.prototype.isSameMonth = function (date, comparing) {\n return date.isSame(comparing, \"month\");\n };\n DayjsUtils.prototype.isSameYear = function (date, comparing) {\n return date.isSame(comparing, \"year\");\n };\n DayjsUtils.prototype.isSameHour = function (date, comparing) {\n return date.isSame(comparing, \"hour\");\n };\n DayjsUtils.prototype.getMeridiemText = function (ampm) {\n return ampm === \"am\" ? \"AM\" : \"PM\";\n };\n DayjsUtils.prototype.startOfMonth = function (date) {\n return date.clone().startOf(\"month\");\n };\n DayjsUtils.prototype.endOfMonth = function (date) {\n return date.clone().endOf(\"month\");\n };\n DayjsUtils.prototype.getNextMonth = function (date) {\n return date.clone().add(1, \"month\");\n };\n DayjsUtils.prototype.getPreviousMonth = function (date) {\n return date.clone().subtract(1, \"month\");\n };\n DayjsUtils.prototype.getMonthArray = function (date) {\n var firstMonth = date.clone().startOf(\"year\");\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n DayjsUtils.prototype.getMonthText = function (date) {\n return this.format(date, \"MMMM\");\n };\n DayjsUtils.prototype.getYear = function (date) {\n return date.year();\n };\n DayjsUtils.prototype.setYear = function (date, year) {\n return date.clone().set(\"year\", year);\n };\n DayjsUtils.prototype.mergeDateAndTime = function (date, time) {\n return this.setMinutes(this.setHours(date, this.getHours(time)), this.getMinutes(time));\n };\n DayjsUtils.prototype.getWeekdays = function () {\n var _this = this;\n var start = this.dayjs().startOf(\"week\");\n return [0, 1, 2, 3, 4, 5, 6].map(function (diff) { return _this.format(start.add(diff, \"day\"), \"dd\"); });\n };\n DayjsUtils.prototype.isEqual = function (value, comparing) {\n if (value === null && comparing === null) {\n return true;\n }\n return this.dayjs(value).isSame(comparing);\n };\n DayjsUtils.prototype.getWeekArray = function (date) {\n var start = this.dayjs(date)\n .clone()\n .startOf(\"month\")\n .startOf(\"week\");\n var end = this.dayjs(date)\n .clone()\n .endOf(\"month\")\n .endOf(\"week\");\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n while (current.isBefore(end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n return nestedWeeks;\n };\n DayjsUtils.prototype.getYearRange = function (start, end) {\n var startDate = this.dayjs(start).startOf(\"year\");\n var endDate = this.dayjs(end).endOf(\"year\");\n var years = [];\n var current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n return years;\n };\n // displaying methods\n DayjsUtils.prototype.getCalendarHeaderText = function (date) {\n return this.format(date, \"MMMM YYYY\");\n };\n DayjsUtils.prototype.getYearText = function (date) {\n return this.format(date, \"YYYY\");\n };\n DayjsUtils.prototype.getDatePickerHeaderText = function (date) {\n return this.format(date, \"ddd, MMM D\");\n };\n DayjsUtils.prototype.getDateTimePickerHeaderText = function (date) {\n return this.format(date, \"MMM D\");\n };\n DayjsUtils.prototype.getDayText = function (date) {\n return this.format(date, \"D\");\n };\n DayjsUtils.prototype.getHourText = function (date, ampm) {\n return this.format(date, ampm ? \"hh\" : \"HH\");\n };\n DayjsUtils.prototype.getMinuteText = function (date) {\n return this.format(date, \"mm\");\n };\n DayjsUtils.prototype.getSecondText = function (date) {\n return this.format(date, \"ss\");\n };\n return DayjsUtils;\n}());\n\nexport default DayjsUtils;\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { IUtils } from '@date-io/core/IUtils';\nimport { MaterialUiPickersDate } from './typings/date';\n\nexport const MuiPickersContext = React.createContext | null>(null);\n\nexport interface MuiPickersUtilsProviderProps {\n utils: any;\n children: React.ReactNode;\n locale?: any;\n libInstance?: any;\n}\n\nexport const MuiPickersUtilsProvider: React.FC = ({\n utils: Utils,\n children,\n locale,\n libInstance,\n}) => {\n const utils = React.useMemo(() => new Utils({ locale, instance: libInstance }), [\n Utils,\n libInstance,\n locale,\n ]);\n\n return ;\n};\n\nMuiPickersUtilsProvider.propTypes = {\n utils: PropTypes.func.isRequired,\n locale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]).isRequired,\n};\n\nexport default MuiPickersUtilsProvider;\n","import { useContext } from 'react';\nimport { IUtils } from '@date-io/core/IUtils';\nimport { MaterialUiPickersDate } from '../../typings/date';\nimport { MuiPickersContext } from '../../MuiPickersUtilsProvider';\n\nexport const checkUtils = (utils: IUtils | null | undefined) => {\n if (!utils) {\n // tslint:disable-next-line\n throw new Error(\n 'Can not find utils in context. You either a) forgot to wrap your component tree in MuiPickersUtilsProvider; or b) mixed named and direct file imports. Recommendation: use named imports from the module index.'\n );\n }\n};\n\nexport function useUtils() {\n const utils = useContext(MuiPickersContext);\n checkUtils(utils);\n\n return utils!;\n}\n","/** Use it instead of .includes method for IE support */\nexport function arrayIncludes(array: T[], itemOrItems: T | T[]) {\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.every(item => array.indexOf(item) !== -1);\n }\n\n return array.indexOf(itemOrItems) !== -1;\n}\n\nexport type Omit = Pick>;\n","import * as React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { DIALOG_WIDTH } from '../constants/dimensions';\n\nconst useStyles = makeStyles(\n theme => ({\n staticWrapperRoot: {\n overflow: 'hidden',\n minWidth: DIALOG_WIDTH,\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.background.paper,\n },\n }),\n { name: 'MuiPickersStaticWrapper' }\n);\n\nexport const StaticWrapper: React.FC = ({ children }) => {\n const classes = useStyles();\n\n return
;\n};\n","export const DIALOG_WIDTH = 310;\n\nexport const DIALOG_WIDTH_WIDER = 325;\n\nexport const VIEW_HEIGHT = 305;\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport Button from '@material-ui/core/Button';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Dialog, { DialogProps } from '@material-ui/core/Dialog';\nimport { DIALOG_WIDTH, DIALOG_WIDTH_WIDER } from '../constants/dimensions';\nimport { createStyles, WithStyles, withStyles } from '@material-ui/core/styles';\n\nexport interface ModalDialogProps extends DialogProps {\n onAccept: () => void;\n onDismiss: () => void;\n onClear: () => void;\n onSetToday: () => void;\n okLabel?: React.ReactNode;\n cancelLabel?: React.ReactNode;\n clearLabel?: React.ReactNode;\n todayLabel?: React.ReactNode;\n clearable?: boolean;\n showTodayButton?: boolean;\n showTabs?: boolean;\n wider?: boolean;\n}\n\nexport const ModalDialog: React.SFC> = ({\n children,\n classes,\n onAccept,\n onDismiss,\n onClear,\n onSetToday,\n okLabel,\n cancelLabel,\n clearLabel,\n todayLabel,\n clearable,\n showTodayButton,\n showTabs,\n wider,\n ...other\n}) => (\n \n \n\n \n {clearable && (\n \n )}\n\n {showTodayButton && (\n \n )}\n\n {cancelLabel && (\n \n )}\n\n {okLabel && (\n \n )}\n \n \n);\n\nModalDialog.displayName = 'ModalDialog';\n\nexport const styles = createStyles({\n dialogRoot: {\n minWidth: DIALOG_WIDTH,\n },\n dialogRootWider: {\n minWidth: DIALOG_WIDTH_WIDER,\n },\n dialog: {\n '&:first-child': {\n padding: 0,\n },\n },\n withAdditionalAction: {\n // set justifyContent to default value to fix IE11 layout bug\n // see https://github.com/dmtrKovalenko/material-ui-pickers/pull/267\n justifyContent: 'flex-start',\n\n '& > *:first-child': {\n marginRight: 'auto',\n },\n },\n});\n\nexport default withStyles(styles, { name: 'MuiPickersModal' })(ModalDialog);\n","import * as React from 'react';\n\nexport const useIsomorphicEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n\ntype KeyHandlers = Record void>;\n\nexport function runKeyHandler(e: KeyboardEvent, keyHandlers: KeyHandlers) {\n const handler = keyHandlers[e.key];\n if (handler) {\n handler();\n // if event was handled prevent other side effects (e.g. page scroll)\n e.preventDefault();\n }\n}\n\nexport function useKeyDown(active: boolean, keyHandlers: KeyHandlers) {\n const keyHandlersRef = React.useRef(keyHandlers);\n keyHandlersRef.current = keyHandlers;\n\n useIsomorphicEffect(() => {\n if (active) {\n const handleKeyDown = (event: KeyboardEvent) => {\n runKeyHandler(event, keyHandlersRef.current);\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }\n }, [active]);\n}\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport ModalDialog from '../_shared/ModalDialog';\nimport { WrapperProps } from './Wrapper';\nimport { Omit } from '../_helpers/utils';\nimport { useKeyDown } from '../_shared/hooks/useKeyDown';\nimport { DialogProps as MuiDialogProps } from '@material-ui/core/Dialog';\n\nexport interface ModalWrapperProps extends WrapperProps {\n /**\n * \"OK\" label message\n * @default \"OK\"\n */\n okLabel?: React.ReactNode;\n /**\n * \"CANCEL\" label message\n * @default \"CANCEL\"\n */\n cancelLabel?: React.ReactNode;\n /**\n * \"CLEAR\" label message\n * @default \"CLEAR\"\n */\n clearLabel?: React.ReactNode;\n /**\n * \"TODAY\" label message\n * @default \"TODAY\"\n */\n todayLabel?: React.ReactNode;\n /**\n * If true today button will be displayed Note* that clear button has higher priority\n * @default false\n */\n showTodayButton?: boolean;\n /**\n * Show clear action in picker dialog\n * @default false\n */\n clearable?: boolean;\n /**\n * Props to be passed directly to material-ui Dialog\n * @type {Partial}\n */\n DialogProps?: Partial>;\n}\n\nexport const ModalWrapper: React.FC> = ({\n open,\n children,\n okLabel,\n cancelLabel,\n clearLabel,\n todayLabel,\n showTodayButton,\n clearable,\n DialogProps,\n showTabs,\n wider,\n InputComponent,\n DateInputProps,\n onClear,\n onAccept,\n onDismiss,\n onSetToday,\n ...other\n}) => {\n useKeyDown(open, {\n Enter: onAccept,\n });\n\n return (\n \n \n\n \n \n );\n};\n\nModalWrapper.propTypes = {\n okLabel: PropTypes.node,\n cancelLabel: PropTypes.node,\n clearLabel: PropTypes.node,\n clearable: PropTypes.bool,\n todayLabel: PropTypes.node,\n showTodayButton: PropTypes.bool,\n DialogProps: PropTypes.object,\n} as any;\n\nModalWrapper.defaultProps = {\n okLabel: 'OK',\n cancelLabel: 'Cancel',\n clearLabel: 'Clear',\n todayLabel: 'Today',\n clearable: false,\n showTodayButton: false,\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport Popover, { PopoverProps as PopoverPropsType } from '@material-ui/core/Popover';\nimport { WrapperProps } from './Wrapper';\nimport { useKeyDown } from '../_shared/hooks/useKeyDown';\nimport { TextFieldProps } from '@material-ui/core/TextField';\n\nexport interface InlineWrapperProps extends WrapperProps {\n /** Popover props passed to material-ui Popover (with variant=\"inline\") */\n PopoverProps?: Partial;\n}\n\nexport const InlineWrapper: React.FC = ({\n open,\n wider,\n children,\n PopoverProps,\n onClear,\n onDismiss,\n onSetToday,\n onAccept,\n showTabs,\n DateInputProps,\n InputComponent,\n ...other\n}) => {\n const ref = React.useRef();\n\n useKeyDown(open, {\n Enter: onAccept,\n });\n\n return (\n \n \n\n \n \n );\n};\n\nInlineWrapper.propTypes = {\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n PopoverProps: PropTypes.object,\n} as any;\n","import * as React from 'react';\nimport { Omit } from '../_helpers/utils';\nimport { StaticWrapper } from './StaticWrapper';\nimport { ModalWrapper, ModalWrapperProps } from './ModalWrapper';\nimport { InlineWrapper, InlineWrapperProps } from './InlineWrapper';\nimport { KeyboardDateInputProps } from '../_shared/KeyboardDateInput';\nimport { PureDateInputProps, NotOverridableProps } from '../_shared/PureDateInput';\n\nexport type WrapperVariant = 'dialog' | 'inline' | 'static';\n\nexport interface WrapperProps {\n open: boolean;\n onAccept: () => void;\n onDismiss: () => void;\n onClear: () => void;\n onSetToday: () => void;\n InputComponent: React.FC;\n DateInputProps: T;\n wider?: boolean;\n showTabs?: boolean;\n}\n\ntype OmitInnerWrapperProps> = Omit<\n T,\n keyof WrapperProps | 'showTabs'\n>;\n\nexport type ModalRoot = OmitInnerWrapperProps;\n\nexport type InlineRoot = OmitInnerWrapperProps;\n\n// prettier-ignore\nexport type ExtendWrapper = {\n /**\n * Picker container option\n * @default 'dialog'\n */\n variant?: WrapperVariant\n} & ModalRoot\n & InlineRoot\n & Omit\n\nexport function getWrapperFromVariant(\n variant?: WrapperVariant\n): React.ComponentType | ModalWrapperProps> {\n switch (variant) {\n case 'inline':\n return InlineWrapper as any;\n\n case 'static':\n return StaticWrapper as any;\n\n default:\n return ModalWrapper as any;\n }\n}\n\ntype Props = {\n variant?: WrapperVariant;\n children?: React.ReactChild;\n} & (ModalWrapperProps | InlineWrapperProps);\n\nexport const VariantContext = React.createContext(null);\n\nexport const Wrapper: (\n p: Props\n) => React.ReactElement> = ({ variant, ...props }) => {\n const Component = getWrapperFromVariant(variant);\n\n return (\n \n \n \n );\n};\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { Component } from 'react';\n\nvar Rifm =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Rifm, _React$Component);\n\n function Rifm(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this._state = null;\n _this._del = false;\n\n _this._handleChange = function (evt) {\n if (process.env.NODE_ENV !== 'production') {\n if (evt.target.type === 'number') {\n console.error('Rifm does not support input type=number, use type=tel instead.');\n return;\n }\n } // FUTURE: use evt.nativeEvent.inputType for del event, see comments at onkeydown\n\n\n var stateValue = _this.state.value;\n var value = evt.target.value;\n var input = evt.target;\n var op = value.length > stateValue.length;\n var del = _this._del;\n\n var noOp = stateValue === _this.props.format(value);\n\n _this.setState({\n value: value,\n local: true\n }, function () {\n var selectionStart = input.selectionStart;\n var refuse = _this.props.refuse || /[^\\d]+/g;\n var before = value.substr(0, selectionStart).replace(refuse, '');\n _this._state = {\n input: input,\n before: before,\n op: op,\n di: del && noOp,\n del: del\n };\n\n if (_this.props.replace && _this.props.replace(stateValue) && op && !noOp) {\n var start = -1;\n\n for (var i = 0; i !== before.length; ++i) {\n start = Math.max(start, value.toLowerCase().indexOf(before[i].toLowerCase(), start + 1));\n }\n\n var c = value.substr(start + 1).replace(refuse, '')[0];\n start = value.indexOf(c, start + 1);\n value = \"\" + value.substr(0, start) + value.substr(start + 1);\n }\n\n var fv = _this.props.format(value);\n\n if (stateValue === fv) {\n _this.setState({\n value: value\n });\n } else {\n _this.props.onChange(fv);\n }\n });\n };\n\n _this._hKD = function (evt) {\n if (evt.code === 'Delete') {\n _this._del = true;\n }\n };\n\n _this._hKU = function (evt) {\n if (evt.code === 'Delete') {\n _this._del = false;\n }\n };\n\n _this.state = {\n value: props.value,\n local: true\n };\n return _this;\n }\n\n Rifm.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n return {\n value: state.local ? state.value : props.value,\n local: false\n };\n };\n\n var _proto = Rifm.prototype;\n\n _proto.render = function render() {\n var _handleChange = this._handleChange,\n value = this.state.value,\n children = this.props.children;\n return children({\n value: value,\n onChange: _handleChange\n });\n } // delete when https://developer.mozilla.org/en-US/docs/Web/API/InputEvent/inputType will be supported by all major browsers\n ;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n document.removeEventListener('keydown', this._hKD);\n document.removeEventListener('keyup', this._hKU);\n } // delete when https://developer.mozilla.org/en-US/docs/Web/API/InputEvent/inputType will be supported by all major browsers\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n document.addEventListener('keydown', this._hKD);\n document.addEventListener('keyup', this._hKU);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _state = this._state;\n\n if (_state) {\n var value = this.state.value;\n var start = -1;\n\n for (var i = 0; i !== _state.before.length; ++i) {\n start = Math.max(start, value.toLowerCase().indexOf(_state.before[i].toLowerCase(), start + 1));\n } // format usually looks better without this\n\n\n if (this.props.replace && (_state.op || _state.del && !_state.di)) {\n while (value[start + 1] && (this.props.refuse || /[^\\d]+/).test(value[start + 1])) {\n start += 1;\n }\n }\n\n _state.input.selectionStart = _state.input.selectionEnd = start + 1 + (_state.di ? 1 : 0);\n }\n\n this._state = null;\n };\n\n return Rifm;\n}(Component);\n\nexport { Rifm };\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport IconButton from '@material-ui/core/IconButton';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(\n theme => ({\n day: {\n width: 36,\n height: 36,\n fontSize: theme.typography.caption.fontSize,\n margin: '0 2px',\n color: theme.palette.text.primary,\n fontWeight: theme.typography.fontWeightMedium,\n padding: 0,\n },\n hidden: {\n opacity: 0,\n pointerEvents: 'none',\n },\n current: {\n color: theme.palette.primary.main,\n fontWeight: 600,\n },\n daySelected: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n '&:hover': {\n backgroundColor: theme.palette.primary.main,\n },\n },\n dayDisabled: {\n pointerEvents: 'none',\n color: theme.palette.text.hint,\n },\n }),\n { name: 'MuiPickersDay' }\n);\n\nexport interface DayProps {\n /** Day text */\n children: React.ReactNode;\n /** Is today */\n current?: boolean;\n /** Disabled? */\n disabled?: boolean;\n /** Hidden? */\n hidden?: boolean;\n /** Selected? */\n selected?: boolean;\n}\n\nexport const Day: React.FC = ({\n children,\n disabled,\n hidden,\n current,\n selected,\n ...other\n}) => {\n const classes = useStyles();\n\n const className = clsx(classes.day, {\n [classes.hidden]: hidden,\n [classes.current]: current,\n [classes.daySelected]: selected,\n [classes.dayDisabled]: disabled,\n });\n\n return (\n \n \n {children}\n \n \n );\n};\n\nDay.displayName = 'Day';\n\nDay.propTypes = {\n current: PropTypes.bool,\n disabled: PropTypes.bool,\n hidden: PropTypes.bool,\n selected: PropTypes.bool,\n};\n\nDay.defaultProps = {\n disabled: false,\n hidden: false,\n current: false,\n selected: false,\n};\n\nexport default Day;\n","import React from 'react';\nexport default React.createContext(null);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import { arrayIncludes } from './utils';\nimport { IUtils } from '@date-io/core/IUtils';\nimport { MaterialUiPickersDate } from '../typings/date';\nimport { DatePickerView } from '../DatePicker/DatePicker';\n\ninterface FindClosestDateParams {\n date: MaterialUiPickersDate;\n utils: IUtils;\n minDate: MaterialUiPickersDate;\n maxDate: MaterialUiPickersDate;\n disableFuture: boolean;\n disablePast: boolean;\n shouldDisableDate: (date: MaterialUiPickersDate) => boolean;\n}\n\nexport const findClosestEnabledDate = ({\n date,\n utils,\n minDate,\n maxDate,\n disableFuture,\n disablePast,\n shouldDisableDate,\n}: FindClosestDateParams) => {\n const today = utils.startOfDay(utils.date());\n\n if (disablePast && utils.isBefore(minDate!, today)) {\n minDate = today;\n }\n\n if (disableFuture && utils.isAfter(maxDate, today)) {\n maxDate = today;\n }\n\n let forward = date;\n let backward = date;\n if (utils.isBefore(date, minDate)) {\n forward = utils.date(minDate);\n backward = null;\n }\n\n if (utils.isAfter(date, maxDate)) {\n if (backward) {\n backward = utils.date(maxDate);\n }\n\n forward = null;\n }\n\n while (forward || backward) {\n if (forward && utils.isAfter(forward, maxDate)) {\n forward = null;\n }\n if (backward && utils.isBefore(backward, minDate)) {\n backward = null;\n }\n\n if (forward) {\n if (!shouldDisableDate(forward)) {\n return forward;\n }\n forward = utils.addDays(forward, 1);\n }\n\n if (backward) {\n if (!shouldDisableDate(backward)) {\n return backward;\n }\n backward = utils.addDays(backward, -1);\n }\n }\n\n // fallback to today if no enabled days\n return utils.date();\n};\n\nexport const isYearOnlyView = (views: DatePickerView[]) =>\n views.length === 1 && views[0] === 'year';\n\nexport const isYearAndMonthViews = (views: DatePickerView[]) =>\n views.length === 2 && arrayIncludes(views, 'month') && arrayIncludes(views, 'year');\n\nexport const getFormatByViews = (views: DatePickerView[], utils: IUtils) => {\n if (isYearOnlyView(views)) {\n return utils.yearFormat;\n }\n\n if (isYearAndMonthViews(views)) {\n return utils.yearMonthFormat;\n }\n\n return utils.dateFormat;\n};\n","import * as React from 'react';\n\nexport interface DayWrapperProps {\n value: any;\n children: React.ReactNode;\n dayInCurrentMonth?: boolean;\n disabled?: boolean;\n onSelect: (value: any) => void;\n}\n\nconst DayWrapper: React.FC = ({\n children,\n value,\n disabled,\n onSelect,\n dayInCurrentMonth,\n ...other\n}) => {\n const handleClick = React.useCallback(() => onSelect(value), [onSelect, value]);\n\n return (\n \n {children}\n
\n );\n};\n\nexport default DayWrapper;\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\n\nexport type SlideDirection = 'right' | 'left';\ninterface SlideTransitionProps {\n transKey: React.Key;\n className?: string;\n slideDirection: SlideDirection;\n children: React.ReactChild;\n}\n\nconst animationDuration = 350;\nexport const useStyles = makeStyles(\n theme => {\n const slideTransition = theme.transitions.create('transform', {\n duration: animationDuration,\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)',\n });\n\n return {\n transitionContainer: {\n display: 'block',\n position: 'relative',\n '& > *': {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n },\n },\n 'slideEnter-left': {\n willChange: 'transform',\n transform: 'translate(100%)',\n },\n 'slideEnter-right': {\n willChange: 'transform',\n transform: 'translate(-100%)',\n },\n slideEnterActive: {\n transform: 'translate(0%)',\n transition: slideTransition,\n },\n slideExit: {\n transform: 'translate(0%)',\n },\n 'slideExitActiveLeft-left': {\n willChange: 'transform',\n transform: 'translate(-200%)',\n transition: slideTransition,\n },\n 'slideExitActiveLeft-right': {\n willChange: 'transform',\n transform: 'translate(200%)',\n transition: slideTransition,\n },\n };\n },\n { name: 'MuiPickersSlideTransition' }\n);\n\nconst SlideTransition: React.SFC = ({\n children,\n transKey,\n slideDirection,\n className = null,\n}) => {\n const classes = useStyles();\n const transitionClasses = {\n exit: classes.slideExit,\n enterActive: classes.slideEnterActive,\n // @ts-ignore\n enter: classes['slideEnter-' + slideDirection],\n // @ts-ignore\n exitActive: classes['slideExitActiveLeft-' + slideDirection],\n };\n\n return (\n \n React.cloneElement(element, {\n classNames: transitionClasses,\n })\n }\n >\n \n \n );\n};\n\nexport default SlideTransition;\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport SlideTransition, { SlideDirection } from './SlideTransition';\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton';\nimport { DateType } from '@date-io/type';\nimport { useUtils } from '../../_shared/hooks/useUtils';\nimport { MaterialUiPickersDate } from '../../typings/date';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport { ArrowLeftIcon } from '../../_shared/icons/ArrowLeftIcon';\nimport { ArrowRightIcon } from '../../_shared/icons/ArrowRightIcon';\n\nexport interface CalendarHeaderProps {\n currentMonth: DateType;\n leftArrowIcon?: React.ReactNode;\n rightArrowIcon?: React.ReactNode;\n leftArrowButtonProps?: Partial;\n rightArrowButtonProps?: Partial;\n disablePrevMonth?: boolean;\n disableNextMonth?: boolean;\n slideDirection: SlideDirection;\n onMonthChange: (date: MaterialUiPickersDate, direction: SlideDirection) => void | Promise;\n}\n\nexport const useStyles = makeStyles(\n theme => ({\n switchHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: theme.spacing(0.5),\n marginBottom: theme.spacing(1),\n },\n transitionContainer: {\n width: '100%',\n overflow: 'hidden',\n height: 23,\n },\n iconButton: {\n zIndex: 1,\n backgroundColor: theme.palette.background.paper,\n },\n daysHeader: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n maxHeight: 16,\n },\n dayLabel: {\n width: 36,\n margin: '0 2px',\n textAlign: 'center',\n color: theme.palette.text.hint,\n },\n }),\n { name: 'MuiPickersCalendarHeader' }\n);\n\nexport const CalendarHeader: React.SFC = ({\n currentMonth,\n onMonthChange,\n leftArrowIcon,\n rightArrowIcon,\n leftArrowButtonProps,\n rightArrowButtonProps,\n disablePrevMonth,\n disableNextMonth,\n slideDirection,\n}) => {\n const utils = useUtils();\n const classes = useStyles();\n const theme = useTheme();\n const rtl = theme.direction === 'rtl';\n\n const selectNextMonth = () => onMonthChange(utils.getNextMonth(currentMonth), 'left');\n const selectPreviousMonth = () => onMonthChange(utils.getPreviousMonth(currentMonth), 'right');\n\n return (\n
\n
\n \n {rtl ? rightArrowIcon : leftArrowIcon}\n \n\n \n \n {utils.getCalendarHeaderText(currentMonth)}\n \n \n\n \n {rtl ? leftArrowIcon : rightArrowIcon}\n \n
\n\n
\n {utils.getWeekdays().map((day, index) => (\n \n {day}\n \n ))}\n
\n
\n );\n};\n\nCalendarHeader.displayName = 'CalendarHeader';\n\nCalendarHeader.propTypes = {\n leftArrowIcon: PropTypes.node,\n rightArrowIcon: PropTypes.node,\n disablePrevMonth: PropTypes.bool,\n disableNextMonth: PropTypes.bool,\n};\n\nCalendarHeader.defaultProps = {\n leftArrowIcon: ,\n rightArrowIcon: ,\n disablePrevMonth: false,\n disableNextMonth: false,\n};\n\nexport default CalendarHeader;\n","import React from 'react';\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\n\nexport const ArrowLeftIcon: React.SFC = props => {\n return (\n \n \n \n \n );\n};\n","import React from 'react';\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\n\nexport const ArrowRightIcon: React.SFC = props => {\n return (\n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { Omit } from '../_helpers/utils';\nimport { useUtils } from './hooks/useUtils';\nimport { IUtils } from '@date-io/core/IUtils';\nimport { MaterialUiPickersDate } from '../typings/date';\n\nexport interface WithUtilsProps {\n utils: IUtils;\n}\n\nexport const withUtils = () =>

(Component: React.ComponentType

) => {\n const WithUtils: React.SFC> = props => {\n const utils = useUtils();\n return ;\n };\n\n WithUtils.displayName = `WithUtils(${Component.displayName || Component.name})`;\n return WithUtils;\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport Day from './Day';\nimport DayWrapper from './DayWrapper';\nimport CalendarHeader from './CalendarHeader';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport SlideTransition, { SlideDirection } from './SlideTransition';\nimport { Theme } from '@material-ui/core/styles';\nimport { VariantContext } from '../../wrappers/Wrapper';\nimport { MaterialUiPickersDate } from '../../typings/date';\nimport { runKeyHandler } from '../../_shared/hooks/useKeyDown';\nimport { IconButtonProps } from '@material-ui/core/IconButton';\nimport { withStyles, WithStyles } from '@material-ui/core/styles';\nimport { findClosestEnabledDate } from '../../_helpers/date-utils';\nimport { withUtils, WithUtilsProps } from '../../_shared/WithUtils';\n\nexport interface OutterCalendarProps {\n /** Left arrow icon */\n leftArrowIcon?: React.ReactNode;\n /** Right arrow icon */\n rightArrowIcon?: React.ReactNode;\n /** Custom renderer for day @DateIOType */\n renderDay?: (\n day: MaterialUiPickersDate,\n selectedDate: MaterialUiPickersDate,\n dayInCurrentMonth: boolean,\n dayComponent: JSX.Element\n ) => JSX.Element;\n /**\n * Enables keyboard listener for moving between days in calendar\n * @default true\n */\n allowKeyboardControl?: boolean;\n /**\n * Props to pass to left arrow button\n * @type {Partial}\n */\n leftArrowButtonProps?: Partial;\n /**\n * Props to pass to right arrow button\n * @type {Partial}\n */\n rightArrowButtonProps?: Partial;\n /** Disable specific date @DateIOType */\n shouldDisableDate?: (day: MaterialUiPickersDate) => boolean;\n /** Callback firing on month change. Return promise to render spinner till it will not be resolved @DateIOType */\n onMonthChange?: (date: MaterialUiPickersDate) => void | Promise;\n /** Custom loading indicator */\n loadingIndicator?: JSX.Element;\n}\n\nexport interface CalendarProps\n extends OutterCalendarProps,\n WithUtilsProps,\n WithStyles {\n /** Calendar Date @DateIOType */\n date: MaterialUiPickersDate;\n /** Calendar onChange */\n onChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\n /** Min date @DateIOType */\n minDate?: MaterialUiPickersDate;\n /** Max date @DateIOType */\n maxDate?: MaterialUiPickersDate;\n /** Disable past dates */\n disablePast?: boolean;\n /** Disable future dates */\n disableFuture?: boolean;\n}\n\nexport interface CalendarState {\n slideDirection: SlideDirection;\n currentMonth: MaterialUiPickersDate;\n lastDate?: MaterialUiPickersDate;\n loadingQueue: number;\n}\n\nconst KeyDownListener = ({ onKeyDown }: { onKeyDown: (e: KeyboardEvent) => void }) => {\n React.useEffect(() => {\n window.addEventListener('keydown', onKeyDown);\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [onKeyDown]);\n\n return null;\n};\n\nexport class Calendar extends React.Component {\n static contextType = VariantContext;\n static propTypes: any = {\n renderDay: PropTypes.func,\n shouldDisableDate: PropTypes.func,\n allowKeyboardControl: PropTypes.bool,\n };\n\n static defaultProps: Partial = {\n minDate: new Date('1900-01-01'),\n maxDate: new Date('2100-01-01'),\n disablePast: false,\n disableFuture: false,\n allowKeyboardControl: true,\n };\n\n static getDerivedStateFromProps(nextProps: CalendarProps, state: CalendarState) {\n const { utils, date: nextDate } = nextProps;\n\n if (!utils.isEqual(nextDate, state.lastDate)) {\n const nextMonth = utils.getMonth(nextDate);\n const lastDate = state.lastDate || nextDate;\n const lastMonth = utils.getMonth(lastDate);\n\n return {\n lastDate: nextDate,\n currentMonth: nextProps.utils.startOfMonth(nextDate),\n // prettier-ignore\n slideDirection: nextMonth === lastMonth\n ? state.slideDirection\n : utils.isAfterDay(nextDate, lastDate)\n ? 'left'\n : 'right'\n };\n }\n\n return null;\n }\n\n state: CalendarState = {\n slideDirection: 'left',\n currentMonth: this.props.utils.startOfMonth(this.props.date),\n loadingQueue: 0,\n };\n\n componentDidMount() {\n const { date, minDate, maxDate, utils, disablePast, disableFuture } = this.props;\n\n if (this.shouldDisableDate(date)) {\n const closestEnabledDate = findClosestEnabledDate({\n date,\n utils,\n minDate: utils.date(minDate),\n maxDate: utils.date(maxDate),\n disablePast: Boolean(disablePast),\n disableFuture: Boolean(disableFuture),\n shouldDisableDate: this.shouldDisableDate,\n });\n\n this.handleDaySelect(closestEnabledDate, false);\n }\n }\n\n private pushToLoadingQueue = () => {\n const loadingQueue = this.state.loadingQueue + 1;\n this.setState({ loadingQueue });\n };\n\n private popFromLoadingQueue = () => {\n let loadingQueue = this.state.loadingQueue;\n loadingQueue = loadingQueue <= 0 ? 0 : loadingQueue - 1;\n this.setState({ loadingQueue });\n };\n\n handleChangeMonth = (newMonth: MaterialUiPickersDate, slideDirection: SlideDirection) => {\n this.setState({ currentMonth: newMonth, slideDirection });\n\n if (this.props.onMonthChange) {\n const returnVal = this.props.onMonthChange(newMonth);\n if (returnVal) {\n this.pushToLoadingQueue();\n returnVal.then(() => {\n this.popFromLoadingQueue();\n });\n }\n }\n };\n\n validateMinMaxDate = (day: MaterialUiPickersDate) => {\n const { minDate, maxDate, utils, disableFuture, disablePast } = this.props;\n const now = utils.date();\n\n return Boolean(\n (disableFuture && utils.isAfterDay(day, now)) ||\n (disablePast && utils.isBeforeDay(day, now)) ||\n (minDate && utils.isBeforeDay(day, utils.date(minDate))) ||\n (maxDate && utils.isAfterDay(day, utils.date(maxDate)))\n );\n };\n\n shouldDisablePrevMonth = () => {\n const { utils, disablePast, minDate } = this.props;\n\n const now = utils.date();\n const firstEnabledMonth = utils.startOfMonth(\n disablePast && utils.isAfter(now, utils.date(minDate)) ? now : utils.date(minDate)\n );\n\n return !utils.isBefore(firstEnabledMonth, this.state.currentMonth);\n };\n\n shouldDisableNextMonth = () => {\n const { utils, disableFuture, maxDate } = this.props;\n\n const now = utils.date();\n const lastEnabledMonth = utils.startOfMonth(\n disableFuture && utils.isBefore(now, utils.date(maxDate)) ? now : utils.date(maxDate)\n );\n\n return !utils.isAfter(lastEnabledMonth, this.state.currentMonth);\n };\n\n shouldDisableDate = (day: MaterialUiPickersDate) => {\n const { shouldDisableDate } = this.props;\n\n return this.validateMinMaxDate(day) || Boolean(shouldDisableDate && shouldDisableDate(day));\n };\n\n handleDaySelect = (day: MaterialUiPickersDate, isFinish = true) => {\n const { date, utils } = this.props;\n\n this.props.onChange(utils.mergeDateAndTime(day, date), isFinish);\n };\n\n moveToDay = (day: MaterialUiPickersDate) => {\n const { utils } = this.props;\n\n if (day && !this.shouldDisableDate(day)) {\n if (utils.getMonth(day) !== utils.getMonth(this.state.currentMonth)) {\n this.handleChangeMonth(utils.startOfMonth(day), 'left');\n }\n\n this.handleDaySelect(day, false);\n }\n };\n\n handleKeyDown = (event: KeyboardEvent) => {\n const { theme, date, utils } = this.props;\n\n runKeyHandler(event, {\n ArrowUp: () => this.moveToDay(utils.addDays(date, -7)),\n ArrowDown: () => this.moveToDay(utils.addDays(date, 7)),\n ArrowLeft: () => this.moveToDay(utils.addDays(date, theme.direction === 'ltr' ? -1 : 1)),\n ArrowRight: () => this.moveToDay(utils.addDays(date, theme.direction === 'ltr' ? 1 : -1)),\n });\n };\n\n private renderWeeks = () => {\n const { utils, classes } = this.props;\n const weeks = utils.getWeekArray(this.state.currentMonth);\n\n return weeks.map(week => (\n

\n {this.renderDays(week)}\n
\n ));\n };\n\n private renderDays = (week: MaterialUiPickersDate[]) => {\n const { date, renderDay, utils } = this.props;\n\n const now = utils.date();\n const selectedDate = utils.startOfDay(date);\n const currentMonthNumber = utils.getMonth(this.state.currentMonth);\n\n return week.map(day => {\n const disabled = this.shouldDisableDate(day);\n const isDayInCurrentMonth = utils.getMonth(day) === currentMonthNumber;\n\n let dayComponent = (\n
\n );\n }\n}\n\nexport const styles = (theme: Theme) =>\n createStyles({\n pointer: {\n width: 2,\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n left: 'calc(50% - 1px)',\n bottom: '50%',\n transformOrigin: 'center bottom 0px',\n },\n animateTransform: {\n transition: theme.transitions.create(['transform', 'height']),\n },\n thumb: {\n width: 4,\n height: 4,\n backgroundColor: theme.palette.primary.contrastText,\n borderRadius: '100%',\n position: 'absolute',\n top: -21,\n left: -15,\n border: `14px solid ${theme.palette.primary.main}`,\n boxSizing: 'content-box',\n },\n noPoint: {\n backgroundColor: theme.palette.primary.main,\n },\n });\n\nexport default withStyles(styles, {\n name: 'MuiPickersClockPointer',\n})(ClockPointer as React.ComponentType);\n","import { IUtils } from '@date-io/core/IUtils';\nimport { MaterialUiPickersDate } from '../typings/date';\n\nconst center = {\n x: 260 / 2,\n y: 260 / 2,\n};\n\nconst basePoint = {\n x: center.x,\n y: 0,\n};\n\nconst cx = basePoint.x - center.x;\nconst cy = basePoint.y - center.y;\n\nconst rad2deg = (rad: number) => rad * 57.29577951308232;\n\nconst getAngleValue = (step: number, offsetX: number, offsetY: number) => {\n const x = offsetX - center.x;\n const y = offsetY - center.y;\n\n const atan = Math.atan2(cx, cy) - Math.atan2(x, y);\n\n let deg = rad2deg(atan);\n deg = Math.round(deg / step) * step;\n deg %= 360;\n\n const value = Math.floor(deg / step) || 0;\n const delta = Math.pow(x, 2) + Math.pow(y, 2);\n const distance = Math.sqrt(delta);\n\n return { value, distance };\n};\n\nexport const getHours = (offsetX: number, offsetY: number, ampm: boolean) => {\n let { value, distance } = getAngleValue(30, offsetX, offsetY);\n value = value || 12;\n\n if (!ampm) {\n if (distance < 90) {\n value += 12;\n value %= 24;\n }\n } else {\n value %= 12;\n }\n\n return value;\n};\n\nexport const getMinutes = (offsetX: number, offsetY: number, step = 1) => {\n const angleStep = step * 6;\n let { value } = getAngleValue(angleStep, offsetX, offsetY);\n value = (value * step) % 60;\n\n return value;\n};\n\nexport const getMeridiem = (\n date: MaterialUiPickersDate,\n utils: IUtils\n): 'am' | 'pm' => {\n return utils.getHours(date) >= 12 ? 'pm' : 'am';\n};\n\nexport const convertToMeridiem = (\n time: MaterialUiPickersDate,\n meridiem: 'am' | 'pm',\n ampm: boolean,\n utils: IUtils\n) => {\n if (ampm) {\n const currentMeridiem = utils.getHours(time) >= 12 ? 'pm' : 'am';\n if (currentMeridiem !== meridiem) {\n const hours = meridiem === 'am' ? utils.getHours(time) - 12 : utils.getHours(time) + 12;\n\n return utils.setHours(time, hours);\n }\n }\n\n return time;\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport ClockPointer from './ClockPointer';\nimport ClockType, { ClockViewType } from '../../constants/ClockType';\nimport { getHours, getMinutes } from '../../_helpers/time-utils';\nimport { withStyles, createStyles, WithStyles, Theme } from '@material-ui/core/styles';\n\nexport interface ClockProps extends WithStyles {\n type: ClockViewType;\n value: number;\n onChange: (value: number, isFinish?: boolean) => void;\n ampm?: boolean;\n minutesStep?: number;\n children: React.ReactElement[];\n}\n\nexport class Clock extends React.Component {\n public static propTypes: any = {\n type: PropTypes.oneOf(\n Object.keys(ClockType).map(key => ClockType[key as keyof typeof ClockType])\n ).isRequired,\n value: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n ampm: PropTypes.bool,\n minutesStep: PropTypes.number,\n innerRef: PropTypes.any,\n };\n\n public static defaultProps = {\n ampm: false,\n minutesStep: 1,\n };\n\n public isMoving = false;\n\n public setTime(e: any, isFinish = false) {\n let { offsetX, offsetY } = e;\n\n if (typeof offsetX === 'undefined') {\n const rect = e.target.getBoundingClientRect();\n\n offsetX = e.changedTouches[0].clientX - rect.left;\n offsetY = e.changedTouches[0].clientY - rect.top;\n }\n\n const value =\n this.props.type === ClockType.SECONDS || this.props.type === ClockType.MINUTES\n ? getMinutes(offsetX, offsetY, this.props.minutesStep)\n : getHours(offsetX, offsetY, Boolean(this.props.ampm));\n\n this.props.onChange(value, isFinish);\n }\n\n public handleTouchMove = (e: React.TouchEvent) => {\n this.isMoving = true;\n this.setTime(e);\n };\n\n public handleTouchEnd = (e: React.TouchEvent) => {\n if (this.isMoving) {\n this.setTime(e, true);\n this.isMoving = false;\n }\n };\n\n public handleMove = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n // MouseEvent.which is deprecated, but MouseEvent.buttons is not supported in Safari\n const isButtonPressed =\n typeof e.buttons === 'undefined' ? e.nativeEvent.which === 1 : e.buttons === 1;\n\n if (isButtonPressed) {\n this.setTime(e.nativeEvent, false);\n }\n };\n\n public handleMouseUp = (e: React.MouseEvent) => {\n if (this.isMoving) {\n this.isMoving = false;\n }\n\n this.setTime(e.nativeEvent, true);\n };\n\n public hasSelected = () => {\n const { type, value } = this.props;\n\n if (type === ClockType.HOURS) {\n return true;\n }\n\n return value % 5 === 0;\n };\n\n public render() {\n const { classes, value, children, type, ampm } = this.props;\n\n const isPointerInner = !ampm && type === ClockType.HOURS && (value < 1 || value > 12);\n\n return (\n
\n
\n \n\n
\n\n \n\n {children}\n
\n
\n );\n }\n}\n\nexport const styles = (theme: Theme) =>\n createStyles({\n container: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-end',\n margin: `${theme.spacing(2)}px 0 ${theme.spacing(1)}px`,\n },\n clock: {\n backgroundColor: 'rgba(0,0,0,.07)',\n borderRadius: '50%',\n height: 260,\n width: 260,\n position: 'relative',\n pointerEvents: 'none',\n },\n squareMask: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n pointerEvents: 'auto',\n outline: 'none',\n touchActions: 'none',\n userSelect: 'none',\n '&:active': {\n cursor: 'move',\n },\n },\n pin: {\n width: 6,\n height: 6,\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n },\n });\n\nexport default withStyles(styles, {\n name: 'MuiPickersClock',\n})(Clock as React.ComponentType);\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst positions: Record = {\n 0: [0, 40],\n 1: [55, 19.6],\n 2: [94.4, 59.5],\n 3: [109, 114],\n 4: [94.4, 168.5],\n 5: [54.5, 208.4],\n 6: [0, 223],\n 7: [-54.5, 208.4],\n 8: [-94.4, 168.5],\n 9: [-109, 114],\n 10: [-94.4, 59.5],\n 11: [-54.5, 19.6],\n 12: [0, 5],\n 13: [36.9, 49.9],\n 14: [64, 77],\n 15: [74, 114],\n 16: [64, 151],\n 17: [37, 178],\n 18: [0, 188],\n 19: [-37, 178],\n 20: [-64, 151],\n 21: [-74, 114],\n 22: [-64, 77],\n 23: [-37, 50],\n};\n\nexport interface ClockNumberProps {\n index: number;\n label: string;\n selected: boolean;\n isInner?: boolean;\n}\n\nexport const useStyles = makeStyles(\n theme => {\n const size = theme.spacing(4);\n\n return {\n clockNumber: {\n width: size,\n height: 32,\n userSelect: 'none',\n position: 'absolute',\n left: `calc((100% - ${typeof size === 'number' ? `${size}px` : size}) / 2)`,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n color:\n theme.palette.type === 'light' ? theme.palette.text.primary : theme.palette.text.hint,\n },\n clockNumberSelected: {\n color: theme.palette.primary.contrastText,\n },\n };\n },\n { name: 'MuiPickersClockNumber' }\n);\n\nexport const ClockNumber: React.FC = ({ selected, label, index, isInner }) => {\n const classes = useStyles();\n const className = clsx(classes.clockNumber, {\n [classes.clockNumberSelected]: selected,\n });\n\n const transformStyle = React.useMemo(() => {\n const position = positions[index];\n\n return {\n transform: `translate(${position[0]}px, ${position[1]}px`,\n };\n }, [index]);\n\n return (\n \n );\n};\n\nexport default ClockNumber;\n","import * as React from 'react';\nimport ClockNumber from './ClockNumber';\nimport { IUtils } from '@date-io/core/IUtils';\nimport { MaterialUiPickersDate } from '../../typings/date';\n\nexport const getHourNumbers = ({\n ampm,\n utils,\n date,\n}: {\n ampm: boolean;\n utils: IUtils;\n date: MaterialUiPickersDate;\n}) => {\n const currentHours = utils.getHours(date);\n\n const hourNumbers: JSX.Element[] = [];\n const startHour = ampm ? 1 : 0;\n const endHour = ampm ? 12 : 23;\n\n const isSelected = (hour: number) => {\n if (ampm) {\n if (hour === 12) {\n return currentHours === 12 || currentHours === 0;\n }\n\n return currentHours === hour || currentHours - 12 === hour;\n }\n\n return currentHours === hour;\n };\n\n for (let hour = startHour; hour <= endHour; hour += 1) {\n let label = hour.toString();\n\n if (hour === 0) {\n label = '00';\n }\n\n const props = {\n index: hour,\n label: utils.formatNumber(label),\n selected: isSelected(hour),\n isInner: !ampm && (hour === 0 || hour > 12),\n };\n\n hourNumbers.push();\n }\n\n return hourNumbers;\n};\n\nexport const getMinutesNumbers = ({\n value,\n utils,\n}: {\n value: number;\n utils: IUtils;\n}) => {\n const f = utils.formatNumber;\n\n return [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ];\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport Clock from './Clock';\nimport ClockType from '../../constants/ClockType';\nimport { useUtils } from '../../_shared/hooks/useUtils';\nimport { MaterialUiPickersDate } from '../../typings/date';\nimport { getHourNumbers, getMinutesNumbers } from './ClockNumbers';\nimport { convertToMeridiem, getMeridiem } from '../../_helpers/time-utils';\n\nexport interface TimePickerViewProps {\n /** TimePicker value */\n date: MaterialUiPickersDate;\n /** Clock type */\n type: 'hours' | 'minutes' | 'seconds';\n /** 12h/24h clock mode */\n ampm?: boolean;\n /** Minutes step */\n minutesStep?: number;\n /** On hour change */\n onHourChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\n /** On minutes change */\n onMinutesChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\n /** On seconds change */\n onSecondsChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\n}\n\nexport const ClockView: React.FC = ({\n type,\n onHourChange,\n onMinutesChange,\n onSecondsChange,\n ampm,\n date,\n minutesStep,\n}) => {\n const utils = useUtils();\n const viewProps = React.useMemo(() => {\n switch (type) {\n case ClockType.HOURS:\n return {\n value: utils.getHours(date),\n children: getHourNumbers({ date, utils, ampm: Boolean(ampm) }),\n onChange: (value: number, isFinish?: boolean) => {\n const currentMeridiem = getMeridiem(date, utils);\n const updatedTimeWithMeridiem = convertToMeridiem(\n utils.setHours(date, value),\n currentMeridiem,\n Boolean(ampm),\n utils\n );\n\n onHourChange(updatedTimeWithMeridiem, isFinish);\n },\n };\n\n case ClockType.MINUTES:\n const minutesValue = utils.getMinutes(date);\n return {\n value: minutesValue,\n children: getMinutesNumbers({ value: minutesValue, utils }),\n onChange: (value: number, isFinish?: boolean) => {\n const updatedTime = utils.setMinutes(date, value);\n\n onMinutesChange(updatedTime, isFinish);\n },\n };\n\n case ClockType.SECONDS:\n const secondsValue = utils.getSeconds(date);\n return {\n value: secondsValue,\n children: getMinutesNumbers({ value: secondsValue, utils }),\n onChange: (value: number, isFinish?: boolean) => {\n const updatedTime = utils.setSeconds(date, value);\n\n onSecondsChange(updatedTime, isFinish);\n },\n };\n\n default:\n throw new Error('You must provide the type for TimePickerView');\n }\n }, [ampm, date, onHourChange, onMinutesChange, onSecondsChange, type, utils]);\n\n return ;\n};\n\nClockView.displayName = 'TimePickerView';\n\nClockView.propTypes = {\n date: PropTypes.object.isRequired,\n onHourChange: PropTypes.func.isRequired,\n onMinutesChange: PropTypes.func.isRequired,\n onSecondsChange: PropTypes.func.isRequired,\n ampm: PropTypes.bool,\n minutesStep: PropTypes.number,\n type: PropTypes.oneOf(Object.keys(ClockType).map(key => ClockType[key as keyof typeof ClockType]))\n .isRequired,\n} as any;\n\nClockView.defaultProps = {\n ampm: true,\n minutesStep: 1,\n};\n\nexport default React.memo(ClockView);\n","import * as PropTypes from 'prop-types';\nimport { BaseTimePickerProps } from '../TimePicker/TimePicker';\nimport { BaseDatePickerProps } from '../DatePicker/DatePicker';\n\nconst date = PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.number,\n PropTypes.instanceOf(Date),\n]);\n\nconst datePickerView = PropTypes.oneOf(['year', 'month', 'day']);\n\nexport type ParsableDate = object | string | number | Date | null | undefined;\n\nexport const DomainPropTypes = { date, datePickerView };\n\n/* eslint-disable @typescript-eslint/no-object-literal-type-assertion */\nexport const timePickerDefaultProps = {\n ampm: true,\n invalidDateMessage: 'Invalid Time Format',\n} as BaseTimePickerProps;\n\nexport const datePickerDefaultProps = {\n minDate: new Date('1900-01-01'),\n maxDate: new Date('2100-01-01'),\n invalidDateMessage: 'Invalid Date Format',\n minDateMessage: 'Date should not be before minimal date',\n maxDateMessage: 'Date should not be after maximal date',\n allowKeyboardControl: true,\n} as BaseDatePickerProps;\n\nexport const dateTimePickerDefaultProps = {\n ...timePickerDefaultProps,\n ...datePickerDefaultProps,\n showTabs: true,\n} as BaseTimePickerProps & BaseDatePickerProps;\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport interface YearProps {\n children: React.ReactNode;\n disabled?: boolean;\n onSelect: (value: any) => void;\n selected?: boolean;\n value: any;\n forwardedRef?: React.Ref;\n}\n\nexport const useStyles = makeStyles(\n theme => ({\n root: {\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n outline: 'none',\n '&:focus': {\n color: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n },\n },\n yearSelected: {\n margin: '10px 0',\n fontWeight: theme.typography.fontWeightMedium,\n },\n yearDisabled: {\n pointerEvents: 'none',\n color: theme.palette.text.hint,\n },\n }),\n { name: 'MuiPickersYear' }\n);\n\nexport const Year: React.FC = ({\n onSelect,\n forwardedRef,\n value,\n selected,\n disabled,\n children,\n ...other\n}) => {\n const classes = useStyles();\n const handleClick = React.useCallback(() => onSelect(value), [onSelect, value]);\n\n return (\n \n );\n};\n\nYear.displayName = 'Year';\n\nexport default React.forwardRef((props, ref) => (\n \n));\n","import * as React from 'react';\nimport Year from './Year';\nimport { DateType } from '@date-io/type';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useUtils } from '../../_shared/hooks/useUtils';\nimport { VariantContext } from '../../wrappers/Wrapper';\nimport { MaterialUiPickersDate } from '../../typings/date';\n\nexport interface YearSelectionProps {\n date: MaterialUiPickersDate;\n minDate: DateType;\n maxDate: DateType;\n onChange: (date: MaterialUiPickersDate, isFinish: boolean) => void;\n disablePast?: boolean | null | undefined;\n disableFuture?: boolean | null | undefined;\n animateYearScrolling?: boolean | null | undefined;\n onYearChange?: (date: MaterialUiPickersDate) => void;\n}\n\nexport const useStyles = makeStyles(\n {\n container: {\n height: 300,\n overflowY: 'auto',\n },\n },\n { name: 'MuiPickersYearSelection' }\n);\n\nexport const YearSelection: React.FC = ({\n date,\n onChange,\n onYearChange,\n minDate,\n maxDate,\n disablePast,\n disableFuture,\n animateYearScrolling,\n}) => {\n const utils = useUtils();\n const classes = useStyles();\n const currentVariant = React.useContext(VariantContext);\n const selectedYearRef = React.useRef(null);\n\n React.useEffect(() => {\n if (selectedYearRef.current && selectedYearRef.current.scrollIntoView) {\n try {\n selectedYearRef.current.scrollIntoView({\n block: currentVariant === 'static' ? 'nearest' : 'center',\n behavior: animateYearScrolling ? 'smooth' : 'auto',\n });\n } catch (e) {\n // call without arguments in case when scrollIntoView works improperly (e.g. Firefox 52-57)\n selectedYearRef.current.scrollIntoView();\n }\n }\n }, []); // eslint-disable-line\n\n const currentYear = utils.getYear(date);\n const onYearSelect = React.useCallback(\n (year: number) => {\n const newDate = utils.setYear(date, year);\n if (onYearChange) {\n onYearChange(newDate);\n }\n\n onChange(newDate, true);\n },\n [date, onChange, onYearChange, utils]\n );\n\n return (\n
\n {utils.getYearRange(minDate, maxDate).map(year => {\n const yearNumber = utils.getYear(year);\n const selected = yearNumber === currentYear;\n\n return (\n \n {utils.getYearText(year)}\n \n );\n })}\n
\n );\n};\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport interface MonthProps {\n children: React.ReactNode;\n disabled?: boolean;\n onSelect: (value: any) => void;\n selected?: boolean;\n value: any;\n}\n\nexport const useStyles = makeStyles(\n theme => ({\n root: {\n flex: '1 0 33.33%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n outline: 'none',\n height: 75,\n transition: theme.transitions.create('font-size', { duration: '100ms' }),\n '&:focus': {\n color: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n },\n },\n monthSelected: {\n color: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n },\n monthDisabled: {\n pointerEvents: 'none',\n color: theme.palette.text.hint,\n },\n }),\n { name: 'MuiPickersMonth' }\n);\n\nexport const Month: React.FC = ({\n selected,\n onSelect,\n disabled,\n value,\n children,\n ...other\n}) => {\n const classes = useStyles();\n const handleSelection = React.useCallback(() => {\n onSelect(value);\n }, [onSelect, value]);\n\n return (\n \n );\n};\n\nMonth.displayName = 'Month';\n\nexport default Month;\n","import * as React from 'react';\nimport Month from './Month';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useUtils } from '../../_shared/hooks/useUtils';\nimport { ParsableDate } from '../../constants/prop-types';\nimport { MaterialUiPickersDate } from '../../typings/date';\n\nexport interface MonthSelectionProps {\n date: MaterialUiPickersDate;\n minDate?: ParsableDate;\n maxDate?: ParsableDate;\n onChange: (date: MaterialUiPickersDate, isFinish: boolean) => void;\n disablePast?: boolean | null | undefined;\n disableFuture?: boolean | null | undefined;\n onMonthChange?: (date: MaterialUiPickersDate) => void | Promise;\n}\n\nexport const useStyles = makeStyles(\n {\n container: {\n width: 310,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'stretch',\n },\n },\n { name: 'MuiPickersMonthSelection' }\n);\n\nexport const MonthSelection: React.FC = ({\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n date,\n onMonthChange,\n onChange,\n}) => {\n const utils = useUtils();\n const classes = useStyles();\n const currentMonth = utils.getMonth(date);\n\n const shouldDisableMonth = (month: MaterialUiPickersDate) => {\n const now = utils.date();\n const utilMinDate = utils.date(minDate);\n const utilMaxDate = utils.date(maxDate);\n\n const firstEnabledMonth = utils.startOfMonth(\n disablePast && utils.isAfter(now, utilMinDate) ? now : utilMinDate\n );\n\n const lastEnabledMonth = utils.startOfMonth(\n disableFuture && utils.isBefore(now, utilMaxDate) ? now : utilMaxDate\n );\n\n const isBeforeFirstEnabled = utils.isBefore(month, firstEnabledMonth);\n const isAfterLastEnabled = utils.isAfter(month, lastEnabledMonth);\n\n return isBeforeFirstEnabled || isAfterLastEnabled;\n };\n\n const onMonthSelect = React.useCallback(\n (month: number) => {\n const newDate = utils.setMonth(date, month);\n\n onChange(newDate, true);\n if (onMonthChange) {\n onMonthChange(newDate);\n }\n },\n [date, onChange, onMonthChange, utils]\n );\n\n return (\n
\n {utils.getMonthArray(date).map(month => {\n const monthNumber = utils.getMonth(month);\n const monthText = utils.format(month, 'MMM');\n\n return (\n \n {monthText}\n \n );\n })}\n
\n );\n};\n","import * as React from 'react';\nimport { useIsomorphicEffect } from './useKeyDown';\nimport { BasePickerProps } from '../../typings/BasePicker';\n\nconst getOrientation = () => {\n if (typeof window === 'undefined') {\n return 'portrait';\n }\n\n if (window.screen && window.screen.orientation && window.screen.orientation.angle) {\n return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';\n }\n\n // Support IOS safari\n if (window.orientation) {\n return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';\n }\n\n return 'portrait';\n};\n\nexport function useIsLandscape(customOrientation?: BasePickerProps['orientation']) {\n const [orientation, setOrientation] = React.useState(\n getOrientation()\n );\n\n const eventHandler = React.useCallback(() => setOrientation(getOrientation()), []);\n\n useIsomorphicEffect(() => {\n window.addEventListener('orientationchange', eventHandler);\n return () => window.removeEventListener('orientationchange', eventHandler);\n }, [eventHandler]);\n\n const orientationToUse = customOrientation || orientation;\n return orientationToUse === 'landscape';\n}\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport Calendar from '../views/Calendar/Calendar';\nimport { useUtils } from '../_shared/hooks/useUtils';\nimport { useViews } from '../_shared/hooks/useViews';\nimport { ClockView } from '../views/Clock/ClockView';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { YearSelection } from '../views/Year/YearView';\nimport { BasePickerProps } from '../typings/BasePicker';\nimport { MaterialUiPickersDate } from '../typings/date';\nimport { MonthSelection } from '../views/Month/MonthView';\nimport { BaseTimePickerProps } from '../TimePicker/TimePicker';\nimport { BaseDatePickerProps } from '../DatePicker/DatePicker';\nimport { useIsLandscape } from '../_shared/hooks/useIsLandscape';\nimport { datePickerDefaultProps } from '../constants/prop-types';\nimport { DIALOG_WIDTH_WIDER, DIALOG_WIDTH, VIEW_HEIGHT } from '../constants/dimensions';\n\nconst viewsMap = {\n year: YearSelection,\n month: MonthSelection,\n date: Calendar,\n hours: ClockView,\n minutes: ClockView,\n seconds: ClockView,\n};\n\nexport type PickerView = keyof typeof viewsMap;\n\nexport type ToolbarComponentProps = BaseDatePickerProps &\n BaseTimePickerProps & {\n views: PickerView[];\n openView: PickerView;\n date: MaterialUiPickersDate;\n setOpenView: (view: PickerView) => void;\n onChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\n // TODO move out, cause it is DateTimePickerOnly\n hideTabs?: boolean;\n dateRangeIcon?: React.ReactNode;\n timeIcon?: React.ReactNode;\n isLandscape: boolean;\n };\n\nexport interface PickerViewProps extends BaseDatePickerProps, BaseTimePickerProps {\n views: PickerView[];\n openTo: PickerView;\n disableToolbar?: boolean;\n ToolbarComponent: React.ComponentType;\n // TODO move out, cause it is DateTimePickerOnly\n hideTabs?: boolean;\n dateRangeIcon?: React.ReactNode;\n timeIcon?: React.ReactNode;\n}\n\ninterface PickerProps extends PickerViewProps {\n date: MaterialUiPickersDate;\n orientation?: BasePickerProps['orientation'];\n onChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\n}\n\nconst useStyles = makeStyles(\n {\n container: {\n display: 'flex',\n flexDirection: 'column',\n },\n containerLandscape: {\n flexDirection: 'row',\n },\n pickerView: {\n overflowX: 'hidden',\n minHeight: VIEW_HEIGHT,\n minWidth: DIALOG_WIDTH,\n maxWidth: DIALOG_WIDTH_WIDER,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n pickerViewLandscape: {\n padding: '0 8px',\n },\n },\n { name: 'MuiPickersBasePicker' }\n);\n\nexport const Picker: React.FunctionComponent = ({\n date,\n views,\n disableToolbar,\n onChange,\n openTo,\n minDate: unparsedMinDate,\n maxDate: unparsedMaxDate,\n ToolbarComponent,\n orientation,\n ...rest\n}) => {\n const utils = useUtils();\n const classes = useStyles();\n const isLandscape = useIsLandscape(orientation);\n const { openView, setOpenView, handleChangeAndOpenNext } = useViews(views, openTo, onChange);\n\n const minDate = React.useMemo(() => utils.date(unparsedMinDate)!, [unparsedMinDate, utils]);\n const maxDate = React.useMemo(() => utils.date(unparsedMaxDate)!, [unparsedMaxDate, utils]);\n\n return (\n \n {!disableToolbar && (\n \n )}\n\n
\n {openView === 'year' && (\n \n )}\n\n {openView === 'month' && (\n \n )}\n\n {openView === 'date' && (\n \n )}\n\n {(openView === 'hours' || openView === 'minutes' || openView === 'seconds') && (\n \n )}\n
\n
\n );\n};\n\nPicker.defaultProps = {\n ...datePickerDefaultProps,\n views: Object.keys(viewsMap),\n} as any;\n","import * as React from 'react';\nimport { PickerView } from '../../Picker/Picker';\nimport { arrayIncludes } from '../../_helpers/utils';\nimport { MaterialUiPickersDate } from '../../typings/date';\n\nexport function useViews(\n views: PickerView[],\n openTo: PickerView,\n onChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void\n) {\n const [openView, setOpenView] = React.useState(\n openTo && arrayIncludes(views, openTo) ? openTo : views[0]\n );\n\n const handleChangeAndOpenNext = React.useCallback(\n (date: MaterialUiPickersDate, isFinish?: boolean) => {\n const nextViewToOpen = views[views.indexOf(openView!) + 1];\n if (isFinish && nextViewToOpen) {\n // do not close picker if needs to show next view\n onChange(date, false);\n setOpenView(nextViewToOpen);\n return;\n }\n\n onChange(date, Boolean(isFinish));\n },\n [onChange, openView, views]\n );\n\n return { handleChangeAndOpenNext, openView, setOpenView };\n}\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\nimport { ExtendMui } from '../typings/extendMui';\nimport { makeStyles, fade } from '@material-ui/core/styles';\n\nexport interface ToolbarTextProps extends ExtendMui {\n selected?: boolean;\n label: string;\n}\n\nexport const useStyles = makeStyles(\n theme => {\n const textColor =\n theme.palette.type === 'light'\n ? theme.palette.primary.contrastText\n : theme.palette.getContrastText(theme.palette.background.default);\n\n return {\n toolbarTxt: {\n color: fade(textColor, 0.54),\n },\n toolbarBtnSelected: {\n color: textColor,\n },\n };\n },\n { name: 'MuiPickersToolbarText' }\n);\n\nconst ToolbarText: React.FunctionComponent = ({\n selected,\n label,\n className = null,\n ...other\n}) => {\n const classes = useStyles();\n return (\n \n );\n};\n\nexport default ToolbarText;\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ToolbarText from './ToolbarText';\nimport Button, { ButtonProps } from '@material-ui/core/Button';\nimport { ExtendMui } from '../typings/extendMui';\nimport { TypographyProps } from '@material-ui/core/Typography';\nimport { createStyles, withStyles, WithStyles } from '@material-ui/core/styles';\n\nexport interface ToolbarButtonProps\n extends ExtendMui,\n WithStyles {\n variant: TypographyProps['variant'];\n selected: boolean;\n label: string;\n align?: TypographyProps['align'];\n typographyClassName?: string;\n}\n\nconst ToolbarButton: React.FunctionComponent = ({\n classes,\n className = null,\n label,\n selected,\n variant,\n align,\n typographyClassName,\n ...other\n}) => {\n return (\n \n );\n};\n\n(ToolbarButton as any).propTypes = {\n selected: PropTypes.bool.isRequired,\n label: PropTypes.string.isRequired,\n classes: PropTypes.any.isRequired,\n className: PropTypes.string,\n innerRef: PropTypes.any,\n};\n\nToolbarButton.defaultProps = {\n className: '',\n};\n\nexport const styles = createStyles({\n toolbarBtn: {\n padding: 0,\n minWidth: '16px',\n textTransform: 'none',\n },\n});\n\nexport default withStyles(styles, { name: 'MuiPickersToolbarButton' })(ToolbarButton);\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport Toolbar, { ToolbarProps } from '@material-ui/core/Toolbar';\nimport { ExtendMui } from '../typings/extendMui';\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(\n theme => ({\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n height: 100,\n backgroundColor:\n theme.palette.type === 'light'\n ? theme.palette.primary.main\n : theme.palette.background.default,\n },\n toolbarLandscape: {\n height: 'auto',\n maxWidth: 150,\n padding: 8,\n justifyContent: 'flex-start',\n },\n }),\n { name: 'MuiPickersToolbar' }\n);\n\ninterface PickerToolbarProps extends ExtendMui {\n isLandscape: boolean;\n}\n\nconst PickerToolbar: React.SFC = ({\n children,\n isLandscape,\n className = null,\n ...other\n}) => {\n const classes = useStyles();\n\n return (\n \n {children}\n \n );\n};\n\nexport default PickerToolbar;\n","import * as React from 'react';\nimport TextField, { BaseTextFieldProps, TextFieldProps } from '@material-ui/core/TextField';\nimport { ExtendMui } from '../typings/extendMui';\n\nexport type NotOverridableProps =\n | 'openPicker'\n | 'inputValue'\n | 'onChange'\n | 'format'\n | 'validationError'\n | 'format'\n | 'forwardedRef';\n\nexport interface PureDateInputProps\n extends ExtendMui {\n /** Pass material-ui text field variant down, bypass internal variant prop */\n inputVariant?: TextFieldProps['variant'];\n /** Override input component */\n TextFieldComponent?: React.ComponentType;\n InputProps?: TextFieldProps['InputProps'];\n inputProps?: TextFieldProps['inputProps'];\n onBlur?: TextFieldProps['onBlur'];\n onFocus?: TextFieldProps['onFocus'];\n inputValue: string;\n validationError?: React.ReactNode;\n openPicker: () => void;\n}\n\nexport const PureDateInput: React.FC = ({\n inputValue,\n inputVariant,\n validationError,\n InputProps,\n openPicker: onOpen,\n TextFieldComponent = TextField,\n ...other\n}) => {\n const PureDateInputProps = React.useMemo(\n () => ({\n ...InputProps,\n readOnly: true,\n }),\n [InputProps]\n );\n\n return (\n {\n // space\n if (e.keyCode === 32) {\n e.stopPropagation();\n onOpen();\n }\n }}\n />\n );\n};\n\nPureDateInput.displayName = 'PureDateInput';\n","import React from 'react';\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\n\nexport const KeyboardIcon: React.SFC = props => {\n return (\n \n \n \n \n );\n};\n","import { Omit } from './utils';\nimport { DatePickerProps } from '..';\nimport { IUtils } from '@date-io/core/IUtils';\nimport { ParsableDate } from '../constants/prop-types';\nimport { BasePickerProps } from '../typings/BasePicker';\n\nexport const getDisplayDate = (\n value: ParsableDate,\n format: string,\n utils: IUtils,\n isEmpty: boolean,\n { invalidLabel, emptyLabel, labelFunc }: Omit\n) => {\n const date = utils.date(value);\n if (labelFunc) {\n return labelFunc(isEmpty ? null : date, invalidLabel!);\n }\n\n if (isEmpty) {\n return emptyLabel || '';\n }\n\n return utils.isValid(date) ? utils.format(date, format) : invalidLabel!;\n};\n\nexport interface BaseValidationProps {\n /**\n * Message, appearing when date cannot be parsed\n * @default 'Invalid Date Format'\n */\n invalidDateMessage?: React.ReactNode;\n}\n\nexport interface DateValidationProps extends BaseValidationProps {\n /**\n * Error message, shown if date is less then minimal date\n * @default 'Date should not be before minimal date'\n */\n minDateMessage?: React.ReactNode;\n /**\n * Error message, shown if date is more then maximal date\n * @default 'Date should not be after maximal date'\n */\n maxDateMessage?: React.ReactNode;\n}\n\nconst getComparisonMaxDate = (utils: IUtils, strictCompareDates: boolean, date: Date) => {\n if (strictCompareDates) {\n return date;\n }\n\n return utils.endOfDay(date);\n};\n\nconst getComparisonMinDate = (utils: IUtils, strictCompareDates: boolean, date: Date) => {\n if (strictCompareDates) {\n return date;\n }\n\n return utils.startOfDay(date);\n};\n\nexport const validate = (\n value: ParsableDate,\n utils: IUtils,\n {\n maxDate,\n minDate,\n disablePast,\n disableFuture,\n maxDateMessage,\n minDateMessage,\n invalidDateMessage,\n strictCompareDates,\n }: Omit // DateTimePicker doesn't support\n): React.ReactNode => {\n const parsedValue = utils.date(value);\n\n // if null - do not show error\n if (value === null) {\n return '';\n }\n\n if (!utils.isValid(value)) {\n return invalidDateMessage;\n }\n\n if (\n maxDate &&\n utils.isAfter(\n parsedValue,\n getComparisonMaxDate(utils, !!strictCompareDates, utils.date(maxDate))\n )\n ) {\n return maxDateMessage;\n }\n\n if (\n disableFuture &&\n utils.isAfter(parsedValue, getComparisonMaxDate(utils, !!strictCompareDates, utils.date()))\n ) {\n return maxDateMessage;\n }\n\n if (\n minDate &&\n utils.isBefore(\n parsedValue,\n getComparisonMinDate(utils, !!strictCompareDates, utils.date(minDate))\n )\n ) {\n return minDateMessage;\n }\n if (\n disablePast &&\n utils.isBefore(parsedValue, getComparisonMinDate(utils, !!strictCompareDates, utils.date()))\n ) {\n return minDateMessage;\n }\n\n return '';\n};\n\nexport function pick12hOr24hFormat(\n userFormat: string | undefined,\n ampm: boolean | undefined = true,\n formats: { '12h': string; '24h': string }\n) {\n if (userFormat) {\n return userFormat;\n }\n\n return ampm ? formats['12h'] : formats['24h'];\n}\n\nexport function makeMaskFromFormat(format: string, numberMaskChar: string) {\n return format.replace(/[a-z]/gi, numberMaskChar);\n}\n\nexport const maskedDateFormatter = (mask: string, numberMaskChar: string, refuse: RegExp) => (\n value: string\n) => {\n let result = '';\n const parsed = value.replace(refuse, '');\n\n if (parsed === '') {\n return parsed;\n }\n\n let i = 0;\n let n = 0;\n while (i < mask.length) {\n const maskChar = mask[i];\n if (maskChar === numberMaskChar && n < parsed.length) {\n const parsedChar = parsed[n];\n result += parsedChar;\n n += 1;\n } else {\n result += maskChar;\n }\n i += 1;\n }\n\n return result;\n};\n","import * as React from 'react';\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton';\nimport InputAdornment, { InputAdornmentProps } from '@material-ui/core/InputAdornment';\nimport TextField, { BaseTextFieldProps, TextFieldProps } from '@material-ui/core/TextField';\nimport { Rifm } from 'rifm';\nimport { ExtendMui } from '../typings/extendMui';\nimport { KeyboardIcon } from './icons/KeyboardIcon';\nimport { makeMaskFromFormat, maskedDateFormatter } from '../_helpers/text-field-helper';\n\nexport interface KeyboardDateInputProps\n extends ExtendMui {\n format: string;\n onChange: (value: string | null) => void;\n openPicker: () => void;\n validationError?: React.ReactNode;\n inputValue: string;\n inputProps?: TextFieldProps['inputProps'];\n InputProps?: TextFieldProps['InputProps'];\n onBlur?: TextFieldProps['onBlur'];\n onFocus?: TextFieldProps['onFocus'];\n /** Override input component */\n TextFieldComponent?: React.ComponentType;\n /** Icon displaying for open picker button */\n keyboardIcon?: React.ReactNode;\n /** Pass material-ui text field variant down, bypass internal variant prop */\n inputVariant?: TextFieldProps['variant'];\n /**\n * Custom mask. Can be used to override generate from format. (e.g. __/__/____ __:__)\n */\n mask?: string;\n /**\n * Char string that will be replaced with number (for \"_\" mask will be \"__/__/____\")\n * @default '_'\n */\n maskChar?: string;\n /**\n * Refuse values regexp\n * @default /[^\\d]+/gi\n */\n refuse?: RegExp;\n /**\n * Props to pass to keyboard input adornment\n * @type {Partial}\n */\n InputAdornmentProps?: Partial;\n /**\n * Props to pass to keyboard adornment button\n * @type {Partial}\n */\n KeyboardButtonProps?: Partial;\n /** Custom formatter to be passed into Rifm component */\n rifmFormatter?: (str: string) => string;\n}\n\nexport const KeyboardDateInput: React.FunctionComponent = ({\n inputValue,\n inputVariant,\n validationError,\n KeyboardButtonProps,\n InputAdornmentProps,\n openPicker: onOpen,\n onChange,\n InputProps,\n mask,\n maskChar = '_',\n refuse = /[^\\d]+/gi,\n format,\n keyboardIcon,\n disabled,\n rifmFormatter,\n TextFieldComponent = TextField,\n ...other\n}) => {\n const inputMask = mask || makeMaskFromFormat(format, maskChar);\n // prettier-ignore\n const formatter = React.useMemo(\n () => maskedDateFormatter(inputMask, maskChar, refuse),\n [inputMask, maskChar, refuse]\n );\n\n const position =\n InputAdornmentProps && InputAdornmentProps.position ? InputAdornmentProps.position : 'end';\n\n const handleChange = (text: string) => {\n const finalString = text === '' || text === inputMask ? null : text;\n onChange(finalString);\n };\n\n return (\n \n {({ onChange, value }) => (\n \n \n {keyboardIcon}\n \n \n ),\n }}\n />\n )}\n \n );\n};\n\nKeyboardDateInput.defaultProps = {\n keyboardIcon: ,\n};\n\nexport default KeyboardDateInput;\n","import { useUtils } from './useUtils';\nimport { IUtils } from '@date-io/core/IUtils';\nimport { useOpenState } from './useOpenState';\nimport { MaterialUiPickersDate } from '../../typings/date';\nimport { BasePickerProps } from '../../typings/BasePicker';\nimport { getDisplayDate, validate } from '../../_helpers/text-field-helper';\nimport { useCallback, useDebugValue, useEffect, useMemo, useState, useRef } from 'react';\n\nexport interface StateHookOptions {\n getDefaultFormat: () => string;\n}\n\nconst useValueToDate = (\n utils: IUtils,\n { value, initialFocusedDate }: BasePickerProps\n) => {\n const nowRef = useRef(utils.date());\n const date = utils.date(value || initialFocusedDate || nowRef.current);\n\n return date && utils.isValid(date) ? date : nowRef.current;\n};\n\nfunction useDateValues(props: BasePickerProps, options: StateHookOptions) {\n const utils = useUtils();\n const date = useValueToDate(utils, props);\n const format = props.format || options.getDefaultFormat();\n\n return { date, format };\n}\n\nexport function usePickerState(props: BasePickerProps, options: StateHookOptions) {\n const { autoOk, disabled, readOnly, onAccept, onChange, onError, value, variant } = props;\n\n const utils = useUtils();\n const { isOpen, setIsOpen } = useOpenState(props);\n const { date, format } = useDateValues(props, options);\n const [pickerDate, setPickerDate] = useState(date);\n\n useEffect(() => {\n // if value was changed in closed state - treat it as accepted\n if (!isOpen && !utils.isEqual(pickerDate, date)) {\n setPickerDate(date);\n }\n }, [date, isOpen, pickerDate, utils]);\n\n const acceptDate = useCallback(\n (acceptedDate: MaterialUiPickersDate) => {\n onChange(acceptedDate);\n if (onAccept) {\n onAccept(acceptedDate);\n }\n\n setIsOpen(false);\n },\n [onAccept, onChange, setIsOpen]\n );\n\n const wrapperProps = useMemo(\n () => ({\n format,\n open: isOpen,\n onClear: () => acceptDate(null),\n onAccept: () => acceptDate(pickerDate),\n onSetToday: () => setPickerDate(utils.date()),\n onDismiss: () => {\n setIsOpen(false);\n },\n }),\n [acceptDate, format, isOpen, pickerDate, setIsOpen, utils]\n );\n\n const pickerProps = useMemo(\n () => ({\n date: pickerDate,\n onChange: (newDate: MaterialUiPickersDate, isFinish = true) => {\n setPickerDate(newDate);\n\n if (isFinish && autoOk) {\n acceptDate(newDate);\n return;\n }\n\n // simulate autoOk, but do not close the modal\n if (variant === 'inline' || variant === 'static') {\n onChange(newDate);\n onAccept && onAccept(newDate);\n }\n },\n }),\n [acceptDate, autoOk, onAccept, onChange, pickerDate, variant]\n );\n\n const validationError = validate(value, utils, props);\n useEffect(() => {\n if (onError) {\n onError(validationError, value);\n }\n }, [onError, validationError, value]);\n\n const inputValue = getDisplayDate(date, format, utils, value === null, props);\n const inputProps = useMemo(\n () => ({\n inputValue,\n validationError,\n openPicker: () => !readOnly && !disabled && setIsOpen(true),\n }),\n [disabled, inputValue, readOnly, setIsOpen, validationError]\n );\n\n const pickerState = { pickerProps, inputProps, wrapperProps };\n\n useDebugValue(pickerState);\n return pickerState;\n}\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport { BasePickerProps } from '../../typings/BasePicker';\nimport { useCallback, useState, Dispatch, SetStateAction } from 'react';\n\nexport function useOpenState({ open, onOpen, onClose }: BasePickerProps) {\n let setIsOpenState: null | Dispatch> = null;\n if (open === undefined || open === null) {\n // The component is uncontrolled, so we need to give it its own state.\n [open, setIsOpenState] = useState(false);\n }\n\n // prettier-ignore\n const setIsOpen = useCallback((newIsOpen: boolean) => {\n setIsOpenState && setIsOpenState(newIsOpen);\n\n return newIsOpen\n ? onOpen && onOpen()\n : onClose && onClose();\n }, [onOpen, onClose, setIsOpenState]);\n\n return { isOpen: open, setIsOpen };\n}\n","import { useUtils } from './useUtils';\nimport { Omit } from '../../_helpers/utils';\nimport { IUtils } from '@date-io/core/IUtils';\nimport { BasePickerProps } from '../../typings/BasePicker';\nimport { MaterialUiPickersDate } from '../../typings/date';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { getDisplayDate } from '../../_helpers/text-field-helper';\nimport { StateHookOptions, usePickerState } from './usePickerState';\n\nexport interface BaseKeyboardPickerProps extends Omit {\n /** String value for controlling value with pure input string. Overrides value prop */\n inputValue?: string;\n /** Keyboard onChange callback @DateIOType */\n onChange: (date: MaterialUiPickersDate | null, value?: string | null) => void;\n}\n\nfunction parseInputString(value: string, utils: IUtils, format: string) {\n try {\n return utils.parse(value, format);\n } catch {\n return null;\n }\n}\n\nexport function useKeyboardPickerState(props: BaseKeyboardPickerProps, options: StateHookOptions) {\n const { format = options.getDefaultFormat(), inputValue, onChange, value } = props;\n const utils = useUtils();\n\n const displayDate = getDisplayDate(value, format, utils, value === null, props);\n const [innerInputValue, setInnerInputValue] = useState(displayDate);\n const dateValue = inputValue ? parseInputString(inputValue, utils, format) : value;\n\n useEffect(() => {\n if (value === null || utils.isValid(value)) {\n setInnerInputValue(displayDate);\n }\n }, [displayDate, setInnerInputValue, utils, value]);\n\n const handleKeyboardChange = useCallback(\n (date: MaterialUiPickersDate) => {\n onChange(date, date === null ? null : utils.format(date, format));\n },\n [format, onChange, utils]\n );\n\n const { inputProps: innerInputProps, wrapperProps, pickerProps } = usePickerState(\n // Extend props interface\n { ...props, value: dateValue, onChange: handleKeyboardChange },\n options\n );\n\n const inputProps = useMemo(\n () => ({\n ...innerInputProps, // reuse validation and open/close logic\n format: wrapperProps.format,\n inputValue: inputValue || innerInputValue,\n onChange: (value: string | null) => {\n setInnerInputValue(value || '');\n const date = value === null ? null : utils.parse(value, wrapperProps.format);\n\n onChange(date, value);\n },\n }),\n [innerInputProps, innerInputValue, inputValue, onChange, utils, wrapperProps.format]\n );\n\n return {\n inputProps,\n wrapperProps,\n pickerProps,\n };\n}\n","import * as React from 'react';\nimport { BasePickerProps } from '../typings/BasePicker';\nimport { Picker, ToolbarComponentProps } from './Picker';\nimport { ExtendWrapper, Wrapper } from '../wrappers/Wrapper';\nimport { PureDateInputProps } from '../_shared/PureDateInput';\nimport { DateValidationProps } from '../_helpers/text-field-helper';\nimport { KeyboardDateInputProps } from '../_shared/KeyboardDateInput';\nimport { StateHookOptions, usePickerState } from '../_shared/hooks/usePickerState';\nimport {\n BaseKeyboardPickerProps,\n useKeyboardPickerState,\n} from '../_shared/hooks/useKeyboardPickerState';\n\nexport type WithKeyboardInputProps = DateValidationProps &\n BaseKeyboardPickerProps &\n ExtendWrapper;\n\nexport type WithPureInputProps = DateValidationProps &\n BasePickerProps &\n ExtendWrapper;\n\nexport interface MakePickerOptions {\n Input: any;\n useState: typeof usePickerState | typeof useKeyboardPickerState;\n useOptions: (props: any) => StateHookOptions;\n getCustomProps?: (props: T) => Partial;\n DefaultToolbarComponent: React.ComponentType;\n}\n\nexport function makePickerWithState({\n Input,\n useState,\n useOptions,\n getCustomProps,\n DefaultToolbarComponent,\n}: MakePickerOptions): React.FC {\n function PickerWithState(props: T) {\n const {\n allowKeyboardControl,\n ampm,\n animateYearScrolling,\n autoOk,\n dateRangeIcon,\n disableFuture,\n disablePast,\n disableToolbar,\n emptyLabel,\n format,\n forwardedRef,\n hideTabs,\n initialFocusedDate,\n invalidDateMessage,\n invalidLabel,\n labelFunc,\n leftArrowButtonProps,\n leftArrowIcon,\n loadingIndicator,\n maxDate,\n maxDateMessage,\n minDate,\n minDateMessage,\n minutesStep,\n onAccept,\n onChange,\n onClose,\n onMonthChange,\n onOpen,\n onYearChange,\n openTo,\n orientation,\n renderDay,\n rightArrowButtonProps,\n rightArrowIcon,\n shouldDisableDate,\n strictCompareDates,\n timeIcon,\n ToolbarComponent = DefaultToolbarComponent,\n value,\n variant,\n views,\n ...other\n } = props;\n\n const injectedProps = getCustomProps ? getCustomProps(props) : {};\n\n const options = useOptions(props);\n const { pickerProps, inputProps, wrapperProps } = useState(props as any, options);\n\n return (\n \n \n \n );\n }\n\n return PickerWithState;\n}\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport ClockType from '../constants/ClockType';\nimport ToolbarText from '../_shared/ToolbarText';\nimport ToolbarButton from '../_shared/ToolbarButton';\nimport PickerToolbar from '../_shared/PickerToolbar';\nimport { arrayIncludes } from '../_helpers/utils';\nimport { useUtils } from '../_shared/hooks/useUtils';\nimport { MaterialUiPickersDate } from '../typings/date';\nimport { ToolbarComponentProps } from '../Picker/Picker';\nimport { useTheme, makeStyles } from '@material-ui/core/styles';\nimport { convertToMeridiem, getMeridiem } from '../_helpers/time-utils';\n\nexport const useStyles = makeStyles(\n {\n toolbarLandscape: {\n flexWrap: 'wrap',\n },\n toolbarAmpmLeftPadding: {\n paddingLeft: 50,\n },\n separator: {\n margin: '0 4px 0 2px',\n cursor: 'default',\n },\n hourMinuteLabel: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n },\n hourMinuteLabelAmpmLandscape: {\n marginTop: 'auto',\n },\n hourMinuteLabelReverse: {\n flexDirection: 'row-reverse',\n },\n ampmSelection: {\n marginLeft: 20,\n marginRight: -20,\n display: 'flex',\n flexDirection: 'column',\n },\n ampmLandscape: {\n margin: '4px 0 auto',\n flexDirection: 'row',\n justifyContent: 'space-around',\n flexBasis: '100%',\n },\n ampmSelectionWithSeconds: {\n marginLeft: 15,\n marginRight: 10,\n },\n ampmLabel: {\n fontSize: 18,\n },\n },\n { name: 'MuiPickersTimePickerToolbar' }\n);\n\nexport function useMeridiemMode(\n date: MaterialUiPickersDate,\n ampm: boolean | undefined,\n onChange: (date: MaterialUiPickersDate, isFinished?: boolean | undefined) => void\n) {\n const utils = useUtils();\n const meridiemMode = getMeridiem(date, utils);\n\n const handleMeridiemChange = React.useCallback(\n (mode: 'am' | 'pm') => {\n const timeWithMeridiem = convertToMeridiem(date, mode, Boolean(ampm), utils);\n onChange(timeWithMeridiem, false);\n },\n [ampm, date, onChange, utils]\n );\n\n return { meridiemMode, handleMeridiemChange };\n}\n\nexport const TimePickerToolbar: React.FC = ({\n date,\n views,\n ampm,\n openView,\n onChange,\n isLandscape,\n setOpenView,\n}) => {\n const utils = useUtils();\n const theme = useTheme();\n const classes = useStyles();\n const { meridiemMode, handleMeridiemChange } = useMeridiemMode(date, ampm, onChange);\n\n const clockTypographyVariant = isLandscape ? 'h3' : 'h2';\n\n return (\n \n \n {arrayIncludes(views, 'hours') && (\n setOpenView(ClockType.HOURS)}\n selected={openView === ClockType.HOURS}\n label={utils.getHourText(date, Boolean(ampm))}\n />\n )}\n\n {arrayIncludes(views, ['hours', 'minutes']) && (\n \n )}\n\n {arrayIncludes(views, 'minutes') && (\n setOpenView(ClockType.MINUTES)}\n selected={openView === ClockType.MINUTES}\n label={utils.getMinuteText(date)}\n />\n )}\n\n {arrayIncludes(views, ['minutes', 'seconds']) && (\n \n )}\n\n {arrayIncludes(views, 'seconds') && (\n setOpenView(ClockType.SECONDS)}\n selected={openView === ClockType.SECONDS}\n label={utils.getSecondText(date)}\n />\n )}\n
\n\n {ampm && (\n \n handleMeridiemChange('am')}\n />\n\n handleMeridiemChange('pm')}\n />\n
\n )}\n \n );\n};\n\nexport default TimePickerToolbar;\n","import * as React from 'react';\nimport Tab from '@material-ui/core/Tab';\nimport Tabs from '@material-ui/core/Tabs';\nimport Paper from '@material-ui/core/Paper';\nimport { TimeIcon } from '../_shared/icons/TimeIcon';\nimport { DateTimePickerView } from './DateTimePicker';\nimport { DateRangeIcon } from '../_shared/icons/DateRangeIcon';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nconst viewToTabIndex = (openView: DateTimePickerView) => {\n if (openView === 'date' || openView === 'year') {\n return 'date';\n }\n\n return 'time';\n};\n\nconst tabIndexToView = (tab: DateTimePickerView) => {\n if (tab === 'date') {\n return 'date';\n }\n\n return 'hours';\n};\n\nexport interface DateTimePickerTabsProps {\n view: DateTimePickerView;\n onChange: (view: DateTimePickerView) => void;\n dateRangeIcon?: React.ReactNode;\n timeIcon?: React.ReactNode;\n}\n\nexport const useStyles = makeStyles(\n theme => {\n // prettier-ignore\n const tabsBackground = theme.palette.type === 'light'\n ? theme.palette.primary.main\n : theme.palette.background.default;\n\n return {\n tabs: {\n color: theme.palette.getContrastText(tabsBackground),\n backgroundColor: tabsBackground,\n },\n };\n },\n { name: 'MuiPickerDTTabs' }\n);\n\nexport const DateTimePickerTabs: React.SFC = ({\n view,\n onChange,\n dateRangeIcon,\n timeIcon,\n}) => {\n const classes = useStyles();\n const theme = useTheme();\n const indicatorColor = theme.palette.type === 'light' ? 'secondary' : 'primary';\n const handleChange = (e: React.ChangeEvent<{}>, value: DateTimePickerView) => {\n if (value !== viewToTabIndex(view)) {\n onChange(tabIndexToView(value));\n }\n };\n\n return (\n \n \n {dateRangeIcon}} />\n {timeIcon}} />\n \n \n );\n};\n\nDateTimePickerTabs.defaultProps = {\n dateRangeIcon: ,\n timeIcon: ,\n};\n\nexport default DateTimePickerTabs;\n","import React from 'react';\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\n\nexport const DateRangeIcon: React.SFC = props => {\n return (\n \n \n \n \n );\n};\n","import React from 'react';\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\n\nexport const TimeIcon: React.SFC = props => {\n return (\n \n \n \n \n \n );\n};\n","import * as React from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport ToolbarText from '../_shared/ToolbarText';\nimport PickerToolbar from '../_shared/PickerToolbar';\nimport ToolbarButton from '../_shared/ToolbarButton';\nimport DateTimePickerTabs from './DateTimePickerTabs';\nimport { useUtils } from '../_shared/hooks/useUtils';\nimport { DateTimePickerView } from './DateTimePicker';\nimport { ToolbarComponentProps } from '../Picker/Picker';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport { useMeridiemMode } from '../TimePicker/TimePickerToolbar';\n\nexport const useStyles = makeStyles(\n _ => ({\n toolbar: {\n paddingLeft: 16,\n paddingRight: 16,\n justifyContent: 'space-around',\n },\n separator: {\n margin: '0 4px 0 2px',\n cursor: 'default',\n },\n }),\n { name: 'MuiPickerDTToolbar' }\n);\n\nexport const DateTimePickerToolbar: React.FC = ({\n date,\n openView,\n setOpenView,\n ampm,\n hideTabs,\n dateRangeIcon,\n timeIcon,\n onChange,\n}) => {\n const utils = useUtils();\n const classes = useStyles();\n const showTabs = !hideTabs && typeof window !== 'undefined' && window.innerHeight > 667;\n const { meridiemMode, handleMeridiemChange } = useMeridiemMode(date, ampm, onChange);\n const theme = useTheme();\n const rtl = theme.direction === 'rtl';\n\n return (\n <>\n \n \n \n
\n setOpenView('year')}\n selected={openView === 'year'}\n label={utils.getYearText(date)}\n />\n
\n
\n setOpenView('date')}\n selected={openView === 'date'}\n label={utils.getDateTimePickerHeaderText(date)}\n />\n
\n
\n\n \n setOpenView('hours')}\n selected={openView === 'hours'}\n label={utils.getHourText(date, ampm!)}\n />\n\n \n\n setOpenView('minutes')}\n selected={openView === 'minutes'}\n label={utils.getMinuteText(date)}\n />\n
\n\n {ampm && (\n \n handleMeridiemChange('am')}\n />\n\n handleMeridiemChange('pm')}\n />\n \n )}\n \n
\n\n {showTabs && (\n \n )}\n \n );\n};\n","import { useUtils } from '../_shared/hooks/useUtils';\nimport { PureDateInput } from '../_shared/PureDateInput';\nimport { BaseTimePickerProps } from '../TimePicker/TimePicker';\nimport { BaseDatePickerProps } from '../DatePicker/DatePicker';\nimport { DateTimePickerToolbar } from './DateTimePickerToolbar';\nimport { KeyboardDateInput } from '../_shared/KeyboardDateInput';\nimport { usePickerState } from '../_shared/hooks/usePickerState';\nimport { pick12hOr24hFormat } from '../_helpers/text-field-helper';\nimport { dateTimePickerDefaultProps } from '../constants/prop-types';\nimport { useKeyboardPickerState } from '../_shared/hooks/useKeyboardPickerState';\nimport {\n WithKeyboardInputProps,\n makePickerWithState,\n WithPureInputProps,\n} from '../Picker/makePickerWithState';\n\nexport type DateTimePickerView = 'year' | 'date' | 'month' | 'hours' | 'minutes';\n\nexport type BaseDateTimePickerProps = BaseTimePickerProps & BaseDatePickerProps;\n\nexport interface DateTimePickerViewsProps extends BaseDateTimePickerProps {\n /** Array of views to show */\n views?: ('year' | 'date' | 'month' | 'hours' | 'minutes')[];\n /** First view to show in DatePicker */\n openTo?: 'year' | 'date' | 'month' | 'hours' | 'minutes';\n /** To show tabs */\n hideTabs?: boolean;\n /** Date tab icon */\n dateRangeIcon?: React.ReactNode;\n /** Time tab icon */\n timeIcon?: React.ReactNode;\n}\n\nexport type DateTimePickerProps = WithPureInputProps & DateTimePickerViewsProps;\n\nexport type KeyboardDateTimePickerProps = WithKeyboardInputProps & DateTimePickerViewsProps;\n\nconst defaultProps = {\n ...dateTimePickerDefaultProps,\n wider: true,\n orientation: 'portrait' as const,\n openTo: 'date' as DateTimePickerView,\n views: ['year', 'date', 'hours', 'minutes'] as DateTimePickerView[],\n};\n\nfunction useOptions(props: DateTimePickerProps | KeyboardDateTimePickerProps) {\n const utils = useUtils();\n\n if (props.orientation !== 'portrait') {\n throw new Error('We are not supporting custom orientation for DateTimePicker yet :(');\n }\n\n return {\n getDefaultFormat: () =>\n pick12hOr24hFormat(props.format, props.ampm, {\n '12h': utils.dateTime12hFormat,\n '24h': utils.dateTime24hFormat,\n }),\n };\n}\n\nexport const DateTimePicker = makePickerWithState({\n useOptions,\n Input: PureDateInput,\n useState: usePickerState,\n DefaultToolbarComponent: DateTimePickerToolbar,\n});\n\nexport const KeyboardDateTimePicker = makePickerWithState({\n useOptions,\n Input: KeyboardDateInput,\n useState: useKeyboardPickerState,\n DefaultToolbarComponent: DateTimePickerToolbar,\n getCustomProps: props => ({\n refuse: props.ampm ? /[^\\dap]+/gi : /[^\\d]+/gi,\n }),\n});\n\nDateTimePicker.defaultProps = defaultProps;\n\nKeyboardDateTimePicker.defaultProps = defaultProps;\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport ToolbarButton from '../_shared/ToolbarButton';\nimport PickerToolbar from '../_shared/PickerToolbar';\nimport { useUtils } from '../_shared/hooks/useUtils';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ToolbarComponentProps } from '../Picker/Picker';\nimport { isYearAndMonthViews, isYearOnlyView } from '../_helpers/date-utils';\n\nexport const useStyles = makeStyles(\n {\n toolbar: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n toolbarLandscape: {\n padding: 16,\n },\n dateLandscape: {\n marginRight: 16,\n },\n },\n { name: 'MuiPickersDatePickerRoot' }\n);\n\nexport const DatePickerToolbar: React.FC = ({\n date,\n views,\n setOpenView,\n isLandscape,\n openView,\n}) => {\n const utils = useUtils();\n const classes = useStyles();\n\n const isYearOnly = React.useMemo(() => isYearOnlyView(views as any), [views]);\n const isYearAndMonth = React.useMemo(() => isYearAndMonthViews(views as any), [views]);\n\n return (\n \n setOpenView('year')}\n selected={openView === 'year'}\n label={utils.getYearText(date)}\n />\n\n {!isYearOnly && !isYearAndMonth && (\n setOpenView('date')}\n align={isLandscape ? 'left' : 'center'}\n label={utils.getDatePickerHeaderText(date)}\n className={clsx({ [classes.dateLandscape]: isLandscape })}\n />\n )}\n\n {isYearAndMonth && (\n setOpenView('month')}\n selected={openView === 'month'}\n label={utils.getMonthText(date)}\n />\n )}\n \n );\n};\n","import { useUtils } from '../_shared/hooks/useUtils';\nimport { MaterialUiPickersDate } from '../typings/date';\nimport { DatePickerToolbar } from './DatePickerToolbar';\nimport { PureDateInput } from '../_shared/PureDateInput';\nimport { getFormatByViews } from '../_helpers/date-utils';\nimport { KeyboardDateInput } from '../_shared/KeyboardDateInput';\nimport { OutterCalendarProps } from '../views/Calendar/Calendar';\nimport { usePickerState } from '../_shared/hooks/usePickerState';\nimport { datePickerDefaultProps, ParsableDate } from '../constants/prop-types';\nimport { useKeyboardPickerState } from '../_shared/hooks/useKeyboardPickerState';\nimport {\n WithKeyboardInputProps,\n WithPureInputProps,\n makePickerWithState,\n} from '../Picker/makePickerWithState';\n\nexport type DatePickerView = 'year' | 'date' | 'month';\n\nexport interface BaseDatePickerProps extends OutterCalendarProps {\n /**\n * Min selectable date\n * @default Date(1900-01-01)\n */\n minDate?: ParsableDate;\n /**\n * Max selectable date\n * @default Date(2100-01-01)\n */\n maxDate?: ParsableDate;\n\n /**\n * Compare dates by the exact timestamp, instead of start/end of date\n * @default false\n */\n strictCompareDates?: boolean;\n\n /**\n * Disable past dates\n * @default false\n */\n disablePast?: boolean;\n /**\n * Disable future dates\n * @default false\n */\n disableFuture?: boolean;\n /**\n * To animate scrolling to current year (using scrollIntoView)\n * @default false\n */\n animateYearScrolling?: boolean;\n /** Callback firing on year change @DateIOType */\n onYearChange?: (date: MaterialUiPickersDate) => void;\n}\n\nexport interface DatePickerViewsProps extends BaseDatePickerProps {\n /**\n * Array of views to show\n * @type {Array<\"year\" | \"date\" | \"month\">}\n */\n views?: DatePickerView[];\n /** First view to show in DatePicker */\n openTo?: DatePickerView;\n}\n\nexport type DatePickerProps = WithPureInputProps & DatePickerViewsProps;\n\nexport type KeyboardDatePickerProps = WithKeyboardInputProps & DatePickerViewsProps;\n\nconst defaultProps = {\n ...datePickerDefaultProps,\n openTo: 'date' as DatePickerView,\n views: ['year', 'date'] as DatePickerView[],\n};\n\nfunction useOptions(props: DatePickerViewsProps) {\n const utils = useUtils();\n\n return {\n getDefaultFormat: () => getFormatByViews(props.views!, utils),\n };\n}\n\nexport const DatePicker = makePickerWithState({\n useOptions,\n Input: PureDateInput,\n useState: usePickerState,\n DefaultToolbarComponent: DatePickerToolbar,\n});\n\nexport const KeyboardDatePicker = makePickerWithState({\n useOptions,\n Input: KeyboardDateInput,\n useState: useKeyboardPickerState,\n DefaultToolbarComponent: DatePickerToolbar,\n});\n\nDatePicker.defaultProps = defaultProps;\n\nKeyboardDatePicker.defaultProps = defaultProps;\n","import { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tdateTitle: {\n\t\t\tfontSize: 16,\n\t\t\tfontWeight: 500,\n\t\t\tmarginBottom: 20\n\t\t},\n\t\tdateInputsBox: {\n\t\t\tdisplay: 'flex',\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tflexDirection: 'column'\n\t\t\t}\n\t\t},\n\t\tdateInputIcon: {\n\t\t\t'& .MuiIconButton-root': {\n\t\t\t\tpadding: '0 !important'\n\t\t\t}\n\t\t},\n\t\tdateInputMargin: {\n\t\t\tmarginRight: 10\n\t\t},\n\t\tdateInput: {\n\t\t\tmarginTop: 0,\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tmarginBottom: 0\n\t\t\t}\n\t\t}\n\t};\n});\n","import DayJsUtils from '@date-io/dayjs';\nimport clsx from 'clsx';\nimport dayjs from 'dayjs';\nimport { Locale } from 'dayjs/locale/*';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\nimport React from 'react';\n\nimport { IconButton, InputAdornment, TextField } from '@material-ui/core';\nimport CalendarIcon from '@material-ui/icons/DateRangeOutlined';\nimport { DatePicker as MUIDatePicker, DateTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\n\nimport { useStyles } from './styles';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\ntype ComponentProps = {\n\tid?: string;\n\tvalue: dayjs.Dayjs | string;\n\tonChange: (date) => void;\n\tinputLabel?: string;\n\ttime?: boolean;\n\tdisablePast?: boolean;\n\tinputClassName?: string;\n\tcancelLabel?: string;\n\tminDate?: any;\n\ttimezoneLabel?: string;\n\tlocale?: Locale;\n\tdisplayElement?: React.ReactElement;\n\topen?: boolean;\n\tcontrolOpenState?: boolean;\n\tzIndex?: number;\n\tonClose?: () => void;\n\tnullable?: boolean;\n};\n\nconst DatePicker = (props: ComponentProps) => {\n\tconst {\n\t\tid,\n\t\tvalue,\n\t\tinputLabel = '',\n\t\tonChange,\n\t\ttime,\n\t\tdisablePast = false,\n\t\tcancelLabel,\n\t\tinputClassName,\n\t\tminDate,\n\t\ttimezoneLabel,\n\t\tlocale,\n\t\tdisplayElement,\n\t\tcontrolOpenState = false,\n\t\topen,\n\t\tzIndex = 1300,\n\t\tonClose,\n\t\tnullable\n\t} = props;\n\n\tconst classes = useStyles();\n\n\tconst onDateChange = React.useCallback(\n\t\t(date: dayjs.Dayjs) => {\n\t\t\tlet formattedDate = date;\n\t\t\tif (timezoneLabel) {\n\t\t\t\tconst noTimezoneDate = date.utc(true).format();\n\t\t\t\tformattedDate = dayjs.tz(noTimezoneDate, timezoneLabel);\n\t\t\t}\n\t\t\tonChange(formattedDate);\n\t\t},\n\t\t[onChange, timezoneLabel]\n\t);\n\n\tconst textField = React.useCallback(\n\t\tprops => {\n\t\t\tif (displayElement) return displayElement;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t\tlabel={nullable && !value ? null : inputLabel}\n\t\t\t\t/>\n\t\t\t);\n\t\t},\n\t\t[displayElement, classes.dateInput, inputClassName, nullable, value, inputLabel]\n\t);\n\n\tconst datePicker = React.useMemo(() => {\n\t\tconst commonProps = {\n\t\t\tid: id || 'dateInput',\n\t\t\tdisablePast: disablePast,\n\t\t\tautoOk: true,\n\t\t\tcancelLabel: cancelLabel || 'Cancel',\n\t\t\tvalue: value ? value : nullable ? null : dayjs(),\n\t\t\tdefaultVale: value ? value : nullable ? null : dayjs(),\n\t\t\tplaceholder: inputLabel,\n\t\t\tclearable: nullable\n\t\t};\n\t\tif (controlOpenState) {\n\t\t\tcommonProps['open'] = open;\n\t\t\tcommonProps['onClose'] = onClose;\n\t\t}\n\t\treturn time ? (\n\t\t\t onDateChange(date)}\n\t\t\t\tTextFieldComponent={textFieldProps => textField(textFieldProps)}\n\t\t\t\tDialogProps={{\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tzIndex\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t) : (\n\t\t\t onDateChange(date)}\n\t\t\t\tTextFieldComponent={textFieldProps => textField(textFieldProps)}\n\t\t\t\tDialogProps={{\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tzIndex\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}, [id, disablePast, cancelLabel, value, nullable, inputLabel, controlOpenState, time, zIndex, minDate, open, onClose, onDateChange, textField]);\n\n\treturn (\n\t\t\n\t\t\t{datePicker}\n\t\t\n\t);\n};\n\nexport default React.memo(DatePicker);\n","import DatePicker from './DatePicker';\n\nexport default DatePicker;\n","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||(new Date).getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","module.exports = require('./dist/InfiniteScroll')\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n negate = require('./negate');\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nmodule.exports = reject;\n","import { gql } from '@apollo/client';\n\nimport { SHOWROOM_INFO, SHOWROOM_SECTION_INFO, SHOWROOM_SECTION_INFO_WITH_ROWMEDIAIDS } from '../queries';\n\nexport const IS_EDITOR_MODE = gql`\n\tquery isEditorMode {\n\t\tshowroom @client {\n\t\t\teditor {\n\t\t\t\tisOpen\n\t\t\t\tshowroomId\n\t\t\t\tstep\n\t\t\t\tcurrentSection\n\t\t\t\tdisplaySectionOptions\n\t\t\t\tshowroomParams {\n\t\t\t\t\tname\n\t\t\t\t\tdownloadEnabled\n\t\t\t\t\tdownloadPdfEnabled\n\t\t\t\t\trequestSamplesEnabled\n\t\t\t\t\tsamplesDepartmentId\n\t\t\t\t\tdisplayHeroMedia\n\t\t\t\t\tdisplayHeroContent\n\t\t\t\t\tlanguage\n\t\t\t\t\tlibrary\n\t\t\t\t\tlibrarySeason\n\t\t\t\t\tlibraryCollection\n\t\t\t\t\theroTitle\n\t\t\t\t\theroContent\n\t\t\t\t\theroFontColor\n\t\t\t\t\theroBackgroundColor\n\t\t\t\t\theroMedia {\n\t\t\t\t\t\tmediaType\n\t\t\t\t\t\tpublicId\n\t\t\t\t\t\tpublicUrl\n\t\t\t\t\t}\n\t\t\t\t\tpdfs {\n\t\t\t\t\t\tmediaType\n\t\t\t\t\t\tpublicId\n\t\t\t\t\t\tpublicUrl\n\t\t\t\t\t\toriginalFilename\n\t\t\t\t\t\tcreatedAt\n\t\t\t\t\t}\n\t\t\t\t\tsections {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tname\n\t\t\t\t\t\trows {\n\t\t\t\t\t\t\tmedias {\n\t\t\t\t\t\t\t\tmediaId\n\t\t\t\t\t\t\t\tmediaType\n\t\t\t\t\t\t\t\tpublicId\n\t\t\t\t\t\t\t\tcloudinaryVersion\n\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\theight\n\t\t\t\t\t\t\t\toriginalFilename\n\t\t\t\t\t\t\t\tcreatedAt\n\t\t\t\t\t\t\t\tisSample\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions {\n\t\t\t\t\t\t\tspacing\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\tdisplayLabel\n\t\t\t\t\t\t\tzoomLayer\n\t\t\t\t\t\t\tproductLayer\n\t\t\t\t\t\t\tproductLayerSettings {\n\t\t\t\t\t\t\t\tgalleriesFields\n\t\t\t\t\t\t\t\tsamplesFields\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tglobalSelectedFilters {\n\t\t\t\t\t\t\t\tgalleriesFields\n\t\t\t\t\t\t\t\tsamplesFields\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\trowMediaIds {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tmediaIds\n\t\t\t\t\t\t}\n\t\t\t\t\t\tloaded\n\t\t\t\t\t\tloading\n\t\t\t\t\t}\n\t\t\t\t\tprContacts {\n\t\t\t\t\t\tname\n\t\t\t\t\t\tjobTitle\n\t\t\t\t\t\temail\n\t\t\t\t\t\tphone\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_SHOWROOM = gql`\n\tmutation createShowroom(\n\t\t$name: String!\n\t\t$params: ShowroomUpdateParams\n\t) {\n\t\tcreateShowroomV2(\n\t\t\tname: $name\n\t\t\tparams: $params\n\t\t) {\n\t\t\t...ShowroomInfo,\n\t\t\tpassword\n\t\t\tsections {\n\t\t\t\t...ShowroomSectionInfo\n\t\t\t}\n\t\t}\n\t}\n\t${SHOWROOM_INFO},\n\t${SHOWROOM_SECTION_INFO}\n`;\n\nexport const UPDATE_SHOWROOM = gql`\n\tmutation updateShowroom(\n\t\t$_id: ID!\n\t\t$name: String!\n\t\t$params: ShowroomUpdateParams\n\t\t$updatePassword: Boolean\n\t) {\n\t\tupdateShowroomV2(\n\t\t\t_id: $_id\n\t\t\tname: $name\n\t\t\tparams: $params\n\t\t\tupdatePassword: $updatePassword\n\t\t) {\n\t\t\t...ShowroomInfo,\n\t\t\tpassword\n\t\t\tsections {\n\t\t\t\t...ShowroomSectionInfoWithRowMediaIds\n\t\t\t}\n\t\t}\n\t}\n\t${SHOWROOM_INFO},\n\t${SHOWROOM_SECTION_INFO_WITH_ROWMEDIAIDS}\n`;\n\nexport const UPLOAD_SHOWROOM_HERO = gql`\n\tmutation uploadShowroomHero {\n\t\tuploadShowroomHero\n\t}\n`;\n\nexport const SELECTED_LIBRARY_MEDIAS_EDITOR = gql`\n\tquery getLibrarySelectedMediasEditor {\n\t\tlibrarySelectedMedias @client {\n\t\t\tid\n\t\t\tmediaType\n\t\t\tname\n\t\t\tcloudinaryId\n\t\t\tcloudinaryVersion\n\t\t\tcreatedAt\n\t\t\twidth\n\t\t\theight\n\t\t\tisSample\n\t\t}\n\t}\n`;\n\nexport const MEDIA_SECTION_SAMPLES_FIELDS = gql`\n\tquery getMediaSectionSamplesFields($ids: [String]!) {\n\t\tmediasAvailableSamplesFields(ids: $ids) {\n\t\t\tname\n\t\t}\n\t}\n`;\n\nexport const MEDIA_SECTION_GALLERIES_FIELDS = gql`\n\tquery getMediaSectionGalleriesFields($ids: [String]!) {\n\t\tmediasAvailableGalleriesFields(ids: $ids) {\n\t\t\tname\n\t\t}\n\t}\n`;\n\nexport const SHOWROOM_CURRENT_SECTION_NUMBER = gql`\n\tquery getShowroomCurrentSectionNumber {\n\t\tshowroom @client {\n\t\t\teditor {\n\t\t\t\tcurrentSection\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const SHOWROOM_SECTION_FILTERS = gql`\n\tquery getShowroomSectionFilters {\n\t\tcurrentShowroomSection @client {\n\t\t\toptions {\n\t\t\t\tglobalSelectedFilters {\n\t\t\t\t\tgalleriesFields\n\t\t\t\t\tsamplesFields\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const SHOWROOM_SECTION_MEDIA_IDS = gql`\n\tquery getShowroomSectionMediasIds {\n\t\tcurrentShowroomSectionMedias @client {\n\t\t\tmediaId\n\t\t}\n\t}\n`;\n\nexport const SHOWROOM_LOADING_MEDIA_FIELDS = gql`\n\tquery getShowroomSectionLoadingMediaFields($id: String!) {\n\t\tshowroomSection(id: $id) @client {\n\t\t\tloading\n\t\t\tloaded\n\t\t\trowMediaIds {\n\t\t\t\tid\n\t\t\t\tmediaIds\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const SHOWROOM_GLOBAL_FILTERS = gql`\n\tquery getShowroomGlobalFilters($mediaIds: [String]!) {\n\t\tshowroomGlobalFilters(mediaIds: $mediaIds) {\n\t\t\tsamplesFilters\n\t\t\tgalleriesFilters\n\t\t}\n\t}\n`;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\n}), 'PlayCircleOutline');\n\nexports.default = _default;","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.DEFAULT_SCROLLING_RESET_TIME_INTERVAL = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _calculateSizeAndPositionDataAndUpdateScrollOffset = _interopRequireDefault(require(\"./utils/calculateSizeAndPositionDataAndUpdateScrollOffset\"));\n\nvar _ScalingCellSizeAndPositionManager = _interopRequireDefault(require(\"./utils/ScalingCellSizeAndPositionManager\"));\n\nvar _createCallbackMemoizer = _interopRequireDefault(require(\"../utils/createCallbackMemoizer\"));\n\nvar _defaultOverscanIndicesGetter = _interopRequireWildcard(require(\"./defaultOverscanIndicesGetter\"));\n\nvar _updateScrollIndexHelper = _interopRequireDefault(require(\"./utils/updateScrollIndexHelper\"));\n\nvar _defaultCellRangeRenderer = _interopRequireDefault(require(\"./defaultCellRangeRenderer\"));\n\nvar _scrollbarSize = _interopRequireDefault(require(\"dom-helpers/scrollbarSize\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _requestAnimationTimeout = require(\"../utils/requestAnimationTimeout\");\n\nvar _types = require(\"./types\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\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) { (0, _defineProperty2[\"default\"])(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\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 */\nvar 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\nexports.DEFAULT_SCROLLING_RESET_TIME_INTERVAL = DEFAULT_SCROLLING_RESET_TIME_INTERVAL;\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 (0, _inherits2[\"default\"])(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 (0, _classCallCheck2[\"default\"])(this, Grid);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Grid).call(this, props));\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_onGridRenderedMemoizer\", (0, _createCallbackMemoizer[\"default\"])());\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_onScrollMemoizer\", (0, _createCallbackMemoizer[\"default\"])(false));\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_deferredInvalidateColumnIndex\", null);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_deferredInvalidateRowIndex\", null);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_recomputeScrollLeftFlag\", false);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_recomputeScrollTopFlag\", false);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_horizontalScrollBarSize\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_verticalScrollBarSize\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_scrollbarPresenceChanged\", false);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_scrollingContainer\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_childrenToDisplay\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_columnStartIndex\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_columnStopIndex\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_rowStartIndex\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_rowStopIndex\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_renderedColumnStartIndex\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_renderedColumnStopIndex\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_renderedRowStartIndex\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_renderedRowStopIndex\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_initialScrollTop\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_initialScrollLeft\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_disablePointerEventsTimeoutId\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_styleCache\", {});\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_cellCache\", {});\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 var columnSizeAndPositionManager = new _ScalingCellSizeAndPositionManager[\"default\"]({\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[\"default\"]({\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: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD,\n scrollDirectionVertical: _defaultOverscanIndicesGetter.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 (0, _createClass2[\"default\"])(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 ? _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD : _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;\n var scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD : _defaultOverscanIndicesGetter.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 === _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);\n this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === _defaultOverscanIndicesGetter.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 (0, _updateScrollIndexHelper[\"default\"])({\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 (0, _updateScrollIndexHelper[\"default\"])({\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 (0, _requestAnimationTimeout.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\", (0, _extends2[\"default\"])({\n ref: this._setScrollingContainerRef\n }, containerProps, {\n \"aria-label\": this.props['aria-label'],\n \"aria-readonly\": this.props['aria-readonly'],\n className: (0, _clsx[\"default\"])('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 (0, _requestAnimationTimeout.cancelAnimationTimeout)(this._disablePointerEventsTimeoutId);\n }\n\n this._disablePointerEventsTimeoutId = (0, _requestAnimationTimeout.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 (0, _calculateSizeAndPositionDataAndUpdateScrollOffset[\"default\"])({\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 (0, _calculateSizeAndPositionDataAndUpdateScrollOffset[\"default\"])({\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 ? _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD : _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD;\n newState.scrollLeft = scrollLeft;\n }\n\n if (typeof scrollTop === 'number' && scrollTop >= 0) {\n newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD : _defaultOverscanIndicesGetter.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 return Grid;\n}(React.PureComponent), (0, _defineProperty2[\"default\"])(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": _propTypes[\"default\"].string.isRequired,\n \"aria-readonly\": _propTypes[\"default\"].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[\"default\"].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[\"default\"].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[\"default\"].bool.isRequired,\n\n /** Responsible for rendering a cell given an row and column index. */\n \"cellRenderer\": function cellRenderer() {\n return (typeof _types.bpfrpt_proptype_CellRenderer === \"function\" ? _types.bpfrpt_proptype_CellRenderer.isRequired ? _types.bpfrpt_proptype_CellRenderer.isRequired : _types.bpfrpt_proptype_CellRenderer : _propTypes[\"default\"].shape(_types.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 _types.bpfrpt_proptype_CellRangeRenderer === \"function\" ? _types.bpfrpt_proptype_CellRangeRenderer.isRequired ? _types.bpfrpt_proptype_CellRangeRenderer.isRequired : _types.bpfrpt_proptype_CellRangeRenderer : _propTypes[\"default\"].shape(_types.bpfrpt_proptype_CellRangeRenderer).isRequired).apply(this, arguments);\n },\n\n /** Optional custom CSS class name to attach to root Grid element. */\n \"className\": _propTypes[\"default\"].string,\n\n /** Number of columns in grid. */\n \"columnCount\": _propTypes[\"default\"].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 _types.bpfrpt_proptype_CellSize === \"function\" ? _types.bpfrpt_proptype_CellSize.isRequired ? _types.bpfrpt_proptype_CellSize.isRequired : _types.bpfrpt_proptype_CellSize : _propTypes[\"default\"].shape(_types.bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n\n /** Unfiltered props for the Grid container. */\n \"containerProps\": _propTypes[\"default\"].object,\n\n /** ARIA role for the cell-container. */\n \"containerRole\": _propTypes[\"default\"].string.isRequired,\n\n /** Optional inline style applied to inner cell-container */\n \"containerStyle\": _propTypes[\"default\"].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[\"default\"].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[\"default\"].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[\"default\"].number.isRequired,\n\n /** Exposed for testing purposes only. */\n \"getScrollbarSize\": _propTypes[\"default\"].func.isRequired,\n\n /** Height of Grid; this property determines the number of visible (vs virtualized) rows. */\n \"height\": _propTypes[\"default\"].number.isRequired,\n\n /** Optional custom id to attach to root Grid element. */\n \"id\": _propTypes[\"default\"].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[\"default\"].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[\"default\"].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 _types.bpfrpt_proptype_NoContentRenderer === \"function\" ? _types.bpfrpt_proptype_NoContentRenderer.isRequired ? _types.bpfrpt_proptype_NoContentRenderer.isRequired : _types.bpfrpt_proptype_NoContentRenderer : _propTypes[\"default\"].shape(_types.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[\"default\"].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[\"default\"].func.isRequired,\n\n /** Callback invoked with information about the section of the Grid that was just rendered. */\n \"onSectionRendered\": _propTypes[\"default\"].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[\"default\"].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 _types.bpfrpt_proptype_OverscanIndicesGetter === \"function\" ? _types.bpfrpt_proptype_OverscanIndicesGetter.isRequired ? _types.bpfrpt_proptype_OverscanIndicesGetter.isRequired : _types.bpfrpt_proptype_OverscanIndicesGetter : _propTypes[\"default\"].shape(_types.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[\"default\"].number.isRequired,\n\n /** ARIA role for the grid element. */\n \"role\": _propTypes[\"default\"].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 _types.bpfrpt_proptype_CellSize === \"function\" ? _types.bpfrpt_proptype_CellSize.isRequired ? _types.bpfrpt_proptype_CellSize.isRequired : _types.bpfrpt_proptype_CellSize : _propTypes[\"default\"].shape(_types.bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n\n /** Number of rows in grid. */\n \"rowCount\": _propTypes[\"default\"].number.isRequired,\n\n /** Wait this amount of time after the last scroll event before resetting Grid `pointer-events`. */\n \"scrollingResetTimeInterval\": _propTypes[\"default\"].number.isRequired,\n\n /** Horizontal offset. */\n \"scrollLeft\": _propTypes[\"default\"].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 _types.bpfrpt_proptype_Alignment === \"function\" ? _types.bpfrpt_proptype_Alignment.isRequired ? _types.bpfrpt_proptype_Alignment.isRequired : _types.bpfrpt_proptype_Alignment : _propTypes[\"default\"].shape(_types.bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n },\n\n /** Column index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToColumn\": _propTypes[\"default\"].number.isRequired,\n\n /** Vertical offset. */\n \"scrollTop\": _propTypes[\"default\"].number,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToRow\": _propTypes[\"default\"].number.isRequired,\n\n /** Optional inline style */\n \"style\": _propTypes[\"default\"].object.isRequired,\n\n /** Tab index for focus */\n \"tabIndex\": _propTypes[\"default\"].number,\n\n /** Width of Grid; this property determines the number of visible (vs virtualized) columns. */\n \"width\": _propTypes[\"default\"].number.isRequired\n}), _temp);\n(0, _defineProperty2[\"default\"])(Grid, \"defaultProps\", {\n 'aria-label': 'grid',\n 'aria-readonly': true,\n autoContainerWidth: false,\n autoHeight: false,\n autoWidth: false,\n cellRangeRenderer: _defaultCellRangeRenderer[\"default\"],\n containerRole: 'rowgroup',\n containerStyle: {},\n estimatedColumnSize: 100,\n estimatedRowSize: 30,\n getScrollbarSize: _scrollbarSize[\"default\"],\n noContentRenderer: renderNull,\n onScroll: function onScroll() {},\n onScrollbarPresenceChange: function onScrollbarPresenceChange() {},\n onSectionRendered: function onSectionRendered() {},\n overscanColumnCount: 0,\n overscanIndicesGetter: _defaultOverscanIndicesGetter[\"default\"],\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(0, _reactLifecyclesCompat.polyfill)(Grid);\nvar _default = Grid;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = calculateSizeAndPositionDataAndUpdateScrollOffset;\n\n/**\n * Helper method that determines when to recalculate row or column metadata.\n */\nfunction calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {\n var cellCount = _ref.cellCount,\n cellSize = _ref.cellSize,\n computeMetadataCallback = _ref.computeMetadataCallback,\n computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,\n nextCellsCount = _ref.nextCellsCount,\n nextCellSize = _ref.nextCellSize,\n nextScrollToIndex = _ref.nextScrollToIndex,\n scrollToIndex = _ref.scrollToIndex,\n updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;\n\n // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n // In that event users should use the manual recompute methods to inform of changes.\n if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {\n computeMetadataCallback(computeMetadataCallbackProps); // Updated cell metadata may have hidden the previous scrolled-to item.\n // In this case we should also update the scrollTop to ensure it stays visible.\n\n if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n updateScrollOffsetForScrollToIndex();\n }\n }\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _types = require(\"../types\");\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 (0, _classCallCheck2[\"default\"])(this, CellSizeAndPositionManager);\n (0, _defineProperty2[\"default\"])(this, \"_cellSizeAndPositionData\", {});\n (0, _defineProperty2[\"default\"])(this, \"_lastMeasuredIndex\", -1);\n (0, _defineProperty2[\"default\"])(this, \"_lastBatchedIndex\", -1);\n (0, _defineProperty2[\"default\"])(this, \"_cellCount\", void 0);\n (0, _defineProperty2[\"default\"])(this, \"_cellSizeGetter\", void 0);\n (0, _defineProperty2[\"default\"])(this, \"_estimatedCellSize\", void 0);\n this._cellSizeGetter = cellSizeGetter;\n this._cellCount = cellCount;\n this._estimatedCellSize = estimatedCellSize;\n }\n\n (0, _createClass2[\"default\"])(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 return CellSizeAndPositionManager;\n}();\n\nexports[\"default\"] = CellSizeAndPositionManager;","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMaxElementSize = void 0;\nvar 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\nvar 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};\n\nexports.getMaxElementSize = getMaxElementSize;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createCallbackMemoizer;\n\n/**\n * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n */\nfunction 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}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = updateScrollIndexHelper;\n\nvar _ScalingCellSizeAndPositionManager = _interopRequireDefault(require(\"./ScalingCellSizeAndPositionManager.js\"));\n\nvar _types = require(\"../types\");\n\nfunction 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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.caf = exports.raf = void 0;\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\nvar raf = request;\nexports.raf = raf;\nvar caf = cancel;\nexports.caf = caf;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = defaultOverscanIndicesGetter;\nexports.SCROLL_DIRECTION_VERTICAL = exports.SCROLL_DIRECTION_HORIZONTAL = exports.SCROLL_DIRECTION_FORWARD = exports.SCROLL_DIRECTION_BACKWARD = void 0;\n\nvar _types = require(\"./types\");\n\nvar SCROLL_DIRECTION_BACKWARD = -1;\nexports.SCROLL_DIRECTION_BACKWARD = SCROLL_DIRECTION_BACKWARD;\nvar SCROLL_DIRECTION_FORWARD = 1;\nexports.SCROLL_DIRECTION_FORWARD = SCROLL_DIRECTION_FORWARD;\nvar SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexports.SCROLL_DIRECTION_HORIZONTAL = SCROLL_DIRECTION_HORIZONTAL;\nvar 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\nexports.SCROLL_DIRECTION_VERTICAL = SCROLL_DIRECTION_VERTICAL;\n\nfunction 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}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _detectElementResize = _interopRequireDefault(require(\"../vendor/detectElementResize\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\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) { (0, _defineProperty2[\"default\"])(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\nvar AutoSizer = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inherits2[\"default\"])(AutoSizer, _React$Component);\n\n function AutoSizer() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2[\"default\"])(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 = (0, _possibleConstructorReturn2[\"default\"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3[\"default\"])(AutoSizer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"state\", {\n height: _this.props.defaultHeight || 0,\n width: _this.props.defaultWidth || 0\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_parentNode\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_autoSizer\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_window\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_detectElementResize\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_setRef\", function (autoSizer) {\n _this._autoSizer = autoSizer;\n });\n return _this;\n }\n\n (0, _createClass2[\"default\"])(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 = (0, _detectElementResize[\"default\"])(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 return AutoSizer;\n}(React.Component), (0, _defineProperty2[\"default\"])(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n /** Function responsible for rendering children.*/\n \"children\": _propTypes[\"default\"].func.isRequired,\n\n /** Optional custom CSS class name to attach to root AutoSizer element. */\n \"className\": _propTypes[\"default\"].string,\n\n /** Default height to use for initial render; useful for SSR */\n \"defaultHeight\": _propTypes[\"default\"].number,\n\n /** Default width to use for initial render; useful for SSR */\n \"defaultWidth\": _propTypes[\"default\"].number,\n\n /** Disable dynamic :height property */\n \"disableHeight\": _propTypes[\"default\"].bool.isRequired,\n\n /** Disable dynamic :width property */\n \"disableWidth\": _propTypes[\"default\"].bool.isRequired,\n\n /** Nonce of the inlined stylesheet for Content Security Policy */\n \"nonce\": _propTypes[\"default\"].string,\n\n /** Callback to be invoked on-resize */\n \"onResize\": _propTypes[\"default\"].func.isRequired,\n\n /** Optional inline style */\n \"style\": _propTypes[\"default\"].object\n}), _temp);\nexports[\"default\"] = AutoSizer;\n(0, _defineProperty2[\"default\"])(AutoSizer, \"defaultProps\", {\n onResize: function onResize() {},\n disableHeight: false,\n disableWidth: false,\n style: {}\n});","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _Grid = _interopRequireWildcard(require(\"../Grid\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _types = require(\"./types\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _class, _temp;\n\nvar List = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n (0, _inherits2[\"default\"])(List, _React$PureComponent);\n\n function List() {\n var _getPrototypeOf2;\n\n var _this;\n\n (0, _classCallCheck2[\"default\"])(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 = (0, _possibleConstructorReturn2[\"default\"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3[\"default\"])(List)).call.apply(_getPrototypeOf2, [this].concat(args)));\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"Grid\", void 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_setRef\", function (ref) {\n _this.Grid = ref;\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_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 return _this;\n }\n\n (0, _createClass2[\"default\"])(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 = (0, _clsx[\"default\"])('ReactVirtualized__List', className);\n return React.createElement(_Grid[\"default\"], (0, _extends2[\"default\"])({}, 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 return List;\n}(React.PureComponent), (0, _defineProperty2[\"default\"])(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": _propTypes[\"default\"].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[\"default\"].bool.isRequired,\n\n /** Optional CSS class name */\n \"className\": _propTypes[\"default\"].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[\"default\"].number.isRequired,\n\n /** Height constraint for list (determines how many actual rows are rendered) */\n \"height\": _propTypes[\"default\"].number.isRequired,\n\n /** Optional renderer to be used in place of rows when rowCount is 0 */\n \"noRowsRenderer\": function noRowsRenderer() {\n return (typeof _Grid.bpfrpt_proptype_NoContentRenderer === \"function\" ? _Grid.bpfrpt_proptype_NoContentRenderer.isRequired ? _Grid.bpfrpt_proptype_NoContentRenderer.isRequired : _Grid.bpfrpt_proptype_NoContentRenderer : _propTypes[\"default\"].shape(_Grid.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[\"default\"].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[\"default\"].func.isRequired,\n\n /** See Grid#overscanIndicesGetter */\n \"overscanIndicesGetter\": function overscanIndicesGetter() {\n return (typeof _Grid.bpfrpt_proptype_OverscanIndicesGetter === \"function\" ? _Grid.bpfrpt_proptype_OverscanIndicesGetter.isRequired ? _Grid.bpfrpt_proptype_OverscanIndicesGetter.isRequired : _Grid.bpfrpt_proptype_OverscanIndicesGetter : _propTypes[\"default\"].shape(_Grid.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[\"default\"].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 _Grid.bpfrpt_proptype_CellSize === \"function\" ? _Grid.bpfrpt_proptype_CellSize.isRequired ? _Grid.bpfrpt_proptype_CellSize.isRequired : _Grid.bpfrpt_proptype_CellSize : _propTypes[\"default\"].shape(_Grid.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 _types.bpfrpt_proptype_RowRenderer === \"function\" ? _types.bpfrpt_proptype_RowRenderer.isRequired ? _types.bpfrpt_proptype_RowRenderer.isRequired : _types.bpfrpt_proptype_RowRenderer : _propTypes[\"default\"].shape(_types.bpfrpt_proptype_RowRenderer).isRequired).apply(this, arguments);\n },\n\n /** Number of rows in list. */\n \"rowCount\": _propTypes[\"default\"].number.isRequired,\n\n /** See Grid#scrollToAlignment */\n \"scrollToAlignment\": function scrollToAlignment() {\n return (typeof _Grid.bpfrpt_proptype_Alignment === \"function\" ? _Grid.bpfrpt_proptype_Alignment.isRequired ? _Grid.bpfrpt_proptype_Alignment.isRequired : _Grid.bpfrpt_proptype_Alignment : _propTypes[\"default\"].shape(_Grid.bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n },\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToIndex\": _propTypes[\"default\"].number.isRequired,\n\n /** Vertical offset. */\n \"scrollTop\": _propTypes[\"default\"].number,\n\n /** Optional inline style */\n \"style\": _propTypes[\"default\"].object.isRequired,\n\n /** Tab index for focus */\n \"tabIndex\": _propTypes[\"default\"].number,\n\n /** Width of list */\n \"width\": _propTypes[\"default\"].number.isRequired\n}), _temp);\nexports[\"default\"] = List;\n(0, _defineProperty2[\"default\"])(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: _Grid.accessibilityOverscanIndicesGetter,\n overscanRowCount: 10,\n scrollToAlignment: 'auto',\n scrollToIndex: -1,\n style: {}\n});","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseReduce;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_customParseFormat=e()}(this,(function(){\"use strict\";var t={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},e=/(\\[[^[]*\\])|([-:/.()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^\\s\\d-_:/()]+/,o={},s=function(t){return(t=+t)+(t>68?1900:2e3)};var a=function(t){return function(e){this[t]=+e}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if(\"Z\"===t)return 0;var e=t.match(/([+-]|\\d\\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:\"+\"===e[0]?-n:n}(t)}],u=function(t){var e=o[t];return e&&(e.indexOf?e:e.s.concat(e.f))},h=function(t,e){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(t.indexOf(r(i,0,e))>-1){n=i>12;break}}else n=t===(e?\"pm\":\"PM\");return n},d={A:[i,function(t){this.afternoon=h(t,!1)}],a:[i,function(t){this.afternoon=h(t,!0)}],S:[/\\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\\d{3}/,function(t){this.milliseconds=+t}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(t){var e=o.ordinal,n=t.match(/\\d+/);if(this.day=n[0],e)for(var r=1;r<=31;r+=1)e(r).replace(/\\[|\\]/g,\"\")===t&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(t){var e=u(\"months\"),n=(u(\"monthsShort\")||e.map((function(t){return t.substr(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(t){var e=u(\"months\").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(t){this.year=s(t)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,r){var o=r&&r.toUpperCase();return n||i[r]||t[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),a=s.length,f=0;f-1)return new Date((\"X\"===e?1e3:1)*t);var r=c(e)(t),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,u=r.seconds,h=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=u||0,g=h||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(t){return new Date(\"\")}}(e,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),h&&e!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,t)}}}));","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n\n var testOptions = {\n get passive() {\n passive = true;\n }\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {\n // ignore\n }\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n } else {\n options = {\n passive: false\n };\n }\n return options;\n }\n\n // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n if (scrollParent != null) {\n return scrollParent;\n }\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n\n var offset = void 0;\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n }\n\n // Here we make sure the element is visible as well as checking the offset\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop;\n // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];\n","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export { default } from './FlexLayout';\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"WindowScroller\", {\n enumerable: true,\n get: function get() {\n return _WindowScroller[\"default\"];\n }\n});\nObject.defineProperty(exports, \"IS_SCROLLING_TIMEOUT\", {\n enumerable: true,\n get: function get() {\n return _WindowScroller.IS_SCROLLING_TIMEOUT;\n }\n});\nexports[\"default\"] = void 0;\n\nvar _WindowScroller = _interopRequireWildcard(require(\"./WindowScroller\"));\n\nvar _default = _WindowScroller[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.registerScrollListener = registerScrollListener;\nexports.unregisterScrollListener = unregisterScrollListener;\n\nvar _requestAnimationTimeout = require(\"../../utils/requestAnimationTimeout\");\n\nvar _WindowScroller = require(\"../WindowScroller.js\");\n\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 (0, _requestAnimationTimeout.cancelAnimationTimeout)(disablePointerEventsTimeoutId);\n }\n\n var maximumTimeout = 0;\n mountedInstances.forEach(function (instance) {\n maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);\n });\n disablePointerEventsTimeoutId = (0, _requestAnimationTimeout.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\nfunction 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}\n\nfunction 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 (0, _requestAnimationTimeout.cancelAnimationTimeout)(disablePointerEventsTimeoutId);\n enablePointerEventsIfDisabled();\n }\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDimensions = getDimensions;\nexports.getPositionOffset = getPositionOffset;\nexports.getScrollOffset = getScrollOffset;\n\n/**\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\nfunction 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\n\nfunction 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\n\nfunction 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}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFirstMountState = void 0;\nvar react_1 = require(\"react\");\nfunction useFirstMountState() {\n var isFirst = react_1.useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n}\nexports.useFirstMountState = useFirstMountState;\n","var arrayMap = require('./_arrayMap'),\n baseAt = require('./_baseAt'),\n basePullAt = require('./_basePullAt'),\n compareAscending = require('./_compareAscending'),\n flatRest = require('./_flatRest'),\n isIndex = require('./_isIndex');\n\n/**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\nvar pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n});\n\nmodule.exports = pullAt;\n","var get = require('./get');\n\n/**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\nfunction baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n}\n\nmodule.exports = baseAt;\n","var baseUnset = require('./_baseUnset'),\n isIndex = require('./_isIndex');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nmodule.exports = basePullAt;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","function shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqualArrays, shallowEqualObjects };\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSamples(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 35,\n height: 35,\n viewBox: \"0 0 35 35\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.4665 26.5647H8.27028C6.81739 26.5654 5.53664 25.6115 5.12118 24.2193C4.70572 22.8271 5.25426 21.3273 6.46992 20.5316L15.619 14.5351L18.0501 12.8593C19.1757 12.0964 19.3419 11.3322 19.3419 10.9457C19.3419 10.0253 18.6142 9.24351 17.7518 9.23974H17.7429C16.8829 9.23716 16.1759 9.91742 16.1453 10.777C16.1336 11.0693 15.9668 11.3333 15.7078 11.4693C15.4487 11.6054 15.1368 11.5929 14.8894 11.4366C14.6421 11.2803 14.4969 11.0039 14.5086 10.7115C14.5711 8.97275 16.0018 7.59717 17.7417 7.60305H17.7593C19.5332 7.61186 20.9773 9.11384 20.9773 10.9457C20.9773 11.6557 20.7179 13.0268 18.973 14.2102L16.5406 15.8885L16.5242 15.8986L7.36759 21.9065C6.76286 22.3074 6.49147 23.0566 6.69916 23.7518C6.90685 24.447 7.54475 24.9246 8.27028 24.928H26.4665C27.1923 24.9251 27.8307 24.4477 28.0387 23.7524C28.2467 23.0571 27.9754 22.3075 27.3705 21.9065L19.148 16.5167C18.7732 16.2676 18.6699 15.7626 18.9167 15.3863C19.1635 15.01 19.6679 14.9036 20.0456 15.1482L28.2669 20.5367C29.4777 21.334 30.0226 22.8309 29.6077 24.22C29.1928 25.6092 27.9163 26.562 26.4665 26.5647Z\",\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSamples);\nexport default __webpack_public_path__ + \"static/media/samples.e4940b8a.svg\";\nexport { ForwardRef as ReactComponent };","module.exports = {\n parse: require('./lib/parse'),\n stringify: require('./lib/stringify')\n};\n","/*jshint -W030 */\nvar tagRE = /(?:|<(?:\"[^\"]*\"['\"]*|'[^']*'['\"]*|[^'\">])+>)/g;\nvar parseTag = require('./parse-tag');\n// re-used obj for quick lookups of components\nvar empty = Object.create ? Object.create(null) : {};\n// common logic for pushing a child node onto a list\nfunction pushTextNode(list, html, level, start, ignoreWhitespace) {\n // calculate correct end of the content slice in case there's\n // no tag after the text node.\n var end = html.indexOf('<', start);\n var content = html.slice(start, end === -1 ? undefined : end);\n // if a node is nothing but whitespace, collapse it as the spec states:\n // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n if (/^\\s*$/.test(content)) {\n content = ' ';\n }\n // don't add whitespace-only text nodes if they would be trailing text nodes\n // or if they would be leading whitespace-only text nodes:\n // * end > -1 indicates this is not a trailing text node\n // * leading node is when level is -1 and list has length 0\n if ((!ignoreWhitespace && end > -1 && level + list.length >= 0) || content !== ' ') {\n list.push({\n type: 'text',\n content: content\n });\n }\n}\n\nmodule.exports = function parse(html, options) {\n options || (options = {});\n options.components || (options.components = empty);\n var result = [];\n var current;\n var level = -1;\n var arr = [];\n var byTag = {};\n var inComponent = false;\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== ('')) {\n return;\n } else {\n inComponent = false;\n }\n }\n\n var isOpen = tag.charAt(1) !== '/';\n var isComment = tag.indexOf('\n * -2 -1 0 1 2 3 4 5\n */\n\n\n (0, _createClass2.default)(Virtualize, [{\n key: \"UNSAFE_componentWillMount\",\n // eslint-disable-next-line camelcase,react/sort-comp\n value: function UNSAFE_componentWillMount() {\n this.setWindow(this.state.index);\n } // eslint-disable-next-line camelcase,react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n var index = nextProps.index;\n\n if (typeof index === 'number' && index !== this.props.index) {\n var indexDiff = index - this.props.index;\n this.setIndex(index, this.state.indexContainer + indexDiff, indexDiff);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearInterval(this.timer);\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(index, indexContainer, indexDiff) {\n var nextState = {\n index: index,\n indexContainer: indexContainer,\n indexStart: this.state.indexStart,\n indexStop: this.state.indexStop\n }; // We are going forward, let's render one more slide ahead.\n\n if (indexDiff > 0 && (!this.props.slideCount || nextState.indexStop < this.props.slideCount - 1)) {\n nextState.indexStop += 1;\n } // Extend the bounds if needed.\n\n\n if (index > nextState.indexStop) {\n nextState.indexStop = index;\n }\n\n var beforeAhead = nextState.indexStart - index; // Extend the bounds if needed.\n\n if (beforeAhead > 0) {\n nextState.indexContainer += beforeAhead;\n nextState.indexStart -= beforeAhead;\n }\n\n this.setState(nextState);\n }\n }, {\n key: \"setWindow\",\n value: function setWindow() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.index;\n var slideCount = this.props.slideCount;\n var beforeAhead = this.props.overscanSlideBefore;\n var afterAhead = this.props.overscanSlideAfter;\n\n if (slideCount) {\n if (beforeAhead > index) {\n beforeAhead = index;\n }\n\n if (afterAhead + index > slideCount - 1) {\n afterAhead = slideCount - index - 1;\n }\n }\n\n this.setState({\n indexContainer: beforeAhead,\n indexStart: index - beforeAhead,\n indexStop: index + afterAhead\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n indexProp = _this$props2.index,\n onChangeIndex = _this$props2.onChangeIndex,\n onTransitionEnd = _this$props2.onTransitionEnd,\n overscanSlideAfter = _this$props2.overscanSlideAfter,\n overscanSlideBefore = _this$props2.overscanSlideBefore,\n slideCount = _this$props2.slideCount,\n slideRenderer = _this$props2.slideRenderer,\n other = (0, _objectWithoutProperties2.default)(_this$props2, [\"children\", \"index\", \"onChangeIndex\", \"onTransitionEnd\", \"overscanSlideAfter\", \"overscanSlideBefore\", \"slideCount\", \"slideRenderer\"]);\n var _this$state = this.state,\n indexContainer = _this$state.indexContainer,\n indexStart = _this$state.indexStart,\n indexStop = _this$state.indexStop;\n var slides = [];\n\n for (var slideIndex = indexStart; slideIndex <= indexStop; slideIndex += 1) {\n slides.push(slideRenderer({\n index: slideIndex,\n key: slideIndex\n }));\n }\n\n return _react.default.createElement(MyComponent, (0, _extends2.default)({\n index: indexContainer,\n onChangeIndex: this.handleChangeIndex,\n onTransitionEnd: this.handleTransitionEnd\n }, other), slides);\n }\n }]);\n return Virtualize;\n }(_react.PureComponent);\n\n Virtualize.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * @ignore\n */\n children: function children(props, propName) {\n if (props[propName] !== undefined) {\n return new Error(\"The children property isn't supported.\");\n }\n\n return null;\n },\n\n /**\n * @ignore\n */\n index: _propTypes.default.number,\n\n /**\n * @ignore\n */\n onChangeIndex: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onTransitionEnd: _propTypes.default.func,\n\n /**\n * Number of slide to render after the visible slide.\n */\n overscanSlideAfter: _propTypes.default.number,\n\n /**\n * Number of slide to render before the visible slide.\n */\n overscanSlideBefore: _propTypes.default.number,\n\n /**\n * When set, it's adding a limit to the number of slide: [0, slideCount].\n */\n slideCount: _propTypes.default.number,\n\n /**\n * Responsible for rendering a slide given an index.\n * ({ index: number }): node.\n */\n slideRenderer: _propTypes.default.func.isRequired\n } : {};\n Virtualize.defaultProps = {\n overscanSlideAfter: 2,\n // Render one more slide for going backward as it's more difficult to\n // keep the window up to date.\n overscanSlideBefore: 3\n };\n return Virtualize;\n}","function _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nmodule.exports = _interopRequireWildcard;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar common = {\n black: '#000',\n white: '#fff'\n};\nvar _default = common;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.62 2.99c-.49-.49-1.28-.49-1.77 0L6.54 11.3c-.39.39-.39 1.02 0 1.41l8.31 8.31c.49.49 1.28.49 1.77 0s.49-1.28 0-1.77L9.38 12l7.25-7.25c.48-.48.48-1.28-.01-1.76z\"\n}), 'ArrowBackIosRounded');\n\nexports.default = _default;","export { default } from './MediaImage';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n /* Remove the optional wildcard before checking validity */\n\n\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n\n if (!/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces\n\n\n if (/\\s/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n\n return parts.every(function (part) {\n if (part.length > 63) {\n return false;\n }\n\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n\n return true;\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n\n if (version === '4') {\n if (!IPv4AddressRegExp.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n }\n\n if (version === '6') {\n return !!IPv6AddressRegExp.test(str);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import axios, { AxiosInstance } from 'axios';\nimport React from 'react';\nimport { useCookies } from 'react-cookie';\n\nexport type TrackFn = (events: any, email?: any) => Promise;\n\nexport const useTrackApi = (provider: string, tenant: string, enabled: boolean) => {\n\tconst API_URL = process.env.REACT_APP_API_URL;\n\n\tconst [userViewerId, setUserViewerId] = React.useState();\n\tconst [userViewerEmail, setUserViewerEmail] = React.useState();\n\tconst [pendingTrackingEvents, setPendingTrackingEvents] = React.useState([]);\n\tconst [cookies, setCookie] = useCookies();\n\n\tconst trackApiConfig = React.useMemo(\n\t\t() => ({\n\t\t\tbaseURL: `${API_URL}`\n\t\t}),\n\t\t[API_URL]\n\t);\n\n\tconst _ajax: AxiosInstance = React.useMemo(() => axios.create({ ...trackApiConfig }), [trackApiConfig]);\n\n\tReact.useEffect(() => {\n\t\tif (userViewerId) {\n\t\t\tpendingTrackingEvents.forEach(pendingEvents => {\n\t\t\t\t_ajax.post(`${provider}EventTracker`, {\n\t\t\t\t\tuserViewerId,\n\t\t\t\t\tuserViewerEmail,\n\t\t\t\t\tevents: pendingEvents\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tif (userViewerEmail) {\n\t\t\tif (!cookies[`${provider}-${tenant}`] || !cookies[`${provider}-${tenant}`].userViewerEmail) setEmailIntoCookie(userViewerEmail);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [userViewerId]);\n\n\tReact.useEffect(() => {\n\t\tif (cookies[`${provider}-${tenant}`] && cookies[`${provider}-${tenant}`].userViewerId && !userViewerId)\n\t\t\tsetUserViewerId(cookies[`${provider}-${tenant}`].userViewerId);\n\t\tif (cookies[`${provider}-${tenant}`] && cookies[`${provider}-${tenant}`].userViewerEmail && !userViewerEmail)\n\t\t\tsetUserViewerEmail(cookies[`${provider}-${tenant}`].userViewerEmail);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [cookies]);\n\n\tconst setEmailIntoCookie = email => {\n\t\tsetUserViewerEmail(email);\n\t\tsetCookie(`${provider}-${tenant}`, { userViewerId, userViewerEmail: email });\n\t};\n\n\tconst track = React.useCallback(\n\t\tasync (events, email?) => {\n\t\t\tif (!enabled || process.env.NODE_ENV === 'development') return;\n\n\t\t\tif ((!cookies[`${provider}-${tenant}`] || !cookies[`${provider}-${tenant}`].userViewerEmail) && !!email) setEmailIntoCookie(email);\n\t\t\telse if (cookies[`${provider}-${tenant}`] && cookies[`${provider}-${tenant}`].userViewerEmail && !userViewerEmail)\n\t\t\t\tsetUserViewerEmail(cookies[`${provider}-${tenant}`].userViewerEmail);\n\n\t\t\tif (!userViewerId) return setPendingTrackingEvents(currentPendingTrackingEvents => [...currentPendingTrackingEvents, events]);\n\n\t\t\t_ajax.post(`${provider}EventTracker`, {\n\t\t\t\tuserViewerId,\n\t\t\t\tuserViewerEmail: email ? email : userViewerEmail,\n\t\t\t\tevents\n\t\t\t});\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[_ajax, enabled, userViewerId]\n\t);\n\n\treturn { track };\n};\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar RadioGroupContext = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n RadioGroupContext.displayName = 'RadioGroupContext';\n}\n\nexport default RadioGroupContext;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z\"\n}), 'ArrowForwardIos');\n\nexports.default = _default;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport capitalize from '../utils/capitalize';\nimport withStyles from '../styles/withStyles';\nimport { elementTypeAcceptingRef } from '@material-ui/utils';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useForkRef from '../utils/useForkRef';\nimport Typography from '../Typography';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {},\n\n /* Styles applied to the root element if `underline=\"none\"`. */\n underlineNone: {\n textDecoration: 'none'\n },\n\n /* Styles applied to the root element if `underline=\"hover\"`. */\n underlineHover: {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n },\n\n /* Styles applied to the root element if `underline=\"always\"`. */\n underlineAlways: {\n textDecoration: 'underline'\n },\n // Same reset as ButtonBase.root\n\n /* Styles applied to the root element if `component=\"button\"`. */\n button: {\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$focusVisible': {\n outline: 'auto'\n }\n },\n\n /* Pseudo-class applied to the root element if the link is keyboard focused. */\n focusVisible: {}\n};\nvar Link = /*#__PURE__*/React.forwardRef(function Link(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'primary' : _props$color,\n _props$component = props.component,\n component = _props$component === void 0 ? 'a' : _props$component,\n onBlur = props.onBlur,\n onFocus = props.onFocus,\n TypographyClasses = props.TypographyClasses,\n _props$underline = props.underline,\n underline = _props$underline === void 0 ? 'hover' : _props$underline,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'inherit' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"color\", \"component\", \"onBlur\", \"onFocus\", \"TypographyClasses\", \"underline\", \"variant\"]);\n\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n\n var handlerRef = useForkRef(ref, focusVisibleRef);\n\n var handleBlur = function handleBlur(event) {\n if (focusVisible) {\n onBlurVisible();\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n var handleFocus = function handleFocus(event) {\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n return /*#__PURE__*/React.createElement(Typography, _extends({\n className: clsx(classes.root, classes[\"underline\".concat(capitalize(underline))], className, focusVisible && classes.focusVisible, component === 'button' && classes.button),\n classes: TypographyClasses,\n color: color,\n component: component,\n onBlur: handleBlur,\n onFocus: handleFocus,\n ref: handlerRef,\n variant: variant\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n /**\n * The content of the link.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the link.\n */\n color: PropTypes.oneOf(['initial', 'inherit', 'primary', 'secondary', 'textPrimary', 'textSecondary', 'error']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * `classes` prop applied to the [`Typography`](/api/typography/) element.\n */\n TypographyClasses: PropTypes.object,\n\n /**\n * Controls when the link should have an underline.\n */\n underline: PropTypes.oneOf(['none', 'hover', 'always']),\n\n /**\n * Applies the theme typography styles.\n */\n variant: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiLink'\n})(Link);","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => ({\n\tlabel: {\n\t\tfontSize: 12,\n\t\tmarginTop: 7\n\t},\n\trootLabel: {\n\t\talignItems: 'flex-start'\n\t},\n\thelperText: {\n\t\tmarginTop: 10\n\t}\n}));\n","import clsx from 'clsx';\nimport React from 'react';\nimport { useTranslation, Trans } from 'react-i18next';\n\nimport Checkbox, { CheckboxProps } from '@material-ui/core/Checkbox';\nimport FormControl, { FormControlProps } from '@material-ui/core/FormControl';\nimport FormControlLabel, { FormControlLabelProps } from '@material-ui/core/FormControlLabel';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormHelperText, { FormHelperTextProps } from '@material-ui/core/FormHelperText';\nimport Link from '@material-ui/core/Link';\n\nimport { useStyles } from './styles';\n\nexport type UserConsentInputRenderProps = {\n\twrapper: Omit;\n\tlabel: Omit;\n\tcheckbox: Omit;\n\thelperText: FormHelperTextProps;\n};\n\nexport type ComponentProps = {\n\tchecked: boolean;\n\tinputError: boolean;\n\trenderProps?: Partial;\n\tonConsentChange(value: boolean): void;\n};\n\nconst UserConsentInput = (props: ComponentProps) => {\n\tconst { checked, inputError, renderProps } = props;\n\tconst { onConsentChange } = props;\n\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst handleChangeConsent: React.ChangeEventHandler = React.useCallback(\n\t\tev => {\n\t\t\tonConsentChange(ev.target.checked);\n\t\t},\n\t\t[onConsentChange]\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\tlabel={\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tI consent to the collection, use and processing of my personal data as described in the\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tPrivacy Notice\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t{...renderProps?.label}\n\t\t\t\t\tclasses={{\n\t\t\t\t\t\troot: clsx(classes.rootLabel, renderProps?.label?.classes?.root),\n\t\t\t\t\t\tlabel: clsx(classes.label, renderProps?.label?.classes?.label)\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t\t{inputError && (\n\t\t\t\t\n\t\t\t\t\t{t('userConsent.consentRequired')}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default React.memo(UserConsentInput);\n","import React from 'react';\nimport { useCookies } from 'react-cookie';\n\nimport { useAcceptPrivacyTermsMutation } from 'generated/graphql';\n\nimport UserConsentInput from 'components/Common/UserConsentInput';\nimport { ComponentProps } from 'components/Common/UserConsentInput/UserConsentInput';\n\nexport type UserConsentCookie = {\n\tuserConsent: boolean;\n};\n\nexport type UserConsentHookResponse = {\n\tuserConsent: boolean;\n\taccepted: boolean;\n\tinputError: boolean;\n\trenderInput(renderProps?: ComponentProps['renderProps']): React.ReactNode;\n\tvalidate(): boolean;\n\tchangeConsent(value: boolean): void;\n\tonSubmit(submitFn: Function): void;\n\tacceptConsent(email: string): Promise;\n};\n\ntype UserConsentHook = () => UserConsentHookResponse;\n\nconst COOKIE_NAME = 'privacy-user-consent';\nconst COOKIE_EXPIRATION = 31536000;\n\nexport const useUserConsent: UserConsentHook = () => {\n\tconst [cookies, setCookie] = useCookies();\n\tconst cookie: UserConsentCookie = cookies[COOKIE_NAME];\n\n\tconst [acceptPrivacyTerms] = useAcceptPrivacyTermsMutation();\n\n\tconst accepted = cookie?.userConsent || false;\n\tconst [userConsent, setUserConsent] = React.useState(() => accepted);\n\tconst [inputError, setInputError] = React.useState(false);\n\tReact.useEffect(() => {\n\t\tsetUserConsent(cookie?.userConsent || false);\n\t}, [cookie]);\n\n\tconst changeConsent = React.useCallback((value: boolean) => {\n\t\tsetInputError(false);\n\t\tsetUserConsent(value);\n\t}, []);\n\n\tconst validate = React.useCallback(() => {\n\t\tsetInputError(!userConsent);\n\t\treturn userConsent;\n\t}, [userConsent]);\n\n\tconst onSubmit = React.useCallback(\n\t\t(submitFn: Function) => {\n\t\t\tvalidate() && submitFn();\n\t\t},\n\t\t[validate]\n\t);\n\n\tconst acceptConsent = React.useCallback(\n\t\tasync (email: string) => {\n\t\t\tif (accepted) return;\n\t\t\tawait acceptPrivacyTerms({\n\t\t\t\tvariables: {\n\t\t\t\t\tprivacy: {\n\t\t\t\t\t\temail\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst newCookie = { ...cookie, userConsent: true };\n\t\t\tsetCookie(COOKIE_NAME, newCookie, { maxAge: COOKIE_EXPIRATION });\n\t\t},\n\t\t[acceptPrivacyTerms, accepted, cookie, setCookie]\n\t);\n\n\tconst renderInput = React.useCallback(\n\t\t(renderProps?: ComponentProps['renderProps']) => {\n\t\t\treturn (\n\t\t\t\t!accepted && (\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[accepted, changeConsent, inputError, userConsent]\n\t);\n\n\treturn {\n\t\tuserConsent,\n\t\taccepted,\n\t\tinputError,\n\t\tchangeConsent,\n\t\tonSubmit,\n\t\tacceptConsent,\n\t\tvalidate,\n\t\trenderInput\n\t};\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Paper from '../Paper';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden'\n }\n};\nvar Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$raised = props.raised,\n raised = _props$raised === void 0 ? false : _props$raised,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"raised\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : 1,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the card will use raised styling.\n */\n raised: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiCard'\n})(Card);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"\n}), 'Email');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreVertOutlined');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z\"\n}), 'MailOutline');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');\n\nexports.default = _default;","/**\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}","export const wait = (ms: number): Promise => {\n\treturn new Promise(resolve => setTimeout(resolve, ms));\n};\n","import axios from 'axios';\nimport React from 'react';\n\nimport { wait } from 'lib/wait';\n\nexport type DownloadFileHookInput = {\n\turl: string;\n\tfilename: string;\n\tdownloadFn?(url: string): Promise;\n};\n\ntype DownloadState = 'pending' | 'loading' | 'error' | 'finished';\n\ntype DownloadFilesFn = (\n\tdownloadFiles: DownloadFileHookInput[],\n\toptions?: Partial<{\n\t\twaitForCompletion: boolean;\n\t\tonSuccess: () => void;\n\t\tonError: (e: Error) => void;\n\t}>\n) => Promise;\n\ntype DownloadElement = {\n\turl: string;\n\tfilename: string;\n};\n\nconst triggerDownload = ({ url, filename }: DownloadElement) => {\n\tconst targetFileName = filename;\n\tconst link = document.createElement('a');\n\tlink.href = url;\n\tlink.setAttribute('download', targetFileName);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tlink.remove();\n};\n\nconst doDownloads = async (downloads: DownloadElement[]) => {\n\tconst remainingDownloads = [...downloads];\n\tconst hasPendingDownloads = () => remainingDownloads.length > 0;\n\twhile (hasPendingDownloads()) {\n\t\tconst downloadElement = remainingDownloads.pop();\n\t\ttriggerDownload(downloadElement);\n\t\tif (hasPendingDownloads()) await wait(1000);\n\t}\n};\n\nexport const useDownloadFiles = () => {\n\tconst mounted = React.useRef(true);\n\tconst lastCallId = React.useRef(0);\n\tconst [state, setState] = React.useState('pending');\n\n\tReact.useEffect(() => {\n\t\treturn () => {\n\t\t\tmounted.current = false;\n\t\t};\n\t}, []);\n\n\tconst downloadFiles: DownloadFilesFn = React.useCallback(async (downloadFiles, options = {}) => {\n\t\tsetState('loading');\n\t\tconst { onSuccess, onError, waitForCompletion = true } = options;\n\t\tconst callId = ++lastCallId.current;\n\t\tconst canUpdate = () => callId === lastCallId.current && mounted.current;\n\n\t\tconst completedHandler = () => {\n\t\t\tsetState('finished');\n\t\t\tif (onSuccess) onSuccess();\n\t\t};\n\n\t\tconst errorHandler = (e: Error) => {\n\t\t\tsetState('error');\n\t\t\tif (onError) onError(e);\n\t\t};\n\n\t\tif (waitForCompletion) {\n\t\t\tconst downloadPromises = downloadFiles.map(async downloadFile => {\n\t\t\t\tconst response = downloadFile.downloadFn\n\t\t\t\t\t? await downloadFile.downloadFn(downloadFile.url)\n\t\t\t\t\t: await axios.get(downloadFile.url, { responseType: 'blob' });\n\t\t\t\treturn { response, downloadFile };\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tconst responses = await Promise.all(downloadPromises);\n\t\t\t\tif (!canUpdate()) return;\n\t\t\t\tresponses.forEach(({ response, downloadFile: { filename } }) => {\n\t\t\t\t\tconst targetFileName = filename;\n\t\t\t\t\t// IE variant\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (window.navigator && window.navigator.msSaveOrOpenBlob) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\twindow.navigator.msSaveOrOpenBlob(new Blob([response.data], { type: response.headers['content-type'] }), targetFileName);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst url = window.URL.createObjectURL(new Blob([response.data], { type: response.headers['content-type'] }));\n\t\t\t\t\t\ttriggerDownload({ url, filename: targetFileName });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcompletedHandler();\n\t\t\t} catch (e) {\n\t\t\t\tif (!canUpdate()) return;\n\t\t\t\terrorHandler(e);\n\t\t\t}\n\t\t} else {\n\t\t\tawait doDownloads(downloadFiles);\n\t\t\tcompletedHandler();\n\t\t}\n\t}, []);\n\n\treturn { state, downloadFiles };\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Typography from '../Typography';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n margin: 0,\n padding: '16px 24px',\n flex: '0 0 auto'\n }\n};\nvar DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"disableTypography\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other), disableTypography ? children : /*#__PURE__*/React.createElement(Typography, {\n component: \"h2\",\n variant: \"h6\"\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the children won't be wrapped by a typography component.\n * For instance, this can be useful to render an h4 instead of the default h2.\n */\n disableTypography: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogTitle'\n})(DialogTitle);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n flex: '1 1 auto',\n WebkitOverflowScrolling: 'touch',\n // Add iOS momentum scrolling.\n overflowY: 'auto',\n padding: '8px 24px',\n '&:first-child': {\n // dialog without title\n paddingTop: 20\n }\n },\n\n /* Styles applied to the root element if `dividers={true}`. */\n dividers: {\n padding: '16px 24px',\n borderTop: \"1px solid \".concat(theme.palette.divider),\n borderBottom: \"1px solid \".concat(theme.palette.divider)\n }\n };\n};\nvar DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$dividers = props.dividers,\n dividers = _props$dividers === void 0 ? false : _props$dividers,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"dividers\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, dividers && classes.dividers),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Display the top and bottom dividers.\n */\n dividers: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogContent'\n})(DialogContent);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n flex: '0 0 auto'\n },\n\n /* Styles applied to the root element if `disableSpacing={false}`. */\n spacing: {\n '& > :not(:first-child)': {\n marginLeft: 8\n }\n }\n};\nvar DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(props, ref) {\n var _props$disableSpacing = props.disableSpacing,\n disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"disableSpacing\", \"classes\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, !disableSpacing && classes.spacing),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the actions do not have additional margin.\n */\n disableSpacing: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogActions'\n})(DialogActions);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport ListItem from '../ListItem';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body1, _defineProperty({\n minHeight: 48,\n paddingTop: 6,\n paddingBottom: 6,\n boxSizing: 'border-box',\n width: 'auto',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }, theme.breakpoints.up('sm'), {\n minHeight: 'auto'\n })),\n // TODO v5: remove\n\n /* Styles applied to the root element if `disableGutters={false}`. */\n gutters: {},\n\n /* Styles applied to the root element if `selected={true}`. */\n selected: {},\n\n /* Styles applied to the root element if dense. */\n dense: _extends({}, theme.typography.body2, {\n minHeight: 'auto'\n })\n };\n};\nvar MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'li' : _props$component,\n _props$disableGutters = props.disableGutters,\n disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n ListItemClasses = props.ListItemClasses,\n _props$role = props.role,\n role = _props$role === void 0 ? 'menuitem' : _props$role,\n selected = props.selected,\n tabIndexProp = props.tabIndex,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"disableGutters\", \"ListItemClasses\", \"role\", \"selected\", \"tabIndex\"]);\n\n var tabIndex;\n\n if (!props.disabled) {\n tabIndex = tabIndexProp !== undefined ? tabIndexProp : -1;\n }\n\n return /*#__PURE__*/React.createElement(ListItem, _extends({\n button: true,\n role: role,\n tabIndex: tabIndex,\n component: component,\n selected: selected,\n disableGutters: disableGutters,\n classes: _extends({\n dense: classes.dense\n }, ListItemClasses),\n className: clsx(classes.root, className, selected && classes.selected, !disableGutters && classes.gutters),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuItem.propTypes = {\n /**\n * Menu item contents.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\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\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input will be used.\n */\n dense: PropTypes.bool,\n\n /**\n * @ignore\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n */\n disableGutters: PropTypes.bool,\n\n /**\n * `classes` prop applied to the [`ListItem`](/api/list-item/) element.\n */\n ListItemClasses: PropTypes.object,\n\n /**\n * @ignore\n */\n role: PropTypes.string,\n\n /**\n * @ignore\n */\n selected: PropTypes.bool,\n\n /**\n * @ignore\n */\n tabIndex: PropTypes.number\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiMenuItem'\n})(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Typography from '../Typography';\nimport ListContext from '../List/ListContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n flex: '1 1 auto',\n minWidth: 0,\n marginTop: 4,\n marginBottom: 4\n },\n\n /* Styles applied to the `Typography` components if primary and secondary are set. */\n multiline: {\n marginTop: 6,\n marginBottom: 6\n },\n\n /* Styles applied to the `Typography` components if dense. */\n dense: {},\n\n /* Styles applied to the root element if `inset={true}`. */\n inset: {\n paddingLeft: 56\n },\n\n /* Styles applied to the primary `Typography` component. */\n primary: {},\n\n /* Styles applied to the secondary `Typography` component. */\n secondary: {}\n};\nvar ListItemText = /*#__PURE__*/React.forwardRef(function ListItemText(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n _props$inset = props.inset,\n inset = _props$inset === void 0 ? false : _props$inset,\n primaryProp = props.primary,\n primaryTypographyProps = props.primaryTypographyProps,\n secondaryProp = props.secondary,\n secondaryTypographyProps = props.secondaryTypographyProps,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"disableTypography\", \"inset\", \"primary\", \"primaryTypographyProps\", \"secondary\", \"secondaryTypographyProps\"]);\n\n var _React$useContext = React.useContext(ListContext),\n dense = _React$useContext.dense;\n\n var primary = primaryProp != null ? primaryProp : children;\n\n if (primary != null && primary.type !== Typography && !disableTypography) {\n primary = /*#__PURE__*/React.createElement(Typography, _extends({\n variant: dense ? 'body2' : 'body1',\n className: classes.primary,\n component: \"span\",\n display: \"block\"\n }, primaryTypographyProps), primary);\n }\n\n var secondary = secondaryProp;\n\n if (secondary != null && secondary.type !== Typography && !disableTypography) {\n secondary = /*#__PURE__*/React.createElement(Typography, _extends({\n variant: \"body2\",\n className: classes.secondary,\n color: \"textSecondary\",\n display: \"block\"\n }, secondaryTypographyProps), secondary);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, dense && classes.dense, inset && classes.inset, primary && secondary && classes.multiline),\n ref: ref\n }, other), primary, secondary);\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemText.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Alias for the `primary` prop.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the children won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `children` (or `primary`) text, and optional `secondary` text\n * with the Typography component.\n */\n disableTypography: PropTypes.bool,\n\n /**\n * If `true`, the children will be indented.\n * This should be used if there is no left avatar or left icon.\n */\n inset: PropTypes.bool,\n\n /**\n * The main content element.\n */\n primary: PropTypes.node,\n\n /**\n * These props will be forwarded to the primary typography component\n * (as long as disableTypography is not `true`).\n */\n primaryTypographyProps: PropTypes.object,\n\n /**\n * The secondary content element.\n */\n secondary: PropTypes.node,\n\n /**\n * These props will be forwarded to the secondary typography component\n * (as long as disableTypography is not `true`).\n */\n secondaryTypographyProps: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiListItemText'\n})(ListItemText);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Typography from '../Typography';\nimport withStyles from '../styles/withStyles';\nimport FormControlContext, { useFormControl } from '../FormControl/FormControlContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n height: '0.01em',\n // Fix IE 11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap'\n },\n\n /* Styles applied to the root element if `variant=\"filled\"`. */\n filled: {\n '&$positionStart:not($hiddenLabel)': {\n marginTop: 16\n }\n },\n\n /* Styles applied to the root element if `position=\"start\"`. */\n positionStart: {\n marginRight: 8\n },\n\n /* Styles applied to the root element if `position=\"end\"`. */\n positionEnd: {\n marginLeft: 8\n },\n\n /* Styles applied to the root element if `disablePointerEvents=true`. */\n disablePointerEvents: {\n pointerEvents: 'none'\n },\n\n /* Styles applied if the adornment is used inside . */\n hiddenLabel: {},\n\n /* Styles applied if the adornment is used inside . */\n marginDense: {}\n};\nvar InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disablePointer = props.disablePointerEvents,\n disablePointerEvents = _props$disablePointer === void 0 ? false : _props$disablePointer,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n position = props.position,\n variantProp = props.variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"]);\n\n var muiFormControl = useFormControl() || {};\n var variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('Material-UI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n return /*#__PURE__*/React.createElement(FormControlContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, position === 'end' ? classes.positionEnd : classes.positionStart, disablePointerEvents && classes.disablePointerEvents, muiFormControl.hiddenLabel && classes.hiddenLabel, variant === 'filled' && classes.filled, muiFormControl.margin === 'dense' && classes.marginDense),\n ref: ref\n }, other), typeof children === 'string' && !disableTypography ? /*#__PURE__*/React.createElement(Typography, {\n color: \"textSecondary\"\n }, children) : children));\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes = {\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\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\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the input on click.\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n */\n disableTypography: PropTypes.bool,\n\n /**\n * @ignore\n */\n muiFormControl: PropTypes.object,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['start', 'end']).isRequired,\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['standard', 'outlined', 'filled'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiInputAdornment'\n})(InputAdornment);","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { useContext } from 'react';\nimport HTML from 'html-parse-stringify2';\nimport { getI18n, I18nContext, getDefaults } from './context';\nimport { warn, warnOnce } from './utils';\n\nfunction hasChildren(node, checkLength) {\n if (!node) return false;\n var base = node.props ? node.props.children : node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n}\n\nfunction getChildren(node) {\n if (!node) return [];\n return node && node.children ? node.children : node.props && node.props.children;\n}\n\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(function (child) {\n return React.isValidElement(child);\n });\n}\n\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\n\nfunction mergeProps(source, target) {\n var newTarget = _objectSpread({}, target);\n\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\n\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n var stringNode = '';\n var childrenArray = getAsArray(children);\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n childrenArray.forEach(function (child, childIndex) {\n if (typeof child === 'string') {\n stringNode += \"\".concat(child);\n } else if (React.isValidElement(child)) {\n var childPropsCount = Object.keys(child.props).length;\n var shouldKeepChild = keepArray.indexOf(child.type) > -1;\n var childChildren = child.props.children;\n\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += \"<\".concat(child.type, \"/>\");\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (child.props.i18nIsDynamicList) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += \"<\".concat(child.type, \">\").concat(childChildren, \"\");\n } else {\n var content = nodesToString(childChildren, i18nOptions);\n stringNode += \"<\".concat(childIndex, \">\").concat(content, \"\");\n }\n } else if (_typeof(child) === 'object') {\n var format = child.format,\n clone = _objectWithoutProperties(child, [\"format\"]);\n\n var keys = Object.keys(clone);\n\n if (keys.length === 1) {\n var value = format ? \"\".concat(keys[0], \", \").concat(format) : keys[0];\n stringNode += \"{{\".concat(value, \"}}\");\n } else {\n warn(\"react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.\", child);\n }\n } else {\n warn(\"Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.\", child);\n }\n });\n return stringNode;\n}\n\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {\n if (targetString === '') return [];\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling) return [targetString];\n var data = {};\n\n function getData(childs) {\n var childrenArray = getAsArray(childs);\n childrenArray.forEach(function (child) {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !React.isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread(_objectSpread({}, data), combinedTOpts), i18n.language);\n var ast = HTML.parse(\"<0>\".concat(interpolatedString, \"\"));\n\n function renderInner(child, node, rootReactNode) {\n var childs = getChildren(child);\n var mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;\n }\n\n function pushTranslatedJSX(child, inner, mem, i) {\n if (child.dummy) child.children = inner;\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), inner));\n }\n\n function mapAST(reactNode, astNode, rootReactNode) {\n var reactNodes = getAsArray(reactNode);\n var astNodes = getAsArray(astNode);\n return astNodes.reduce(function (mem, node, i) {\n var translationContent = node.children && node.children[0] && node.children[0].content;\n\n if (node.type === 'tag') {\n var tmp = reactNodes[parseInt(node.name, 10)];\n if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n var child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n var isElement = React.isValidElement(child);\n var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;\n var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n\n if (typeof child === 'string') {\n mem.push(child);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n var inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n var _inner = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), _inner));\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n var _inner2 = renderInner(child, node, rootReactNode);\n\n pushTranslatedJSX(child, _inner2, mem, i);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(React.createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }));\n } else {\n var _inner3 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(React.createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _inner3));\n }\n } else if (node.voidElement) {\n mem.push(\"<\".concat(node.name, \" />\"));\n } else {\n var _inner4 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(\"<\".concat(node.name, \">\").concat(_inner4, \"\"));\n }\n } else if (_typeof(child) === 'object' && !isElement) {\n var content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else if (node.children.length === 1 && translationContent) {\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), translationContent));\n } else {\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n mem.push(node.content);\n }\n\n return mem;\n }, []);\n }\n\n var result = mapAST([{\n dummy: true,\n children: children\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\n\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n additionalProps = _objectWithoutProperties(_ref, [\"children\", \"count\", \"parent\", \"i18nKey\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\"]);\n\n var _ref2 = useContext(I18nContext) || {},\n i18nFromContext = _ref2.i18n,\n defaultNSFromContext = _ref2.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n\n var t = tFromProps || i18n.t.bind(i18n) || function (k) {\n return k;\n };\n\n var reactI18nextOptions = _objectSpread(_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);\n\n var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n var defaultValue = defaults || nodesToString(children, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n var hashTransKey = reactI18nextOptions.hashTransKey;\n var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);\n var interpolationOverride = values ? tOptions.interpolation : {\n interpolation: _objectSpread(_objectSpread({}, tOptions.interpolation), {}, {\n prefix: '#$?',\n suffix: '?$#'\n })\n };\n\n var combinedTOpts = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, tOptions), {}, {\n count: count\n }, values), interpolationOverride), {}, {\n defaultValue: defaultValue,\n ns: namespaces\n });\n\n var translation = key ? t(key, combinedTOpts) : defaultValue;\n var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? React.createElement(useAsParent, additionalProps, content) : content;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport ListContext from '../List/ListContext';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n minWidth: 56,\n color: theme.palette.action.active,\n flexShrink: 0,\n display: 'inline-flex'\n },\n\n /* Styles applied to the root element when the parent `ListItem` uses `alignItems=\"flex-start\"`. */\n alignItemsFlexStart: {\n marginTop: 8\n }\n };\n};\n/**\n * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.\n */\n\nvar ListItemIcon = /*#__PURE__*/React.forwardRef(function ListItemIcon(props, ref) {\n var classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"classes\", \"className\"]);\n\n var context = React.useContext(ListContext);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, context.alignItems === 'flex-start' && classes.alignItemsFlexStart),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally `Icon`, `SvgIcon`,\n * or a `@material-ui/icons` SVG icon element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiListItemIcon'\n})(ListItemIcon);","export { default } from './ShowroomContext';\n","import { invariant } from '../../utilities/globals';\n\nimport * as React from 'react';\n\nimport { ApolloClient } from '../../core';\nimport { getApolloContext } from '../context';\n\nexport function useApolloClient(): ApolloClient {\n const { client } = React.useContext(getApolloContext());\n invariant(\n client,\n 'No Apollo Client instance can be found. Please ensure that you ' +\n 'have called `ApolloProvider` higher up in your tree.'\n );\n return client!;\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\"\n}), 'Phone');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 16h8v2H8zm0-4h8v2H8zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z\"\n}), 'DescriptionOutlined');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"\n}), 'ClearTwoTone');\n\nexports.default = _default;","var map = {\n\t\"./af.json\": 1283,\n\t\"./am.json\": 1284,\n\t\"./ar.json\": 1285,\n\t\"./az.json\": 1286,\n\t\"./be.json\": 1287,\n\t\"./bg.json\": 1288,\n\t\"./bn.json\": 1289,\n\t\"./br.json\": 1290,\n\t\"./bs.json\": 1291,\n\t\"./ca.json\": 1292,\n\t\"./cs.json\": 1293,\n\t\"./cy.json\": 1294,\n\t\"./da.json\": 1295,\n\t\"./de.json\": 1296,\n\t\"./dv.json\": 1297,\n\t\"./el.json\": 1298,\n\t\"./en.json\": 458,\n\t\"./es.json\": 1299,\n\t\"./et.json\": 1300,\n\t\"./eu.json\": 1301,\n\t\"./fa.json\": 1302,\n\t\"./fi.json\": 1303,\n\t\"./fr.json\": 1304,\n\t\"./gl.json\": 1305,\n\t\"./ha.json\": 1306,\n\t\"./he.json\": 1307,\n\t\"./hi.json\": 1308,\n\t\"./hr.json\": 1309,\n\t\"./hu.json\": 1310,\n\t\"./hy.json\": 1311,\n\t\"./id.json\": 1312,\n\t\"./is.json\": 1313,\n\t\"./it.json\": 1314,\n\t\"./ja.json\": 1315,\n\t\"./ka.json\": 1316,\n\t\"./kk.json\": 1317,\n\t\"./km.json\": 1318,\n\t\"./ko.json\": 1319,\n\t\"./ku.json\": 1320,\n\t\"./ky.json\": 1321,\n\t\"./lt.json\": 1322,\n\t\"./lv.json\": 1323,\n\t\"./mk.json\": 1324,\n\t\"./ml.json\": 1325,\n\t\"./mn.json\": 1326,\n\t\"./mr.json\": 1327,\n\t\"./ms.json\": 1328,\n\t\"./nb.json\": 1329,\n\t\"./nl.json\": 1330,\n\t\"./nn.json\": 1331,\n\t\"./no.json\": 1332,\n\t\"./pl.json\": 1333,\n\t\"./ps.json\": 1334,\n\t\"./pt.json\": 1335,\n\t\"./ro.json\": 1336,\n\t\"./ru.json\": 1337,\n\t\"./sd.json\": 1338,\n\t\"./sk.json\": 1339,\n\t\"./sl.json\": 1340,\n\t\"./so.json\": 1341,\n\t\"./sq.json\": 1342,\n\t\"./sr.json\": 1343,\n\t\"./sv.json\": 1344,\n\t\"./sw.json\": 1345,\n\t\"./ta.json\": 1346,\n\t\"./tg.json\": 1347,\n\t\"./th.json\": 1348,\n\t\"./tr.json\": 1349,\n\t\"./tt.json\": 1350,\n\t\"./ug.json\": 1351,\n\t\"./uk.json\": 1352,\n\t\"./ur.json\": 1353,\n\t\"./uz.json\": 1354,\n\t\"./vi.json\": 1355,\n\t\"./zh.json\": 1356\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1282;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2 20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z\"\n}), 'PhoneAndroid');\n\nexports.default = _default;","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","/**\n * chroma.js - JavaScript library for color conversions\n *\n * Copyright (c) 2011-2019, Gregor Aisch\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. The name Gregor Aisch may not be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -------------------------------------------------------\n *\n * chroma.js includes colors from colorbrewer2.org, which are released under\n * the following license:\n *\n * Copyright (c) 2002 Cynthia Brewer, Mark Harrower,\n * and The Pennsylvania State University.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\n * either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n *\n * ------------------------------------------------------\n *\n * Named colors are taken from X11 Color Names.\n * http://www.w3.org/TR/css3-color/#svg-color\n *\n * @preserve\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.chroma = factory());\n}(this, (function () { 'use strict';\n\n var limit = function (x, min, max) {\n if ( min === void 0 ) min=0;\n if ( max === void 0 ) max=1;\n\n return x < min ? min : x > max ? max : x;\n };\n\n var clip_rgb = function (rgb) {\n rgb._clipped = false;\n rgb._unclipped = rgb.slice(0);\n for (var i=0; i<=3; i++) {\n if (i < 3) {\n if (rgb[i] < 0 || rgb[i] > 255) { rgb._clipped = true; }\n rgb[i] = limit(rgb[i], 0, 255);\n } else if (i === 3) {\n rgb[i] = limit(rgb[i], 0, 1);\n }\n }\n return rgb;\n };\n\n // ported from jQuery's $.type\n var classToType = {};\n for (var i = 0, list = ['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Undefined', 'Null']; i < list.length; i += 1) {\n var name = list[i];\n\n classToType[(\"[object \" + name + \"]\")] = name.toLowerCase();\n }\n var type = function(obj) {\n return classToType[Object.prototype.toString.call(obj)] || \"object\";\n };\n\n var unpack = function (args, keyOrder) {\n if ( keyOrder === void 0 ) keyOrder=null;\n\n \t// if called with more than 3 arguments, we return the arguments\n if (args.length >= 3) { return Array.prototype.slice.call(args); }\n // with less than 3 args we check if first arg is object\n // and use the keyOrder string to extract and sort properties\n \tif (type(args[0]) == 'object' && keyOrder) {\n \t\treturn keyOrder.split('')\n \t\t\t.filter(function (k) { return args[0][k] !== undefined; })\n \t\t\t.map(function (k) { return args[0][k]; });\n \t}\n \t// otherwise we just return the first argument\n \t// (which we suppose is an array of args)\n return args[0];\n };\n\n var last = function (args) {\n if (args.length < 2) { return null; }\n var l = args.length-1;\n if (type(args[l]) == 'string') { return args[l].toLowerCase(); }\n return null;\n };\n\n var PI = Math.PI;\n\n var utils = {\n \tclip_rgb: clip_rgb,\n \tlimit: limit,\n \ttype: type,\n \tunpack: unpack,\n \tlast: last,\n \tPI: PI,\n \tTWOPI: PI*2,\n \tPITHIRD: PI/3,\n \tDEG2RAD: PI / 180,\n \tRAD2DEG: 180 / PI\n };\n\n var input = {\n \tformat: {},\n \tautodetect: []\n };\n\n var last$1 = utils.last;\n var clip_rgb$1 = utils.clip_rgb;\n var type$1 = utils.type;\n\n\n var Color = function Color() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var me = this;\n if (type$1(args[0]) === 'object' &&\n args[0].constructor &&\n args[0].constructor === this.constructor) {\n // the argument is already a Color instance\n return args[0];\n }\n\n // last argument could be the mode\n var mode = last$1(args);\n var autodetect = false;\n\n if (!mode) {\n autodetect = true;\n if (!input.sorted) {\n input.autodetect = input.autodetect.sort(function (a,b) { return b.p - a.p; });\n input.sorted = true;\n }\n // auto-detect format\n for (var i = 0, list = input.autodetect; i < list.length; i += 1) {\n var chk = list[i];\n\n mode = chk.test.apply(chk, args);\n if (mode) { break; }\n }\n }\n\n if (input.format[mode]) {\n var rgb = input.format[mode].apply(null, autodetect ? args : args.slice(0,-1));\n me._rgb = clip_rgb$1(rgb);\n } else {\n throw new Error('unknown format: '+args);\n }\n\n // add alpha channel\n if (me._rgb.length === 3) { me._rgb.push(1); }\n };\n\n Color.prototype.toString = function toString () {\n if (type$1(this.hex) == 'function') { return this.hex(); }\n return (\"[\" + (this._rgb.join(',')) + \"]\");\n };\n\n var Color_1 = Color;\n\n var chroma = function () {\n \tvar args = [], len = arguments.length;\n \twhile ( len-- ) args[ len ] = arguments[ len ];\n\n \treturn new (Function.prototype.bind.apply( chroma.Color, [ null ].concat( args) ));\n };\n\n chroma.Color = Color_1;\n chroma.version = '2.1.2';\n\n var chroma_1 = chroma;\n\n var unpack$1 = utils.unpack;\n var max = Math.max;\n\n var rgb2cmyk = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$1(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n r = r / 255;\n g = g / 255;\n b = b / 255;\n var k = 1 - max(r,max(g,b));\n var f = k < 1 ? 1 / (1-k) : 0;\n var c = (1-r-k) * f;\n var m = (1-g-k) * f;\n var y = (1-b-k) * f;\n return [c,m,y,k];\n };\n\n var rgb2cmyk_1 = rgb2cmyk;\n\n var unpack$2 = utils.unpack;\n\n var cmyk2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$2(args, 'cmyk');\n var c = args[0];\n var m = args[1];\n var y = args[2];\n var k = args[3];\n var alpha = args.length > 4 ? args[4] : 1;\n if (k === 1) { return [0,0,0,alpha]; }\n return [\n c >= 1 ? 0 : 255 * (1-c) * (1-k), // r\n m >= 1 ? 0 : 255 * (1-m) * (1-k), // g\n y >= 1 ? 0 : 255 * (1-y) * (1-k), // b\n alpha\n ];\n };\n\n var cmyk2rgb_1 = cmyk2rgb;\n\n var unpack$3 = utils.unpack;\n var type$2 = utils.type;\n\n\n\n Color_1.prototype.cmyk = function() {\n return rgb2cmyk_1(this._rgb);\n };\n\n chroma_1.cmyk = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['cmyk']) ));\n };\n\n input.format.cmyk = cmyk2rgb_1;\n\n input.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$3(args, 'cmyk');\n if (type$2(args) === 'array' && args.length === 4) {\n return 'cmyk';\n }\n }\n });\n\n var unpack$4 = utils.unpack;\n var last$2 = utils.last;\n var rnd = function (a) { return Math.round(a*100)/100; };\n\n /*\n * supported arguments:\n * - hsl2css(h,s,l)\n * - hsl2css(h,s,l,a)\n * - hsl2css([h,s,l], mode)\n * - hsl2css([h,s,l,a], mode)\n * - hsl2css({h,s,l,a}, mode)\n */\n var hsl2css = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var hsla = unpack$4(args, 'hsla');\n var mode = last$2(args) || 'lsa';\n hsla[0] = rnd(hsla[0] || 0);\n hsla[1] = rnd(hsla[1]*100) + '%';\n hsla[2] = rnd(hsla[2]*100) + '%';\n if (mode === 'hsla' || (hsla.length > 3 && hsla[3]<1)) {\n hsla[3] = hsla.length > 3 ? hsla[3] : 1;\n mode = 'hsla';\n } else {\n hsla.length = 3;\n }\n return (mode + \"(\" + (hsla.join(',')) + \")\");\n };\n\n var hsl2css_1 = hsl2css;\n\n var unpack$5 = utils.unpack;\n\n /*\n * supported arguments:\n * - rgb2hsl(r,g,b)\n * - rgb2hsl(r,g,b,a)\n * - rgb2hsl([r,g,b])\n * - rgb2hsl([r,g,b,a])\n * - rgb2hsl({r,g,b,a})\n */\n var rgb2hsl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$5(args, 'rgba');\n var r = args[0];\n var g = args[1];\n var b = args[2];\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n\n var l = (max + min) / 2;\n var s, h;\n\n if (max === min){\n s = 0;\n h = Number.NaN;\n } else {\n s = l < 0.5 ? (max - min) / (max + min) : (max - min) / (2 - max - min);\n }\n\n if (r == max) { h = (g - b) / (max - min); }\n else if (g == max) { h = 2 + (b - r) / (max - min); }\n else if (b == max) { h = 4 + (r - g) / (max - min); }\n\n h *= 60;\n if (h < 0) { h += 360; }\n if (args.length>3 && args[3]!==undefined) { return [h,s,l,args[3]]; }\n return [h,s,l];\n };\n\n var rgb2hsl_1 = rgb2hsl;\n\n var unpack$6 = utils.unpack;\n var last$3 = utils.last;\n\n\n var round = Math.round;\n\n /*\n * supported arguments:\n * - rgb2css(r,g,b)\n * - rgb2css(r,g,b,a)\n * - rgb2css([r,g,b], mode)\n * - rgb2css([r,g,b,a], mode)\n * - rgb2css({r,g,b,a}, mode)\n */\n var rgb2css = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var rgba = unpack$6(args, 'rgba');\n var mode = last$3(args) || 'rgb';\n if (mode.substr(0,3) == 'hsl') {\n return hsl2css_1(rgb2hsl_1(rgba), mode);\n }\n rgba[0] = round(rgba[0]);\n rgba[1] = round(rgba[1]);\n rgba[2] = round(rgba[2]);\n if (mode === 'rgba' || (rgba.length > 3 && rgba[3]<1)) {\n rgba[3] = rgba.length > 3 ? rgba[3] : 1;\n mode = 'rgba';\n }\n return (mode + \"(\" + (rgba.slice(0,mode==='rgb'?3:4).join(',')) + \")\");\n };\n\n var rgb2css_1 = rgb2css;\n\n var unpack$7 = utils.unpack;\n var round$1 = Math.round;\n\n var hsl2rgb = function () {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n args = unpack$7(args, 'hsl');\n var h = args[0];\n var s = args[1];\n var l = args[2];\n var r,g,b;\n if (s === 0) {\n r = g = b = l*255;\n } else {\n var t3 = [0,0,0];\n var c = [0,0,0];\n var t2 = l < 0.5 ? l * (1+s) : l+s-l*s;\n var t1 = 2 * l - t2;\n var h_ = h / 360;\n t3[0] = h_ + 1/3;\n t3[1] = h_;\n t3[2] = h_ - 1/3;\n for (var i=0; i<3; i++) {\n if (t3[i] < 0) { t3[i] += 1; }\n if (t3[i] > 1) { t3[i] -= 1; }\n if (6 * t3[i] < 1)\n { c[i] = t1 + (t2 - t1) * 6 * t3[i]; }\n else if (2 * t3[i] < 1)\n { c[i] = t2; }\n else if (3 * t3[i] < 2)\n { c[i] = t1 + (t2 - t1) * ((2 / 3) - t3[i]) * 6; }\n else\n { c[i] = t1; }\n }\n (assign = [round$1(c[0]*255),round$1(c[1]*255),round$1(c[2]*255)], r = assign[0], g = assign[1], b = assign[2]);\n }\n if (args.length > 3) {\n // keep alpha channel\n return [r,g,b,args[3]];\n }\n return [r,g,b,1];\n };\n\n var hsl2rgb_1 = hsl2rgb;\n\n var RE_RGB = /^rgb\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*\\)$/;\n var RE_RGBA = /^rgba\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n var RE_RGB_PCT = /^rgb\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\n var RE_RGBA_PCT = /^rgba\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n var RE_HSL = /^hsl\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\n var RE_HSLA = /^hsla\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n\n var round$2 = Math.round;\n\n var css2rgb = function (css) {\n css = css.toLowerCase().trim();\n var m;\n\n if (input.format.named) {\n try {\n return input.format.named(css);\n } catch (e) {\n // eslint-disable-next-line\n }\n }\n\n // rgb(250,20,0)\n if ((m = css.match(RE_RGB))) {\n var rgb = m.slice(1,4);\n for (var i=0; i<3; i++) {\n rgb[i] = +rgb[i];\n }\n rgb[3] = 1; // default alpha\n return rgb;\n }\n\n // rgba(250,20,0,0.4)\n if ((m = css.match(RE_RGBA))) {\n var rgb$1 = m.slice(1,5);\n for (var i$1=0; i$1<4; i$1++) {\n rgb$1[i$1] = +rgb$1[i$1];\n }\n return rgb$1;\n }\n\n // rgb(100%,0%,0%)\n if ((m = css.match(RE_RGB_PCT))) {\n var rgb$2 = m.slice(1,4);\n for (var i$2=0; i$2<3; i$2++) {\n rgb$2[i$2] = round$2(rgb$2[i$2] * 2.55);\n }\n rgb$2[3] = 1; // default alpha\n return rgb$2;\n }\n\n // rgba(100%,0%,0%,0.4)\n if ((m = css.match(RE_RGBA_PCT))) {\n var rgb$3 = m.slice(1,5);\n for (var i$3=0; i$3<3; i$3++) {\n rgb$3[i$3] = round$2(rgb$3[i$3] * 2.55);\n }\n rgb$3[3] = +rgb$3[3];\n return rgb$3;\n }\n\n // hsl(0,100%,50%)\n if ((m = css.match(RE_HSL))) {\n var hsl = m.slice(1,4);\n hsl[1] *= 0.01;\n hsl[2] *= 0.01;\n var rgb$4 = hsl2rgb_1(hsl);\n rgb$4[3] = 1;\n return rgb$4;\n }\n\n // hsla(0,100%,50%,0.5)\n if ((m = css.match(RE_HSLA))) {\n var hsl$1 = m.slice(1,4);\n hsl$1[1] *= 0.01;\n hsl$1[2] *= 0.01;\n var rgb$5 = hsl2rgb_1(hsl$1);\n rgb$5[3] = +m[4]; // default alpha = 1\n return rgb$5;\n }\n };\n\n css2rgb.test = function (s) {\n return RE_RGB.test(s) ||\n RE_RGBA.test(s) ||\n RE_RGB_PCT.test(s) ||\n RE_RGBA_PCT.test(s) ||\n RE_HSL.test(s) ||\n RE_HSLA.test(s);\n };\n\n var css2rgb_1 = css2rgb;\n\n var type$3 = utils.type;\n\n\n\n\n Color_1.prototype.css = function(mode) {\n return rgb2css_1(this._rgb, mode);\n };\n\n chroma_1.css = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['css']) ));\n };\n\n input.format.css = css2rgb_1;\n\n input.autodetect.push({\n p: 5,\n test: function (h) {\n var rest = [], len = arguments.length - 1;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n if (!rest.length && type$3(h) === 'string' && css2rgb_1.test(h)) {\n return 'css';\n }\n }\n });\n\n var unpack$8 = utils.unpack;\n\n input.format.gl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var rgb = unpack$8(args, 'rgba');\n rgb[0] *= 255;\n rgb[1] *= 255;\n rgb[2] *= 255;\n return rgb;\n };\n\n chroma_1.gl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['gl']) ));\n };\n\n Color_1.prototype.gl = function() {\n var rgb = this._rgb;\n return [rgb[0]/255, rgb[1]/255, rgb[2]/255, rgb[3]];\n };\n\n var unpack$9 = utils.unpack;\n\n var rgb2hcg = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$9(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var c = delta * 100 / 255;\n var _g = min / (255 - delta) * 100;\n var h;\n if (delta === 0) {\n h = Number.NaN;\n } else {\n if (r === max) { h = (g - b) / delta; }\n if (g === max) { h = 2+(b - r) / delta; }\n if (b === max) { h = 4+(r - g) / delta; }\n h *= 60;\n if (h < 0) { h += 360; }\n }\n return [h, c, _g];\n };\n\n var rgb2hcg_1 = rgb2hcg;\n\n var unpack$a = utils.unpack;\n var floor = Math.floor;\n\n /*\n * this is basically just HSV with some minor tweaks\n *\n * hue.. [0..360]\n * chroma .. [0..1]\n * grayness .. [0..1]\n */\n\n var hcg2rgb = function () {\n var assign, assign$1, assign$2, assign$3, assign$4, assign$5;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n args = unpack$a(args, 'hcg');\n var h = args[0];\n var c = args[1];\n var _g = args[2];\n var r,g,b;\n _g = _g * 255;\n var _c = c * 255;\n if (c === 0) {\n r = g = b = _g;\n } else {\n if (h === 360) { h = 0; }\n if (h > 360) { h -= 360; }\n if (h < 0) { h += 360; }\n h /= 60;\n var i = floor(h);\n var f = h - i;\n var p = _g * (1 - c);\n var q = p + _c * (1 - f);\n var t = p + _c * f;\n var v = p + _c;\n switch (i) {\n case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break\n case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break\n case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break\n case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break\n case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break\n case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break\n }\n }\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n var hcg2rgb_1 = hcg2rgb;\n\n var unpack$b = utils.unpack;\n var type$4 = utils.type;\n\n\n\n\n\n\n Color_1.prototype.hcg = function() {\n return rgb2hcg_1(this._rgb);\n };\n\n chroma_1.hcg = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hcg']) ));\n };\n\n input.format.hcg = hcg2rgb_1;\n\n input.autodetect.push({\n p: 1,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$b(args, 'hcg');\n if (type$4(args) === 'array' && args.length === 3) {\n return 'hcg';\n }\n }\n });\n\n var unpack$c = utils.unpack;\n var last$4 = utils.last;\n var round$3 = Math.round;\n\n var rgb2hex = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$c(args, 'rgba');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var a = ref[3];\n var mode = last$4(args) || 'auto';\n if (a === undefined) { a = 1; }\n if (mode === 'auto') {\n mode = a < 1 ? 'rgba' : 'rgb';\n }\n r = round$3(r);\n g = round$3(g);\n b = round$3(b);\n var u = r << 16 | g << 8 | b;\n var str = \"000000\" + u.toString(16); //#.toUpperCase();\n str = str.substr(str.length - 6);\n var hxa = '0' + round$3(a * 255).toString(16);\n hxa = hxa.substr(hxa.length - 2);\n switch (mode.toLowerCase()) {\n case 'rgba': return (\"#\" + str + hxa);\n case 'argb': return (\"#\" + hxa + str);\n default: return (\"#\" + str);\n }\n };\n\n var rgb2hex_1 = rgb2hex;\n\n var RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n var RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/;\n\n var hex2rgb = function (hex) {\n if (hex.match(RE_HEX)) {\n // remove optional leading #\n if (hex.length === 4 || hex.length === 7) {\n hex = hex.substr(1);\n }\n // expand short-notation to full six-digit\n if (hex.length === 3) {\n hex = hex.split('');\n hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];\n }\n var u = parseInt(hex, 16);\n var r = u >> 16;\n var g = u >> 8 & 0xFF;\n var b = u & 0xFF;\n return [r,g,b,1];\n }\n\n // match rgba hex format, eg #FF000077\n if (hex.match(RE_HEXA)) {\n if (hex.length === 5 || hex.length === 9) {\n // remove optional leading #\n hex = hex.substr(1);\n }\n // expand short-notation to full eight-digit\n if (hex.length === 4) {\n hex = hex.split('');\n hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]+hex[3]+hex[3];\n }\n var u$1 = parseInt(hex, 16);\n var r$1 = u$1 >> 24 & 0xFF;\n var g$1 = u$1 >> 16 & 0xFF;\n var b$1 = u$1 >> 8 & 0xFF;\n var a = Math.round((u$1 & 0xFF) / 0xFF * 100) / 100;\n return [r$1,g$1,b$1,a];\n }\n\n // we used to check for css colors here\n // if _input.css? and rgb = _input.css hex\n // return rgb\n\n throw new Error((\"unknown hex color: \" + hex));\n };\n\n var hex2rgb_1 = hex2rgb;\n\n var type$5 = utils.type;\n\n\n\n\n Color_1.prototype.hex = function(mode) {\n return rgb2hex_1(this._rgb, mode);\n };\n\n chroma_1.hex = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hex']) ));\n };\n\n input.format.hex = hex2rgb_1;\n input.autodetect.push({\n p: 4,\n test: function (h) {\n var rest = [], len = arguments.length - 1;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n if (!rest.length && type$5(h) === 'string' && [3,4,5,6,7,8,9].indexOf(h.length) >= 0) {\n return 'hex';\n }\n }\n });\n\n var unpack$d = utils.unpack;\n var TWOPI = utils.TWOPI;\n var min = Math.min;\n var sqrt = Math.sqrt;\n var acos = Math.acos;\n\n var rgb2hsi = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp\n */\n var ref = unpack$d(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n r /= 255;\n g /= 255;\n b /= 255;\n var h;\n var min_ = min(r,g,b);\n var i = (r+g+b) / 3;\n var s = i > 0 ? 1 - min_/i : 0;\n if (s === 0) {\n h = NaN;\n } else {\n h = ((r-g)+(r-b)) / 2;\n h /= sqrt((r-g)*(r-g) + (r-b)*(g-b));\n h = acos(h);\n if (b > g) {\n h = TWOPI - h;\n }\n h /= TWOPI;\n }\n return [h*360,s,i];\n };\n\n var rgb2hsi_1 = rgb2hsi;\n\n var unpack$e = utils.unpack;\n var limit$1 = utils.limit;\n var TWOPI$1 = utils.TWOPI;\n var PITHIRD = utils.PITHIRD;\n var cos = Math.cos;\n\n /*\n * hue [0..360]\n * saturation [0..1]\n * intensity [0..1]\n */\n var hsi2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp\n */\n args = unpack$e(args, 'hsi');\n var h = args[0];\n var s = args[1];\n var i = args[2];\n var r,g,b;\n\n if (isNaN(h)) { h = 0; }\n if (isNaN(s)) { s = 0; }\n // normalize hue\n if (h > 360) { h -= 360; }\n if (h < 0) { h += 360; }\n h /= 360;\n if (h < 1/3) {\n b = (1-s)/3;\n r = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3;\n g = 1 - (b+r);\n } else if (h < 2/3) {\n h -= 1/3;\n r = (1-s)/3;\n g = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3;\n b = 1 - (r+g);\n } else {\n h -= 2/3;\n g = (1-s)/3;\n b = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3;\n r = 1 - (g+b);\n }\n r = limit$1(i*r*3);\n g = limit$1(i*g*3);\n b = limit$1(i*b*3);\n return [r*255, g*255, b*255, args.length > 3 ? args[3] : 1];\n };\n\n var hsi2rgb_1 = hsi2rgb;\n\n var unpack$f = utils.unpack;\n var type$6 = utils.type;\n\n\n\n\n\n\n Color_1.prototype.hsi = function() {\n return rgb2hsi_1(this._rgb);\n };\n\n chroma_1.hsi = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsi']) ));\n };\n\n input.format.hsi = hsi2rgb_1;\n\n input.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$f(args, 'hsi');\n if (type$6(args) === 'array' && args.length === 3) {\n return 'hsi';\n }\n }\n });\n\n var unpack$g = utils.unpack;\n var type$7 = utils.type;\n\n\n\n\n\n\n Color_1.prototype.hsl = function() {\n return rgb2hsl_1(this._rgb);\n };\n\n chroma_1.hsl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsl']) ));\n };\n\n input.format.hsl = hsl2rgb_1;\n\n input.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$g(args, 'hsl');\n if (type$7(args) === 'array' && args.length === 3) {\n return 'hsl';\n }\n }\n });\n\n var unpack$h = utils.unpack;\n var min$1 = Math.min;\n var max$1 = Math.max;\n\n /*\n * supported arguments:\n * - rgb2hsv(r,g,b)\n * - rgb2hsv([r,g,b])\n * - rgb2hsv({r,g,b})\n */\n var rgb2hsl$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$h(args, 'rgb');\n var r = args[0];\n var g = args[1];\n var b = args[2];\n var min_ = min$1(r, g, b);\n var max_ = max$1(r, g, b);\n var delta = max_ - min_;\n var h,s,v;\n v = max_ / 255.0;\n if (max_ === 0) {\n h = Number.NaN;\n s = 0;\n } else {\n s = delta / max_;\n if (r === max_) { h = (g - b) / delta; }\n if (g === max_) { h = 2+(b - r) / delta; }\n if (b === max_) { h = 4+(r - g) / delta; }\n h *= 60;\n if (h < 0) { h += 360; }\n }\n return [h, s, v]\n };\n\n var rgb2hsv = rgb2hsl$1;\n\n var unpack$i = utils.unpack;\n var floor$1 = Math.floor;\n\n var hsv2rgb = function () {\n var assign, assign$1, assign$2, assign$3, assign$4, assign$5;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n args = unpack$i(args, 'hsv');\n var h = args[0];\n var s = args[1];\n var v = args[2];\n var r,g,b;\n v *= 255;\n if (s === 0) {\n r = g = b = v;\n } else {\n if (h === 360) { h = 0; }\n if (h > 360) { h -= 360; }\n if (h < 0) { h += 360; }\n h /= 60;\n\n var i = floor$1(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break\n case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break\n case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break\n case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break\n case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break\n case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break\n }\n }\n return [r,g,b,args.length > 3?args[3]:1];\n };\n\n var hsv2rgb_1 = hsv2rgb;\n\n var unpack$j = utils.unpack;\n var type$8 = utils.type;\n\n\n\n\n\n\n Color_1.prototype.hsv = function() {\n return rgb2hsv(this._rgb);\n };\n\n chroma_1.hsv = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsv']) ));\n };\n\n input.format.hsv = hsv2rgb_1;\n\n input.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$j(args, 'hsv');\n if (type$8(args) === 'array' && args.length === 3) {\n return 'hsv';\n }\n }\n });\n\n var labConstants = {\n // Corresponds roughly to RGB brighter/darker\n Kn: 18,\n\n // D65 standard referent\n Xn: 0.950470,\n Yn: 1,\n Zn: 1.088830,\n\n t0: 0.137931034, // 4 / 29\n t1: 0.206896552, // 6 / 29\n t2: 0.12841855, // 3 * t1 * t1\n t3: 0.008856452, // t1 * t1 * t1\n };\n\n var unpack$k = utils.unpack;\n var pow = Math.pow;\n\n var rgb2lab = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$k(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var ref$1 = rgb2xyz(r,g,b);\n var x = ref$1[0];\n var y = ref$1[1];\n var z = ref$1[2];\n var l = 116 * y - 16;\n return [l < 0 ? 0 : l, 500 * (x - y), 200 * (y - z)];\n };\n\n var rgb_xyz = function (r) {\n if ((r /= 255) <= 0.04045) { return r / 12.92; }\n return pow((r + 0.055) / 1.055, 2.4);\n };\n\n var xyz_lab = function (t) {\n if (t > labConstants.t3) { return pow(t, 1 / 3); }\n return t / labConstants.t2 + labConstants.t0;\n };\n\n var rgb2xyz = function (r,g,b) {\n r = rgb_xyz(r);\n g = rgb_xyz(g);\n b = rgb_xyz(b);\n var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / labConstants.Xn);\n var y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / labConstants.Yn);\n var z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / labConstants.Zn);\n return [x,y,z];\n };\n\n var rgb2lab_1 = rgb2lab;\n\n var unpack$l = utils.unpack;\n var pow$1 = Math.pow;\n\n /*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\n var lab2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$l(args, 'lab');\n var l = args[0];\n var a = args[1];\n var b = args[2];\n var x,y,z, r,g,b_;\n\n y = (l + 16) / 116;\n x = isNaN(a) ? y : y + a / 500;\n z = isNaN(b) ? y : y - b / 200;\n\n y = labConstants.Yn * lab_xyz(y);\n x = labConstants.Xn * lab_xyz(x);\n z = labConstants.Zn * lab_xyz(z);\n\n r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z); // D65 -> sRGB\n g = xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z);\n b_ = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z);\n\n return [r,g,b_,args.length > 3 ? args[3] : 1];\n };\n\n var xyz_rgb = function (r) {\n return 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * pow$1(r, 1 / 2.4) - 0.055)\n };\n\n var lab_xyz = function (t) {\n return t > labConstants.t1 ? t * t * t : labConstants.t2 * (t - labConstants.t0)\n };\n\n var lab2rgb_1 = lab2rgb;\n\n var unpack$m = utils.unpack;\n var type$9 = utils.type;\n\n\n\n\n\n\n Color_1.prototype.lab = function() {\n return rgb2lab_1(this._rgb);\n };\n\n chroma_1.lab = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['lab']) ));\n };\n\n input.format.lab = lab2rgb_1;\n\n input.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$m(args, 'lab');\n if (type$9(args) === 'array' && args.length === 3) {\n return 'lab';\n }\n }\n });\n\n var unpack$n = utils.unpack;\n var RAD2DEG = utils.RAD2DEG;\n var sqrt$1 = Math.sqrt;\n var atan2 = Math.atan2;\n var round$4 = Math.round;\n\n var lab2lch = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$n(args, 'lab');\n var l = ref[0];\n var a = ref[1];\n var b = ref[2];\n var c = sqrt$1(a * a + b * b);\n var h = (atan2(b, a) * RAD2DEG + 360) % 360;\n if (round$4(c*10000) === 0) { h = Number.NaN; }\n return [l, c, h];\n };\n\n var lab2lch_1 = lab2lch;\n\n var unpack$o = utils.unpack;\n\n\n\n var rgb2lch = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$o(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var ref$1 = rgb2lab_1(r,g,b);\n var l = ref$1[0];\n var a = ref$1[1];\n var b_ = ref$1[2];\n return lab2lch_1(l,a,b_);\n };\n\n var rgb2lch_1 = rgb2lch;\n\n var unpack$p = utils.unpack;\n var DEG2RAD = utils.DEG2RAD;\n var sin = Math.sin;\n var cos$1 = Math.cos;\n\n var lch2lab = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n /*\n Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n These formulas were invented by David Dalrymple to obtain maximum contrast without going\n out of gamut if the parameters are in the range 0-1.\n\n A saturation multiplier was added by Gregor Aisch\n */\n var ref = unpack$p(args, 'lch');\n var l = ref[0];\n var c = ref[1];\n var h = ref[2];\n if (isNaN(h)) { h = 0; }\n h = h * DEG2RAD;\n return [l, cos$1(h) * c, sin(h) * c]\n };\n\n var lch2lab_1 = lch2lab;\n\n var unpack$q = utils.unpack;\n\n\n\n var lch2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$q(args, 'lch');\n var l = args[0];\n var c = args[1];\n var h = args[2];\n var ref = lch2lab_1 (l,c,h);\n var L = ref[0];\n var a = ref[1];\n var b_ = ref[2];\n var ref$1 = lab2rgb_1 (L,a,b_);\n var r = ref$1[0];\n var g = ref$1[1];\n var b = ref$1[2];\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n var lch2rgb_1 = lch2rgb;\n\n var unpack$r = utils.unpack;\n\n\n var hcl2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var hcl = unpack$r(args, 'hcl').reverse();\n return lch2rgb_1.apply(void 0, hcl);\n };\n\n var hcl2rgb_1 = hcl2rgb;\n\n var unpack$s = utils.unpack;\n var type$a = utils.type;\n\n\n\n\n\n\n Color_1.prototype.lch = function() { return rgb2lch_1(this._rgb); };\n Color_1.prototype.hcl = function() { return rgb2lch_1(this._rgb).reverse(); };\n\n chroma_1.lch = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['lch']) ));\n };\n chroma_1.hcl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hcl']) ));\n };\n\n input.format.lch = lch2rgb_1;\n input.format.hcl = hcl2rgb_1;\n\n ['lch','hcl'].forEach(function (m) { return input.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$s(args, m);\n if (type$a(args) === 'array' && args.length === 3) {\n return m;\n }\n }\n }); });\n\n /**\n \tX11 color names\n\n \thttp://www.w3.org/TR/css3-color/#svg-color\n */\n\n var w3cx11 = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflower: '#6495ed',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n laserlemon: '#ffff54',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrod: '#fafad2',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n maroon2: '#7f0000',\n maroon3: '#b03060',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n purple2: '#7f007f',\n purple3: '#a020f0',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n };\n\n var w3cx11_1 = w3cx11;\n\n var type$b = utils.type;\n\n\n\n\n\n Color_1.prototype.name = function() {\n var hex = rgb2hex_1(this._rgb, 'rgb');\n for (var i = 0, list = Object.keys(w3cx11_1); i < list.length; i += 1) {\n var n = list[i];\n\n if (w3cx11_1[n] === hex) { return n.toLowerCase(); }\n }\n return hex;\n };\n\n input.format.named = function (name) {\n name = name.toLowerCase();\n if (w3cx11_1[name]) { return hex2rgb_1(w3cx11_1[name]); }\n throw new Error('unknown color name: '+name);\n };\n\n input.autodetect.push({\n p: 5,\n test: function (h) {\n var rest = [], len = arguments.length - 1;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n if (!rest.length && type$b(h) === 'string' && w3cx11_1[h.toLowerCase()]) {\n return 'named';\n }\n }\n });\n\n var unpack$t = utils.unpack;\n\n var rgb2num = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$t(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n return (r << 16) + (g << 8) + b;\n };\n\n var rgb2num_1 = rgb2num;\n\n var type$c = utils.type;\n\n var num2rgb = function (num) {\n if (type$c(num) == \"number\" && num >= 0 && num <= 0xFFFFFF) {\n var r = num >> 16;\n var g = (num >> 8) & 0xFF;\n var b = num & 0xFF;\n return [r,g,b,1];\n }\n throw new Error(\"unknown num color: \"+num);\n };\n\n var num2rgb_1 = num2rgb;\n\n var type$d = utils.type;\n\n\n\n Color_1.prototype.num = function() {\n return rgb2num_1(this._rgb);\n };\n\n chroma_1.num = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['num']) ));\n };\n\n input.format.num = num2rgb_1;\n\n input.autodetect.push({\n p: 5,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (args.length === 1 && type$d(args[0]) === 'number' && args[0] >= 0 && args[0] <= 0xFFFFFF) {\n return 'num';\n }\n }\n });\n\n var unpack$u = utils.unpack;\n var type$e = utils.type;\n var round$5 = Math.round;\n\n Color_1.prototype.rgb = function(rnd) {\n if ( rnd === void 0 ) rnd=true;\n\n if (rnd === false) { return this._rgb.slice(0,3); }\n return this._rgb.slice(0,3).map(round$5);\n };\n\n Color_1.prototype.rgba = function(rnd) {\n if ( rnd === void 0 ) rnd=true;\n\n return this._rgb.slice(0,4).map(function (v,i) {\n return i<3 ? (rnd === false ? v : round$5(v)) : v;\n });\n };\n\n chroma_1.rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['rgb']) ));\n };\n\n input.format.rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var rgba = unpack$u(args, 'rgba');\n if (rgba[3] === undefined) { rgba[3] = 1; }\n return rgba;\n };\n\n input.autodetect.push({\n p: 3,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$u(args, 'rgba');\n if (type$e(args) === 'array' && (args.length === 3 ||\n args.length === 4 && type$e(args[3]) == 'number' && args[3] >= 0 && args[3] <= 1)) {\n return 'rgb';\n }\n }\n });\n\n /*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n */\n\n var log = Math.log;\n\n var temperature2rgb = function (kelvin) {\n var temp = kelvin / 100;\n var r,g,b;\n if (temp < 66) {\n r = 255;\n g = -155.25485562709179 - 0.44596950469579133 * (g = temp-2) + 104.49216199393888 * log(g);\n b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp-10) + 115.67994401066147 * log(b);\n } else {\n r = 351.97690566805693 + 0.114206453784165 * (r = temp-55) - 40.25366309332127 * log(r);\n g = 325.4494125711974 + 0.07943456536662342 * (g = temp-50) - 28.0852963507957 * log(g);\n b = 255;\n }\n return [r,g,b,1];\n };\n\n var temperature2rgb_1 = temperature2rgb;\n\n /*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n **/\n\n\n var unpack$v = utils.unpack;\n var round$6 = Math.round;\n\n var rgb2temperature = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var rgb = unpack$v(args, 'rgb');\n var r = rgb[0], b = rgb[2];\n var minTemp = 1000;\n var maxTemp = 40000;\n var eps = 0.4;\n var temp;\n while (maxTemp - minTemp > eps) {\n temp = (maxTemp + minTemp) * 0.5;\n var rgb$1 = temperature2rgb_1(temp);\n if ((rgb$1[2] / rgb$1[0]) >= (b / r)) {\n maxTemp = temp;\n } else {\n minTemp = temp;\n }\n }\n return round$6(temp);\n };\n\n var rgb2temperature_1 = rgb2temperature;\n\n Color_1.prototype.temp =\n Color_1.prototype.kelvin =\n Color_1.prototype.temperature = function() {\n return rgb2temperature_1(this._rgb);\n };\n\n chroma_1.temp =\n chroma_1.kelvin =\n chroma_1.temperature = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['temp']) ));\n };\n\n input.format.temp =\n input.format.kelvin =\n input.format.temperature = temperature2rgb_1;\n\n var type$f = utils.type;\n\n Color_1.prototype.alpha = function(a, mutate) {\n if ( mutate === void 0 ) mutate=false;\n\n if (a !== undefined && type$f(a) === 'number') {\n if (mutate) {\n this._rgb[3] = a;\n return this;\n }\n return new Color_1([this._rgb[0], this._rgb[1], this._rgb[2], a], 'rgb');\n }\n return this._rgb[3];\n };\n\n Color_1.prototype.clipped = function() {\n return this._rgb._clipped || false;\n };\n\n Color_1.prototype.darken = function(amount) {\n \tif ( amount === void 0 ) amount=1;\n\n \tvar me = this;\n \tvar lab = me.lab();\n \tlab[0] -= labConstants.Kn * amount;\n \treturn new Color_1(lab, 'lab').alpha(me.alpha(), true);\n };\n\n Color_1.prototype.brighten = function(amount) {\n \tif ( amount === void 0 ) amount=1;\n\n \treturn this.darken(-amount);\n };\n\n Color_1.prototype.darker = Color_1.prototype.darken;\n Color_1.prototype.brighter = Color_1.prototype.brighten;\n\n Color_1.prototype.get = function(mc) {\n var ref = mc.split('.');\n var mode = ref[0];\n var channel = ref[1];\n var src = this[mode]();\n if (channel) {\n var i = mode.indexOf(channel);\n if (i > -1) { return src[i]; }\n throw new Error((\"unknown channel \" + channel + \" in mode \" + mode));\n } else {\n return src;\n }\n };\n\n var type$g = utils.type;\n var pow$2 = Math.pow;\n\n var EPS = 1e-7;\n var MAX_ITER = 20;\n\n Color_1.prototype.luminance = function(lum) {\n if (lum !== undefined && type$g(lum) === 'number') {\n if (lum === 0) {\n // return pure black\n return new Color_1([0,0,0,this._rgb[3]], 'rgb');\n }\n if (lum === 1) {\n // return pure white\n return new Color_1([255,255,255,this._rgb[3]], 'rgb');\n }\n // compute new color using...\n var cur_lum = this.luminance();\n var mode = 'rgb';\n var max_iter = MAX_ITER;\n\n var test = function (low, high) {\n var mid = low.interpolate(high, 0.5, mode);\n var lm = mid.luminance();\n if (Math.abs(lum - lm) < EPS || !max_iter--) {\n // close enough\n return mid;\n }\n return lm > lum ? test(low, mid) : test(mid, high);\n };\n\n var rgb = (cur_lum > lum ? test(new Color_1([0,0,0]), this) : test(this, new Color_1([255,255,255]))).rgb();\n return new Color_1(rgb.concat( [this._rgb[3]]));\n }\n return rgb2luminance.apply(void 0, (this._rgb).slice(0,3));\n };\n\n\n var rgb2luminance = function (r,g,b) {\n // relative luminance\n // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n r = luminance_x(r);\n g = luminance_x(g);\n b = luminance_x(b);\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n };\n\n var luminance_x = function (x) {\n x /= 255;\n return x <= 0.03928 ? x/12.92 : pow$2((x+0.055)/1.055, 2.4);\n };\n\n var interpolator = {};\n\n var type$h = utils.type;\n\n\n var mix = function (col1, col2, f) {\n if ( f === void 0 ) f=0.5;\n var rest = [], len = arguments.length - 3;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 3 ];\n\n var mode = rest[0] || 'lrgb';\n if (!interpolator[mode] && !rest.length) {\n // fall back to the first supported mode\n mode = Object.keys(interpolator)[0];\n }\n if (!interpolator[mode]) {\n throw new Error((\"interpolation mode \" + mode + \" is not defined\"));\n }\n if (type$h(col1) !== 'object') { col1 = new Color_1(col1); }\n if (type$h(col2) !== 'object') { col2 = new Color_1(col2); }\n return interpolator[mode](col1, col2, f)\n .alpha(col1.alpha() + f * (col2.alpha() - col1.alpha()));\n };\n\n Color_1.prototype.mix =\n Color_1.prototype.interpolate = function(col2, f) {\n \tif ( f === void 0 ) f=0.5;\n \tvar rest = [], len = arguments.length - 2;\n \twhile ( len-- > 0 ) rest[ len ] = arguments[ len + 2 ];\n\n \treturn mix.apply(void 0, [ this, col2, f ].concat( rest ));\n };\n\n Color_1.prototype.premultiply = function(mutate) {\n \tif ( mutate === void 0 ) mutate=false;\n\n \tvar rgb = this._rgb;\n \tvar a = rgb[3];\n \tif (mutate) {\n \t\tthis._rgb = [rgb[0]*a, rgb[1]*a, rgb[2]*a, a];\n \t\treturn this;\n \t} else {\n \t\treturn new Color_1([rgb[0]*a, rgb[1]*a, rgb[2]*a, a], 'rgb');\n \t}\n };\n\n Color_1.prototype.saturate = function(amount) {\n \tif ( amount === void 0 ) amount=1;\n\n \tvar me = this;\n \tvar lch = me.lch();\n \tlch[1] += labConstants.Kn * amount;\n \tif (lch[1] < 0) { lch[1] = 0; }\n \treturn new Color_1(lch, 'lch').alpha(me.alpha(), true);\n };\n\n Color_1.prototype.desaturate = function(amount) {\n \tif ( amount === void 0 ) amount=1;\n\n \treturn this.saturate(-amount);\n };\n\n var type$i = utils.type;\n\n Color_1.prototype.set = function(mc, value, mutate) {\n if ( mutate === void 0 ) mutate=false;\n\n var ref = mc.split('.');\n var mode = ref[0];\n var channel = ref[1];\n var src = this[mode]();\n if (channel) {\n var i = mode.indexOf(channel);\n if (i > -1) {\n if (type$i(value) == 'string') {\n switch(value.charAt(0)) {\n case '+': src[i] += +value; break;\n case '-': src[i] += +value; break;\n case '*': src[i] *= +(value.substr(1)); break;\n case '/': src[i] /= +(value.substr(1)); break;\n default: src[i] = +value;\n }\n } else if (type$i(value) === 'number') {\n src[i] = value;\n } else {\n throw new Error(\"unsupported value for Color.set\");\n }\n var out = new Color_1(src, mode);\n if (mutate) {\n this._rgb = out._rgb;\n return this;\n }\n return out;\n }\n throw new Error((\"unknown channel \" + channel + \" in mode \" + mode));\n } else {\n return src;\n }\n };\n\n var rgb$1 = function (col1, col2, f) {\n var xyz0 = col1._rgb;\n var xyz1 = col2._rgb;\n return new Color_1(\n xyz0[0] + f * (xyz1[0]-xyz0[0]),\n xyz0[1] + f * (xyz1[1]-xyz0[1]),\n xyz0[2] + f * (xyz1[2]-xyz0[2]),\n 'rgb'\n )\n };\n\n // register interpolator\n interpolator.rgb = rgb$1;\n\n var sqrt$2 = Math.sqrt;\n var pow$3 = Math.pow;\n\n var lrgb = function (col1, col2, f) {\n var ref = col1._rgb;\n var x1 = ref[0];\n var y1 = ref[1];\n var z1 = ref[2];\n var ref$1 = col2._rgb;\n var x2 = ref$1[0];\n var y2 = ref$1[1];\n var z2 = ref$1[2];\n return new Color_1(\n sqrt$2(pow$3(x1,2) * (1-f) + pow$3(x2,2) * f),\n sqrt$2(pow$3(y1,2) * (1-f) + pow$3(y2,2) * f),\n sqrt$2(pow$3(z1,2) * (1-f) + pow$3(z2,2) * f),\n 'rgb'\n )\n };\n\n // register interpolator\n interpolator.lrgb = lrgb;\n\n var lab$1 = function (col1, col2, f) {\n var xyz0 = col1.lab();\n var xyz1 = col2.lab();\n return new Color_1(\n xyz0[0] + f * (xyz1[0]-xyz0[0]),\n xyz0[1] + f * (xyz1[1]-xyz0[1]),\n xyz0[2] + f * (xyz1[2]-xyz0[2]),\n 'lab'\n )\n };\n\n // register interpolator\n interpolator.lab = lab$1;\n\n var _hsx = function (col1, col2, f, m) {\n var assign, assign$1;\n\n var xyz0, xyz1;\n if (m === 'hsl') {\n xyz0 = col1.hsl();\n xyz1 = col2.hsl();\n } else if (m === 'hsv') {\n xyz0 = col1.hsv();\n xyz1 = col2.hsv();\n } else if (m === 'hcg') {\n xyz0 = col1.hcg();\n xyz1 = col2.hcg();\n } else if (m === 'hsi') {\n xyz0 = col1.hsi();\n xyz1 = col2.hsi();\n } else if (m === 'lch' || m === 'hcl') {\n m = 'hcl';\n xyz0 = col1.hcl();\n xyz1 = col2.hcl();\n }\n\n var hue0, hue1, sat0, sat1, lbv0, lbv1;\n if (m.substr(0, 1) === 'h') {\n (assign = xyz0, hue0 = assign[0], sat0 = assign[1], lbv0 = assign[2]);\n (assign$1 = xyz1, hue1 = assign$1[0], sat1 = assign$1[1], lbv1 = assign$1[2]);\n }\n\n var sat, hue, lbv, dh;\n\n if (!isNaN(hue0) && !isNaN(hue1)) {\n // both colors have hue\n if (hue1 > hue0 && hue1 - hue0 > 180) {\n dh = hue1-(hue0+360);\n } else if (hue1 < hue0 && hue0 - hue1 > 180) {\n dh = hue1+360-hue0;\n } else{\n dh = hue1 - hue0;\n }\n hue = hue0 + f * dh;\n } else if (!isNaN(hue0)) {\n hue = hue0;\n if ((lbv1 == 1 || lbv1 == 0) && m != 'hsv') { sat = sat0; }\n } else if (!isNaN(hue1)) {\n hue = hue1;\n if ((lbv0 == 1 || lbv0 == 0) && m != 'hsv') { sat = sat1; }\n } else {\n hue = Number.NaN;\n }\n\n if (sat === undefined) { sat = sat0 + f * (sat1 - sat0); }\n lbv = lbv0 + f * (lbv1-lbv0);\n return new Color_1([hue, sat, lbv], m);\n };\n\n var lch$1 = function (col1, col2, f) {\n \treturn _hsx(col1, col2, f, 'lch');\n };\n\n // register interpolator\n interpolator.lch = lch$1;\n interpolator.hcl = lch$1;\n\n var num$1 = function (col1, col2, f) {\n var c1 = col1.num();\n var c2 = col2.num();\n return new Color_1(c1 + f * (c2-c1), 'num')\n };\n\n // register interpolator\n interpolator.num = num$1;\n\n var hcg$1 = function (col1, col2, f) {\n \treturn _hsx(col1, col2, f, 'hcg');\n };\n\n // register interpolator\n interpolator.hcg = hcg$1;\n\n var hsi$1 = function (col1, col2, f) {\n \treturn _hsx(col1, col2, f, 'hsi');\n };\n\n // register interpolator\n interpolator.hsi = hsi$1;\n\n var hsl$1 = function (col1, col2, f) {\n \treturn _hsx(col1, col2, f, 'hsl');\n };\n\n // register interpolator\n interpolator.hsl = hsl$1;\n\n var hsv$1 = function (col1, col2, f) {\n \treturn _hsx(col1, col2, f, 'hsv');\n };\n\n // register interpolator\n interpolator.hsv = hsv$1;\n\n var clip_rgb$2 = utils.clip_rgb;\n var pow$4 = Math.pow;\n var sqrt$3 = Math.sqrt;\n var PI$1 = Math.PI;\n var cos$2 = Math.cos;\n var sin$1 = Math.sin;\n var atan2$1 = Math.atan2;\n\n var average = function (colors, mode, weights) {\n if ( mode === void 0 ) mode='lrgb';\n if ( weights === void 0 ) weights=null;\n\n var l = colors.length;\n if (!weights) { weights = Array.from(new Array(l)).map(function () { return 1; }); }\n // normalize weights\n var k = l / weights.reduce(function(a, b) { return a + b; });\n weights.forEach(function (w,i) { weights[i] *= k; });\n // convert colors to Color objects\n colors = colors.map(function (c) { return new Color_1(c); });\n if (mode === 'lrgb') {\n return _average_lrgb(colors, weights)\n }\n var first = colors.shift();\n var xyz = first.get(mode);\n var cnt = [];\n var dx = 0;\n var dy = 0;\n // initial color\n for (var i=0; i= 360) { A$1 -= 360; }\n xyz[i$1] = A$1;\n } else {\n xyz[i$1] = xyz[i$1]/cnt[i$1];\n }\n }\n alpha /= l;\n return (new Color_1(xyz, mode)).alpha(alpha > 0.99999 ? 1 : alpha, true);\n };\n\n\n var _average_lrgb = function (colors, weights) {\n var l = colors.length;\n var xyz = [0,0,0,0];\n for (var i=0; i < colors.length; i++) {\n var col = colors[i];\n var f = weights[i] / l;\n var rgb = col._rgb;\n xyz[0] += pow$4(rgb[0],2) * f;\n xyz[1] += pow$4(rgb[1],2) * f;\n xyz[2] += pow$4(rgb[2],2) * f;\n xyz[3] += rgb[3] * f;\n }\n xyz[0] = sqrt$3(xyz[0]);\n xyz[1] = sqrt$3(xyz[1]);\n xyz[2] = sqrt$3(xyz[2]);\n if (xyz[3] > 0.9999999) { xyz[3] = 1; }\n return new Color_1(clip_rgb$2(xyz));\n };\n\n // minimal multi-purpose interface\n\n // @requires utils color analyze\n\n\n var type$j = utils.type;\n\n var pow$5 = Math.pow;\n\n var scale = function(colors) {\n\n // constructor\n var _mode = 'rgb';\n var _nacol = chroma_1('#ccc');\n var _spread = 0;\n // const _fixed = false;\n var _domain = [0, 1];\n var _pos = [];\n var _padding = [0,0];\n var _classes = false;\n var _colors = [];\n var _out = false;\n var _min = 0;\n var _max = 1;\n var _correctLightness = false;\n var _colorCache = {};\n var _useCache = true;\n var _gamma = 1;\n\n // private methods\n\n var setColors = function(colors) {\n colors = colors || ['#fff', '#000'];\n if (colors && type$j(colors) === 'string' && chroma_1.brewer &&\n chroma_1.brewer[colors.toLowerCase()]) {\n colors = chroma_1.brewer[colors.toLowerCase()];\n }\n if (type$j(colors) === 'array') {\n // handle single color\n if (colors.length === 1) {\n colors = [colors[0], colors[0]];\n }\n // make a copy of the colors\n colors = colors.slice(0);\n // convert to chroma classes\n for (var c=0; c= _classes[i]) {\n i++;\n }\n return i-1;\n }\n return 0;\n };\n\n var tMapLightness = function (t) { return t; };\n var tMapDomain = function (t) { return t; };\n\n // const classifyValue = function(value) {\n // let val = value;\n // if (_classes.length > 2) {\n // const n = _classes.length-1;\n // const i = getClass(value);\n // const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5))); // center of 1st class\n // const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5))); // center of last class\n // val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min));\n // }\n // return val;\n // };\n\n var getColor = function(val, bypassMap) {\n var col, t;\n if (bypassMap == null) { bypassMap = false; }\n if (isNaN(val) || (val === null)) { return _nacol; }\n if (!bypassMap) {\n if (_classes && (_classes.length > 2)) {\n // find the class\n var c = getClass(val);\n t = c / (_classes.length-2);\n } else if (_max !== _min) {\n // just interpolate between min/max\n t = (val - _min) / (_max - _min);\n } else {\n t = 1;\n }\n } else {\n t = val;\n }\n\n // domain map\n t = tMapDomain(t);\n\n if (!bypassMap) {\n t = tMapLightness(t); // lightness correction\n }\n\n if (_gamma !== 1) { t = pow$5(t, _gamma); }\n\n t = _padding[0] + (t * (1 - _padding[0] - _padding[1]));\n\n t = Math.min(1, Math.max(0, t));\n\n var k = Math.floor(t * 10000);\n\n if (_useCache && _colorCache[k]) {\n col = _colorCache[k];\n } else {\n if (type$j(_colors) === 'array') {\n //for i in [0.._pos.length-1]\n for (var i=0; i<_pos.length; i++) {\n var p = _pos[i];\n if (t <= p) {\n col = _colors[i];\n break;\n }\n if ((t >= p) && (i === (_pos.length-1))) {\n col = _colors[i];\n break;\n }\n if (t > p && t < _pos[i+1]) {\n t = (t-p)/(_pos[i+1]-p);\n col = chroma_1.interpolate(_colors[i], _colors[i+1], t, _mode);\n break;\n }\n }\n } else if (type$j(_colors) === 'function') {\n col = _colors(t);\n }\n if (_useCache) { _colorCache[k] = col; }\n }\n return col;\n };\n\n var resetCache = function () { return _colorCache = {}; };\n\n setColors(colors);\n\n // public interface\n\n var f = function(v) {\n var c = chroma_1(getColor(v));\n if (_out && c[_out]) { return c[_out](); } else { return c; }\n };\n\n f.classes = function(classes) {\n if (classes != null) {\n if (type$j(classes) === 'array') {\n _classes = classes;\n _domain = [classes[0], classes[classes.length-1]];\n } else {\n var d = chroma_1.analyze(_domain);\n if (classes === 0) {\n _classes = [d.min, d.max];\n } else {\n _classes = chroma_1.limits(d, 'e', classes);\n }\n }\n return f;\n }\n return _classes;\n };\n\n\n f.domain = function(domain) {\n if (!arguments.length) {\n return _domain;\n }\n _min = domain[0];\n _max = domain[domain.length-1];\n _pos = [];\n var k = _colors.length;\n if ((domain.length === k) && (_min !== _max)) {\n // update positions\n for (var i = 0, list = Array.from(domain); i < list.length; i += 1) {\n var d = list[i];\n\n _pos.push((d-_min) / (_max-_min));\n }\n } else {\n for (var c=0; c 2) {\n // set domain map\n var tOut = domain.map(function (d,i) { return i/(domain.length-1); });\n var tBreaks = domain.map(function (d) { return (d - _min) / (_max - _min); });\n if (!tBreaks.every(function (val, i) { return tOut[i] === val; })) {\n tMapDomain = function (t) {\n if (t <= 0 || t >= 1) { return t; }\n var i = 0;\n while (t >= tBreaks[i+1]) { i++; }\n var f = (t - tBreaks[i]) / (tBreaks[i+1] - tBreaks[i]);\n var out = tOut[i] + f * (tOut[i+1] - tOut[i]);\n return out;\n };\n }\n\n }\n }\n _domain = [_min, _max];\n return f;\n };\n\n f.mode = function(_m) {\n if (!arguments.length) {\n return _mode;\n }\n _mode = _m;\n resetCache();\n return f;\n };\n\n f.range = function(colors, _pos) {\n setColors(colors, _pos);\n return f;\n };\n\n f.out = function(_o) {\n _out = _o;\n return f;\n };\n\n f.spread = function(val) {\n if (!arguments.length) {\n return _spread;\n }\n _spread = val;\n return f;\n };\n\n f.correctLightness = function(v) {\n if (v == null) { v = true; }\n _correctLightness = v;\n resetCache();\n if (_correctLightness) {\n tMapLightness = function(t) {\n var L0 = getColor(0, true).lab()[0];\n var L1 = getColor(1, true).lab()[0];\n var pol = L0 > L1;\n var L_actual = getColor(t, true).lab()[0];\n var L_ideal = L0 + ((L1 - L0) * t);\n var L_diff = L_actual - L_ideal;\n var t0 = 0;\n var t1 = 1;\n var max_iter = 20;\n while ((Math.abs(L_diff) > 1e-2) && (max_iter-- > 0)) {\n (function() {\n if (pol) { L_diff *= -1; }\n if (L_diff < 0) {\n t0 = t;\n t += (t1 - t) * 0.5;\n } else {\n t1 = t;\n t += (t0 - t) * 0.5;\n }\n L_actual = getColor(t, true).lab()[0];\n return L_diff = L_actual - L_ideal;\n })();\n }\n return t;\n };\n } else {\n tMapLightness = function (t) { return t; };\n }\n return f;\n };\n\n f.padding = function(p) {\n if (p != null) {\n if (type$j(p) === 'number') {\n p = [p,p];\n }\n _padding = p;\n return f;\n } else {\n return _padding;\n }\n };\n\n f.colors = function(numColors, out) {\n // If no arguments are given, return the original colors that were provided\n if (arguments.length < 2) { out = 'hex'; }\n var result = [];\n\n if (arguments.length === 0) {\n result = _colors.slice(0);\n\n } else if (numColors === 1) {\n result = [f(0.5)];\n\n } else if (numColors > 1) {\n var dm = _domain[0];\n var dd = _domain[1] - dm;\n result = __range__(0, numColors, false).map(function (i) { return f( dm + ((i/(numColors-1)) * dd) ); });\n\n } else { // returns all colors based on the defined classes\n colors = [];\n var samples = [];\n if (_classes && (_classes.length > 2)) {\n for (var i = 1, end = _classes.length, asc = 1 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n samples.push((_classes[i-1]+_classes[i])*0.5);\n }\n } else {\n samples = _domain;\n }\n result = samples.map(function (v) { return f(v); });\n }\n\n if (chroma_1[out]) {\n result = result.map(function (c) { return c[out](); });\n }\n return result;\n };\n\n f.cache = function(c) {\n if (c != null) {\n _useCache = c;\n return f;\n } else {\n return _useCache;\n }\n };\n\n f.gamma = function(g) {\n if (g != null) {\n _gamma = g;\n return f;\n } else {\n return _gamma;\n }\n };\n\n f.nodata = function(d) {\n if (d != null) {\n _nacol = chroma_1(d);\n return f;\n } else {\n return _nacol;\n }\n };\n\n return f;\n };\n\n function __range__(left, right, inclusive) {\n var range = [];\n var ascending = left < right;\n var end = !inclusive ? right : ascending ? right + 1 : right - 1;\n for (var i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n range.push(i);\n }\n return range;\n }\n\n //\n // interpolates between a set of colors uzing a bezier spline\n //\n\n // @requires utils lab\n\n\n\n\n var bezier = function(colors) {\n var assign, assign$1, assign$2;\n\n var I, lab0, lab1, lab2;\n colors = colors.map(function (c) { return new Color_1(c); });\n if (colors.length === 2) {\n // linear interpolation\n (assign = colors.map(function (c) { return c.lab(); }), lab0 = assign[0], lab1 = assign[1]);\n I = function(t) {\n var lab = ([0, 1, 2].map(function (i) { return lab0[i] + (t * (lab1[i] - lab0[i])); }));\n return new Color_1(lab, 'lab');\n };\n } else if (colors.length === 3) {\n // quadratic bezier interpolation\n (assign$1 = colors.map(function (c) { return c.lab(); }), lab0 = assign$1[0], lab1 = assign$1[1], lab2 = assign$1[2]);\n I = function(t) {\n var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t) * lab0[i]) + (2 * (1-t) * t * lab1[i]) + (t * t * lab2[i]); }));\n return new Color_1(lab, 'lab');\n };\n } else if (colors.length === 4) {\n // cubic bezier interpolation\n var lab3;\n (assign$2 = colors.map(function (c) { return c.lab(); }), lab0 = assign$2[0], lab1 = assign$2[1], lab2 = assign$2[2], lab3 = assign$2[3]);\n I = function(t) {\n var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t)*(1-t) * lab0[i]) + (3 * (1-t) * (1-t) * t * lab1[i]) + (3 * (1-t) * t * t * lab2[i]) + (t*t*t * lab3[i]); }));\n return new Color_1(lab, 'lab');\n };\n } else if (colors.length === 5) {\n var I0 = bezier(colors.slice(0, 3));\n var I1 = bezier(colors.slice(2, 5));\n I = function(t) {\n if (t < 0.5) {\n return I0(t*2);\n } else {\n return I1((t-0.5)*2);\n }\n };\n }\n return I;\n };\n\n var bezier_1 = function (colors) {\n var f = bezier(colors);\n f.scale = function () { return scale(f); };\n return f;\n };\n\n /*\n * interpolates between a set of colors uzing a bezier spline\n * blend mode formulas taken from http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/\n */\n\n\n\n\n var blend = function (bottom, top, mode) {\n if (!blend[mode]) {\n throw new Error('unknown blend mode ' + mode);\n }\n return blend[mode](bottom, top);\n };\n\n var blend_f = function (f) { return function (bottom,top) {\n var c0 = chroma_1(top).rgb();\n var c1 = chroma_1(bottom).rgb();\n return chroma_1.rgb(f(c0, c1));\n }; };\n\n var each = function (f) { return function (c0, c1) {\n var out = [];\n out[0] = f(c0[0], c1[0]);\n out[1] = f(c0[1], c1[1]);\n out[2] = f(c0[2], c1[2]);\n return out;\n }; };\n\n var normal = function (a) { return a; };\n var multiply = function (a,b) { return a * b / 255; };\n var darken$1 = function (a,b) { return a > b ? b : a; };\n var lighten = function (a,b) { return a > b ? a : b; };\n var screen = function (a,b) { return 255 * (1 - (1-a/255) * (1-b/255)); };\n var overlay = function (a,b) { return b < 128 ? 2 * a * b / 255 : 255 * (1 - 2 * (1 - a / 255 ) * ( 1 - b / 255 )); };\n var burn = function (a,b) { return 255 * (1 - (1 - b / 255) / (a/255)); };\n var dodge = function (a,b) {\n if (a === 255) { return 255; }\n a = 255 * (b / 255) / (1 - a / 255);\n return a > 255 ? 255 : a\n };\n\n // # add = (a,b) ->\n // # if (a + b > 255) then 255 else a + b\n\n blend.normal = blend_f(each(normal));\n blend.multiply = blend_f(each(multiply));\n blend.screen = blend_f(each(screen));\n blend.overlay = blend_f(each(overlay));\n blend.darken = blend_f(each(darken$1));\n blend.lighten = blend_f(each(lighten));\n blend.dodge = blend_f(each(dodge));\n blend.burn = blend_f(each(burn));\n // blend.add = blend_f(each(add));\n\n var blend_1 = blend;\n\n // cubehelix interpolation\n // based on D.A. Green \"A colour scheme for the display of astronomical intensity images\"\n // http://astron-soc.in/bulletin/11June/289392011.pdf\n\n var type$k = utils.type;\n var clip_rgb$3 = utils.clip_rgb;\n var TWOPI$2 = utils.TWOPI;\n var pow$6 = Math.pow;\n var sin$2 = Math.sin;\n var cos$3 = Math.cos;\n\n\n var cubehelix = function(start, rotations, hue, gamma, lightness) {\n if ( start === void 0 ) start=300;\n if ( rotations === void 0 ) rotations=-1.5;\n if ( hue === void 0 ) hue=1;\n if ( gamma === void 0 ) gamma=1;\n if ( lightness === void 0 ) lightness=[0,1];\n\n var dh = 0, dl;\n if (type$k(lightness) === 'array') {\n dl = lightness[1] - lightness[0];\n } else {\n dl = 0;\n lightness = [lightness, lightness];\n }\n\n var f = function(fract) {\n var a = TWOPI$2 * (((start+120)/360) + (rotations * fract));\n var l = pow$6(lightness[0] + (dl * fract), gamma);\n var h = dh !== 0 ? hue[0] + (fract * dh) : hue;\n var amp = (h * l * (1-l)) / 2;\n var cos_a = cos$3(a);\n var sin_a = sin$2(a);\n var r = l + (amp * ((-0.14861 * cos_a) + (1.78277* sin_a)));\n var g = l + (amp * ((-0.29227 * cos_a) - (0.90649* sin_a)));\n var b = l + (amp * (+1.97294 * cos_a));\n return chroma_1(clip_rgb$3([r*255,g*255,b*255,1]));\n };\n\n f.start = function(s) {\n if ((s == null)) { return start; }\n start = s;\n return f;\n };\n\n f.rotations = function(r) {\n if ((r == null)) { return rotations; }\n rotations = r;\n return f;\n };\n\n f.gamma = function(g) {\n if ((g == null)) { return gamma; }\n gamma = g;\n return f;\n };\n\n f.hue = function(h) {\n if ((h == null)) { return hue; }\n hue = h;\n if (type$k(hue) === 'array') {\n dh = hue[1] - hue[0];\n if (dh === 0) { hue = hue[1]; }\n } else {\n dh = 0;\n }\n return f;\n };\n\n f.lightness = function(h) {\n if ((h == null)) { return lightness; }\n if (type$k(h) === 'array') {\n lightness = h;\n dl = h[1] - h[0];\n } else {\n lightness = [h,h];\n dl = 0;\n }\n return f;\n };\n\n f.scale = function () { return chroma_1.scale(f); };\n\n f.hue(hue);\n\n return f;\n };\n\n var digits = '0123456789abcdef';\n\n var floor$2 = Math.floor;\n var random = Math.random;\n\n var random_1 = function () {\n var code = '#';\n for (var i=0; i<6; i++) {\n code += digits.charAt(floor$2(random() * 16));\n }\n return new Color_1(code, 'hex');\n };\n\n var log$1 = Math.log;\n var pow$7 = Math.pow;\n var floor$3 = Math.floor;\n var abs = Math.abs;\n\n\n var analyze = function (data, key) {\n if ( key === void 0 ) key=null;\n\n var r = {\n min: Number.MAX_VALUE,\n max: Number.MAX_VALUE*-1,\n sum: 0,\n values: [],\n count: 0\n };\n if (type(data) === 'object') {\n data = Object.values(data);\n }\n data.forEach(function (val) {\n if (key && type(val) === 'object') { val = val[key]; }\n if (val !== undefined && val !== null && !isNaN(val)) {\n r.values.push(val);\n r.sum += val;\n if (val < r.min) { r.min = val; }\n if (val > r.max) { r.max = val; }\n r.count += 1;\n }\n });\n\n r.domain = [r.min, r.max];\n\n r.limits = function (mode, num) { return limits(r, mode, num); };\n\n return r;\n };\n\n\n var limits = function (data, mode, num) {\n if ( mode === void 0 ) mode='equal';\n if ( num === void 0 ) num=7;\n\n if (type(data) == 'array') {\n data = analyze(data);\n }\n var min = data.min;\n var max = data.max;\n var values = data.values.sort(function (a,b) { return a-b; });\n\n if (num === 1) { return [min,max]; }\n\n var limits = [];\n\n if (mode.substr(0,1) === 'c') { // continuous\n limits.push(min);\n limits.push(max);\n }\n\n if (mode.substr(0,1) === 'e') { // equal interval\n limits.push(min);\n for (var i=1; i 0');\n }\n var min_log = Math.LOG10E * log$1(min);\n var max_log = Math.LOG10E * log$1(max);\n limits.push(min);\n for (var i$1=1; i$1 pb\n var pr = p - pb;\n limits.push((values[pb]*(1-pr)) + (values[pb+1]*pr));\n }\n }\n limits.push(max);\n\n }\n\n else if (mode.substr(0,1) === 'k') { // k-means clustering\n /*\n implementation based on\n http://code.google.com/p/figue/source/browse/trunk/figue.js#336\n simplified for 1-d input values\n */\n var cluster;\n var n = values.length;\n var assignments = new Array(n);\n var clusterSizes = new Array(num);\n var repeat = true;\n var nb_iters = 0;\n var centroids = null;\n\n // get seed values\n centroids = [];\n centroids.push(min);\n for (var i$3=1; i$3 200) {\n repeat = false;\n }\n }\n\n // finished k-means clustering\n // the next part is borrowed from gabrielflor.it\n var kClusters = {};\n for (var j$5=0; j$5 l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05);\n };\n\n var sqrt$4 = Math.sqrt;\n var atan2$2 = Math.atan2;\n var abs$1 = Math.abs;\n var cos$4 = Math.cos;\n var PI$2 = Math.PI;\n\n var deltaE = function(a, b, L, C) {\n if ( L === void 0 ) L=1;\n if ( C === void 0 ) C=1;\n\n // Delta E (CMC)\n // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CMC.html\n a = new Color_1(a);\n b = new Color_1(b);\n var ref = Array.from(a.lab());\n var L1 = ref[0];\n var a1 = ref[1];\n var b1 = ref[2];\n var ref$1 = Array.from(b.lab());\n var L2 = ref$1[0];\n var a2 = ref$1[1];\n var b2 = ref$1[2];\n var c1 = sqrt$4((a1 * a1) + (b1 * b1));\n var c2 = sqrt$4((a2 * a2) + (b2 * b2));\n var sl = L1 < 16.0 ? 0.511 : (0.040975 * L1) / (1.0 + (0.01765 * L1));\n var sc = ((0.0638 * c1) / (1.0 + (0.0131 * c1))) + 0.638;\n var h1 = c1 < 0.000001 ? 0.0 : (atan2$2(b1, a1) * 180.0) / PI$2;\n while (h1 < 0) { h1 += 360; }\n while (h1 >= 360) { h1 -= 360; }\n var t = (h1 >= 164.0) && (h1 <= 345.0) ? (0.56 + abs$1(0.2 * cos$4((PI$2 * (h1 + 168.0)) / 180.0))) : (0.36 + abs$1(0.4 * cos$4((PI$2 * (h1 + 35.0)) / 180.0)));\n var c4 = c1 * c1 * c1 * c1;\n var f = sqrt$4(c4 / (c4 + 1900.0));\n var sh = sc * (((f * t) + 1.0) - f);\n var delL = L1 - L2;\n var delC = c1 - c2;\n var delA = a1 - a2;\n var delB = b1 - b2;\n var dH2 = ((delA * delA) + (delB * delB)) - (delC * delC);\n var v1 = delL / (L * sl);\n var v2 = delC / (C * sc);\n var v3 = sh;\n return sqrt$4((v1 * v1) + (v2 * v2) + (dH2 / (v3 * v3)));\n };\n\n // simple Euclidean distance\n var distance = function(a, b, mode) {\n if ( mode === void 0 ) mode='lab';\n\n // Delta E (CIE 1976)\n // see http://www.brucelindbloom.com/index.html?Equations.html\n a = new Color_1(a);\n b = new Color_1(b);\n var l1 = a.get(mode);\n var l2 = b.get(mode);\n var sum_sq = 0;\n for (var i in l1) {\n var d = (l1[i] || 0) - (l2[i] || 0);\n sum_sq += d*d;\n }\n return Math.sqrt(sum_sq);\n };\n\n var valid = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n try {\n new (Function.prototype.bind.apply( Color_1, [ null ].concat( args) ));\n return true;\n } catch (e) {\n return false;\n }\n };\n\n // some pre-defined color scales:\n\n\n\n\n var scales = {\n \tcool: function cool() { return scale([chroma_1.hsl(180,1,.9), chroma_1.hsl(250,.7,.4)]) },\n \thot: function hot() { return scale(['#000','#f00','#ff0','#fff'], [0,.25,.75,1]).mode('rgb') }\n };\n\n /**\n ColorBrewer colors for chroma.js\n\n Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The\n Pennsylvania State University.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software distributed\n under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n CONDITIONS OF ANY KIND, either express or implied. See the License for the\n specific language governing permissions and limitations under the License.\n */\n\n var colorbrewer = {\n // sequential\n OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],\n PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'],\n BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'],\n Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'],\n BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'],\n YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],\n YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],\n Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],\n RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],\n Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'],\n YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'],\n Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'],\n GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'],\n Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],\n YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],\n PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'],\n Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'],\n PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],\n Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'],\n\n // diverging\n\n Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],\n RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],\n RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'],\n PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'],\n PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'],\n RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],\n BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'],\n RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'],\n PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'],\n\n // qualitative\n\n Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'],\n Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'],\n Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'],\n Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'],\n Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'],\n Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'],\n Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'],\n Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2'],\n };\n\n // add lowercase aliases for case-insensitive matches\n for (var i$1 = 0, list$1 = Object.keys(colorbrewer); i$1 < list$1.length; i$1 += 1) {\n var key = list$1[i$1];\n\n colorbrewer[key.toLowerCase()] = colorbrewer[key];\n }\n\n var colorbrewer_1 = colorbrewer;\n\n // feel free to comment out anything to rollup\n // a smaller chroma.js built\n\n // io --> convert colors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // operators --> modify existing Colors\n\n\n\n\n\n\n\n\n\n\n // interpolators\n\n\n\n\n\n\n\n\n\n\n // generators -- > create new colors\n chroma_1.average = average;\n chroma_1.bezier = bezier_1;\n chroma_1.blend = blend_1;\n chroma_1.cubehelix = cubehelix;\n chroma_1.mix = chroma_1.interpolate = mix;\n chroma_1.random = random_1;\n chroma_1.scale = scale;\n\n // other utility methods\n chroma_1.analyze = analyze_1.analyze;\n chroma_1.contrast = contrast;\n chroma_1.deltaE = deltaE;\n chroma_1.distance = distance;\n chroma_1.limits = analyze_1.limits;\n chroma_1.valid = valid;\n\n // scale\n chroma_1.scales = scales;\n\n // colors\n chroma_1.colors = w3cx11_1;\n chroma_1.brewer = colorbrewer_1;\n\n var chroma_js = chroma_1;\n\n return chroma_js;\n\n})));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"\n}), 'KeyboardArrowUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"\n}), 'KeyboardArrowDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm4.3 14.3c-.39.39-1.02.39-1.41 0L12 13.41 9.11 16.3c-.39.39-1.02.39-1.41 0a.9959.9959 0 010-1.41L10.59 12 7.7 9.11a.9959.9959 0 010-1.41c.39-.39 1.02-.39 1.41 0L12 10.59l2.89-2.89c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41L13.41 12l2.89 2.89c.38.38.38 1.02 0 1.41z\"\n}), 'CancelRounded');\n\nexports.default = _default;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useTheme;\n\nvar _styles = require(\"@material-ui/styles\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _defaultTheme = _interopRequireDefault(require(\"./defaultTheme\"));\n\nfunction useTheme() {\n var theme = (0, _styles.useTheme)() || _defaultTheme.default;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n _react.default.useDebugValue(theme);\n }\n\n return theme;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\n\nvar defaultTheme = (0, _createTheme.default)();\nvar _default = defaultTheme;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createMuiTheme = createMuiTheme;\nexports.default = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _createBreakpoints = _interopRequireDefault(require(\"./createBreakpoints\"));\n\nvar _createMixins = _interopRequireDefault(require(\"./createMixins\"));\n\nvar _createPalette = _interopRequireDefault(require(\"./createPalette\"));\n\nvar _createTypography = _interopRequireDefault(require(\"./createTypography\"));\n\nvar _shadows = _interopRequireDefault(require(\"./shadows\"));\n\nvar _shape = _interopRequireDefault(require(\"./shape\"));\n\nvar _createSpacing = _interopRequireDefault(require(\"./createSpacing\"));\n\nvar _transitions = _interopRequireDefault(require(\"./transitions\"));\n\nvar _zIndex = _interopRequireDefault(require(\"./zIndex\"));\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = (0, _objectWithoutProperties2.default)(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n var palette = (0, _createPalette.default)(paletteInput);\n var breakpoints = (0, _createBreakpoints.default)(breakpointsInput);\n var spacing = (0, _createSpacing.default)(spacingInput);\n var muiTheme = (0, _utils.deepmerge)({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: (0, _createMixins.default)(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: _shadows.default,\n typography: (0, _createTypography.default)(palette, typographyInput),\n spacing: spacing,\n shape: _shape.default,\n transitions: _transitions.default,\n zIndex: _zIndex.default\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return (0, _utils.deepmerge)(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: (0, _defineProperty2.default)({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://mui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\n\nfunction createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\n\nvar _default = createTheme;\nexports.default = _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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createBreakpoints;\nexports.keys = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nvar keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexports.keys = keys;\n\nfunction createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = (0, _objectWithoutProperties2.default)(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return (0, _extends2.default)({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createMixins;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nfunction createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return (0, _extends3.default)({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return (0, _extends3.default)({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, (0, _defineProperty2.default)({}, breakpoints.up('sm'), (0, _extends3.default)({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, (0, _defineProperty2.default)(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), (0, _defineProperty2.default)(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPalette;\nexports.dark = exports.light = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _common = _interopRequireDefault(require(\"../colors/common\"));\n\nvar _grey = _interopRequireDefault(require(\"../colors/grey\"));\n\nvar _indigo = _interopRequireDefault(require(\"../colors/indigo\"));\n\nvar _pink = _interopRequireDefault(require(\"../colors/pink\"));\n\nvar _red = _interopRequireDefault(require(\"../colors/red\"));\n\nvar _orange = _interopRequireDefault(require(\"../colors/orange\"));\n\nvar _blue = _interopRequireDefault(require(\"../colors/blue\"));\n\nvar _green = _interopRequireDefault(require(\"../colors/green\"));\n\nvar _colorManipulator = require(\"./colorManipulator\");\n\nvar light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: _common.default.white,\n default: _grey.default[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexports.light = light;\nvar dark = {\n text: {\n primary: _common.default.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: _grey.default[800],\n default: '#303030'\n },\n action: {\n active: _common.default.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nexports.dark = dark;\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = (0, _colorManipulator.lighten)(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = (0, _colorManipulator.darken)(intent.main, tonalOffsetDark);\n }\n }\n}\n\nfunction createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: _indigo.default[300],\n main: _indigo.default[500],\n dark: _indigo.default[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: _pink.default.A200,\n main: _pink.default.A400,\n dark: _pink.default.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: _red.default[300],\n main: _red.default[500],\n dark: _red.default[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: _orange.default[300],\n main: _orange.default[500],\n dark: _orange.default[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: _blue.default[300],\n main: _blue.default[500],\n dark: _blue.default[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: _green.default[300],\n main: _green.default[500],\n dark: _green.default[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = (0, _objectWithoutProperties2.default)(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n function getContrastText(background) {\n var contrastText = (0, _colorManipulator.getContrastRatio)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = (0, _colorManipulator.getContrastRatio)(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = (0, _extends2.default)({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : (0, _utils.formatMuiErrorMessage)(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = (0, _utils.deepmerge)((0, _extends2.default)({\n // A collection of common colors.\n common: _common.default,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: _grey.default,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nvar _default = indigo;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nvar _default = pink;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nvar _default = orange;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nvar _default = blue;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nvar _default = green;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hexToRgb = hexToRgb;\nexports.rgbToHex = rgbToHex;\nexports.hslToRgb = hslToRgb;\nexports.decomposeColor = decomposeColor;\nexports.recomposeColor = recomposeColor;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.emphasize = emphasize;\nexports.fade = fade;\nexports.alpha = alpha;\nexports.darken = darken;\nexports.lighten = lighten;\n\nvar _utils = require(\"@material-ui/utils\");\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nfunction hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\n\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\n\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : (0, _utils.formatMuiErrorMessage)(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\n\nfunction recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\n\nfunction getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\n\nfunction getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\n\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nfunction fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createTypography;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://mui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nfunction createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = (0, _objectWithoutProperties2.default)(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return (0, _extends2.default)({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return (0, _utils.deepmerge)((0, _extends2.default)({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nvar _default = shadows;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar shape = {\n borderRadius: 4\n};\nvar _default = shape;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createSpacing;\n\nvar _system = require(\"@material-ui/system\");\n\nvar warnOnce;\n\nfunction createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = (0, _system.createUnarySpacing)({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.duration = exports.easing = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nvar easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexports.easing = easing;\nvar duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nexports.duration = duration;\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nvar _default = {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = (0, _objectWithoutProperties2.default)(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nvar _default = zIndex;\nexports.default = _default;","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAddToSamplesBasket(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.4327 16.25H3.57271C2.54589 16.2505 1.64074 15.5588 1.34712 14.5492C1.0535 13.5396 1.44117 12.4521 2.30033 11.8751L8.76636 7.52673L10.4845 6.31159C11.28 5.75834 11.3974 5.20418 11.3974 4.9239C11.3974 4.25654 10.8831 3.68959 10.2736 3.68685H10.2674C9.65956 3.68498 9.15989 4.17827 9.13829 4.80157C9.13002 5.01358 9.01215 5.20496 8.82907 5.30362C8.646 5.40228 8.42553 5.39323 8.25072 5.27988C8.07591 5.16653 7.97331 4.9661 7.98157 4.75409C8.02574 3.49325 9.0369 2.49575 10.2665 2.50001H10.279C11.5327 2.5064 12.5533 3.59556 12.5533 4.9239C12.5533 5.43881 12.37 6.43302 11.1367 7.29119L9.41768 8.50816L9.40611 8.51546L2.93474 12.8721C2.50736 13.1628 2.31556 13.7061 2.46234 14.2102C2.60912 14.7143 3.05995 15.0606 3.57271 15.0632H16.4327C16.9456 15.061 17.3968 14.7148 17.5438 14.2106C17.6909 13.7064 17.4991 13.1629 17.0716 12.8721L11.2604 8.96372C10.9955 8.78309 10.9225 8.4169 11.0969 8.14403C11.2714 7.87116 11.6278 7.79401 11.8948 7.97134L17.7051 11.8788C18.5608 12.457 18.9459 13.5424 18.6527 14.5497C18.3595 15.5571 17.4573 16.248 16.4327 16.25Z\",\n fill: \"#939597\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.5 1.25H16.25V3.125L14.375 3.125V4.375H16.25V6.25H17.5V4.375H19.375V3.125L17.5 3.125V1.25Z\",\n fill: \"#939597\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddToSamplesBasket);\nexport default __webpack_public_path__ + \"static/media/addToSamplesBasket.c4ae91d2.svg\";\nexport { ForwardRef as ReactComponent };","import StateManager from 'Apollo/StateManager';\nimport { Media, ShowroomMobileMenuType, ShowroomPdf, ShowroomTab, ShowroomUserViewUi } from 'generated/graphql';\n\nimport { RequiredFields } from 'Types/RequiredFields';\n\nconst stateManager = new StateManager('showroom.userView');\n\nexport const setShowroomSelectedMedia = (selectedMedias: RequiredFields[]) => {\n\tstateManager.update({ selectedMedias } as any);\n};\n\nexport const setSelectedPdfs = (selectedPdfs: ShowroomPdf[]) => {\n\tstateManager.update({ selectedPdfs });\n};\n\nexport const setShowroomSelectedTab = (tab: ShowroomTab) => {\n\tconst { selectedTab } = stateManager.get();\n\tstateManager.update({ selectedTab: tab === selectedTab ? null : tab });\n};\n\nexport const openMediaMobileMenu = (mediaId: string, type: ShowroomMobileMenuType) => {\n\tstateManager.update({ activeMediaMobileMenu: { mediaId, type } });\n};\n\nexport const closeCurrentMediaMobileMenu = () => {\n\tstateManager.update({ activeMediaMobileMenu: null });\n};\n","import axios from 'axios';\nimport { Transformation } from 'cloudinary-core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Media, MediaType, QualityOptions, Showroom } from 'generated/graphql';\n\nimport { RequiredFields } from 'Types/RequiredFields';\n\nimport { useCustomNotifications } from 'lib/Hooks';\nimport { getImageUrl } from 'lib/cloudinary';\nimport { useTrackApi } from 'lib/trackApi';\n\ntype AvailableQualityOption = {\n\tvalue: QualityOptions;\n\tlabel: string;\n};\n\ntype HookReturnType = [AvailableQualityOption[], (option: QualityOptions) => void, { loading: boolean }];\n\nexport const useDownloadSingleMedia = (\n\tmedia: RequiredFields,\n\tshowroom: Showroom\n): HookReturnType => {\n\tconst { t } = useTranslation();\n\tconst { track } = useTrackApi('showroom', showroom.tenant.tenant, true);\n\tconst [loading, setLoading] = React.useState(false);\n\tconst { enqueueNotification, closeSnackbar } = useCustomNotifications();\n\n\tconst options: AvailableQualityOption[] = React.useMemo(() => {\n\t\treturn media?.mediaType === MediaType.Pdf\n\t\t\t? [{ value: QualityOptions.Screen, label: t('showroom.download.menu.subOptions.pdf') }]\n\t\t\t: [\n\t\t\t\t\t{ value: QualityOptions.Screen, label: t('showroom.download.menu.subOptions.screen') },\n\t\t\t\t\t{ value: QualityOptions.Original, label: t('showroom.download.menu.subOptions.hd') }\n\t\t\t ];\n\t}, [t, media]);\n\n\tconst downloadSingleMedia = React.useCallback(\n\t\tasync (option: QualityOptions) => {\n\t\t\tconst transformation: Transformation.Options[] = [];\n\t\t\tif (option === QualityOptions.Screen) transformation.push({ quality: 'auto:good' });\n\n\t\t\tcloseSnackbar();\n\n\t\t\tconst mediaUrl = getImageUrl(media.cloudinaryId, {\n\t\t\t\tformat: media.extension,\n\t\t\t\tresource_type: media.mediaType === MediaType.Pdf ? 'image' : media.mediaType.toLowerCase(),\n\t\t\t\ttransformation: [...transformation]\n\t\t\t});\n\n\t\t\tconst fileName = media.name;\n\t\t\tsetLoading(true);\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(mediaUrl, { responseType: 'blob' });\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (window.navigator && window.navigator.msSaveOrOpenBlob) {\n\t\t\t\t\t// IE variant\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\twindow.navigator.msSaveOrOpenBlob(new Blob([response.data], { type: response.headers['content-type'] }), fileName);\n\t\t\t\t} else {\n\t\t\t\t\tconst url = window.URL.createObjectURL(new Blob([response.data], { type: response.headers['content-type'] }));\n\t\t\t\t\tconst link = document.createElement('a');\n\t\t\t\t\tlink.href = url;\n\t\t\t\t\tlink.setAttribute('download', fileName);\n\t\t\t\t\tdocument.body.appendChild(link);\n\t\t\t\t\tlink.click();\n\t\t\t\t\tlink.remove();\n\t\t\t\t}\n\t\t\t\tsetLoading(false);\n\t\t\t\ttrack([\n\t\t\t\t\t{\n\t\t\t\t\t\teventType: 'download',\n\t\t\t\t\t\tmediaType: media.mediaType.toLowerCase(),\n\t\t\t\t\t\tmediaId: media.cloudinaryId,\n\t\t\t\t\t\tshowroomId: showroom.id,\n\t\t\t\t\t\tdownloadQuality: option\n\t\t\t\t\t}\n\t\t\t\t]);\n\t\t\t} catch (error) {\n\t\t\t\tenqueueNotification(\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle:\n\t\t\t\t\t\t\terror?.response?.status === 404\n\t\t\t\t\t\t\t\t? t('showroom.download.notification.single.error.notAvailable.title')\n\t\t\t\t\t\t\t\t: t('showroom.download.notification.single.error.generic.title'),\n\t\t\t\t\t\ttext: (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{error?.response?.status === 404\n\t\t\t\t\t\t\t\t\t? t('showroom.download.notification.single.error.notAvailable.description')\n\t\t\t\t\t\t\t\t\t: t('showroom.download.notification.single.error.generic.description')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tautoHideDuration: 7000,\n\t\t\t\t\t\ttransitionDuration: {\n\t\t\t\t\t\t\tenter: 300\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t},\n\t\t[closeSnackbar, enqueueNotification, media, t, showroom, track]\n\t);\n\n\treturn [options, downloadSingleMedia, { loading }];\n};\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRemoveFromSamplesBasket(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.4327 16.25H3.57271C2.54589 16.2505 1.64074 15.5588 1.34712 14.5492C1.0535 13.5396 1.44117 12.4521 2.30033 11.8751L8.76636 7.52673L10.4845 6.31159C11.28 5.75834 11.3974 5.20418 11.3974 4.9239C11.3974 4.25654 10.8831 3.68959 10.2736 3.68685H10.2674C9.65956 3.68498 9.15989 4.17827 9.13829 4.80157C9.13002 5.01358 9.01215 5.20496 8.82907 5.30362C8.646 5.40228 8.42553 5.39323 8.25072 5.27988C8.07591 5.16653 7.97331 4.9661 7.98157 4.75409C8.02574 3.49325 9.0369 2.49575 10.2665 2.50001H10.279C11.5327 2.5064 12.5533 3.59556 12.5533 4.9239C12.5533 5.43881 12.37 6.43302 11.1367 7.29119L9.41768 8.50816L9.40611 8.51546L2.93474 12.8721C2.50736 13.1628 2.31556 13.7061 2.46234 14.2102C2.60912 14.7143 3.05995 15.0606 3.57271 15.0632H16.4327C16.9456 15.061 17.3968 14.7148 17.5438 14.2106C17.6909 13.7064 17.4991 13.1629 17.0716 12.8721L11.2604 8.96372C10.9955 8.78309 10.9225 8.4169 11.0969 8.14403C11.2714 7.87116 11.6278 7.79401 11.8948 7.97134L17.7051 11.8788C18.5608 12.457 18.9459 13.5424 18.6527 14.5497C18.3595 15.5571 17.4573 16.248 16.4327 16.25Z\",\n fill: \"#EC4C47\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.375 3.125V4.375L14.375 4.375L14.375 3.125L19.375 3.125Z\",\n fill: \"#EC4C47\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRemoveFromSamplesBasket);\nexport default __webpack_public_path__ + \"static/media/removeFromSamplesBasket.45e89bd8.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tmenuAppBar: {\n\t\t\ttop: 'auto',\n\t\t\tbottom: 0,\n\t\t\tbackground: 'white',\n\t\t\tboxShadow: theme.custom.defaultBoxShadow,\n\t\t\tborderRadius: '16px 16px 0px 0px',\n\t\t\tzIndex: 1350\n\t\t}\n\t};\n});\n","import React from 'react';\n\nimport AppBar, { AppBarProps } from '@material-ui/core/AppBar';\nimport Slide from '@material-ui/core/Slide';\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\topen: boolean\n\tchildren: React.ReactNode,\n\tmenuPosition?: AppBarProps[\"position\"],\n\tonClose?(): void\n};\n\nconst ShowroomMobileActionsMenuLayout = (props: ComponentProps) => {\n\tconst { open, children, menuPosition } = props;\n\tconst { onClose } = props;\n\n\tconst classes = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{onClose ? (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttouchEvent={false}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t\n\t\t\t\t) : children}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomMobileActionsMenuLayout);","import grey from '@material-ui/core/colors/grey';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tmenuAppBar: {\n\t\t\ttop: 'auto',\n\t\t\tbottom: 0,\n\t\t\tbackground: 'white',\n\t\t\tboxShadow: theme.custom.defaultBoxShadow,\n\t\t\tborderRadius: '16px 16px 0px 0px',\n\t\t\tzIndex: 1350\n\t\t},\n\t\tmenuListItem: {\n\t\t\tfontSize: 14,\n\t\t\tpadding: '15px 30px',\n\t\t\t'&:last-child .showroomMobileMediaMenuListItemInnerWrapper': {\n\t\t\t\tborderBottom: 'none',\n\t\t\t\tpaddingBottom: 12\n\t\t\t}\n\t\t},\n\t\tsubListCollapse: {\n\t\t\tbackground: grey[100],\n\t\t\tboxShadow: 'inset 0px -5px 5px rgba(0, 0, 0, 0.03), inset 0px 5px 10px rgba(0, 0, 0, 0.07)'\n\t\t},\n\t\tsubList: {\n\t\t\tpaddingLeft: 30,\n\t\t\tpaddingRight: 30\n\t\t},\n\t\tsubListItem: {\n\t\t\tpaddingLeft: 56\n\t\t},\n\t\tlistItemInnerWrapper: {\n\t\t\tdisplay: 'flex',\n\t\t\tflex: 1,\n\t\t\talignItems: 'center',\n\t\t\tpaddingBottom: 15,\n\t\t\tborderBottom: `1px solid ${grey[300]}`\n\t\t},\n\t\tlistItemIcon: {\n\t\t\tfontSize: 24,\n\t\t\tcolor: 'black'\n\t\t},\n\t\tlistItemText: {\n\t\t\tfontSize: 14\n\t\t},\n\t\tloader: {\n\t\t\tmarginRight: 32,\n\t\t\tcolor: grey[500]\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport some from 'lodash/some';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { toggleSampleBasketMedia } from 'Apollo/Store/Showroom/UserView/Samples/Basket/resolvers';\nimport { closeCurrentMediaMobileMenu } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport {\n\tShowroomMobileMenuType,\n\tuseGetMobileMenuOpenedQuery,\n\tuseGetShowroomMediaMobileInfoQuery,\n\tuseGetShowroomSamplesBasketQuery\n} from 'generated/graphql';\n\nimport { useTimeout } from 'lib/Hooks';\nimport { useDownloadSingleMedia } from 'lib/ShowroomSingleMediaDownload';\nimport { useGetCurrentShowroomData, useIsShowroomBasketEnabled, useIsShowroomDowloadOptionEnabled } from 'lib/showroom';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Collapse from '@material-ui/core/Collapse';\nimport Divider from '@material-ui/core/Divider';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport DownloadIcon from '@material-ui/icons/SaveAlt';\n\nimport { ReactComponent as AddToSamplesBasketIcon } from 'icons/addToSamplesBasket.svg';\nimport { ReactComponent as RemoveFromSamplesBasketIcon } from 'icons/removeFromSamplesBasket.svg';\n\nimport ShowroomMobileActionsMenuLayout from '../MobileActionsMenuLayout';\nimport { useStyles } from './styles';\n\nconst ShowroomMobileMediaMenu = () => {\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst showroom = useGetCurrentShowroomData();\n\tconst basketEnabled = useIsShowroomBasketEnabled();\n\tconst downloadEnabled = useIsShowroomDowloadOptionEnabled();\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: { activeMediaMobileMenu }\n\t\t\t}\n\t\t}\n\t} = useGetMobileMenuOpenedQuery();\n\tconst { data } = useGetShowroomMediaMobileInfoQuery({\n\t\tvariables: {\n\t\t\tmediaId: activeMediaMobileMenu?.mediaId\n\t\t},\n\t\tskip: !activeMediaMobileMenu?.mediaId\n\t});\n\n\tconst isSamplesMedia = data?.cachedMedia.isSample;\n\tconst { data: samplesBasketData } = useGetShowroomSamplesBasketQuery({\n\t\tvariables: { showroomId: showroom.id },\n\t\tskip: !isSamplesMedia\n\t});\n\n\tconst isSampleAdded = React.useMemo(\n\t\t() => isSamplesMedia && some(samplesBasketData?.showroomSamplesBasket, { id: data?.cachedMedia.id }),\n\t\t[isSamplesMedia, samplesBasketData?.showroomSamplesBasket, data?.cachedMedia.id]\n\t);\n\n\tconst [qualityOptions, downloadMedia, { loading: downloadMediaLoading }] = useDownloadSingleMedia(data?.cachedMedia, showroom as any);\n\n\tconst displayDownload = downloadEnabled && !!data?.cachedMedia;\n\tconst displayBasket = basketEnabled && isSamplesMedia;\n\tconst actionsAvailable = displayDownload || displayBasket;\n\n\tconst [downloadListOpen, setDownloadListOpen] = React.useState(false);\n\tconst [open, setOpen] = React.useState(false);\n\n\tconst closeMobileMenu = React.useCallback(() => {\n\t\tsetDownloadListOpen(false);\n\t\tcloseCurrentMediaMobileMenu();\n\t}, []);\n\n\tconst { run, clear } = useTimeout();\n\n\t// If the menu is already open, this useEffect simulates a reopen action\n\tReact.useEffect(() => {\n\t\tsetDownloadListOpen(false);\n\t\tif (activeMediaMobileMenu?.type !== ShowroomMobileMenuType.Section || !actionsAvailable) return setOpen(false);\n\t\tif (open) {\n\t\t\tsetOpen(false);\n\t\t\trun(() => {\n\t\t\t\tsetOpen(true);\n\t\t\t}, 200);\n\t\t} else setOpen(true);\n\t\treturn () => {\n\t\t\tclear();\n\t\t};\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [activeMediaMobileMenu, actionsAvailable, clear, run]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{displayDownload && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t setDownloadListOpen(state => !state)}\n\t\t\t\t\t\t\tdisableRipple\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{downloadMediaLoading ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{qualityOptions\n\t\t\t\t\t\t\t\t\t.map(({ label, value }, index) => [\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tdownloadMedia(value);\n\t\t\t\t\t\t\t\t\t\t\t\tsetDownloadListOpen(false);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tdisableRipple\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t\t\tindex !== qualityOptions.length - 1 ? (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.map(el => el)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{displayBasket && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\ttoggleSampleBasketMedia(showroom.tenant.uuid, showroom.id, data?.cachedMedia.id);\n\t\t\t\t\t\t\tcloseMobileMenu();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdisableRipple\n\t\t\t\t\t>\n\t\t\t\t\t\t{isSampleAdded ? : }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomMobileMediaMenu);\n","// node_modules/@splidejs/splide/dist/js/splide.esm.js\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n}\nvar MEDIA_PREFERS_REDUCED_MOTION = \"(prefers-reduced-motion: reduce)\";\nvar CREATED = 1;\nvar MOUNTED = 2;\nvar IDLE = 3;\nvar MOVING = 4;\nvar SCROLLING = 5;\nvar DRAGGING = 6;\nvar DESTROYED = 7;\nvar STATES = {\n CREATED,\n MOUNTED,\n IDLE,\n MOVING,\n SCROLLING,\n DRAGGING,\n DESTROYED\n};\nfunction empty(array) {\n array.length = 0;\n}\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\nfunction apply(func) {\n return func.bind.apply(func, [null].concat(slice(arguments, 1)));\n}\nvar nextTick = setTimeout;\nvar noop = function noop2() {\n};\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\nfunction isObject(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\nvar isArray = Array.isArray;\nvar isFunction = apply(typeOf, \"function\");\nvar isString = apply(typeOf, \"string\");\nvar isUndefined = apply(typeOf, \"undefined\");\nfunction isNull(subject) {\n return subject === null;\n}\nfunction isHTMLElement(subject) {\n try {\n return subject instanceof (subject.ownerDocument.defaultView || window).HTMLElement;\n } catch (e) {\n return false;\n }\n}\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\nfunction push(array, items) {\n array.push.apply(array, toArray(items));\n return array;\n}\nfunction toggleClass(elm, classes, add) {\n if (elm) {\n forEach(classes, function(name) {\n if (name) {\n elm.classList[add ? \"add\" : \"remove\"](name);\n }\n });\n }\n}\nfunction addClass(elm, classes) {\n toggleClass(elm, isString(classes) ? classes.split(\" \") : classes, true);\n}\nfunction append(parent, children2) {\n forEach(children2, parent.appendChild.bind(parent));\n}\nfunction before(nodes, ref) {\n forEach(nodes, function(node) {\n var parent = (ref || node).parentNode;\n if (parent) {\n parent.insertBefore(node, ref);\n }\n });\n}\nfunction matches(elm, selector) {\n return isHTMLElement(elm) && (elm[\"msMatchesSelector\"] || elm.matches).call(elm, selector);\n}\nfunction children(parent, selector) {\n var children2 = parent ? slice(parent.children) : [];\n return selector ? children2.filter(function(child2) {\n return matches(child2, selector);\n }) : children2;\n}\nfunction child(parent, selector) {\n return selector ? children(parent, selector)[0] : parent.firstElementChild;\n}\nvar ownKeys = Object.keys;\nfunction forOwn(object, iteratee, right) {\n if (object) {\n (right ? ownKeys(object).reverse() : ownKeys(object)).forEach(function(key) {\n key !== \"__proto__\" && iteratee(object[key], key);\n });\n }\n return object;\n}\nfunction assign(object) {\n slice(arguments, 1).forEach(function(source) {\n forOwn(source, function(value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\nfunction merge(object) {\n slice(arguments, 1).forEach(function(source) {\n forOwn(source, function(value, key) {\n if (isArray(value)) {\n object[key] = value.slice();\n } else if (isObject(value)) {\n object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);\n } else {\n object[key] = value;\n }\n });\n });\n return object;\n}\nfunction omit(object, keys) {\n forEach(keys || ownKeys(object), function(key) {\n delete object[key];\n });\n}\nfunction removeAttribute(elms, attrs) {\n forEach(elms, function(elm) {\n forEach(attrs, function(attr) {\n elm && elm.removeAttribute(attr);\n });\n });\n}\nfunction setAttribute(elms, attrs, value) {\n if (isObject(attrs)) {\n forOwn(attrs, function(value2, name) {\n setAttribute(elms, name, value2);\n });\n } else {\n forEach(elms, function(elm) {\n isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n });\n }\n}\nfunction create(tag, attrs, parent) {\n var elm = document.createElement(tag);\n if (attrs) {\n isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);\n }\n parent && append(parent, elm);\n return elm;\n}\nfunction style(elm, prop, value) {\n if (isUndefined(value)) {\n return getComputedStyle(elm)[prop];\n }\n if (!isNull(value)) {\n elm.style[prop] = \"\" + value;\n }\n}\nfunction display(elm, display2) {\n style(elm, \"display\", display2);\n}\nfunction focus(elm) {\n elm[\"setActive\"] && elm[\"setActive\"]() || elm.focus({\n preventScroll: true\n });\n}\nfunction getAttribute(elm, attr) {\n return elm.getAttribute(attr);\n}\nfunction hasClass(elm, className) {\n return elm && elm.classList.contains(className);\n}\nfunction rect(target) {\n return target.getBoundingClientRect();\n}\nfunction remove(nodes) {\n forEach(nodes, function(node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n}\nfunction parseHtml(html) {\n return child(new DOMParser().parseFromString(html, \"text/html\").body);\n}\nfunction prevent(e, stopPropagation) {\n e.preventDefault();\n if (stopPropagation) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n}\nfunction query(parent, selector) {\n return parent && parent.querySelector(selector);\n}\nfunction queryAll(parent, selector) {\n return selector ? slice(parent.querySelectorAll(selector)) : [];\n}\nfunction removeClass(elm, classes) {\n toggleClass(elm, classes, false);\n}\nfunction timeOf(e) {\n return e.timeStamp;\n}\nfunction unit(value) {\n return isString(value) ? value : value ? value + \"px\" : \"\";\n}\nvar PROJECT_CODE = \"splide\";\nvar DATA_ATTRIBUTE = \"data-\" + PROJECT_CODE;\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(\"[\" + PROJECT_CODE + \"] \" + (message || \"\"));\n }\n}\nvar min = Math.min;\nvar max = Math.max;\nvar floor = Math.floor;\nvar ceil = Math.ceil;\nvar abs = Math.abs;\nfunction approximatelyEqual(x, y, epsilon) {\n return abs(x - y) < epsilon;\n}\nfunction between(number, x, y, exclusive) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;\n}\nfunction clamp(number, x, y) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return min(max(minimum, number), maximum);\n}\nfunction sign(x) {\n return +(x > 0) - +(x < 0);\n}\nfunction format(string, replacements) {\n forEach(replacements, function(replacement) {\n string = string.replace(\"%s\", \"\" + replacement);\n });\n return string;\n}\nfunction pad(number) {\n return number < 10 ? \"0\" + number : \"\" + number;\n}\nvar ids = {};\nfunction uniqueId(prefix) {\n return \"\" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);\n}\nfunction EventBinder() {\n var listeners = [];\n function bind(targets, events, callback, options) {\n forEachEvent(targets, events, function(target, event, namespace) {\n var isEventTarget = \"addEventListener\" in target;\n var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n listeners.push([target, event, namespace, callback, remover]);\n });\n }\n function unbind(targets, events, callback) {\n forEachEvent(targets, events, function(target, event, namespace) {\n listeners = listeners.filter(function(listener) {\n if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n listener[4]();\n return false;\n }\n return true;\n });\n });\n }\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles,\n detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n target.dispatchEvent(e);\n return e;\n }\n function forEachEvent(targets, events, iteratee) {\n forEach(targets, function(target) {\n target && forEach(events, function(events2) {\n events2.split(\" \").forEach(function(eventNS) {\n var fragment = eventNS.split(\".\");\n iteratee(target, fragment[0], fragment[1]);\n });\n });\n });\n }\n function destroy() {\n listeners.forEach(function(data) {\n data[4]();\n });\n empty(listeners);\n }\n return {\n bind,\n unbind,\n dispatch,\n destroy\n };\n}\nvar EVENT_MOUNTED = \"mounted\";\nvar EVENT_READY = \"ready\";\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_CLICK = \"click\";\nvar EVENT_ACTIVE = \"active\";\nvar EVENT_INACTIVE = \"inactive\";\nvar EVENT_VISIBLE = \"visible\";\nvar EVENT_HIDDEN = \"hidden\";\nvar EVENT_REFRESH = \"refresh\";\nvar EVENT_UPDATED = \"updated\";\nvar EVENT_RESIZE = \"resize\";\nvar EVENT_RESIZED = \"resized\";\nvar EVENT_DRAG = \"drag\";\nvar EVENT_DRAGGING = \"dragging\";\nvar EVENT_DRAGGED = \"dragged\";\nvar EVENT_SCROLL = \"scroll\";\nvar EVENT_SCROLLED = \"scrolled\";\nvar EVENT_OVERFLOW = \"overflow\";\nvar EVENT_DESTROY = \"destroy\";\nvar EVENT_ARROWS_MOUNTED = \"arrows:mounted\";\nvar EVENT_ARROWS_UPDATED = \"arrows:updated\";\nvar EVENT_PAGINATION_MOUNTED = \"pagination:mounted\";\nvar EVENT_PAGINATION_UPDATED = \"pagination:updated\";\nvar EVENT_NAVIGATION_MOUNTED = \"navigation:mounted\";\nvar EVENT_AUTOPLAY_PLAY = \"autoplay:play\";\nvar EVENT_AUTOPLAY_PLAYING = \"autoplay:playing\";\nvar EVENT_AUTOPLAY_PAUSE = \"autoplay:pause\";\nvar EVENT_LAZYLOAD_LOADED = \"lazyload:loaded\";\nvar EVENT_SLIDE_KEYDOWN = \"sk\";\nvar EVENT_SHIFTED = \"sh\";\nvar EVENT_END_INDEX_CHANGED = \"ei\";\nfunction EventInterface(Splide22) {\n var bus = Splide22 ? Splide22.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\n function on(events, callback) {\n binder.bind(bus, toArray(events).join(\" \"), function(e) {\n callback.apply(callback, isArray(e.detail) ? e.detail : []);\n });\n }\n function emit(event) {\n binder.dispatch(bus, event, slice(arguments, 1));\n }\n if (Splide22) {\n Splide22.event.on(EVENT_DESTROY, binder.destroy);\n }\n return assign(binder, {\n bus,\n on,\n off: apply(binder.unbind, bus),\n emit\n });\n}\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n var now = Date.now;\n var startTime;\n var rate = 0;\n var id;\n var paused = true;\n var count = 0;\n function update() {\n if (!paused) {\n rate = interval ? min((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n if (rate >= 1) {\n onInterval();\n startTime = now();\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n id = raf(update);\n }\n }\n function start(resume) {\n resume || cancel();\n startTime = now() - (resume ? rate * interval : 0);\n paused = false;\n id = raf(update);\n }\n function pause() {\n paused = true;\n }\n function rewind() {\n startTime = now();\n rate = 0;\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n function set(time) {\n interval = time;\n }\n function isPaused() {\n return paused;\n }\n return {\n start,\n rewind,\n pause,\n cancel,\n set,\n isPaused\n };\n}\nfunction State(initialState) {\n var state = initialState;\n function set(value) {\n state = value;\n }\n function is(states) {\n return includes(toArray(states), state);\n }\n return {\n set,\n is\n };\n}\nfunction Throttle(func, duration) {\n var interval = RequestInterval(duration || 0, func, null, 1);\n return function() {\n interval.isPaused() && interval.start();\n };\n}\nfunction Media(Splide22, Components2, options) {\n var state = Splide22.state;\n var breakpoints = options.breakpoints || {};\n var reducedMotion = options.reducedMotion || {};\n var binder = EventBinder();\n var queries = [];\n function setup() {\n var isMin = options.mediaQuery === \"min\";\n ownKeys(breakpoints).sort(function(n, m) {\n return isMin ? +n - +m : +m - +n;\n }).forEach(function(key) {\n register(breakpoints[key], \"(\" + (isMin ? \"min\" : \"max\") + \"-width:\" + key + \"px)\");\n });\n register(reducedMotion, MEDIA_PREFERS_REDUCED_MOTION);\n update();\n }\n function destroy(completely) {\n if (completely) {\n binder.destroy();\n }\n }\n function register(options2, query2) {\n var queryList = matchMedia(query2);\n binder.bind(queryList, \"change\", update);\n queries.push([options2, queryList]);\n }\n function update() {\n var destroyed = state.is(DESTROYED);\n var direction = options.direction;\n var merged = queries.reduce(function(merged2, entry) {\n return merge(merged2, entry[1].matches ? entry[0] : {});\n }, {});\n omit(options);\n set(merged);\n if (options.destroy) {\n Splide22.destroy(options.destroy === \"completely\");\n } else if (destroyed) {\n destroy(true);\n Splide22.mount();\n } else {\n direction !== options.direction && Splide22.refresh();\n }\n }\n function reduce(enable) {\n if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {\n enable ? merge(options, reducedMotion) : omit(options, ownKeys(reducedMotion));\n }\n }\n function set(opts, base, notify) {\n merge(options, opts);\n base && merge(Object.getPrototypeOf(options), opts);\n if (notify || !state.is(CREATED)) {\n Splide22.emit(EVENT_UPDATED, options);\n }\n }\n return {\n setup,\n destroy,\n reduce,\n set\n };\n}\nvar ARROW = \"Arrow\";\nvar ARROW_LEFT = ARROW + \"Left\";\nvar ARROW_RIGHT = ARROW + \"Right\";\nvar ARROW_UP = ARROW + \"Up\";\nvar ARROW_DOWN = ARROW + \"Down\";\nvar RTL = \"rtl\";\nvar TTB = \"ttb\";\nvar ORIENTATION_MAP = {\n width: [\"height\"],\n left: [\"top\", \"right\"],\n right: [\"bottom\", \"left\"],\n x: [\"y\"],\n X: [\"Y\"],\n Y: [\"X\"],\n ArrowLeft: [ARROW_UP, ARROW_RIGHT],\n ArrowRight: [ARROW_DOWN, ARROW_LEFT]\n};\nfunction Direction(Splide22, Components2, options) {\n function resolve(prop, axisOnly, direction) {\n direction = direction || options.direction;\n var index = direction === RTL && !axisOnly ? 1 : direction === TTB ? 0 : -1;\n return ORIENTATION_MAP[prop] && ORIENTATION_MAP[prop][index] || prop.replace(/width|left|right/i, function(match, offset) {\n var replacement = ORIENTATION_MAP[match.toLowerCase()][index] || match;\n return offset > 0 ? replacement.charAt(0).toUpperCase() + replacement.slice(1) : replacement;\n });\n }\n function orient(value) {\n return value * (options.direction === RTL ? 1 : -1);\n }\n return {\n resolve,\n orient\n };\n}\nvar ROLE = \"role\";\nvar TAB_INDEX = \"tabindex\";\nvar DISABLED = \"disabled\";\nvar ARIA_PREFIX = \"aria-\";\nvar ARIA_CONTROLS = ARIA_PREFIX + \"controls\";\nvar ARIA_CURRENT = ARIA_PREFIX + \"current\";\nvar ARIA_SELECTED = ARIA_PREFIX + \"selected\";\nvar ARIA_LABEL = ARIA_PREFIX + \"label\";\nvar ARIA_LABELLEDBY = ARIA_PREFIX + \"labelledby\";\nvar ARIA_HIDDEN = ARIA_PREFIX + \"hidden\";\nvar ARIA_ORIENTATION = ARIA_PREFIX + \"orientation\";\nvar ARIA_ROLEDESCRIPTION = ARIA_PREFIX + \"roledescription\";\nvar ARIA_LIVE = ARIA_PREFIX + \"live\";\nvar ARIA_BUSY = ARIA_PREFIX + \"busy\";\nvar ARIA_ATOMIC = ARIA_PREFIX + \"atomic\";\nvar ALL_ATTRIBUTES = [ROLE, TAB_INDEX, DISABLED, ARIA_CONTROLS, ARIA_CURRENT, ARIA_LABEL, ARIA_LABELLEDBY, ARIA_HIDDEN, ARIA_ORIENTATION, ARIA_ROLEDESCRIPTION];\nvar CLASS_PREFIX = PROJECT_CODE + \"__\";\nvar STATUS_CLASS_PREFIX = \"is-\";\nvar CLASS_ROOT = PROJECT_CODE;\nvar CLASS_TRACK = CLASS_PREFIX + \"track\";\nvar CLASS_LIST = CLASS_PREFIX + \"list\";\nvar CLASS_SLIDE = CLASS_PREFIX + \"slide\";\nvar CLASS_CLONE = CLASS_SLIDE + \"--clone\";\nvar CLASS_CONTAINER = CLASS_SLIDE + \"__container\";\nvar CLASS_ARROWS = CLASS_PREFIX + \"arrows\";\nvar CLASS_ARROW = CLASS_PREFIX + \"arrow\";\nvar CLASS_ARROW_PREV = CLASS_ARROW + \"--prev\";\nvar CLASS_ARROW_NEXT = CLASS_ARROW + \"--next\";\nvar CLASS_PAGINATION = CLASS_PREFIX + \"pagination\";\nvar CLASS_PAGINATION_PAGE = CLASS_PAGINATION + \"__page\";\nvar CLASS_PROGRESS = CLASS_PREFIX + \"progress\";\nvar CLASS_PROGRESS_BAR = CLASS_PROGRESS + \"__bar\";\nvar CLASS_TOGGLE = CLASS_PREFIX + \"toggle\";\nvar CLASS_TOGGLE_PLAY = CLASS_TOGGLE + \"__play\";\nvar CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + \"__pause\";\nvar CLASS_SPINNER = CLASS_PREFIX + \"spinner\";\nvar CLASS_SR = CLASS_PREFIX + \"sr\";\nvar CLASS_INITIALIZED = STATUS_CLASS_PREFIX + \"initialized\";\nvar CLASS_ACTIVE = STATUS_CLASS_PREFIX + \"active\";\nvar CLASS_PREV = STATUS_CLASS_PREFIX + \"prev\";\nvar CLASS_NEXT = STATUS_CLASS_PREFIX + \"next\";\nvar CLASS_VISIBLE = STATUS_CLASS_PREFIX + \"visible\";\nvar CLASS_LOADING = STATUS_CLASS_PREFIX + \"loading\";\nvar CLASS_FOCUS_IN = STATUS_CLASS_PREFIX + \"focus-in\";\nvar CLASS_OVERFLOW = STATUS_CLASS_PREFIX + \"overflow\";\nvar STATUS_CLASSES = [CLASS_ACTIVE, CLASS_VISIBLE, CLASS_PREV, CLASS_NEXT, CLASS_LOADING, CLASS_FOCUS_IN, CLASS_OVERFLOW];\nvar CLASSES = {\n slide: CLASS_SLIDE,\n clone: CLASS_CLONE,\n arrows: CLASS_ARROWS,\n arrow: CLASS_ARROW,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n pagination: CLASS_PAGINATION,\n page: CLASS_PAGINATION_PAGE,\n spinner: CLASS_SPINNER\n};\nfunction closest(from, selector) {\n if (isFunction(from.closest)) {\n return from.closest(selector);\n }\n var elm = from;\n while (elm && elm.nodeType === 1) {\n if (matches(elm, selector)) {\n break;\n }\n elm = elm.parentElement;\n }\n return elm;\n}\nvar FRICTION = 5;\nvar LOG_INTERVAL = 200;\nvar POINTER_DOWN_EVENTS = \"touchstart mousedown\";\nvar POINTER_MOVE_EVENTS = \"touchmove mousemove\";\nvar POINTER_UP_EVENTS = \"touchend touchcancel mouseup click\";\nfunction Elements(Splide22, Components2, options) {\n var _EventInterface = EventInterface(Splide22), on = _EventInterface.on, bind = _EventInterface.bind;\n var root = Splide22.root;\n var i18n = options.i18n;\n var elements = {};\n var slides = [];\n var rootClasses = [];\n var trackClasses = [];\n var track;\n var list;\n var isUsingKey;\n function setup() {\n collect();\n init();\n update();\n }\n function mount() {\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, setup);\n on(EVENT_UPDATED, update);\n bind(document, POINTER_DOWN_EVENTS + \" keydown\", function(e) {\n isUsingKey = e.type === \"keydown\";\n }, {\n capture: true\n });\n bind(root, \"focusin\", function() {\n toggleClass(root, CLASS_FOCUS_IN, !!isUsingKey);\n });\n }\n function destroy(completely) {\n var attrs = ALL_ATTRIBUTES.concat(\"style\");\n empty(slides);\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n removeAttribute([track, list], attrs);\n removeAttribute(root, completely ? attrs : [\"style\", ARIA_ROLEDESCRIPTION]);\n }\n function update() {\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n rootClasses = getClasses(CLASS_ROOT);\n trackClasses = getClasses(CLASS_TRACK);\n addClass(root, rootClasses);\n addClass(track, trackClasses);\n setAttribute(root, ARIA_LABEL, options.label);\n setAttribute(root, ARIA_LABELLEDBY, options.labelledby);\n }\n function collect() {\n track = find(\".\" + CLASS_TRACK);\n list = child(track, \".\" + CLASS_LIST);\n assert(track && list, \"A track/list element is missing.\");\n push(slides, children(list, \".\" + CLASS_SLIDE + \":not(.\" + CLASS_CLONE + \")\"));\n forOwn({\n arrows: CLASS_ARROWS,\n pagination: CLASS_PAGINATION,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n bar: CLASS_PROGRESS_BAR,\n toggle: CLASS_TOGGLE\n }, function(className, key) {\n elements[key] = find(\".\" + className);\n });\n assign(elements, {\n root,\n track,\n list,\n slides\n });\n }\n function init() {\n var id = root.id || uniqueId(PROJECT_CODE);\n var role = options.role;\n root.id = id;\n track.id = track.id || id + \"-track\";\n list.id = list.id || id + \"-list\";\n if (!getAttribute(root, ROLE) && root.tagName !== \"SECTION\" && role) {\n setAttribute(root, ROLE, role);\n }\n setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);\n setAttribute(list, ROLE, \"presentation\");\n }\n function find(selector) {\n var elm = query(root, selector);\n return elm && closest(elm, \".\" + CLASS_ROOT) === root ? elm : void 0;\n }\n function getClasses(base) {\n return [base + \"--\" + options.type, base + \"--\" + options.direction, options.drag && base + \"--draggable\", options.isNavigation && base + \"--nav\", base === CLASS_ROOT && CLASS_ACTIVE];\n }\n return assign(elements, {\n setup,\n mount,\n destroy\n });\n}\nvar SLIDE = \"slide\";\nvar LOOP = \"loop\";\nvar FADE = \"fade\";\nfunction Slide$1(Splide22, index, slideIndex, slide) {\n var event = EventInterface(Splide22);\n var on = event.on, emit = event.emit, bind = event.bind;\n var Components = Splide22.Components, root = Splide22.root, options = Splide22.options;\n var isNavigation = options.isNavigation, updateOnMove = options.updateOnMove, i18n = options.i18n, pagination = options.pagination, slideFocus = options.slideFocus;\n var resolve = Components.Direction.resolve;\n var styles = getAttribute(slide, \"style\");\n var label = getAttribute(slide, ARIA_LABEL);\n var isClone = slideIndex > -1;\n var container = child(slide, \".\" + CLASS_CONTAINER);\n var destroyed;\n function mount() {\n if (!isClone) {\n slide.id = root.id + \"-slide\" + pad(index + 1);\n setAttribute(slide, ROLE, pagination ? \"tabpanel\" : \"group\");\n setAttribute(slide, ARIA_ROLEDESCRIPTION, i18n.slide);\n setAttribute(slide, ARIA_LABEL, label || format(i18n.slideLabel, [index + 1, Splide22.length]));\n }\n listen();\n }\n function listen() {\n bind(slide, \"click\", apply(emit, EVENT_CLICK, self));\n bind(slide, \"keydown\", apply(emit, EVENT_SLIDE_KEYDOWN, self));\n on([EVENT_MOVED, EVENT_SHIFTED, EVENT_SCROLLED], update);\n on(EVENT_NAVIGATION_MOUNTED, initNavigation);\n if (updateOnMove) {\n on(EVENT_MOVE, onMove);\n }\n }\n function destroy() {\n destroyed = true;\n event.destroy();\n removeClass(slide, STATUS_CLASSES);\n removeAttribute(slide, ALL_ATTRIBUTES);\n setAttribute(slide, \"style\", styles);\n setAttribute(slide, ARIA_LABEL, label || \"\");\n }\n function initNavigation() {\n var controls = Splide22.splides.map(function(target) {\n var Slide2 = target.splide.Components.Slides.getAt(index);\n return Slide2 ? Slide2.slide.id : \"\";\n }).join(\" \");\n setAttribute(slide, ARIA_LABEL, format(i18n.slideX, (isClone ? slideIndex : index) + 1));\n setAttribute(slide, ARIA_CONTROLS, controls);\n setAttribute(slide, ROLE, slideFocus ? \"button\" : \"\");\n slideFocus && removeAttribute(slide, ARIA_ROLEDESCRIPTION);\n }\n function onMove() {\n if (!destroyed) {\n update();\n }\n }\n function update() {\n if (!destroyed) {\n var curr = Splide22.index;\n updateActivity();\n updateVisibility();\n toggleClass(slide, CLASS_PREV, index === curr - 1);\n toggleClass(slide, CLASS_NEXT, index === curr + 1);\n }\n }\n function updateActivity() {\n var active = isActive();\n if (active !== hasClass(slide, CLASS_ACTIVE)) {\n toggleClass(slide, CLASS_ACTIVE, active);\n setAttribute(slide, ARIA_CURRENT, isNavigation && active || \"\");\n emit(active ? EVENT_ACTIVE : EVENT_INACTIVE, self);\n }\n }\n function updateVisibility() {\n var visible = isVisible();\n var hidden = !visible && (!isActive() || isClone);\n if (!Splide22.state.is([MOVING, SCROLLING])) {\n setAttribute(slide, ARIA_HIDDEN, hidden || \"\");\n }\n setAttribute(queryAll(slide, options.focusableNodes || \"\"), TAB_INDEX, hidden ? -1 : \"\");\n if (slideFocus) {\n setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);\n }\n if (visible !== hasClass(slide, CLASS_VISIBLE)) {\n toggleClass(slide, CLASS_VISIBLE, visible);\n emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);\n }\n if (!visible && document.activeElement === slide) {\n var Slide2 = Components.Slides.getAt(Splide22.index);\n Slide2 && focus(Slide2.slide);\n }\n }\n function style$1(prop, value, useContainer) {\n style(useContainer && container || slide, prop, value);\n }\n function isActive() {\n var curr = Splide22.index;\n return curr === index || options.cloneStatus && curr === slideIndex;\n }\n function isVisible() {\n if (Splide22.is(FADE)) {\n return isActive();\n }\n var trackRect = rect(Components.Elements.track);\n var slideRect = rect(slide);\n var left = resolve(\"left\", true);\n var right = resolve(\"right\", true);\n return floor(trackRect[left]) <= ceil(slideRect[left]) && floor(slideRect[right]) <= ceil(trackRect[right]);\n }\n function isWithin(from, distance) {\n var diff = abs(from - index);\n if (!isClone && (options.rewind || Splide22.is(LOOP))) {\n diff = min(diff, Splide22.length - diff);\n }\n return diff <= distance;\n }\n var self = {\n index,\n slideIndex,\n slide,\n container,\n isClone,\n mount,\n destroy,\n update,\n style: style$1,\n isWithin\n };\n return self;\n}\nfunction Slides(Splide22, Components2, options) {\n var _EventInterface2 = EventInterface(Splide22), on = _EventInterface2.on, emit = _EventInterface2.emit, bind = _EventInterface2.bind;\n var _Components2$Elements = Components2.Elements, slides = _Components2$Elements.slides, list = _Components2$Elements.list;\n var Slides2 = [];\n function mount() {\n init();\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, init);\n }\n function init() {\n slides.forEach(function(slide, index) {\n register(slide, index, -1);\n });\n }\n function destroy() {\n forEach$1(function(Slide2) {\n Slide2.destroy();\n });\n empty(Slides2);\n }\n function update() {\n forEach$1(function(Slide2) {\n Slide2.update();\n });\n }\n function register(slide, index, slideIndex) {\n var object = Slide$1(Splide22, index, slideIndex, slide);\n object.mount();\n Slides2.push(object);\n Slides2.sort(function(Slide1, Slide2) {\n return Slide1.index - Slide2.index;\n });\n }\n function get(excludeClones) {\n return excludeClones ? filter(function(Slide2) {\n return !Slide2.isClone;\n }) : Slides2;\n }\n function getIn(page) {\n var Controller2 = Components2.Controller;\n var index = Controller2.toIndex(page);\n var max2 = Controller2.hasFocus() ? 1 : options.perPage;\n return filter(function(Slide2) {\n return between(Slide2.index, index, index + max2 - 1);\n });\n }\n function getAt(index) {\n return filter(index)[0];\n }\n function add(items, index) {\n forEach(items, function(slide) {\n if (isString(slide)) {\n slide = parseHtml(slide);\n }\n if (isHTMLElement(slide)) {\n var ref = slides[index];\n ref ? before(slide, ref) : append(list, slide);\n addClass(slide, options.classes.slide);\n observeImages(slide, apply(emit, EVENT_RESIZE));\n }\n });\n emit(EVENT_REFRESH);\n }\n function remove$1(matcher) {\n remove(filter(matcher).map(function(Slide2) {\n return Slide2.slide;\n }));\n emit(EVENT_REFRESH);\n }\n function forEach$1(iteratee, excludeClones) {\n get(excludeClones).forEach(iteratee);\n }\n function filter(matcher) {\n return Slides2.filter(isFunction(matcher) ? matcher : function(Slide2) {\n return isString(matcher) ? matches(Slide2.slide, matcher) : includes(toArray(matcher), Slide2.index);\n });\n }\n function style2(prop, value, useContainer) {\n forEach$1(function(Slide2) {\n Slide2.style(prop, value, useContainer);\n });\n }\n function observeImages(elm, callback) {\n var images = queryAll(elm, \"img\");\n var length = images.length;\n if (length) {\n images.forEach(function(img) {\n bind(img, \"load error\", function() {\n if (!--length) {\n callback();\n }\n });\n });\n } else {\n callback();\n }\n }\n function getLength(excludeClones) {\n return excludeClones ? slides.length : Slides2.length;\n }\n function isEnough() {\n return Slides2.length > options.perPage;\n }\n return {\n mount,\n destroy,\n update,\n register,\n get,\n getIn,\n getAt,\n add,\n remove: remove$1,\n forEach: forEach$1,\n filter,\n style: style2,\n getLength,\n isEnough\n };\n}\nfunction Layout(Splide22, Components2, options) {\n var _EventInterface3 = EventInterface(Splide22), on = _EventInterface3.on, bind = _EventInterface3.bind, emit = _EventInterface3.emit;\n var Slides2 = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var _Components2$Elements2 = Components2.Elements, root = _Components2$Elements2.root, track = _Components2$Elements2.track, list = _Components2$Elements2.list;\n var getAt = Slides2.getAt, styleSlides = Slides2.style;\n var vertical;\n var rootRect;\n var overflow;\n function mount() {\n init();\n bind(window, \"resize load\", Throttle(apply(emit, EVENT_RESIZE)));\n on([EVENT_UPDATED, EVENT_REFRESH], init);\n on(EVENT_RESIZE, resize);\n }\n function init() {\n vertical = options.direction === TTB;\n style(root, \"maxWidth\", unit(options.width));\n style(track, resolve(\"paddingLeft\"), cssPadding(false));\n style(track, resolve(\"paddingRight\"), cssPadding(true));\n resize(true);\n }\n function resize(force) {\n var newRect = rect(root);\n if (force || rootRect.width !== newRect.width || rootRect.height !== newRect.height) {\n style(track, \"height\", cssTrackHeight());\n styleSlides(resolve(\"marginRight\"), unit(options.gap));\n styleSlides(\"width\", cssSlideWidth());\n styleSlides(\"height\", cssSlideHeight(), true);\n rootRect = newRect;\n emit(EVENT_RESIZED);\n if (overflow !== (overflow = isOverflow())) {\n toggleClass(root, CLASS_OVERFLOW, overflow);\n emit(EVENT_OVERFLOW, overflow);\n }\n }\n }\n function cssPadding(right) {\n var padding = options.padding;\n var prop = resolve(right ? \"right\" : \"left\");\n return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || \"0px\";\n }\n function cssTrackHeight() {\n var height = \"\";\n if (vertical) {\n height = cssHeight();\n assert(height, \"height or heightRatio is missing.\");\n height = \"calc(\" + height + \" - \" + cssPadding(false) + \" - \" + cssPadding(true) + \")\";\n }\n return height;\n }\n function cssHeight() {\n return unit(options.height || rect(list).width * options.heightRatio);\n }\n function cssSlideWidth() {\n return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? \"\" : cssSlideSize());\n }\n function cssSlideHeight() {\n return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());\n }\n function cssSlideSize() {\n var gap = unit(options.gap);\n return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n }\n function listSize() {\n return rect(list)[resolve(\"width\")];\n }\n function slideSize(index, withoutGap) {\n var Slide2 = getAt(index || 0);\n return Slide2 ? rect(Slide2.slide)[resolve(\"width\")] + (withoutGap ? 0 : getGap()) : 0;\n }\n function totalSize(index, withoutGap) {\n var Slide2 = getAt(index);\n if (Slide2) {\n var right = rect(Slide2.slide)[resolve(\"right\")];\n var left = rect(list)[resolve(\"left\")];\n return abs(right - left) + (withoutGap ? 0 : getGap());\n }\n return 0;\n }\n function sliderSize(withoutGap) {\n return totalSize(Splide22.length - 1) - totalSize(0) + slideSize(0, withoutGap);\n }\n function getGap() {\n var Slide2 = getAt(0);\n return Slide2 && parseFloat(style(Slide2.slide, resolve(\"marginRight\"))) || 0;\n }\n function getPadding(right) {\n return parseFloat(style(track, resolve(\"padding\" + (right ? \"Right\" : \"Left\")))) || 0;\n }\n function isOverflow() {\n return Splide22.is(FADE) || sliderSize(true) > listSize();\n }\n return {\n mount,\n resize,\n listSize,\n slideSize,\n sliderSize,\n totalSize,\n getPadding,\n isOverflow\n };\n}\nvar MULTIPLIER = 2;\nfunction Clones(Splide22, Components2, options) {\n var event = EventInterface(Splide22);\n var on = event.on;\n var Elements2 = Components2.Elements, Slides2 = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var clones = [];\n var cloneCount;\n function mount() {\n on(EVENT_REFRESH, remount);\n on([EVENT_UPDATED, EVENT_RESIZE], observe);\n if (cloneCount = computeCloneCount()) {\n generate(cloneCount);\n Components2.Layout.resize(true);\n }\n }\n function remount() {\n destroy();\n mount();\n }\n function destroy() {\n remove(clones);\n empty(clones);\n event.destroy();\n }\n function observe() {\n var count = computeCloneCount();\n if (cloneCount !== count) {\n if (cloneCount < count || !count) {\n event.emit(EVENT_REFRESH);\n }\n }\n }\n function generate(count) {\n var slides = Slides2.get().slice();\n var length = slides.length;\n if (length) {\n while (slides.length < count) {\n push(slides, slides);\n }\n push(slides.slice(-count), slides.slice(0, count)).forEach(function(Slide2, index) {\n var isHead = index < count;\n var clone = cloneDeep(Slide2.slide, index);\n isHead ? before(clone, slides[0].slide) : append(Elements2.list, clone);\n push(clones, clone);\n Slides2.register(clone, index - count + (isHead ? 0 : length), Slide2.index);\n });\n }\n }\n function cloneDeep(elm, index) {\n var clone = elm.cloneNode(true);\n addClass(clone, options.classes.clone);\n clone.id = Splide22.root.id + \"-clone\" + pad(index + 1);\n return clone;\n }\n function computeCloneCount() {\n var clones2 = options.clones;\n if (!Splide22.is(LOOP)) {\n clones2 = 0;\n } else if (isUndefined(clones2)) {\n var fixedSize = options[resolve(\"fixedWidth\")] && Components2.Layout.slideSize(0);\n var fixedCount = fixedSize && ceil(rect(Elements2.track)[resolve(\"width\")] / fixedSize);\n clones2 = fixedCount || options[resolve(\"autoWidth\")] && Splide22.length || options.perPage * MULTIPLIER;\n }\n return clones2;\n }\n return {\n mount,\n destroy\n };\n}\nfunction Move(Splide22, Components2, options) {\n var _EventInterface4 = EventInterface(Splide22), on = _EventInterface4.on, emit = _EventInterface4.emit;\n var set = Splide22.state.set;\n var _Components2$Layout = Components2.Layout, slideSize = _Components2$Layout.slideSize, getPadding = _Components2$Layout.getPadding, totalSize = _Components2$Layout.totalSize, listSize = _Components2$Layout.listSize, sliderSize = _Components2$Layout.sliderSize;\n var _Components2$Directio = Components2.Direction, resolve = _Components2$Directio.resolve, orient = _Components2$Directio.orient;\n var _Components2$Elements3 = Components2.Elements, list = _Components2$Elements3.list, track = _Components2$Elements3.track;\n var Transition;\n function mount() {\n Transition = Components2.Transition;\n on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);\n }\n function reposition() {\n if (!Components2.Controller.isBusy()) {\n Components2.Scroll.cancel();\n jump(Splide22.index);\n Components2.Slides.update();\n }\n }\n function move(dest, index, prev, callback) {\n if (dest !== index && canShift(dest > prev)) {\n cancel();\n translate(shift(getPosition(), dest > prev), true);\n }\n set(MOVING);\n emit(EVENT_MOVE, index, prev, dest);\n Transition.start(index, function() {\n set(IDLE);\n emit(EVENT_MOVED, index, prev, dest);\n callback && callback();\n });\n }\n function jump(index) {\n translate(toPosition(index, true));\n }\n function translate(position, preventLoop) {\n if (!Splide22.is(FADE)) {\n var destination = preventLoop ? position : loop(position);\n style(list, \"transform\", \"translate\" + resolve(\"X\") + \"(\" + destination + \"px)\");\n position !== destination && emit(EVENT_SHIFTED);\n }\n }\n function loop(position) {\n if (Splide22.is(LOOP)) {\n var index = toIndex(position);\n var exceededMax = index > Components2.Controller.getEnd();\n var exceededMin = index < 0;\n if (exceededMin || exceededMax) {\n position = shift(position, exceededMax);\n }\n }\n return position;\n }\n function shift(position, backwards) {\n var excess = position - getLimit(backwards);\n var size = sliderSize();\n position -= orient(size * (ceil(abs(excess) / size) || 1)) * (backwards ? 1 : -1);\n return position;\n }\n function cancel() {\n translate(getPosition(), true);\n Transition.cancel();\n }\n function toIndex(position) {\n var Slides2 = Components2.Slides.get();\n var index = 0;\n var minDistance = Infinity;\n for (var i = 0; i < Slides2.length; i++) {\n var slideIndex = Slides2[i].index;\n var distance = abs(toPosition(slideIndex, true) - position);\n if (distance <= minDistance) {\n minDistance = distance;\n index = slideIndex;\n } else {\n break;\n }\n }\n return index;\n }\n function toPosition(index, trimming) {\n var position = orient(totalSize(index - 1) - offset(index));\n return trimming ? trim(position) : position;\n }\n function getPosition() {\n var left = resolve(\"left\");\n return rect(list)[left] - rect(track)[left] + orient(getPadding(false));\n }\n function trim(position) {\n if (options.trimSpace && Splide22.is(SLIDE)) {\n position = clamp(position, 0, orient(sliderSize(true) - listSize()));\n }\n return position;\n }\n function offset(index) {\n var focus2 = options.focus;\n return focus2 === \"center\" ? (listSize() - slideSize(index, true)) / 2 : +focus2 * slideSize(index) || 0;\n }\n function getLimit(max2) {\n return toPosition(max2 ? Components2.Controller.getEnd() : 0, !!options.trimSpace);\n }\n function canShift(backwards) {\n var shifted = orient(shift(getPosition(), backwards));\n return backwards ? shifted >= 0 : shifted <= list[resolve(\"scrollWidth\")] - rect(track)[resolve(\"width\")];\n }\n function exceededLimit(max2, position) {\n position = isUndefined(position) ? getPosition() : position;\n var exceededMin = max2 !== true && orient(position) < orient(getLimit(false));\n var exceededMax = max2 !== false && orient(position) > orient(getLimit(true));\n return exceededMin || exceededMax;\n }\n return {\n mount,\n move,\n jump,\n translate,\n shift,\n cancel,\n toIndex,\n toPosition,\n getPosition,\n getLimit,\n exceededLimit,\n reposition\n };\n}\nfunction Controller(Splide22, Components2, options) {\n var _EventInterface5 = EventInterface(Splide22), on = _EventInterface5.on, emit = _EventInterface5.emit;\n var Move2 = Components2.Move;\n var getPosition = Move2.getPosition, getLimit = Move2.getLimit, toPosition = Move2.toPosition;\n var _Components2$Slides = Components2.Slides, isEnough = _Components2$Slides.isEnough, getLength = _Components2$Slides.getLength;\n var omitEnd = options.omitEnd;\n var isLoop = Splide22.is(LOOP);\n var isSlide = Splide22.is(SLIDE);\n var getNext = apply(getAdjacent, false);\n var getPrev = apply(getAdjacent, true);\n var currIndex = options.start || 0;\n var endIndex;\n var prevIndex = currIndex;\n var slideCount;\n var perMove;\n var perPage;\n function mount() {\n init();\n on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], init);\n on(EVENT_RESIZED, onResized);\n }\n function init() {\n slideCount = getLength(true);\n perMove = options.perMove;\n perPage = options.perPage;\n endIndex = getEnd();\n var index = clamp(currIndex, 0, omitEnd ? endIndex : slideCount - 1);\n if (index !== currIndex) {\n currIndex = index;\n Move2.reposition();\n }\n }\n function onResized() {\n if (endIndex !== getEnd()) {\n emit(EVENT_END_INDEX_CHANGED);\n }\n }\n function go(control, allowSameIndex, callback) {\n if (!isBusy()) {\n var dest = parse(control);\n var index = loop(dest);\n if (index > -1 && (allowSameIndex || index !== currIndex)) {\n setIndex(index);\n Move2.move(dest, index, prevIndex, callback);\n }\n }\n }\n function scroll(destination, duration, snap, callback) {\n Components2.Scroll.scroll(destination, duration, snap, function() {\n var index = loop(Move2.toIndex(getPosition()));\n setIndex(omitEnd ? min(index, endIndex) : index);\n callback && callback();\n });\n }\n function parse(control) {\n var index = currIndex;\n if (isString(control)) {\n var _ref = control.match(/([+\\-<>])(\\d+)?/) || [], indicator = _ref[1], number = _ref[2];\n if (indicator === \"+\" || indicator === \"-\") {\n index = computeDestIndex(currIndex + +(\"\" + indicator + (+number || 1)), currIndex);\n } else if (indicator === \">\") {\n index = number ? toIndex(+number) : getNext(true);\n } else if (indicator === \"<\") {\n index = getPrev(true);\n }\n } else {\n index = isLoop ? control : clamp(control, 0, endIndex);\n }\n return index;\n }\n function getAdjacent(prev, destination) {\n var number = perMove || (hasFocus() ? 1 : perPage);\n var dest = computeDestIndex(currIndex + number * (prev ? -1 : 1), currIndex, !(perMove || hasFocus()));\n if (dest === -1 && isSlide) {\n if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {\n return prev ? 0 : endIndex;\n }\n }\n return destination ? dest : loop(dest);\n }\n function computeDestIndex(dest, from, snapPage) {\n if (isEnough() || hasFocus()) {\n var index = computeMovableDestIndex(dest);\n if (index !== dest) {\n from = dest;\n dest = index;\n snapPage = false;\n }\n if (dest < 0 || dest > endIndex) {\n if (!perMove && (between(0, dest, from, true) || between(endIndex, from, dest, true))) {\n dest = toIndex(toPage(dest));\n } else {\n if (isLoop) {\n dest = snapPage ? dest < 0 ? -(slideCount % perPage || perPage) : slideCount : dest;\n } else if (options.rewind) {\n dest = dest < 0 ? endIndex : 0;\n } else {\n dest = -1;\n }\n }\n } else {\n if (snapPage && dest !== from) {\n dest = toIndex(toPage(from) + (dest < from ? -1 : 1));\n }\n }\n } else {\n dest = -1;\n }\n return dest;\n }\n function computeMovableDestIndex(dest) {\n if (isSlide && options.trimSpace === \"move\" && dest !== currIndex) {\n var position = getPosition();\n while (position === toPosition(dest, true) && between(dest, 0, Splide22.length - 1, !options.rewind)) {\n dest < currIndex ? --dest : ++dest;\n }\n }\n return dest;\n }\n function loop(index) {\n return isLoop ? (index + slideCount) % slideCount || 0 : index;\n }\n function getEnd() {\n var end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);\n while (omitEnd && end-- > 0) {\n if (toPosition(slideCount - 1, true) !== toPosition(end, true)) {\n end++;\n break;\n }\n }\n return clamp(end, 0, slideCount - 1);\n }\n function toIndex(page) {\n return clamp(hasFocus() ? page : perPage * page, 0, endIndex);\n }\n function toPage(index) {\n return hasFocus() ? min(index, endIndex) : floor((index >= endIndex ? slideCount - 1 : index) / perPage);\n }\n function toDest(destination) {\n var closest2 = Move2.toIndex(destination);\n return isSlide ? clamp(closest2, 0, endIndex) : closest2;\n }\n function setIndex(index) {\n if (index !== currIndex) {\n prevIndex = currIndex;\n currIndex = index;\n }\n }\n function getIndex(prev) {\n return prev ? prevIndex : currIndex;\n }\n function hasFocus() {\n return !isUndefined(options.focus) || options.isNavigation;\n }\n function isBusy() {\n return Splide22.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;\n }\n return {\n mount,\n go,\n scroll,\n getNext,\n getPrev,\n getAdjacent,\n getEnd,\n setIndex,\n getIndex,\n toIndex,\n toPage,\n toDest,\n hasFocus,\n isBusy\n };\n}\nvar XML_NAME_SPACE = \"http://www.w3.org/2000/svg\";\nvar PATH = \"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z\";\nvar SIZE = 40;\nfunction Arrows(Splide22, Components2, options) {\n var event = EventInterface(Splide22);\n var on = event.on, bind = event.bind, emit = event.emit;\n var classes = options.classes, i18n = options.i18n;\n var Elements2 = Components2.Elements, Controller2 = Components2.Controller;\n var placeholder = Elements2.arrows, track = Elements2.track;\n var wrapper = placeholder;\n var prev = Elements2.prev;\n var next = Elements2.next;\n var created;\n var wrapperClasses;\n var arrows = {};\n function mount() {\n init();\n on(EVENT_UPDATED, remount);\n }\n function remount() {\n destroy();\n mount();\n }\n function init() {\n var enabled = options.arrows;\n if (enabled && !(prev && next)) {\n createArrows();\n }\n if (prev && next) {\n assign(arrows, {\n prev,\n next\n });\n display(wrapper, enabled ? \"\" : \"none\");\n addClass(wrapper, wrapperClasses = CLASS_ARROWS + \"--\" + options.direction);\n if (enabled) {\n listen();\n update();\n setAttribute([prev, next], ARIA_CONTROLS, track.id);\n emit(EVENT_ARROWS_MOUNTED, prev, next);\n }\n }\n }\n function destroy() {\n event.destroy();\n removeClass(wrapper, wrapperClasses);\n if (created) {\n remove(placeholder ? [prev, next] : wrapper);\n prev = next = null;\n } else {\n removeAttribute([prev, next], ALL_ATTRIBUTES);\n }\n }\n function listen() {\n on([EVENT_MOUNTED, EVENT_MOVED, EVENT_REFRESH, EVENT_SCROLLED, EVENT_END_INDEX_CHANGED], update);\n bind(next, \"click\", apply(go, \">\"));\n bind(prev, \"click\", apply(go, \"<\"));\n }\n function go(control) {\n Controller2.go(control, true);\n }\n function createArrows() {\n wrapper = placeholder || create(\"div\", classes.arrows);\n prev = createArrow(true);\n next = createArrow(false);\n created = true;\n append(wrapper, [prev, next]);\n !placeholder && before(wrapper, track);\n }\n function createArrow(prev2) {\n var arrow = '\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{contact.phone && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomPRContact);\n","import { grey } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(theme => ({\n\tsectionContainer: {\n\t\tpaddingTop: 0,\n\t\tpaddingBottom: 20,\n\t\tpaddingLeft: 40,\n\t\tpaddingRight: 40,\n\t\t[theme.breakpoints.down('md')]: {\n\t\t\tpaddingLeft: 30,\n\t\t\tpaddingRight: 30\n\t\t}\n\t},\n\ttitleContainer: {\n\t\tmarginBottom: 20,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center'\n\t},\n\tbuttonContainer: {\n\t\tposition: 'absolute',\n\t\tmarginLeft: 'auto',\n\t\tdisplay: 'flex',\n\t\tright: 60,\n\t\t[theme.breakpoints.down('md')]: {\n\t\t\tright: 30\n\t\t}\n\t},\n\tnavButton: {\n\t\tbackground: '#3F3F3F',\n\t\twidth: 32,\n\t\theight: 32,\n\t\tmargin: 2,\n\t\tborder: 0,\n\t\tcolor: 'white',\n\t\tborderRadius: 4,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: 'pointer'\n\t},\n\ttitle: {\n\t\tfontSize: 16,\n\t\tfontWeight: 500,\n\t\tlineHeight: '22px',\n\t\tcolor: grey[900]\n\t},\n\tcontactContainer: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\twidth: '100%'\n\t},\n\tslider: {\n\t\tposition: 'relative',\n\t\twidth: '100%',\n\t\theight: '100%'\n\t}\n}));\n","import { Splide, SplideSlide, SplideTrack } from '@splidejs/react-splide';\nimport '@splidejs/react-splide/dist/css/splide.min.css';\nimport omit from 'lodash/omit';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useGetShowroomPrContactsQuery } from 'generated/graphql';\n\nimport { useGetCurrentShowroomId, useIsShowroomMobileVersion } from 'lib/showroom';\n\nimport { Typography } from '@material-ui/core';\nimport ArrowBack from '@material-ui/icons/ArrowBackIosRounded';\nimport ArrowForward from '@material-ui/icons/ArrowForwardIosRounded';\n\nimport { refCaller } from 'components/utils';\n\nimport ShowroomPRContact from './ShowroomContact/ShowroomPRContact';\nimport { useStyles } from './styles';\n\nconst ShowroomPRContacts = () => {\n\tconst { t } = useTranslation();\n\tconst classes = useStyles();\n\tconst showroomId = useGetCurrentShowroomId();\n\n\tconst isMobile = useIsShowroomMobileVersion();\n\n\tconst [screenWidth, setScreenWidth] = React.useState(window.innerWidth);\n\n\tReact.useEffect(() => {\n\t\tconst resize = () => setScreenWidth(window.innerWidth);\n\t\twindow.addEventListener('resize', resize);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', resize);\n\t\t};\n\t}, []);\n\n\tconst {\n\t\tdata: {\n\t\t\tgetShowroom: { prContacts }\n\t\t}\n\t} = useGetShowroomPrContactsQuery({ variables: { showroomId }, fetchPolicy: 'cache-only' });\n\n\tconst cleanPrContacts = React.useMemo(\n\t\t() => prContacts.filter(prContact => !Object.values(omit(prContact, 'id', '__typename')).every(value => !value)),\n\t\t[prContacts]\n\t);\n\n\tconst slideRef = React.useRef(null);\n\n\tconst handlePrev = React.useCallback(() => {\n\t\tconst ref = refCaller(slideRef);\n\t\tref.splide.go('<');\n\t}, []);\n\n\tconst handleNext = React.useCallback(() => {\n\t\tconst ref = refCaller(slideRef);\n\t\tref.splide.go('>');\n\t}, []);\n\n\tconst showButtons = React.useMemo(() => {\n\t\tif (cleanPrContacts.length === 1) return false;\n\t\tconst ref = refCaller(slideRef);\n\t\tif (!ref) return false;\n\t\treturn ref.splideRef.current.getElementsByTagName('ul')[0].scrollWidth + 80 > screenWidth;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [cleanPrContacts, screenWidth, isMobile, slideRef.current]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{t('showroom.contact.title')}\n\t\t\t\t\n\t\t\t\t{showButtons && (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{cleanPrContacts.map(prContact => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomPRContacts);\n","import { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tcontainer: {\n\t\t\tmaxWidth: 1440,\n\t\t\twidth: '100%',\n\t\t\tpadding: '40px 30px',\n\t\t\t[theme.breakpoints.down('md')]: {\n\t\t\t\tpadding: '20px 30px'\n\t\t\t}\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport Container, { ContainerProps } from '@material-ui/core/Container';\n\nimport { useStyles } from './styles';\n\ntype ContainerClasses = ContainerProps['classes'];\n\nexport type ComponentProps = {\n\tchildren: React.ReactNode;\n\tcontainerClasses?: ContainerClasses;\n};\n\nconst ShowroomContainerLayout = (props: ComponentProps) => {\n\tconst { children, containerClasses } = props;\n\tconst classes = useStyles();\n\n\tconst computedClasses: ContainerClasses = React.useMemo(\n\t\t() => ({\n\t\t\t...containerClasses,\n\t\t\troot: clsx(classes.container, containerClasses?.root)\n\t\t}),\n\t\t[containerClasses, classes]\n\t);\n\n\treturn {children};\n};\n\nexport default React.memo(ShowroomContainerLayout);\n","import grey from '@material-ui/core/colors/grey';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\nexport type UserContentStylesProps = {\n\tspacing: number;\n\tzoomLayer: boolean;\n};\n\nexport const MOBILE_HEADER_BREAKPOINT = '812px';\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tshowroomFooter: {\n\t\t\tcolor: 'white',\n\t\t\tbackgroundColor: 'black',\n\t\t\tminHeight: 100,\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tpaddingBottom: 50\n\t\t},\n\t\tshowroomFooterContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexWrap: 'wrap'\n\t\t},\n\t\tshowroomFooterGridContainer: {\n\t\t\t[theme.breakpoints.up('sm')]: {\n\t\t\t\twidth: 'calc(100% + 10px)',\n\t\t\t\tmarginLeft: -5,\n\t\t\t\tmarginRight: -5\n\t\t\t}\n\t\t},\n\t\tshowroomFooterSectionTitle: {\n\t\t\tfontSize: 14,\n\t\t\ttextTransform: 'uppercase',\n\t\t\tcolor: grey[500],\n\t\t\tmarginBottom: 5\n\t\t},\n\t\tshowroomFooterColumn: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\tpadding: '0 10px',\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tmarginBottom: 25,\n\t\t\t\tpadding: 0,\n\t\t\t\t'&:last-child': {\n\t\t\t\t\tmarginBottom: 0\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tshowroomFooterPrContactName: {\n\t\t\tfontSize: 17,\n\t\t\tlineHeight: '24px'\n\t\t},\n\t\tshowroomFooterLink: {\n\t\t\tdisplay: 'inline-block',\n\t\t\talignSelf: 'flex-start',\n\t\t\ttextDecoration: 'none',\n\t\t\tcolor: 'white',\n\t\t\tfontSize: 14,\n\t\t\tlineHeight: '24px',\n\t\t\tmaxWidth: '100%',\n\n\t\t\t'&:hover': {\n\t\t\t\ttextDecoration: 'underline'\n\t\t\t}\n\t\t},\n\t\tshowroomFooterPdf: {\n\t\t\tdisplay: 'inline-flex',\n\t\t\talignItems: 'center'\n\t\t},\n\t\tshowroomFooterPdfIcon: {\n\t\t\tfontSize: 18,\n\t\t\tmarginRight: 10\n\t\t},\n\t\tshowroomFooterPdfLabel: {\n\t\t\tfontSize: 14\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport chunk from 'lodash/chunk';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useGetCurrentShowroomData } from 'lib/showroom';\n\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined';\n\nimport ShowroomContainerLayout from 'components/Showroom/ShowroomContainerLayout';\n\nimport { useStyles } from './styles';\n\nconst ShowroomFooter = () => {\n\tconst showroom = useGetCurrentShowroomData();\n\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst pdfColumn = React.useMemo(() => {\n\t\tconst { pdfs, downloadPdfEnabled } = showroom;\n\t\tif (!downloadPdfEnabled || isEmpty(pdfs)) return null;\n\t\tconst columns = chunk(pdfs, 9);\n\t\treturn (\n\t\t\t\n\t\t\t\t{t('showroom.footer.pdfs')}\n\t\t\t\t\n\t\t\t\t\t{columns.map((pdfColumn, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{pdfColumn.map(pdf => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{pdf.originalFilename}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [showroom, t]);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{pdfColumn}\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomFooter);\n","import StateManager from \"Apollo/StateManager\";\n\nconst stateManager = new StateManager('showroom.userView.samples');\n\nexport const setIsRequestSamplesFormOpen = (isRequestSamplesFormOpen: boolean) => {\n\tstateManager.update({ isRequestSamplesFormOpen });\n};\n\nexport const setIsRequestSamplesValid = (isRequestSamplesFormValid: boolean) => {\n\tstateManager.update({ isRequestSamplesFormValid });\n};\n","import grey from '@material-ui/core/colors/grey';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\twrapper: {\n\t\t\tposition: 'relative',\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tpointerEvents: 'all'\n\t\t},\n\t\tmediaActionsWrapper: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tzIndex: 10,\n\t\t\tpadding: 30,\n\t\t\tcursor: 'pointer',\n\t\t\tpointerEvents: 'none',\n\t\t\tWebkitTapHighlightColor: 'transparent'\n\t\t},\n\t\tmediaActionsWrapperMobile: {\n\t\t\tpadding: '10px 5px'\n\t\t},\n\t\tmediaActionsInnerWrapper: {\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tposition: 'relative',\n\t\t\toverflow: 'hidden'\n\t\t},\n\t\tmediaActionsContainer: {\n\t\t\tposition: 'absolute',\n\t\t\tright: -40,\n\t\t\theight: '100%',\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'flex-start',\n\t\t\ttransition: 'all 0.2s',\n\t\t\tpointerEvents: 'all'\n\t\t},\n\t\tactionButton: {\n\t\t\tpadding: 0,\n\n\t\t\t'&:hover': {\n\t\t\t\tbackground: 'none'\n\t\t\t}\n\t\t},\n\t\tactionButtonIcon: {\n\t\t\tcolor: grey[500]\n\t\t},\n\t\tactionButtonDownloadIcon: {\n\t\t\t'&:hover': {\n\t\t\t\tcolor: theme.palette.primary.main\n\t\t\t}\n\t\t},\n\t\tactionButtonDownloadIconActive: {\n\t\t\tcolor: theme.palette.primary.main\n\t\t},\n\t\tmediaActionsContainerVisible: {\n\t\t\tright: 0\n\t\t},\n\t\tactionsMenuDesktop: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\tpadding: '15px 5px',\n\t\t\twidth: 30,\n\t\t\talignItems: 'center',\n\t\t\tborderRadius: 100,\n\t\t\tbackground: 'white'\n\t\t},\n\t\tactionsMenuDivider: {\n\t\t\tmarginTop: 15,\n\t\t\tmarginBottom: 15,\n\t\t\twidth: 18\n\t\t},\n\t\tactionsMobileButton: {\n\t\t\tpointerEvents: 'all',\n\t\t\tpadding: 6\n\t\t},\n\t\tactionsMobileIcon: {\n\t\t\tcolor: 'white',\n\t\t\tfontSize: 23\n\t\t},\n\t\tzoomButtonContainer: {\n\t\t\tposition: 'absolute',\n\t\t\tbottom: -50,\n\t\t\twidth: '100%',\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\tpointerEvents: 'none',\n\t\t\ttransition: 'all 0.2s'\n\t\t},\n\t\tzoomButton: {\n\t\t\tpointerEvents: 'all',\n\t\t\tbackground: 'black !important'\n\t\t},\n\t\tzoomButtonLabel: {\n\t\t\tcolor: 'white',\n\t\t\tfontSize: 24\n\t\t},\n\t\tsingleDownloadMenuPaper: {\n\t\t\tborderRadius: 4\n\t\t},\n\t\tsingleDownloadMenuList: {\n\t\t\tminWidth: 220\n\t\t},\n\t\tsingleDownloadMenuItem: {\n\t\t\tfontSize: 14,\n\t\t\tpadding: '15px 30px'\n\t\t},\n\t\tsingleDownloadMenuDivider: {\n\t\t\tmarginLeft: 30,\n\t\t\tmarginRight: 30\n\t\t},\n\t\ttooltip: {\n\t\t\tbackgroundColor: grey[700],\n\t\t\tcolor: 'white',\n\t\t\tpadding: 10,\n\t\t\tfontSize: 12,\n\t\t\tzIndex: 2000,\n\t\t\tborderRadius: 3,\n\n\t\t\t'&[x-placement*=\"right\"]': {\n\t\t\t\tleft: '15px !important'\n\t\t\t},\n\t\t\t'&[x-placement*=\"left\"]': {\n\t\t\t\tleft: '-15px !important'\n\t\t\t}\n\t\t},\n\t\tloader: {\n\t\t\tcolor: grey[500]\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { useTimeout } from 'lib/Hooks';\nimport { useIsShowroomMobileVersion } from 'lib/showroom';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport MoreVertIcon from '@material-ui/icons/MoreVertOutlined';\n\nimport ShowroomMobileActionsMenuLayout from 'components/Showroom/MobileActionsMenuLayout';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tid: string;\n\tactions: React.ReactNode;\n\tmobileActions: React.ReactNode;\n\tdisplayed: boolean;\n\tmobileMenuOpen: boolean;\n\tchildren?: React.ReactNode;\n\tonDisplay(): void;\n\tonHide(): void;\n\tonOpenMobileMenu(): void;\n\tonCloseMobileMenu(): void;\n};\n\nconst ShowroomMediaActionsLayout = (props: ComponentProps) => {\n\tconst { id, actions, mobileActions, displayed, children, mobileMenuOpen } = props;\n\tconst { onDisplay, onHide, onOpenMobileMenu, onCloseMobileMenu } = props;\n\n\tconst { run: runTimeout, clear: clearTimeout } = useTimeout();\n\n\tconst onMouseEnterHandler = React.useCallback(() => onDisplay(), [onDisplay]);\n\tconst onMouseLeaveHandler = React.useCallback(() => onHide(), [onHide]);\n\tconst onTouchStartHandler = React.useCallback(() => runTimeout(() => onOpenMobileMenu(), 500), [onOpenMobileMenu, runTimeout]);\n\tconst onTouchEndHandler = React.useCallback(() => clearTimeout(), [clearTimeout]);\n\n\tconst classes = useStyles();\n\tconst mobileVersion = useIsShowroomMobileVersion();\n\n\treturn (\n\t\t ev.preventDefault()}\n\t\t\tonTouchStart={onTouchStartHandler}\n\t\t\tonTouchEnd={onTouchEndHandler}\n\t\t>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{mobileVersion ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t onOpenMobileMenu()}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t onCloseMobileMenu()}>\n\t\t\t\t\t\t\t\t\t{mobileActions}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t
{actions}
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomMediaActionsLayout);\n","import { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n\tbasketItem: {\n\t\tposition: 'relative',\n\t\tbackgroundSize: 'cover',\n\t\tbackgroundPosition: 'center'\n\t},\n\tbasketItemLandscape: {\n\t\tpaddingBottom: '92.5%'\n\t},\n\tbasketItemPortrait: {\n\t\tpaddingBottom: '140%'\n\t},\n\tactionsMobileButton: {\n\t\tpointerEvents: 'all',\n\t\tpadding: 6\n\t},\n\tactionsMobileIcon: {\n\t\tcolor: 'white',\n\t\tfontSize: 23\n\t}\n}));","import clsx from 'clsx';\nimport React from 'react';\n\nimport { closeCurrentMediaMobileMenu, openMediaMobileMenu } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport { MediaInfoFragment, MediaType, Image, useGetMobileMenuOpenedQuery, ShowroomMobileMenuType } from 'generated/graphql';\n\nimport { getImageUrl, getVideoPreviewUrl } from 'lib/cloudinary';\n\nimport Grid from '@material-ui/core/Grid';\n\nimport ShowroomMediaActionsLayout from 'components/Showroom/MediaActionsLayout';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tid: string;\n\tmedia: MediaInfoFragment;\n\tmenuType: ShowroomMobileMenuType;\n\tgetDesktopActions(media: MediaInfoFragment): React.ReactNode;\n\tgetMobileActions(media: MediaInfoFragment, closeMobileMenu: () => void): React.ReactNode;\n};\n\nconst ShowroomBasketItem = (props: ComponentProps) => {\n\tconst { id, media, menuType } = props;\n\tconst { getDesktopActions, getMobileActions } = props;\n\n\tconst classes = useStyles();\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: { activeMediaMobileMenu }\n\t\t\t}\n\t\t}\n\t} = useGetMobileMenuOpenedQuery();\n\n\tconst isLandscape = React.useMemo(() => media.mediaType === MediaType.Video || (media as Image).width > (media as Image).height, [media]);\n\tconst url = React.useMemo(() => {\n\t\tif (media.mediaType === MediaType.Video) return getVideoPreviewUrl(media.cloudinaryId, { version: media.cloudinaryVersion + '' });\n\t\telse return getImageUrl(media.cloudinaryId, { version: media.cloudinaryVersion + '' });\n\t}, [media]);\n\n\tconst desktopActions = React.useMemo(() => getDesktopActions(media), [getDesktopActions, media]);\n\tconst mobileActions = React.useMemo(() => getMobileActions(media, closeCurrentMediaMobileMenu), [getMobileActions, media]);\n\n\tconst [actionsDisplayed, setActionsDisplayed] = React.useState(false);\n\n\treturn (\n\t\t\n\t\t\t setActionsDisplayed(true)}\n\t\t\t\tonHide={() => setActionsDisplayed(false)}\n\t\t\t\tonOpenMobileMenu={() => openMediaMobileMenu(media.id, menuType)}\n\t\t\t\tonCloseMobileMenu={() => closeCurrentMediaMobileMenu()}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomBasketItem);\n","import grey from '@material-ui/core/colors/grey';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { launchmetricsGrey } from 'Styles/theme';\n\nexport const useStyles = makeStyles(() => ({\n\tlayoutRoot: {\n\t\tpaddingTop: 50,\n\t\tpaddingLeft: 50,\n\t\tpaddingRight: 55\n\t},\n\tlayoutRootMobile: {\n\t\tpaddingTop: 30,\n\t\tpaddingLeft: 20,\n\t\tpaddingRight: 20\n\t},\n\theaderContainer: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'flex-start'\n\t},\n\theaderContainerMobile: {\n\t\tflexWrap: 'wrap'\n\t},\n\ttitle: {\n\t\tfontSize: 38\n\t},\n\ttitleMobile: {\n\t\tfontSize: 22,\n\t\tfontWeight: 'normal',\n\t\torder: 2\n\t},\n\tactionsContainer: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'flex-end'\n\t},\n\tactionsContainerMobile: {\n\t\torder: 1,\n\t\tflexBasis: '100%'\n\t},\n\tactionBtnLabel: {\n\t\tfontSize: 14,\n\t\tcolor: 'white'\n\t},\n\tactionDivider: {\n\t\tbackgroundColor: launchmetricsGrey,\n\t\tmargin: '0 20px',\n\t\theight: 10,\n\t\talignSelf: 'center'\n\t},\n\tcloseBasketBtn: {\n\t\tcolor: 'white',\n\t\tpadding: 0,\n\t\tbackgroundColor: grey[500] + ' !important'\n\t},\n\tcloseBasketIcon: {\n\t\tfontSize: 14\n\t},\n\tbasketContainer: {\n\t\tmarginTop: 40\n\t},\n\tbasketContainerMobile: {\n\t\tmarginTop: 30\n\t},\n\tbasketCounter: {\n\t\tfontSize: 14,\n\t\tmarginBottom: 25\n\t}\n}));\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { setShowroomSelectedTab } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport { MediaInfoFragment } from 'generated/graphql';\n\nimport { useIsShowroomMobileVersion } from 'lib/showroom';\n\nimport Button from '@material-ui/core/Button';\nimport Divider from '@material-ui/core/Divider';\nimport Grid from '@material-ui/core/Grid';\nimport IconButton from '@material-ui/core/IconButton';\nimport Typography from '@material-ui/core/Typography';\nimport ClearTwoToneIcon from '@material-ui/icons/ClearTwoTone';\n\nimport ShowroomBasketItem from './Item';\nimport { ComponentProps as BasketItemProps } from './Item/ShowroomBasketItem';\nimport { useStyles } from './styles';\n\nexport type BasketActionButton = {\n\tid: string;\n\tlabel: string;\n\ticon: React.ReactNode;\n\tonClick(): void;\n};\n\nexport type ComponentProps = {\n\tid: string;\n\ttitle: string;\n\tmedias: MediaInfoFragment[];\n\tactions: BasketActionButton[];\n\telementName: string;\n\tmenuType: BasketItemProps['menuType'];\n\temptyBasketComponent: React.ReactNode;\n\tgetItemDesktopActions: BasketItemProps['getDesktopActions'];\n\tgetItemMobileActions: BasketItemProps['getMobileActions'];\n};\n\nconst ShowroomBasketLayout = (props: ComponentProps) => {\n\tconst { id, title, medias, actions, elementName, menuType, emptyBasketComponent } = props;\n\tconst { getItemDesktopActions, getItemMobileActions } = props;\n\n\tconst classes = useStyles();\n\tconst mobileVersion = useIsShowroomMobileVersion();\n\n\tconst basketHeader = React.useMemo(\n\t\t() => (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{title}\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{!mobileVersion\n\t\t\t\t\t\t? actions.map(action => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t ))\n\t\t\t\t\t\t: null}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetShowroomSelectedTab(null);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[actions, id, title, mobileVersion]\n\t);\n\n\treturn (\n\t\t
\n\t\t\t{basketHeader}\n\t\t\t
\n\t\t\t\t{medias.length === 0 ? (\n\t\t\t\t\temptyBasketComponent\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{medias.length} {elementName}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{medias.map(media => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomBasketLayout);\n","import StateManager from \"Apollo/StateManager\";\nimport { ShowroomUserViewSamplesFormUi } from \"generated/graphql\";\nimport initialState from \"./state\";\n\nconst stateManager = new StateManager('showroom.userView.samples.form');\n\nexport const updateRequestSamplesForm = (params: Partial) => {\n\tstateManager.update({ ...params });\n};\n\nexport const clearRequestSamplesForm = () => stateManager.update(initialState);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {},\n\n /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n horizontal: {\n paddingLeft: 8,\n paddingRight: 8\n },\n\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {},\n\n /* Styles applied to the root element if `alternativeLabel={true}`. */\n alternativeLabel: {\n flex: 1,\n position: 'relative'\n },\n\n /* Pseudo-class applied to the root element if `completed={true}`. */\n completed: {}\n};\nvar Step = /*#__PURE__*/React.forwardRef(function Step(props, ref) {\n var _props$active = props.active,\n active = _props$active === void 0 ? false : _props$active,\n alternativeLabel = props.alternativeLabel,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$completed = props.completed,\n completed = _props$completed === void 0 ? false : _props$completed,\n connectorProp = props.connector,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$expanded = props.expanded,\n expanded = _props$expanded === void 0 ? false : _props$expanded,\n index = props.index,\n last = props.last,\n orientation = props.orientation,\n other = _objectWithoutProperties(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"connector\", \"disabled\", \"expanded\", \"index\", \"last\", \"orientation\"]);\n\n var connector = connectorProp ? /*#__PURE__*/React.cloneElement(connectorProp, {\n orientation: orientation,\n alternativeLabel: alternativeLabel,\n index: index,\n active: active,\n completed: completed,\n disabled: disabled\n }) : null;\n var newChildren = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, classes[orientation], className, alternativeLabel && classes.alternativeLabel, completed && classes.completed),\n ref: ref\n }, other), connector && alternativeLabel && index !== 0 ? connector : null, React.Children.map(children, function (child) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Step component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n return /*#__PURE__*/React.cloneElement(child, _extends({\n active: active,\n alternativeLabel: alternativeLabel,\n completed: completed,\n disabled: disabled,\n expanded: expanded,\n last: last,\n icon: index + 1,\n orientation: orientation\n }, child.props));\n }));\n\n if (connector && !alternativeLabel && index !== 0) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, connector, newChildren);\n }\n\n return newChildren;\n});\nprocess.env.NODE_ENV !== \"production\" ? Step.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Sets the step as active. Is passed to child components.\n */\n active: PropTypes.bool,\n\n /**\n * Should be `Step` sub-components such as `StepLabel`, `StepContent`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Mark the step as completed. Is passed to child components.\n */\n completed: PropTypes.bool,\n\n /**\n * Mark the step as disabled, will also disable the button if\n * `StepButton` is a child of `Step`. Is passed to child components.\n */\n disabled: PropTypes.bool,\n\n /**\n * Expand the step.\n */\n expanded: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiStep'\n})(Step);","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z\"\n}), 'CheckCircle');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport CheckCircle from '../internal/svg-icons/CheckCircle';\nimport Warning from '../internal/svg-icons/Warning';\nimport withStyles from '../styles/withStyles';\nimport SvgIcon from '../SvgIcon';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'block',\n color: theme.palette.text.disabled,\n '&$completed': {\n color: theme.palette.primary.main\n },\n '&$active': {\n color: theme.palette.primary.main\n },\n '&$error': {\n color: theme.palette.error.main\n }\n },\n\n /* Styles applied to the SVG text element. */\n text: {\n fill: theme.palette.primary.contrastText,\n fontSize: theme.typography.caption.fontSize,\n fontFamily: theme.typography.fontFamily\n },\n\n /* Pseudo-class applied to the root element if `active={true}`. */\n active: {},\n\n /* Pseudo-class applied to the root element if `completed={true}`. */\n completed: {},\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {}\n };\n};\n\nvar _ref = /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"12\"\n});\n\nvar StepIcon = /*#__PURE__*/React.forwardRef(function StepIcon(props, ref) {\n var _props$completed = props.completed,\n completed = _props$completed === void 0 ? false : _props$completed,\n icon = props.icon,\n _props$active = props.active,\n active = _props$active === void 0 ? false : _props$active,\n _props$error = props.error,\n error = _props$error === void 0 ? false : _props$error,\n classes = props.classes;\n\n if (typeof icon === 'number' || typeof icon === 'string') {\n var className = clsx(classes.root, active && classes.active, error && classes.error, completed && classes.completed);\n\n if (error) {\n return /*#__PURE__*/React.createElement(Warning, {\n className: className,\n ref: ref\n });\n }\n\n if (completed) {\n return /*#__PURE__*/React.createElement(CheckCircle, {\n className: className,\n ref: ref\n });\n }\n\n return /*#__PURE__*/React.createElement(SvgIcon, {\n className: className,\n ref: ref\n }, _ref, /*#__PURE__*/React.createElement(\"text\", {\n className: classes.text,\n x: \"12\",\n y: \"16\",\n textAnchor: \"middle\"\n }, icon));\n }\n\n return icon;\n});\nprocess.env.NODE_ENV !== \"production\" ? StepIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Whether this step is active.\n */\n active: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * Mark the step as completed. Is passed to child components.\n */\n completed: PropTypes.bool,\n\n /**\n * Mark the step as failed.\n */\n error: PropTypes.bool,\n\n /**\n * The label displayed in the step icon.\n */\n icon: PropTypes.node\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiStepIcon'\n})(StepIcon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Typography from '../Typography';\nimport StepIcon from '../StepIcon';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n alignItems: 'center',\n '&$alternativeLabel': {\n flexDirection: 'column'\n },\n '&$disabled': {\n cursor: 'default'\n }\n },\n\n /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n horizontal: {},\n\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {},\n\n /* Styles applied to the `Typography` component which wraps `children`. */\n label: {\n color: theme.palette.text.secondary,\n '&$active': {\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n '&$completed': {\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n '&$alternativeLabel': {\n textAlign: 'center',\n marginTop: 16\n },\n '&$error': {\n color: theme.palette.error.main\n }\n },\n\n /* Pseudo-class applied to the `Typography` component if `active={true}`. */\n active: {},\n\n /* Pseudo-class applied to the `Typography` component if `completed={true}`. */\n completed: {},\n\n /* Pseudo-class applied to the root element and `Typography` component if `error={true}`. */\n error: {},\n\n /* Pseudo-class applied to the root element and `Typography` component if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the `icon` container element. */\n iconContainer: {\n flexShrink: 0,\n // Fix IE 11 issue\n display: 'flex',\n paddingRight: 8,\n '&$alternativeLabel': {\n paddingRight: 0\n }\n },\n\n /* Pseudo-class applied to the root and icon container and `Typography` if `alternativeLabel={true}`. */\n alternativeLabel: {},\n\n /* Styles applied to the container element which wraps `Typography` and `optional`. */\n labelContainer: {\n width: '100%'\n }\n };\n};\nvar StepLabel = /*#__PURE__*/React.forwardRef(function StepLabel(props, ref) {\n var _props$active = props.active,\n active = _props$active === void 0 ? false : _props$active,\n _props$alternativeLab = props.alternativeLabel,\n alternativeLabel = _props$alternativeLab === void 0 ? false : _props$alternativeLab,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$completed = props.completed,\n completed = _props$completed === void 0 ? false : _props$completed,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$error = props.error,\n error = _props$error === void 0 ? false : _props$error,\n expanded = props.expanded,\n icon = props.icon,\n last = props.last,\n optional = props.optional,\n _props$orientation = props.orientation,\n orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n StepIconComponentProp = props.StepIconComponent,\n StepIconProps = props.StepIconProps,\n other = _objectWithoutProperties(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"disabled\", \"error\", \"expanded\", \"icon\", \"last\", \"optional\", \"orientation\", \"StepIconComponent\", \"StepIconProps\"]);\n\n var StepIconComponent = StepIconComponentProp;\n\n if (icon && !StepIconComponent) {\n StepIconComponent = StepIcon;\n }\n\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: clsx(classes.root, classes[orientation], className, disabled && classes.disabled, alternativeLabel && classes.alternativeLabel, error && classes.error),\n ref: ref\n }, other), icon || StepIconComponent ? /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(classes.iconContainer, alternativeLabel && classes.alternativeLabel)\n }, /*#__PURE__*/React.createElement(StepIconComponent, _extends({\n completed: completed,\n active: active,\n error: error,\n icon: icon\n }, StepIconProps))) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: classes.labelContainer\n }, children ? /*#__PURE__*/React.createElement(Typography, {\n variant: \"body2\",\n component: \"span\",\n display: \"block\",\n className: clsx(classes.label, alternativeLabel && classes.alternativeLabel, completed && classes.completed, active && classes.active, error && classes.error)\n }, children) : null, optional));\n});\nprocess.env.NODE_ENV !== \"production\" ? StepLabel.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * In most cases will simply be a string containing a title for the label.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Mark the step as disabled, will also disable the button if\n * `StepLabelButton` is a child of `StepLabel`. Is passed to child components.\n */\n disabled: PropTypes.bool,\n\n /**\n * Mark the step as failed.\n */\n error: PropTypes.bool,\n\n /**\n * Override the default label of the step icon.\n */\n icon: PropTypes.node,\n\n /**\n * The optional node to display.\n */\n optional: PropTypes.node,\n\n /**\n * The component to render in place of the [`StepIcon`](/api/step-icon/).\n */\n StepIconComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`StepIcon`](/api/step-icon/) element.\n */\n StepIconProps: PropTypes.object\n} : void 0;\nStepLabel.muiName = 'StepLabel';\nexport default withStyles(styles, {\n name: 'MuiStepLabel'\n})(StepLabel);","var _circle, _path, _path2, _path3, _g, _path4, _path5, _g2, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSampleRequestSuccess(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 57,\n viewBox: \"0 0 90 57\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50.0896,\n cy: 28.0896,\n r: 28.0896,\n fill: \"black\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M70.1135 38.6685L80.9144 28.7083L69.687 19.2314L69.8337 25.9185L73.3343 28.8732L69.9667 31.9787L70.1135 38.6685Z\",\n fill: \"#9568EE\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M55.3742 41.6596L69.4358 28.6925L54.819 16.3547L55.01 25.0628L59.5658 28.9082L55.1831 32.9498L55.3742 41.6596Z\",\n fill: \"#9568EE\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M82.111 35.7547L89.9636 28.5133L81.8009 21.6233L81.9076 26.4857L84.4531 28.6342L82.0043 30.8924L82.111 35.7547Z\",\n fill: \"#9568EE\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.1211 17.3877C31.1211 16.2831 32.0165 15.3877 33.1211 15.3877H68.2556C69.3601 15.3877 70.2556 16.2831 70.2556 17.3877V39.414C70.2556 40.5186 69.3601 41.414 68.2556 41.414H33.1211C32.0165 41.414 31.1211 40.5186 31.1211 39.414V17.3877Z\",\n fill: \"white\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.5296 41.414H67.0043C67.9892 41.414 68.381 40.1404 67.5663 39.5869L51.7886 28.8671C51.4573 28.6419 51.0235 28.6363 50.6864 28.8527L33.9894 39.5725C33.1493 40.1119 33.5313 41.414 34.5296 41.414Z\",\n fill: \"url(#paint0_linear)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.4881 15.3877H67.0433C68.0246 15.3877 68.4188 16.654 67.6109 17.211L51.7941 28.1154C51.4602 28.3456 51.0204 28.3513 50.6806 28.13L33.9423 17.2256C33.1087 16.6825 33.4932 15.3877 34.4881 15.3877Z\",\n fill: \"url(#paint1_linear)\"\n })), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter1_f)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 38.3897,\n cy: 52.0596,\n rx: 28.6514,\n ry: 1.49811,\n fill: \"url(#paint2_linear)\",\n fillOpacity: 0.15\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d\",\n x: 21.1211,\n y: 5.3877,\n width: 59.1345,\n height: 46.0263,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 5\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter1_f\",\n x: 8.73828,\n y: 49.5615,\n width: 59.3029,\n height: 4.99623,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 0.5,\n result: \"effect1_foregroundBlur\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: 50.6883,\n y1: 28.4958,\n x2: 50.6883,\n y2: 41.414,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F2F2F2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#EEEEEE\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear\",\n x1: 50.6883,\n y1: 28.4958,\n x2: 50.6883,\n y2: 15.3877,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F5F5F5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#DDDDDD\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear\",\n x1: 67.1931,\n y1: 52.2134,\n x2: 3.91817,\n y2: 52.2134,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", null), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopOpacity: 0\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSampleRequestSuccess);\nexport default __webpack_public_path__ + \"static/media/sampleRequestSuccess.67f25424.svg\";\nexport { ForwardRef as ReactComponent };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n flex: '1 1 auto'\n },\n\n /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n horizontal: {},\n\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {\n marginLeft: 12,\n // half icon\n padding: '0 0 8px'\n },\n\n /* Styles applied to the root element if `alternativeLabel={true}`. */\n alternativeLabel: {\n position: 'absolute',\n top: 8 + 4,\n left: 'calc(-50% + 20px)',\n right: 'calc(50% + 20px)'\n },\n\n /* Pseudo-class applied to the root element if `active={true}`. */\n active: {},\n\n /* Pseudo-class applied to the root element if `completed={true}`. */\n completed: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the line element. */\n line: {\n display: 'block',\n borderColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n },\n\n /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n lineHorizontal: {\n borderTopStyle: 'solid',\n borderTopWidth: 1\n },\n\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n lineVertical: {\n borderLeftStyle: 'solid',\n borderLeftWidth: 1,\n minHeight: 24\n }\n };\n};\nvar StepConnector = /*#__PURE__*/React.forwardRef(function StepConnector(props, ref) {\n var active = props.active,\n _props$alternativeLab = props.alternativeLabel,\n alternativeLabel = _props$alternativeLab === void 0 ? false : _props$alternativeLab,\n classes = props.classes,\n className = props.className,\n completed = props.completed,\n disabled = props.disabled,\n index = props.index,\n _props$orientation = props.orientation,\n orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n other = _objectWithoutProperties(props, [\"active\", \"alternativeLabel\", \"classes\", \"className\", \"completed\", \"disabled\", \"index\", \"orientation\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, classes[orientation], className, alternativeLabel && classes.alternativeLabel, active && classes.active, completed && classes.completed, disabled && classes.disabled),\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(classes.line, {\n 'horizontal': classes.lineHorizontal,\n 'vertical': classes.lineVertical\n }[orientation])\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StepConnector.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiStepConnector'\n})(StepConnector);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Paper from '../Paper';\nimport StepConnector from '../StepConnector';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n padding: 24\n },\n\n /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n horizontal: {\n flexDirection: 'row',\n alignItems: 'center'\n },\n\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {\n flexDirection: 'column'\n },\n\n /* Styles applied to the root element if `alternativeLabel={true}`. */\n alternativeLabel: {\n alignItems: 'flex-start'\n }\n};\nvar defaultConnector = /*#__PURE__*/React.createElement(StepConnector, null);\nvar Stepper = /*#__PURE__*/React.forwardRef(function Stepper(props, ref) {\n var _props$activeStep = props.activeStep,\n activeStep = _props$activeStep === void 0 ? 0 : _props$activeStep,\n _props$alternativeLab = props.alternativeLabel,\n alternativeLabel = _props$alternativeLab === void 0 ? false : _props$alternativeLab,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$connector = props.connector,\n connectorProp = _props$connector === void 0 ? defaultConnector : _props$connector,\n _props$nonLinear = props.nonLinear,\n nonLinear = _props$nonLinear === void 0 ? false : _props$nonLinear,\n _props$orientation = props.orientation,\n orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n other = _objectWithoutProperties(props, [\"activeStep\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"connector\", \"nonLinear\", \"orientation\"]);\n\n var connector = /*#__PURE__*/React.isValidElement(connectorProp) ? /*#__PURE__*/React.cloneElement(connectorProp, {\n orientation: orientation\n }) : null;\n var childrenArray = React.Children.toArray(children);\n var steps = childrenArray.map(function (step, index) {\n var state = {\n index: index,\n active: false,\n completed: false,\n disabled: false\n };\n\n if (activeStep === index) {\n state.active = true;\n } else if (!nonLinear && activeStep > index) {\n state.completed = true;\n } else if (!nonLinear && activeStep < index) {\n state.disabled = true;\n }\n\n return /*#__PURE__*/React.cloneElement(step, _extends({\n alternativeLabel: alternativeLabel,\n connector: connector,\n last: index + 1 === childrenArray.length,\n orientation: orientation\n }, state, step.props));\n });\n return /*#__PURE__*/React.createElement(Paper, _extends({\n square: true,\n elevation: 0,\n className: clsx(classes.root, classes[orientation], className, alternativeLabel && classes.alternativeLabel),\n ref: ref\n }, other), steps);\n});\nprocess.env.NODE_ENV !== \"production\" ? Stepper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Set the active step (zero based index).\n * Set to -1 to disable all the steps.\n */\n activeStep: PropTypes.number,\n\n /**\n * If set to 'true' and orientation is horizontal,\n * then the step label will be positioned under the icon.\n */\n alternativeLabel: PropTypes.bool,\n\n /**\n * Two or more `` components.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * An element to be placed between each step.\n */\n connector: PropTypes.element,\n\n /**\n * If set the `Stepper` will not assist in controlling steps for linear flow.\n */\n nonLinear: PropTypes.bool,\n\n /**\n * The stepper orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiStepper'\n})(Stepper);","var _rect, _path, _path2, _path3, _line, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmptyBasketMediaActions(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 45,\n height: 128,\n viewBox: \"0 0 45 128\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 45,\n height: 128,\n rx: 22.5,\n fill: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31 30V33.3333C31 33.7754 30.8127 34.1993 30.4793 34.5118C30.1459 34.8244 29.6937 35 29.2222 35H16.7778C16.3063 35 15.8541 34.8244 15.5207 34.5118C15.1873 34.1993 15 33.7754 15 33.3333V30\",\n stroke: \"#939597\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.5547 26.2222L22.9991 30.6667L27.4436 26.2222\",\n stroke: \"#939597\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23 30V20\",\n stroke: \"#939597\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 50.5,\n x2: 32,\n y2: 50.5,\n stroke: \"#F5F5F5\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5895 66.7751H17.2811C16.9878 66.7751 16.75 67.0129 16.75 67.3063C16.75 67.5996 16.9878 67.8374 17.2811 67.8374H19.5895C19.8828 67.8374 20.1206 67.5996 20.1206 67.3063C20.1206 67.0129 19.8828 66.7751 19.5895 66.7751Z\",\n fill: \"#939597\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M25.5 64.8753H16.4235C15.2237 64.8767 14.2514 65.849 14.25 67.0489V76.0764C14.2514 77.2763 15.2237 78.2486 16.4235 78.25H28.1231C29.323 78.2486 30.2953 77.2763 30.2967 76.0764V69.5H29.2344V76.0764C29.234 76.69 28.7367 77.1873 28.1231 77.1877H16.4235C15.81 77.1873 15.3127 76.69 15.3123 76.0764V67.0488C15.3127 66.4353 15.81 65.938 16.4235 65.9376H25.5V64.8753Z\",\n fill: \"#939597\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M18.1152 72.1739C18.1143 69.8979 19.9584 68.052 22.2344 68.0507C24.5107 68.0516 26.3561 69.8959 26.3584 72.1722C26.3584 74.4482 24.5136 76.2933 22.2376 76.2938C19.9617 76.2942 18.1161 74.4498 18.1152 72.1739ZM19.1775 72.1706C19.1766 73.8599 20.5451 75.2302 22.2344 75.2315C23.9242 75.2311 25.2943 73.862 25.2961 72.1722C25.2961 70.4829 23.9269 69.1134 22.2376 69.1129C20.5483 69.1125 19.1784 70.4813 19.1775 72.1706Z\",\n fill: \"#939597\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M29.875 63H28.625V64.875H26.75V66.125H28.625V68H29.875V66.125H31.75V64.875H29.875V63Z\",\n fill: \"#939597\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.4327 109.25H16.5727C15.5459 109.25 14.6407 108.559 14.3471 107.549C14.0535 106.54 14.4412 105.452 15.3003 104.875L21.7664 100.527L23.4845 99.3116C24.28 98.7583 24.3974 98.2042 24.3974 97.9239C24.3974 97.2565 23.8831 96.6896 23.2736 96.6869H23.2674C22.6596 96.685 22.1599 97.1783 22.1383 97.8016C22.13 98.0136 22.0122 98.205 21.8291 98.3036C21.646 98.4023 21.4255 98.3932 21.2507 98.2799C21.0759 98.1665 20.9733 97.9661 20.9816 97.7541C21.0257 96.4932 22.0369 95.4958 23.2665 95.5H23.279C24.5327 95.5064 25.5533 96.5956 25.5533 97.9239C25.5533 98.4388 25.37 99.433 24.1367 100.291L22.4177 101.508L22.4061 101.515L15.9347 105.872C15.5074 106.163 15.3156 106.706 15.4623 107.21C15.6091 107.714 16.0599 108.061 16.5727 108.063H29.4327C29.9456 108.061 30.3968 107.715 30.5438 107.211C30.6909 106.706 30.4991 106.163 30.0716 105.872L24.2604 101.964C23.9955 101.783 23.9225 101.417 24.0969 101.144C24.2714 100.871 24.6278 100.794 24.8948 100.971L30.7051 104.879C31.5608 105.457 31.9459 106.542 31.6527 107.55C31.3595 108.557 30.4573 109.248 29.4327 109.25Z\",\n fill: \"#939597\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M30.5 94.25H29.25V96.125H27.375V97.375H29.25V99.25H30.5V97.375H32.375V96.125H30.5V94.25Z\",\n fill: \"#939597\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.8657 123.004C24.5657 122.604 24.2657 121.904 23.6657 121.004C23.3657 120.504 22.4657 119.504 22.1657 119.104C21.9657 118.704 21.9657 118.504 22.0657 118.104C22.1657 117.504 22.7657 117.004 23.4657 117.004C23.9657 117.004 24.4657 117.404 24.8657 117.704C25.0657 117.904 25.3657 118.304 25.5657 118.504C25.7657 118.704 25.7657 118.804 25.9657 119.004C26.1657 119.304 26.2657 119.504 26.1657 119.104C26.0657 118.604 25.9657 117.804 25.7657 117.004C25.6657 116.404 25.5657 116.304 25.4657 115.904C25.3657 115.404 25.2657 115.104 25.1657 114.604C25.0657 114.304 24.9657 113.504 24.8657 113.104C24.7657 112.604 24.7657 111.704 25.1657 111.304C25.4657 111.004 26.0657 110.904 26.4657 111.104C26.9657 111.404 27.2657 112.104 27.3657 112.404C27.5657 112.904 27.7657 113.604 27.8657 114.404C28.0657 115.404 28.3657 116.904 28.3657 117.204C28.3657 116.804 28.2657 116.104 28.3657 115.704C28.4657 115.404 28.6657 115.004 29.0657 114.904C29.3657 114.804 29.6657 114.804 29.9657 114.804C30.2657 114.904 30.5657 115.104 30.7657 115.304C31.1657 115.904 31.1657 117.204 31.1657 117.104C31.2657 116.704 31.2657 115.904 31.4657 115.504C31.5657 115.304 31.9657 115.104 32.1657 115.004C32.4657 114.904 32.8657 114.904 33.1657 115.004C33.3657 115.004 33.7657 115.304 33.8657 115.504C34.0657 115.804 34.1657 116.804 34.2657 117.204C34.2657 117.304 34.3657 116.804 34.5657 116.504C34.9657 115.904 36.3657 115.704 36.4657 117.104C36.4657 117.804 36.4657 117.704 36.4657 118.204C36.4657 118.704 36.4657 119.004 36.4657 119.404C36.4657 119.804 36.3657 120.704 36.2657 121.104C36.1657 121.404 35.8657 122.104 35.5657 122.504C35.5657 122.504 34.4657 123.704 34.3657 124.304C34.2657 124.904 34.2657 124.904 34.2657 125.304C34.2657 125.704 34.3657 126.204 34.3657 126.204C34.3657 126.204 33.5657 126.304 33.1657 126.204C32.7657 126.104 32.2657 125.404 32.1657 125.104C31.9657 124.804 31.6657 124.804 31.4657 125.104C31.2657 125.504 30.7657 126.204 30.3657 126.204C29.6657 126.304 28.2657 126.204 27.2657 126.204C27.2657 126.204 27.4657 125.204 27.0657 124.804C26.7657 124.504 26.2657 124.004 25.9657 123.704L24.8657 123.004Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.8657 123.004C24.5657 122.604 24.2657 121.904 23.6657 121.004C23.3657 120.504 22.4657 119.504 22.1657 119.104C21.9657 118.704 21.9657 118.504 22.0657 118.104C22.1657 117.504 22.7657 117.004 23.4657 117.004C23.9657 117.004 24.4657 117.404 24.8657 117.704C25.0657 117.904 25.3657 118.304 25.5657 118.504C25.7657 118.704 25.7657 118.804 25.9657 119.004C26.1657 119.304 26.2657 119.504 26.1657 119.104C26.0657 118.604 25.9657 117.804 25.7657 117.004C25.6657 116.404 25.5657 116.304 25.4657 115.904C25.3657 115.404 25.2657 115.104 25.1657 114.604C25.0657 114.304 24.9657 113.504 24.8657 113.104C24.7657 112.604 24.7657 111.704 25.1657 111.304C25.4657 111.004 26.0657 110.904 26.4657 111.104C26.9657 111.404 27.2657 112.104 27.3657 112.404C27.5657 112.904 27.7657 113.604 27.8657 114.404C28.0657 115.404 28.3657 116.904 28.3657 117.204C28.3657 116.804 28.2657 116.104 28.3657 115.704C28.4657 115.404 28.6657 115.004 29.0657 114.904C29.3657 114.804 29.6657 114.804 29.9657 114.804C30.2657 114.904 30.5657 115.104 30.7657 115.304C31.1657 115.904 31.1657 117.204 31.1657 117.104C31.2657 116.704 31.2657 115.904 31.4657 115.504C31.5657 115.304 31.9657 115.104 32.1657 115.004C32.4657 114.904 32.8657 114.904 33.1657 115.004C33.3657 115.004 33.7657 115.304 33.8657 115.504C34.0657 115.804 34.1657 116.804 34.2657 117.204C34.2657 117.304 34.3657 116.804 34.5657 116.504C34.9657 115.904 36.3657 115.704 36.4657 117.104C36.4657 117.804 36.4657 117.704 36.4657 118.204C36.4657 118.704 36.4657 119.004 36.4657 119.404C36.4657 119.804 36.3657 120.704 36.2657 121.104C36.1657 121.404 35.8657 122.104 35.5657 122.504C35.5657 122.504 34.4657 123.704 34.3657 124.304C34.2657 124.904 34.2657 124.904 34.2657 125.304C34.2657 125.704 34.3657 126.204 34.3657 126.204C34.3657 126.204 33.5657 126.304 33.1657 126.204C32.7657 126.104 32.2657 125.404 32.1657 125.104C31.9657 124.804 31.6657 124.804 31.4657 125.104C31.2657 125.504 30.7657 126.204 30.3657 126.204C29.6657 126.304 28.2657 126.204 27.2657 126.204C27.2657 126.204 27.4657 125.204 27.0657 124.804C26.7657 124.504 26.2657 124.004 25.9657 123.704L24.8657 123.004Z\",\n stroke: \"black\",\n strokeWidth: 0.75,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33 123.4V120\",\n stroke: \"black\",\n strokeWidth: 0.75,\n strokeLinecap: \"round\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.1 123.4L31 120\",\n stroke: \"black\",\n strokeWidth: 0.75,\n strokeLinecap: \"round\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29 120V123.4\",\n stroke: \"black\",\n strokeWidth: 0.75,\n strokeLinecap: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyBasketMediaActions);\nexport default __webpack_public_path__ + \"static/media/emptyBasketMediaActions.62cd54e3.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\troot: {},\n\t\theader: {\n\t\t\tfontSize: 38,\n\t\t\tfontWeight: 700,\n\t\t\tmarginBottom: 40\n\t\t},\n\t\trequestDateBox: {},\n\t\trequestDateTitle: {\n\t\t\tfontSize: 16,\n\t\t\tfontWeight: 500,\n\t\t\tmarginBottom: 20\n\t\t},\n\t\trequestDateInputsBox: {\n\t\t\tdisplay: 'flex',\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tflexDirection: 'column'\n\t\t\t}\n\t\t},\n\t\trequestDateInputIcon: {\n\t\t\t'& .MuiIconButton-root': {\n\t\t\t\tpadding: '0 !important'\n\t\t\t}\n\t\t},\n\t\trequestDateInputMargin: {\n\t\t\tmarginRight: 10\n\t\t},\n\t\trequestDateInput: {\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tmarginBottom: 0\n\t\t\t}\n\t\t},\n\t\trequestPlaceBox: {},\n\t\trequestPlaceTitle: {\n\t\t\tmarginTop: 35,\n\t\t\tfontSize: 16,\n\t\t\tfontWeight: 500,\n\t\t\tmarginBottom: 30\n\t\t},\n\t\trequestPlaceInput: {\n\t\t\tmarginBottom: 20\n\t\t},\n\t\trequestPlaceCityBox: {\n\t\t\tdisplay: 'flex'\n\t\t},\n\t\trequestPlaceInputMargin: {\n\t\t\tmarginRight: 10\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport dayjs from 'dayjs';\nimport countries from 'i18n-iso-countries';\nimport values from 'lodash/values';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { updateRequestSamplesForm } from 'Apollo/Store/Showroom/UserView/Samples/Form/resolvers';\nimport { setIsRequestSamplesValid } from 'Apollo/Store/Showroom/UserView/Samples/resolvers';\nimport { useGetShowroomQuery, useGetShowroomSamplesFormQuery } from 'generated/graphql';\n\nimport { useDateLocale } from 'lib/Hooks';\n\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\n\nimport DatePicker from 'components/Common/DatePicker';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tshowroomId: string;\n};\n\nconst ShowroomSamplesFormStepsAboutRequest: React.FC = ({ showroomId }) => {\n\tconst classes = useStyles();\n\n\tconst { t } = useTranslation();\n\n\tconst { data: showroomData } = useGetShowroomQuery({ variables: { id: showroomId } });\n\tconst [language, setLanguage] = React.useState('en');\n\tconst [countryNames, setCountryNames] = React.useState([]);\n\tconst dateLocale = useDateLocale(language);\n\n\tReact.useEffect(() => {\n\t\tif (!showroomData) return;\n\t\tsetLanguage(showroomData.getShowroom.language);\n\t}, [showroomData]);\n\n\tReact.useEffect(() => {\n\t\tcountries.registerLocale(require(`i18n-iso-countries/langs/${language}.json`));\n\t\tsetCountryNames(values(countries.getNames(language)));\n\t}, [language]);\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: {\n\t\t\t\t\tsamples: {\n\t\t\t\t\t\tform: { returnDate, deliveryDate, streetAdress, city, zipCode, country, state }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} = useGetShowroomSamplesFormQuery();\n\n\tconst onChangeDate = React.useCallback(\n\t\t(date: dayjs.Dayjs, type: 'delivery' | 'return') => {\n\t\t\tif (type === 'return') updateRequestSamplesForm({ returnDate: date });\n\t\t\telse {\n\t\t\t\tif (date.isAfter(returnDate)) updateRequestSamplesForm({ deliveryDate: date, returnDate: date.add(1, 'day') });\n\t\t\t\telse updateRequestSamplesForm({ deliveryDate: date });\n\t\t\t}\n\t\t},\n\t\t[returnDate]\n\t);\n\n\tReact.useEffect(() => {\n\t\tif (!returnDate || !deliveryDate || !streetAdress || !city || !zipCode || !country || (country && country === 'US' && !state))\n\t\t\tsetIsRequestSamplesValid(false);\n\t\telse setIsRequestSamplesValid(true);\n\t}, [city, country, deliveryDate, returnDate, state, streetAdress, zipCode]);\n\n\treturn (\n\t\t
\n\t\t\t
{t('showroom.samples.form.about')}
\n\t\t\t
\n\t\t\t\t
{t('showroom.samples.form.receptionDate')}
\n\t\t\t\t
\n\t\t\t\t\t onChangeDate(date, 'delivery')}\n\t\t\t\t\t\tlocale={dateLocale}\n\t\t\t\t\t/>\n\t\t\t\t\t onChangeDate(date, 'return')}\n\t\t\t\t\t\tlocale={dateLocale}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
{t('showroom.samples.form.receptionLocation')}
\n\t\t\t\t {\n\t\t\t\t\t\tupdateRequestSamplesForm({ streetAdress: ev.target.value });\n\t\t\t\t\t}}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.requestPlaceInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.address')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t\t updateRequestSamplesForm({ city: ev.target.value })}\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tclassName={clsx(classes.requestPlaceInput, classes.requestPlaceInputMargin)}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tlabel={t('showroom.samples.form.city')}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t/>\n\t\t\t\t\t updateRequestSamplesForm({ zipCode: ev.target.value })}\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tclassName={classes.requestPlaceInput}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tlabel={t('showroom.samples.form.zipCode')}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t/>\n\t\t\t\t
\n\n\t\t\t\t (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\tonChange={(_, value) => {\n\t\t\t\t\t\tupdateRequestSamplesForm({ country: value ? countries.getAlpha2Code(value, language) : '' });\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t{country === 'US' ? (\n\t\t\t\t\t updateRequestSamplesForm({ state: ev.target.value })}\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tclassName={classes.requestPlaceInput}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tlabel={t('showroom.samples.form.state')}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomSamplesFormStepsAboutRequest);\n","import ShowroomSamplesFormStepsAboutRequest from './ShowroomSamplesFormStepsAboutRequest';\nexport default ShowroomSamplesFormStepsAboutRequest;","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\troot: {},\n\t\theader: {\n\t\t\tfontSize: 38,\n\t\t\tfontWeight: 700,\n\t\t\tmarginBottom: 40\n\t\t},\n\t\taboutYouBox: {},\n\t\taboutYouTitle: {\n\t\t\tfontSize: 16,\n\t\t\tfontWeight: 500,\n\t\t\tmarginBottom: 30\n\t\t},\n\t\taboutYouInput: {\n\t\t\tmarginBottom: 20,\n\t\t\t'& .MuiIconButton-root': {\n\t\t\t\tpadding: '0 !important'\n\t\t\t}\n\t\t},\n\t\tuserConsentWrapper: {\n\t\t\tmarginBottom: 20\n\t\t}\n\t};\n});\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport isEmail from 'validator/lib/isEmail';\n\nimport { updateRequestSamplesForm } from 'Apollo/Store/Showroom/UserView/Samples/Form/resolvers';\nimport { setIsRequestSamplesValid } from 'Apollo/Store/Showroom/UserView/Samples/resolvers';\nimport { useGetShowroomSamplesFormQuery } from 'generated/graphql';\n\nimport { UserConsentHookResponse } from 'lib/userConsent';\n\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport TextField from '@material-ui/core/TextField';\nimport EmailIcon from '@material-ui/icons/Email';\nimport PhoneIcon from '@material-ui/icons/PhoneAndroid';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\trenderUserConsentInput: UserConsentHookResponse['renderInput'];\n};\n\nconst ShowroomSamplesFormStepsAboutRequest: React.FC = props => {\n\tconst { renderUserConsentInput } = props;\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: {\n\t\t\t\t\tsamples: {\n\t\t\t\t\t\tform: { firstName, lastName, jobTitle, company, email, phoneNumber }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} = useGetShowroomSamplesFormQuery({ returnPartialData: true });\n\n\tReact.useEffect(() => {\n\t\tif (!firstName || !lastName || !jobTitle || !company || !isEmail(email) || !phoneNumber) setIsRequestSamplesValid(false);\n\t\telse setIsRequestSamplesValid(true);\n\t}, [company, email, firstName, jobTitle, lastName, phoneNumber]);\n\n\tconst [emailIsValid, setEmailIsValid] = React.useState(true);\n\n\treturn (\n\t\t
\n\t\t\t
{t('showroom.samples.form.reachYou')}
\n\t\t\t
\n\t\t\t\t
{t('showroom.samples.form.usefulInfo')}
\n\t\t\t\t updateRequestSamplesForm({ firstName: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.aboutYouInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.firstName')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ lastName: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.aboutYouInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.lastName')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ jobTitle: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.aboutYouInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.jobTitle')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ company: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.aboutYouInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.company')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ email: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.aboutYouInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.email')}\n\t\t\t\t\tfullWidth\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t\terror={!emailIsValid}\n\t\t\t\t\tonBlur={ev => {\n\t\t\t\t\t\tif (isEmail(ev.target.value)) setEmailIsValid(true);\n\t\t\t\t\t\telse setEmailIsValid(false);\n\t\t\t\t\t}}\n\t\t\t\t\thelperText={!emailIsValid ? t('showroom.samples.form.enterValidEmail') : null}\n\t\t\t\t\tFormHelperTextProps={{ error: !emailIsValid }}\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ phoneNumber: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.aboutYouInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.phoneNumber')}\n\t\t\t\t\tfullWidth\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t{renderUserConsentInput({ wrapper: { className: classes.userConsentWrapper } })}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomSamplesFormStepsAboutRequest);\n","import ShowroomSamplesFormStepsAboutYou from './ShowroomSamplesFormStepsAboutYou';\nexport default ShowroomSamplesFormStepsAboutYou;","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\troot: {},\n\t\theader: {\n\t\t\tfontSize: 38,\n\t\t\tfontWeight: 700,\n\t\t\tmarginBottom: 40\n\t\t},\n\t\toptionalDateContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'space-between'\n\t\t},\n\t\toptionalSelectorBox: {\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'space-between'\n\t\t},\n\t\toptionalBoxDivider: {\n\t\t\tmarginTop: 20,\n\t\t\tmarginBottom: 20\n\t\t},\n\t\toptionalTitle: {\n\t\t\tfontSize: 16,\n\t\t\tfontWeight: 500,\n\t\t\tmarginBottom: 30\n\t\t},\n\t\toptionalInput: {\n\t\t\tmarginBottom: 20\n\t\t},\n\t\toptionalInputStartDate: {\n\t\t\tmarginBottom: 20,\n\t\t\tmarginRight: 5\n\t\t},\n\t\toptionalInputEndDate: {\n\t\t\tmarginBottom: 20,\n\t\t\tmarginLeft: 5\n\t\t},\n\t\tadditionalCommentsInputLabel: {\n\t\t\twhiteSpace: 'nowrap'\n\t\t}\n\t};\n});\n","import dayjs from 'dayjs';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { updateRequestSamplesForm } from 'Apollo/Store/Showroom/UserView/Samples/Form/resolvers';\nimport { OccasionType, useGetShowroomSamplesFormQuery } from 'generated/graphql';\n\nimport { useDateLocale } from 'lib/Hooks';\n\nimport { MenuItem } from '@material-ui/core';\nimport Divider from '@material-ui/core/Divider';\nimport Select from '@material-ui/core/Select';\nimport TextField from '@material-ui/core/TextField';\n\nimport DatePicker from 'components/Common/DatePicker';\n\nimport { useStyles } from './styles';\n\nconst ShowroomSamplesFormStepsOptional: React.FC = () => {\n\tconst classes = useStyles();\n\tconst { t, i18n } = useTranslation();\n\tconst dateLocale = useDateLocale(i18n.language);\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: {\n\t\t\t\t\tsamples: {\n\t\t\t\t\t\tform: {\n\t\t\t\t\t\t\toccasionType,\n\t\t\t\t\t\t\trunThroughDate,\n\t\t\t\t\t\t\tpublication,\n\t\t\t\t\t\t\tstoryTheme,\n\t\t\t\t\t\t\teventName,\n\t\t\t\t\t\t\tcelebrity,\n\t\t\t\t\t\t\tadditionalComments,\n\t\t\t\t\t\t\tshootDateStart,\n\t\t\t\t\t\t\tshootDateEnd,\n\t\t\t\t\t\t\tshootLocation,\n\t\t\t\t\t\t\tphotographer,\n\t\t\t\t\t\t\tmodelName\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} = useGetShowroomSamplesFormQuery();\n\n\tconst additionalTextFieldInput = React.useMemo(() => {\n\t\treturn (\n\t\t\t updateRequestSamplesForm({ additionalComments: ev.target.value })}\n\t\t\t\tlabel={t('showroom.samples.form.additionalComments')}\n\t\t\t\tsize=\"small\"\n\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\tvariant=\"outlined\"\n\t\t\t\tmultiline\n\t\t\t\tplaceholder={t(`showroom.samples.form.${occasionType.toLowerCase()}.addionalComments`)}\n\t\t\t\tfullWidth\n\t\t\t\trows={4}\n\t\t\t/>\n\t\t);\n\t}, [additionalComments, classes.optionalInput, occasionType, t]);\n\n\tconst runThroughDateInput = React.useMemo(() => {\n\t\treturn (\n\t\t\t updateRequestSamplesForm({ runThroughDate: date })}\n\t\t\t\tinputClassName={classes.optionalInput}\n\t\t\t\tinputLabel={t(`showroom.samples.form.${occasionType.toLowerCase()}.runThroughDate`)}\n\t\t\t\tdisablePast={true}\n\t\t\t\tnullable\n\t\t\t\tminDate={dayjs(new Date()).add(1, 'days')}\n\t\t\t\tlocale={dateLocale}\n\t\t\t/>\n\t\t);\n\t}, [classes.optionalInput, dateLocale, occasionType, runThroughDate, t]);\n\n\tconst celebrityEventInputs = React.useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t{runThroughDateInput}\n\t\t\t\t updateRequestSamplesForm({ eventName: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.celebrity.eventName')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ celebrity: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.celebrity.celebrity')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ shootLocation: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.celebrity.shootLocation')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t{additionalTextFieldInput}\n\t\t\t\n\t\t),\n\t\t[additionalTextFieldInput, celebrity, classes.optionalInput, eventName, runThroughDateInput, shootLocation, t]\n\t);\n\n\tconst otherInputs = React.useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t{runThroughDateInput}\n\t\t\t\t{additionalTextFieldInput}\n\t\t\t\n\t\t),\n\t\t[additionalTextFieldInput, runThroughDateInput]\n\t);\n\n\tconst photoShootInputs = React.useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t{runThroughDateInput}\n\t\t\t\t updateRequestSamplesForm({ publication: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.photo.publication')}\n\t\t\t\t\tplaceholder=\"Ex: Vogue\"\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\tupdateRequestSamplesForm({ shootDateStart: date });\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tinputClassName={classes.optionalInputStartDate}\n\t\t\t\t\t\tinputLabel={t('showroom.samples.form.photo.shootDateStart')}\n\t\t\t\t\t\tdisablePast={true}\n\t\t\t\t\t\tlocale={dateLocale}\n\t\t\t\t\t/>\n\t\t\t\t\t updateRequestSamplesForm({ shootDateEnd: date })}\n\t\t\t\t\t\tinputClassName={classes.optionalInputEndDate}\n\t\t\t\t\t\tinputLabel={t('showroom.samples.form.photo.shootDateEnd')}\n\t\t\t\t\t\tdisablePast={true}\n\t\t\t\t\t\tlocale={dateLocale}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t updateRequestSamplesForm({ shootLocation: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.photo.shootLocation')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ storyTheme: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.photo.storyTheme')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ modelName: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.photo.modelName')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t updateRequestSamplesForm({ photographer: ev.target.value })}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName={classes.optionalInput}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tlabel={t('showroom.samples.form.photo.photographer')}\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\t{additionalTextFieldInput}\n\t\t\t\n\t\t),\n\t\t[\n\t\t\trunThroughDateInput,\n\t\t\tpublication,\n\t\t\tclasses.optionalInput,\n\t\t\tclasses.optionalDateContainer,\n\t\t\tclasses.optionalInputStartDate,\n\t\t\tclasses.optionalInputEndDate,\n\t\t\tt,\n\t\t\tshootDateStart,\n\t\t\tdateLocale,\n\t\t\tshootDateEnd,\n\t\t\tshootLocation,\n\t\t\tstoryTheme,\n\t\t\tmodelName,\n\t\t\tphotographer,\n\t\t\tadditionalTextFieldInput\n\t\t]\n\t);\n\n\tconst occasionTypeFields = React.useMemo(() => {\n\t\tswitch (occasionType) {\n\t\t\tcase OccasionType.Celebrity:\n\t\t\t\treturn celebrityEventInputs;\n\t\t\tcase OccasionType.Photo:\n\t\t\t\treturn photoShootInputs;\n\t\t\tcase OccasionType.Other:\n\t\t\t\treturn otherInputs;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}, [celebrityEventInputs, occasionType, otherInputs, photoShootInputs]);\n\n\tconst sortedTyleForms = React.useMemo(() => {\n\t\treturn [OccasionType.None, OccasionType.Photo, OccasionType.Celebrity, OccasionType.Other];\n\t}, []);\n\n\treturn (\n\t\t
\n\t\t\t
{t('showroom.samples.form.occasionInfo')}
\n\t\t\t
\n\t\t\t\t
{t('showroom.samples.form.optionalInfo')}
\n\t\t\t\t
\n\t\t\t\t\t updateRequestSamplesForm({ occasionType: ev.target.value as OccasionType })}\n\t\t\t\t\t\tdefaultValue={occasionType}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tvariant={'outlined'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{sortedTyleForms.map(value => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`showroom.samples.form.occasion.${value.toLowerCase()}`)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t{occasionTypeFields}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomSamplesFormStepsOptional);\n","import ShowroomSamplesFormStepsOptional from './ShowroomSamplesFormStepsOptional';\nexport default ShowroomSamplesFormStepsOptional;","import { makeStyles, useTheme } from '@material-ui/core/styles';\nimport grey from '@material-ui/core/colors/grey';\nexport const Theme = useTheme;\n\nexport const submitButtonBox: any = {\n\tposition: 'absolute',\n\tpadding: '0 50px',\n\tbottom: 0,\n\tleft: 0,\n\tright: 0,\n\tzIndex: 3,\n\tbackgroundColor: \"#FFF\"\n};\n\nexport const submitButtonContainer: any = {\n\tdisplay: 'flex',\n\tjustifyContent: 'flex-end',\n\tpadding: '25px 0px',\n\tmargin: 'auto',\n\tborderTop: \"1px solid\",\n\tborderColor: grey[200]\n};\n\nexport const useStyles = makeStyles(theme => {\n\treturn ({\n\t\troot: {\n\t\t\twidth: 'auto',\n\t\t\tmaxWidth: '90%',\n\t\t\tflexDirection: 'row',\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tmaxWidth: \"100%\"\n\t\t\t},\n\t\t},\n\t\tsamplesFormContainer: {\n\t\t\twidth: 598,\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\twidth: \"100%\"\n\t\t\t},\n\t\t\tpadding: 0,\n\t\t\toverflow: 'hidden',\n\t\t\tposition: 'relative'\n\t\t},\n\t\tsamplesFormContainerSteps: {\n\t\t\toverflowY: 'auto',\n\t\t\tpadding: 50,\n\t\t\tboxSizing: 'border-box',\n\t\t\theight: 'calc(100% - 90px)'\n\t\t},\n\t\tsamplesFormContainerHeader: {},\n\t\tsamplesFormContainerFooter: {\n\t\t\ttop: 'auto',\n\t\t\tbottom: 0,\n\t\t\tbackgroundColor: grey[200]\n\t\t},\n\t\tsamplesFormContainerFooterToolbar: {\n\t\t\tpaddingLeft: 50,\n\t\t\tpaddingRight: 50\n\t\t},\n\t\tsamplesFormContainerFooterCancelButtonBox: {\n\t\t\tdisplay: \"flex\",\n\t\t\tflexGrow: 1\n\t\t},\n\t\teditorHeader: {\n\t\t\tmarginBottom: 30,\n\t\t\tlineHeight: '32px'\n\t\t},\n\t\tstepIconText: {\n\t\t\tfill: \"#FFF\"\n\t\t},\n\t\theaderDivider: {}\n\t});\n});\n","import map from 'lodash/map';\nimport React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useTranslation } from 'react-i18next';\n\nimport { clearSamplesBasket } from 'Apollo/Store/Showroom/UserView/Samples/Basket/resolvers';\nimport { clearRequestSamplesForm } from 'Apollo/Store/Showroom/UserView/Samples/Form/resolvers';\nimport { setIsRequestSamplesFormOpen, setIsRequestSamplesValid } from 'Apollo/Store/Showroom/UserView/Samples/resolvers';\nimport {\n\tuseGetShowroomSamplesFormQuery,\n\tuseGetShowroomSamplesOptionsQuery,\n\tuseRequestSamplesMutation,\n\tuseGetShowroomSamplesBasketQuery\n} from 'generated/graphql';\n\nimport { useCustomNotifications } from 'lib/Hooks';\nimport { useIdentifyUser } from 'lib/identifyUser';\nimport { useGetCurrentShowroomData, useIsShowroomMobileVersion } from 'lib/showroom';\nimport { useUserConsent } from 'lib/userConsent';\n\nimport AppBar from '@material-ui/core/AppBar';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Divider from '@material-ui/core/Divider';\nimport Drawer from '@material-ui/core/Drawer';\nimport Step from '@material-ui/core/Step';\nimport StepLabel from '@material-ui/core/StepLabel';\nimport Stepper from '@material-ui/core/Stepper';\nimport Toolbar from '@material-ui/core/Toolbar';\n\nimport { ShowroomContext } from 'context/showroom/ShowroomContext';\n\nimport { ReactComponent as SampleRequestError } from 'icons/sampleRequestError.svg';\nimport { ReactComponent as SampleRequestSuccess } from 'icons/sampleRequestSuccess.svg';\n\nimport ShowroomSamplesFormStepsAboutRequest from './Steps/AboutRequest';\nimport ShowroomSamplesFormStepsAboutYou from './Steps/AboutYou';\nimport ShowroomSamplesFormStepsOptional from './Steps/Optional';\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {};\n\nconst ShowroomSamplesForm: React.FC = () => {\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst showroom = useGetCurrentShowroomData();\n\tconst { id: showroomId, tenant } = showroom;\n\n\tconst isMobileVersion = useIsShowroomMobileVersion();\n\tconst [currentStep, setCurrentStep] = React.useState(0);\n\tconst [cookies] = useCookies();\n\tconst { track } = React.useContext(ShowroomContext);\n\tconst { enqueueNotification } = useCustomNotifications();\n\n\tconst identify = useIdentifyUser();\n\tconst { acceptConsent, onSubmit: onSubmitWithConsent, renderInput } = useUserConsent();\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: {\n\t\t\t\t\tsamples: { form }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} = useGetShowroomSamplesFormQuery();\n\n\tconst {\n\t\tdata: { showroomSamplesBasket }\n\t} = useGetShowroomSamplesBasketQuery({ variables: { showroomId } });\n\n\tconst [requestSamples, { loading: loadingRequest }] = useRequestSamplesMutation();\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: {\n\t\t\t\t\tsamples: { isRequestSamplesFormOpen, isRequestSamplesFormValid }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} = useGetShowroomSamplesOptionsQuery();\n\n\tconst currentStepComponent = React.useMemo(() => {\n\t\tswitch (currentStep) {\n\t\t\tcase 0:\n\t\t\t\treturn ;\n\t\t\tcase 1:\n\t\t\t\treturn ;\n\t\t\tcase 2:\n\t\t\t\treturn ;\n\t\t}\n\t}, [currentStep, renderInput, showroomId]);\n\n\tconst headerComponent = React.useMemo(() => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t 0}>\n\t\t\t\t\t\t{!isMobileVersion ? t('showroom.samples.form.about') : null}\n\t\t\t\t\t\n\t\t\t\t\t 1}>\n\t\t\t\t\t\t{!isMobileVersion ? t('showroom.samples.form.aboutYou') : null}\n\t\t\t\t\t\n\t\t\t\t\t 2}>\n\t\t\t\t\t\t{!isMobileVersion ? t('showroom.samples.form.optional') : null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [currentStep, isMobileVersion, t]);\n\n\tconst submitForm = React.useCallback(async () => {\n\t\ttry {\n\t\t\tawait acceptConsent(form.email);\n\t\t\tconst showroomViewerId = cookies[`showroom-${tenant.tenant}`] ? cookies[`showroom-${tenant.tenant}`].userViewerId : null;\n\t\t\tidentify(\n\t\t\t\t{\n\t\t\t\t\tid: form.email,\n\t\t\t\t\temail: form.email,\n\t\t\t\t\tfirstName: form.firstName,\n\t\t\t\t\tlastName: form.lastName,\n\t\t\t\t\texternalGuest: true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tSite: tenant?.name,\n\t\t\t\t\tsiteId: tenant?.id,\n\t\t\t\t\tecoAccountId: tenant?.EcosystemAccountID,\n\t\t\t\t\tEcoAccountName: tenant?.EcosystemAccountName,\n\t\t\t\t\tSalesforceId: tenant?.salesforceAccountId,\n\t\t\t\t\tsfparentid: tenant?.salesforceAccountParentId\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst mediaIds = map(showroomSamplesBasket, media => media.id);\n\n\t\t\tawait requestSamples({ variables: { params: form, mediaIds, showroomId, showroomViewerId } });\n\t\t\tif (!!showroomViewerId) {\n\t\t\t\tconst samplesRequestTrack = showroomSamplesBasket.map(media => ({\n\t\t\t\t\teventType: 'samples_request',\n\t\t\t\t\tmediaType: 'image',\n\t\t\t\t\tmediaId: media.cloudinaryId,\n\t\t\t\t\tshowroomId: showroomId\n\t\t\t\t}));\n\t\t\t\ttrack(samplesRequestTrack, form.email);\n\t\t\t}\n\t\t\tsetIsRequestSamplesFormOpen(false);\n\t\t\tclearSamplesBasket(tenant.uuid, showroomId);\n\t\t\tsetCurrentStep(0);\n\t\t\tclearRequestSamplesForm();\n\n\t\t\tenqueueNotification({\n\t\t\t\ttitle: t('showroom.samples.form.requestSent'),\n\t\t\t\ttext: (\n\t\t\t\t\t\n\t\t\t\t),\n\t\t\t\ticon: \n\t\t\t});\n\t\t} catch (err) {\n\t\t\tenqueueNotification(\n\t\t\t\t{\n\t\t\t\t\ttitle: t('showroom.samples.form.errorTitle'),\n\t\t\t\t\ttext: (\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t\ticon: \n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpersist: true\n\t\t\t\t}\n\t\t\t);\n\t\t\tsetIsRequestSamplesFormOpen(false);\n\t\t\tsetCurrentStep(0);\n\t\t}\n\t}, [acceptConsent, form, cookies, tenant, identify, showroomSamplesBasket, requestSamples, showroomId, enqueueNotification, t, track]);\n\n\tconst handleCancelClick = React.useCallback(() => {\n\t\tif (currentStep === 0) setIsRequestSamplesFormOpen(false);\n\t\telse setCurrentStep(currentStep - 1);\n\t}, [currentStep]);\n\n\tconst handleNextClick = React.useCallback(() => {\n\t\tif (currentStep === 2) {\n\t\t\tsetIsRequestSamplesValid(true);\n\t\t\treturn submitForm();\n\t\t}\n\t\tif (currentStep === 1)\n\t\t\tonSubmitWithConsent(() => {\n\t\t\t\tsetCurrentStep(currentStep + 1);\n\t\t\t});\n\t\telse setCurrentStep(currentStep + 1);\n\t}, [currentStep, onSubmitWithConsent, submitForm]);\n\n\treturn (\n\t\t setIsRequestSamplesFormOpen(false)}\n\t\t>\n\t\t\t
\n\t\t\t\t
{headerComponent}
\n\t\t\t\t
{currentStepComponent}
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{loadingRequest ? null : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{loadingRequest ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(`showroom.samples.form.${currentStep !== 2 ? 'next' : 'send'}`)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomSamplesForm);\n","import ShowroomSamplesForm from './ShowroomSamplesForm';\nexport default ShowroomSamplesForm;","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAddToSamplesBasketHovered(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.4327 16.25H3.57271C2.54589 16.2505 1.64074 15.5588 1.34712 14.5492C1.0535 13.5396 1.44117 12.4521 2.30033 11.8751L8.76636 7.52673L10.4845 6.31159C11.28 5.75834 11.3974 5.20418 11.3974 4.9239C11.3974 4.25654 10.8831 3.68959 10.2736 3.68685H10.2674C9.65956 3.68498 9.15989 4.17827 9.13829 4.80157C9.13002 5.01358 9.01215 5.20496 8.82907 5.30362C8.646 5.40228 8.42553 5.39323 8.25072 5.27988C8.07591 5.16653 7.97331 4.9661 7.98157 4.75409C8.02574 3.49325 9.0369 2.49575 10.2665 2.50001H10.279C11.5327 2.5064 12.5533 3.59556 12.5533 4.9239C12.5533 5.43881 12.37 6.43302 11.1367 7.29119L9.41768 8.50816L9.40611 8.51546L2.93474 12.8721C2.50736 13.1628 2.31556 13.7061 2.46234 14.2102C2.60912 14.7143 3.05995 15.0606 3.57271 15.0632H16.4327C16.9456 15.061 17.3968 14.7148 17.5438 14.2106C17.6909 13.7064 17.4991 13.1629 17.0716 12.8721L11.2604 8.96372C10.9955 8.78309 10.9225 8.4169 11.0969 8.14403C11.2714 7.87116 11.6278 7.79401 11.8948 7.97134L17.7051 11.8788C18.5608 12.457 18.9459 13.5424 18.6527 14.5497C18.3595 15.5571 17.4573 16.248 16.4327 16.25Z\",\n fill: \"#00C795\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.5 1.25H16.25V3.125L14.375 3.125V4.375H16.25V6.25H17.5V4.375H19.375V3.125L17.5 3.125V1.25Z\",\n fill: \"#00C795\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddToSamplesBasketHovered);\nexport default __webpack_public_path__ + \"static/media/addToSamplesBasketHovered.49839366.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles';\n\nimport { launchmetricsGrey } from 'Styles/theme';\n\nexport const LANDSCAPE_WIDTH = 500;\nexport const PORTRAIT_WIDTH = 215;\n\nexport const useStyles = makeStyles(() => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'flex-start',\n\t\tflexWrap: 'wrap'\n\t},\n\trootMobile: {\n\t\tflexDirection: 'row'\n\t},\n\tmediaColumn: {\n\t\tflexBasis: '45%',\n\t\tflexGrow: 0\n\t},\n\tmediaColumnMobile: {\n\t\tflexBasis: '100%',\n\t\tflexGrow: 1,\n\t\tmaxWidth: '100%'\n\t},\n\tmediaColumnInner: {\n\t\tposition: 'relative',\n\t\tmaxWidth: '100%',\n\t\tdisplay: 'inline-block'\n\t},\n\tmediaColumnPortraitInner: {\n\t\twidth: PORTRAIT_WIDTH\n\t},\n\tmediaColumnLandscapeInner: {\n\t\twidth: LANDSCAPE_WIDTH\n\t},\n\tmediaActionsContainer: {\n\t\tposition: 'absolute',\n\t\ttop: 10,\n\t\tright: 10\n\t},\n\tmediaImg: {\n\t\twidth: '100%'\n\t},\n\ttextColumn: {\n\t\tflex: 1\n\t},\n\ttextColumnMobile: {\n\t\tmarginTop: 30\n\t},\n\ttextColumnInner: {\n\t\tdisplay: 'flex',\n\t\tmaxWidth: 560,\n\t\tflexDirection: 'column',\n\t\tpaddingTop: 20\n\t},\n\ttextColumnInnerMobile: {\n\t\tmaxWidth: '100%',\n\t\tpaddingTop: 0\n\t},\n\ttitle: {\n\t\tfontSize: 22,\n\t\tmarginBottom: 30\n\t},\n\ttitleMobile: {\n\t\tfontSize: 18,\n\t\tmarginBottom: 15\n\t},\n\ttextWrapper: {\n\t\tfontSize: 14,\n\t\tlineHeight: '22px'\n\t},\n\tpopper: {\n\t\ttop: '5px !important'\n\t},\n\tpopperContent: {\n\t\tpadding: '4.5px 16px 3.5px',\n\t\tcolor: 'white',\n\t\tfontSize: 12,\n\t\tlineHeight: '20px',\n\t\tbackground: launchmetricsGrey,\n\t\tborderRadius: 3,\n\t\tmaxWidth: 180\n\t}\n}));\n","import clsx from 'clsx';\nimport find from 'lodash/find';\nimport flattenDeep from 'lodash/flattenDeep';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Image, MediaInfoFragment, MediaType, useGetShowroomSectionsQuery } from 'generated/graphql';\n\nimport { getImageUrl, getVideoPreviewUrl } from 'lib/cloudinary';\nimport { useIsShowroomMobileVersion } from 'lib/showroom';\n\nimport Popper from '@material-ui/core/Popper';\nimport Typography from '@material-ui/core/Typography';\n\nimport { ReactComponent as EmptyBasketMediaActionsIcon } from 'icons/emptyBasketMediaActions.svg';\n\nimport { LANDSCAPE_WIDTH, PORTRAIT_WIDTH, useStyles } from './styles';\n\nconst ShowroomSamplesEmptyBasket = ({ id }) => {\n\tconst { data } = useGetShowroomSectionsQuery({ variables: { id } });\n\tconst sections = React.useMemo(() => data?.getShowroom.sections || [], [data]);\n\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst mobileVersion = useIsShowroomMobileVersion();\n\n\tconst [anchor, setAnchor] = React.useState(null);\n\tconst handleAnchorRef = React.useCallback(node => setAnchor(node), []);\n\n\tconst sampleMedia = React.useMemo(() => {\n\t\tconst allMedias: MediaInfoFragment[] = flattenDeep(sections.map(section => section.rows.map(row => row.medias)));\n\t\treturn find(allMedias, media => media.isSample);\n\t}, [sections]);\n\n\tconst isLandscape = React.useCallback(\n\t\t() => sampleMedia.mediaType === MediaType.Video || (sampleMedia as Image).width > (sampleMedia as Image).height,\n\t\t[sampleMedia]\n\t);\n\n\tconst url = React.useMemo(() => {\n\t\tif (!sampleMedia) return '';\n\t\tconst version = sampleMedia.cloudinaryVersion + '';\n\t\tconst imgWidth = isLandscape() ? LANDSCAPE_WIDTH : PORTRAIT_WIDTH;\n\t\tif (sampleMedia.mediaType === MediaType.Video)\n\t\t\treturn getVideoPreviewUrl(sampleMedia.cloudinaryId, { version, width: imgWidth, crop: 'scale' });\n\t\telse return getImageUrl(sampleMedia.cloudinaryId, { version, width: imgWidth, crop: 'scale' });\n\t}, [sampleMedia, isLandscape]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{sampleMedia ? (\n\t\t\t\t\t\n\t\t\t\t\t\t ev.preventDefault()} className={classes.mediaImg} src={url} alt=\"\" />\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
{t('showroom.samples.list.add')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t) : null}\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{t('showroom.samples.list.empty')}\n\t\t\t\t\t\n\t\t\t\t\t
{t('showroom.samples.list.emptyText')}
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomSamplesEmptyBasket);\n","import { makeStyles } from '@material-ui/core/styles';\nimport grey from '@material-ui/core/colors/grey';\nimport red from '@material-ui/core/colors/red';\n\nexport const useStyles = makeStyles(() => ({\n\tsamplesBasketWrapperMobile: {\n\t\tpaddingBottom: 70\t\n\t},\n\tdeleteButton: {\n\t\tpadding: 0,\n\t\t'&:hover': {\n\t\t\tbackground: 'none'\n\t\t}\n\t},\n\tdeleteButtonIcon: {\n\t\tcolor: grey[500],\n\t\t'&:hover': {\n\t\t\tcolor: red[500]\n\t\t}\n\t},\n\tmenuListItem: {\n\t\tfontSize: 14,\n\t\tpadding: '15px 30px'\n\t},\n\tlistItemIcon: {\n\t\tfontSize: 24\n\t},\n\tlistItemText: {\n\t\tfontSize: 14\n\t},\n\trequestAllSamplesListItem: {\n\t\tjustifyContent: 'center'\n\t},\n\trequestAllSamplesListItemIcon: {\n\t\tmarginRight: 15,\n\t\tminWidth: 0\n\t},\n\trequestAllSamplesIcon: {\n\t\tfontSize: 22\n\t},\n\trequestAllSamplesListItemRoot: {\n\t\tflexGrow: 0\n\t}\n}));","import clsx from 'clsx';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { toggleSampleBasketMedia } from 'Apollo/Store/Showroom/UserView/Samples/Basket/resolvers';\nimport { setIsRequestSamplesFormOpen } from 'Apollo/Store/Showroom/UserView/Samples/resolvers';\nimport { MediaInfoFragment, useGetShowroomSamplesBasketQuery, useGetMobileMenuOpenedQuery, ShowroomMobileMenuType } from 'generated/graphql';\n\nimport { useGetCurrentShowroomData, useIsShowroomMobileVersion } from 'lib/showroom';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport DeleteOutlineIcon from '@material-ui/icons/DeleteOutline';\nimport MailOutlineIcon from '@material-ui/icons/MailOutline';\n\nimport { ReactComponent as RemoveFromSamplesBasketIcon } from 'icons/removeFromSamplesBasket.svg';\n\nimport ShowroomBasketLayout from '../BasketLayout';\nimport { BasketActionButton } from '../BasketLayout/ShowroomBasketLayout';\nimport ShowroomMobileActionsMenuLayout from '../MobileActionsMenuLayout';\nimport ShowroomSamplesForm from '../SamplesForm';\nimport ShowroomSamplesEmptyBasket from './EmptyBasket';\nimport { useStyles } from './style';\n\nconst ShowroomSamplesBasket = () => {\n\tconst showroom = useGetCurrentShowroomData();\n\tconst { id: showroomId, tenant } = showroom;\n\tconst classes = useStyles();\n\n\tconst { t } = useTranslation();\n\tconst mobileVersion = useIsShowroomMobileVersion();\n\tconst {\n\t\tdata: { showroomSamplesBasket }\n\t} = useGetShowroomSamplesBasketQuery({ variables: { showroomId } });\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: { activeMediaMobileMenu }\n\t\t\t}\n\t\t}\n\t} = useGetMobileMenuOpenedQuery();\n\n\tconst actions: BasketActionButton[] = React.useMemo(() => {\n\t\tconst actions = [];\n\t\tif (showroomSamplesBasket.length > 0)\n\t\t\tactions.push({\n\t\t\t\tid: 'basketRequestBtn',\n\t\t\t\tlabel: t('showroom.samples.list.requestAll'),\n\t\t\t\ticon: ,\n\t\t\t\tonClick: () => setIsRequestSamplesFormOpen(true)\n\t\t\t});\n\t\treturn actions;\n\t}, [showroomSamplesBasket.length, t]);\n\n\tconst getMediaButtons = React.useCallback(\n\t\t(media: MediaInfoFragment) => (\n\t\t\t toggleSampleBasketMedia(tenant.uuid, showroomId, media.id)}\n\t\t\t\tdisableRipple\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[]\n\t);\n\n\tconst getMobileActions = React.useCallback(\n\t\t(media: MediaInfoFragment, closeMobileMenu: () => void) => (\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\ttoggleSampleBasketMedia(tenant.uuid, showroomId, media.id);\n\t\t\t\t\t\tcloseMobileMenu();\n\t\t\t\t\t}}\n\t\t\t\t\tdisableRipple\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[showroomId, tenant]\n\t);\n\n\treturn (\n\t\t
0 })}>\n\t\t\t 1 ? 'counterPlural' : 'counter'}`)}\n\t\t\t\tmenuType={ShowroomMobileMenuType.SamplesBasket}\n\t\t\t\tgetItemDesktopActions={getMediaButtons}\n\t\t\t\tgetItemMobileActions={getMobileActions}\n\t\t\t\temptyBasketComponent={}\n\t\t\t/>\n\t\t\t{mobileVersion && showroomSamplesBasket.length > 0 && !activeMediaMobileMenu ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t setIsRequestSamplesFormOpen(true)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : null}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomSamplesBasket);\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nimport { SHOWROOM_LAYOUT_HEADER_HEIGHT } from 'components/Showroom/Layout/styles';\n\nimport { secondaryColor } from 'Styles/theme';\n\nexport const Theme = useTheme;\n\nexport const HEADER_HEIGHT = 100;\nexport const MOBILE_HEADER_HEIGHT = 50;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tshowroomAppBar: {\n\t\t\tbackground: 'white',\n\t\t\tpadding: 0,\n\t\t\tleft: 0\n\t\t},\n\t\tshowroomHeader: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'row',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\theight: HEADER_HEIGHT,\n\t\t\tpadding: '0 50px',\n\t\t\tbackground: 'white'\n\t\t},\n\t\tshowroomHeaderPreviewScroll: {\n\t\t\twidth: 'calc(100% - 15px)'\n\t\t},\n\t\tshowroomHeaderMobile: {\n\t\t\tminHeight: 0,\n\t\t\theight: MOBILE_HEADER_HEIGHT,\n\t\t\tpadding: '0px 20px',\n\t\t\tboxShadow: theme.custom.defaultBoxShadow\n\t\t},\n\t\tshowroomHeaderPreviewView: {\n\t\t\ttop: SHOWROOM_LAYOUT_HEADER_HEIGHT\n\t\t},\n\t\tshowroomLogo: {\n\t\t\tmaxWidth: 500,\n\t\t\twidth: '80%',\n\t\t\tbackgroundPosition: 'center center',\n\t\t\theight: '77%',\n\t\t\tbackgroundSize: 'contain',\n\t\t\tbackgroundRepeat: 'no-repeat'\n\t\t},\n\t\tshowroomLogoMobile: {\n\t\t\tmaxWidth: 250,\n\t\t\theight: '80%'\n\t\t},\n\t\tshowroomLogoMobileLeftAlign: {\n\t\t\tbackgroundPosition: 'left center'\n\t\t},\n\t\tboxShadowHeader: {\n\t\t\tboxShadow: theme.custom.defaultBoxShadow\n\t\t},\n\t\theaderLeftSection: {\n\t\t\tflex: 1\n\t\t},\n\t\theaderLeftSectionEmpty: {\n\t\t\tflex: 0\n\t\t},\n\t\tactionsContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\tflex: 1,\n\t\t\talignSelf: 'stretch',\n\t\t\talignItems: 'stretch',\n\t\t\tjustifyContent: 'flex-end'\n\t\t},\n\t\tactionButton: {\n\t\t\tpadding: 0,\n\t\t\twidth: 125,\n\t\t\tborderRadius: 0,\n\t\t\tposition: 'relative',\n\n\t\t\t'&:after': {\n\t\t\t\tcontent: '\"\"',\n\t\t\t\tposition: 'absolute',\n\t\t\t\tbottom: 0,\n\t\t\t\twidth: '100%'\n\t\t\t},\n\n\t\t\t'&:hover': {\n\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t'&:after': {\n\t\t\t\t\tborderBottom: `5px solid #4df7b940`\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tactionButtonMobile: {\n\t\t\twidth: 'auto'\n\t\t},\n\t\tselectedButton: {\n\t\t\t'&:after': {\n\t\t\t\tborderBottom: `5px solid ${secondaryColor} !important`\n\t\t\t}\n\t\t},\n\t\ttabContainer: {\n\t\t\theight: `calc(100vh - ${HEADER_HEIGHT}px)`,\n\t\t\tbackground: 'black',\n\t\t\tcolor: 'white',\n\t\t\toverflowY: 'auto'\n\t\t},\n\t\ttabContainerMobile: {\n\t\t\theight: `calc(100vh - ${MOBILE_HEADER_HEIGHT}px)`\n\t\t},\n\t\tbasketBadge: {\n\t\t\twidth: 30,\n\t\t\tfontWeight: 'bold',\n\t\t\ttop: 10,\n\t\t\tright: -2\n\t\t},\n\t\tbasketBadgeMobile: {\n\t\t\twidth: 'auto'\n\t\t},\n\t\theaderPopper: {\n\t\t\twidth: 'auto !important',\n\t\t\tminWidth: 110\n\t\t},\n\t\theaderPopperContent: {\n\t\t\ttextAlign: 'center',\n\t\t\tcolor: 'white',\n\t\t\tfontSize: 12\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { setShowroomSelectedTab } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport { ShowroomTab, useGetShowroomSamplesBasketQuery } from 'generated/graphql';\n\nimport { useTimeout } from 'lib/Hooks';\nimport { useGetCurrentShowroomId, useIsShowroomBasketEnabled, useIsShowroomMobileVersion, useIsShowroomUserView } from 'lib/showroom';\n\nimport AppBar from '@material-ui/core/AppBar';\nimport Badge from '@material-ui/core/Badge';\nimport Collapse from '@material-ui/core/Collapse';\nimport IconButton from '@material-ui/core/IconButton';\nimport grey from '@material-ui/core/colors/grey';\n\nimport ArrowPopper from 'components/Common/ArrowPopper';\nimport ShowroomSamplesBasket from 'components/Showroom/SamplesBasket';\n\nimport { ReactComponent as SamplesIcon } from 'icons/samples.svg';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tlogo: string;\n\tselectedTab: ShowroomTab;\n};\n\nconst ShowroomContentHeader = (props: ComponentProps) => {\n\tconst { logo, selectedTab } = props;\n\n\tconst isUserView = useIsShowroomUserView();\n\tconst showroomId = useGetCurrentShowroomId();\n\tconst displayBasket = useIsShowroomBasketEnabled();\n\n\tconst classes = useStyles();\n\tconst isMobileVersion = useIsShowroomMobileVersion();\n\n\tconst { t } = useTranslation();\n\n\tconst { run } = useTimeout();\n\tconst { data } = useGetShowroomSamplesBasketQuery({ variables: { showroomId }, skip: !displayBasket });\n\n\tconst headerRef = React.useRef();\n\tconst basketRef = React.useRef();\n\tconst lastElementCount = React.useRef(data ? data.showroomSamplesBasket : 0);\n\n\tconst [showAddedToBasket, setShowAddedToBasket] = React.useState(false);\n\tconst popperAnchor = React.useMemo(() => (!!showAddedToBasket ? basketRef.current : null), [showAddedToBasket]);\n\n\t// Update this condition as we add more actions into the header\n\tconst displayActions = displayBasket;\n\n\tReact.useEffect(() => {\n\t\t// Margin correction for scrollbar in preview mode (inside dialog)\n\t\tif (!isUserView && !isMobileVersion) {\n\t\t\tconst dialogElement = document.getElementById('showroomLayoutDialogContent');\n\t\t\tif (dialogElement && dialogElement.scrollHeight > dialogElement.clientHeight) {\n\t\t\t\theaderRef.current.classList.add(classes.showroomHeaderPreviewScroll);\n\t\t\t}\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [isUserView, isMobileVersion]);\n\n\tReact.useEffect(() => {\n\t\tif (data) {\n\t\t\tif (data.showroomSamplesBasket.length > lastElementCount.current) {\n\t\t\t\tsetShowAddedToBasket(true);\n\t\t\t\trun(() => setShowAddedToBasket(false), 2000);\n\t\t\t}\n\t\t\tlastElementCount.current = data.showroomSamplesBasket.length;\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [data]);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t{displayActions ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t{displayBasket ? (\n\t\t\t\t\t\t\t setShowroomSelectedTab(ShowroomTab.Samples)}\n\t\t\t\t\t\t\t\tdisableRipple\n\t\t\t\t\t\t\t\tdisableFocusRipple\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t
\n\t\t\t\t) : null}\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{(() => {\n\t\t\t\t\t\tswitch (selectedTab) {\n\t\t\t\t\t\t\tcase ShowroomTab.Samples:\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t})()}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t
{t('showroom.samples.list.added')}
\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomContentHeader);\n","import { getCache } from 'Apollo';\nimport { ShowroomFilterGroupsInfoFragment } from 'generated/graphql';\n\nimport { SHOWROOM_FILTER_GROUP_INFO } from './queries';\n\nconst cache = getCache();\n\nexport const getShowroomFiltersInfo = (ids: string[]): ShowroomFilterGroupsInfoFragment[] =>\n\tids.map(groupId =>\n\t\tcache.readFragment({\n\t\t\tid: cache.identify({ __typename: 'ShowroomFilter', id: groupId }),\n\t\t\tfragment: SHOWROOM_FILTER_GROUP_INFO\n\t\t})\n\t);\n","import filter from 'lodash/filter';\nimport find from 'lodash/find';\nimport groupBy from 'lodash/groupBy';\nimport intersection from 'lodash/intersection';\nimport isEmpty from 'lodash/isEmpty';\nimport orderBy from 'lodash/orderBy';\nimport reduce from 'lodash/reduce';\nimport uniq from 'lodash/uniq';\n\nimport { getShowroomFiltersInfo } from 'Apollo/Store/Showroom/read';\nimport {\n\tGetShowroomSectionFiltersUserViewQuery,\n\tShowroomFilterValue,\n\tShowroomFilterValueInfoFragment,\n\tShowroomFilterGroupsInfoFragment\n} from 'generated/graphql';\n\nimport { ShowroomFilterTree, ShowroomFilterTreeValue } from 'Types/showroom';\n\nexport const buildShowroomFiltersTree = (rawData: GetShowroomSectionFiltersUserViewQuery['showroomSectionFilters']): ShowroomFilterTree[] => {\n\tconst topFilters = filter(rawData, filter => filter.groups.length === 1);\n\n\tconst buildTreeValues = (value: ShowroomFilterValue, prevGroups: string[], parent?: ShowroomFilterTreeValue): ShowroomFilterTreeValue => {\n\t\tconst filterTreeValue: ShowroomFilterTreeValue = {\n\t\t\tvalue,\n\t\t\tchilds: [],\n\t\t\tparent: parent ?? null\n\t\t};\n\n\t\tconst groupList = [...prevGroups, value.value];\n\t\tconst groupLength = groupList.length;\n\t\tconst group = groupList.join('_');\n\n\t\tconst filterChilds = find(rawData, filter => filter.groups.length === groupLength && filter.groups.join('_') === group);\n\n\t\tif (filterChilds)\n\t\t\tfilterTreeValue.childs = [...filterChilds.values]\n\t\t\t\t.sort(({ value }, { value: value2 }) => value.toLowerCase().localeCompare(value2.toLowerCase()))\n\t\t\t\t.map(value => buildTreeValues(value, groupList, filterTreeValue));\n\t\treturn filterTreeValue;\n\t};\n\n\tconst trees = topFilters.map(topFilter => ({\n\t\tid: topFilter.id,\n\t\tname: topFilter.groups[0],\n\t\tchilds: [...topFilter.values]\n\t\t\t.sort(({ value }, { value: value2 }) => value.toLowerCase().localeCompare(value2.toLowerCase()))\n\t\t\t.map(value => buildTreeValues(value, topFilter.groups))\n\t}));\n\treturn filter(trees, tree => tree.childs.length > 0);\n};\n\nconst getSelectedValuesTopFilterGroup = (selectedValues: ShowroomFilterValueInfoFragment[]) => {\n\tconst groupIds = uniq(selectedValues.map(selectedValue => selectedValue.groupId));\n\tconst buckets: ShowroomFilterGroupsInfoFragment[] = getShowroomFiltersInfo(groupIds);\n\treturn reduce(\n\t\tbuckets,\n\t\t(acc, bucket) => {\n\t\t\tacc[bucket.id] = bucket.groups[0];\n\t\t\treturn acc;\n\t\t},\n\t\t{}\n\t);\n};\n\nexport const searchMedias = (selectedValues: ShowroomFilterValueInfoFragment[]) => {\n\tconst firstGroups = getSelectedValuesTopFilterGroup(selectedValues);\n\tconst filterByCategory = groupBy(selectedValues, selectedValue => firstGroups[selectedValue.groupId]);\n\tconst filteredCategories: Record = {};\n\tObject.entries(filterByCategory).forEach(([category, filters]) => {\n\t\tconst categoryMedias = new Set();\n\t\tfilters.forEach(filter => {\n\t\t\tfilter.mediaIds.forEach(mediaId => {\n\t\t\t\tcategoryMedias.add(mediaId);\n\t\t\t});\n\t\t});\n\t\tfilteredCategories[category] = Array.from(categoryMedias);\n\t});\n\treturn intersection(...Object.values(filteredCategories));\n};\n\nexport const updateFilterValues = (\n\tbuckets: GetShowroomSectionFiltersUserViewQuery['showroomSectionFilters'],\n\tselectedValues: ShowroomFilterValueInfoFragment[]\n) => {\n\tconst selectedTopFilterGroups = getSelectedValuesTopFilterGroup(selectedValues);\n\tconst selectedValuesIds = new Set();\n\tselectedValues.forEach(({ id }) => selectedValuesIds.add(id));\n\treturn buckets.map(filterBucket => {\n\t\t// Do a search for each selected bucket in other trees except this one (all selected filters except the one from the bucket)\n\t\tconst otherFiltersSelected = filter(\n\t\t\tselectedValues,\n\t\t\tselectedValue => selectedTopFilterGroups[selectedValue.groupId] !== filterBucket.groups[0]\n\t\t);\n\t\tlet values: ShowroomFilterValue[] = [];\n\t\tif (isEmpty(otherFiltersSelected)) values = [...filterBucket.values];\n\t\telse {\n\t\t\tconst filteredMediaIds = searchMedias(otherFiltersSelected);\n\t\t\tvalues = reduce(\n\t\t\t\tfilterBucket.values,\n\t\t\t\t(acc, value) => {\n\t\t\t\t\tconst newMediaIds = intersection(value.mediaIds, filteredMediaIds);\n\t\t\t\t\tif (newMediaIds.length === 0 && !selectedValuesIds.has(value.id)) return acc;\n\t\t\t\t\tconst newValue = {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tmediaIds: newMediaIds\n\t\t\t\t\t};\n\t\t\t\t\tacc.push(newValue);\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t);\n\t\t\tvalues = orderBy(values, value => value.mediaIds.length, 'desc');\n\t\t}\n\t\treturn {\n\t\t\t...filterBucket,\n\t\t\tvalues\n\t\t};\n\t});\n};\n","var _rect, _rect2, _circle, _circle2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgShowroomFilterIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 25,\n viewBox: \"0 0 24 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 3,\n y: 8,\n width: 18,\n height: 2.25,\n rx: 1.125,\n fill: \"black\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 3,\n y: 14,\n width: 18,\n height: 2.25,\n rx: 1.125,\n fill: \"black\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16.125,\n cy: 9.125,\n r: 2.625,\n fill: \"black\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8.625,\n cy: 15.125,\n r: 2.625,\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgShowroomFilterIcon);\nexport default __webpack_public_path__ + \"static/media/showroomFilterIcon.d0cb49cb.svg\";\nexport { ForwardRef as ReactComponent };","import { grey } from '@material-ui/core/colors';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport type ShowroomMediaItemStylesProps = {\n\tlayerEnabled: boolean;\n};\n\nexport const showroomImageLabelHeight = 25;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tpreviewMediaGridImg: {\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tobjectFit: 'cover',\n\t\t\tcursor: (props: ShowroomMediaItemStylesProps) => (props.layerEnabled ? 'pointer' : 'default'),\n\t\t\tWebkitUserSelect: 'none',\n\t\t\tMozUserSelect: 'none',\n\t\t\tuserSelect: 'none',\n\t\t\tWebkitTouchCallout: 'none',\n\t\t\tWebkitTapHighlightColor: 'transparent'\n\t\t},\n\t\tcontainer: {\n\t\t\tposition: 'relative',\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\theight: '100%'\n\t\t},\n\t\tpreviewLabel: {\n\t\t\toverflow: 'hidden',\n\t\t\twidth: '100%',\n\t\t\theight: showroomImageLabelHeight,\n\t\t\tdisplay: 'flex'\n\t\t},\n\t\tlabel: {\n\t\t\twidth: '100%',\n\t\t\ttextOverflow: 'ellipsis',\n\t\t\tcolor: grey[600],\n\t\t\tfontSize: 13,\n\t\t\tlineHeight: '25px',\n\t\t\tfontWeight: 500\n\t\t}\n\t};\n});\n","import grey from '@material-ui/core/colors/grey';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nimport { showroomImageLabelHeight } from '../Content/MediaItem/styles';\n\nexport type ShowroomMediaActionsStylesProps = {\n\tdisplayLabel: boolean;\n};\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\twrapper: {\n\t\t\tposition: 'relative',\n\t\t\twidth: '100%',\n\t\t\theight: (props: ShowroomMediaActionsStylesProps) => (props.displayLabel ? `calc(100% - ${showroomImageLabelHeight}px)` : '100%'),\n\t\t\tpointerEvents: 'all'\n\t\t},\n\t\tmediaActionsWrapper: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tzIndex: 10,\n\t\t\tpadding: 10,\n\t\t\tcursor: 'pointer',\n\t\t\tpointerEvents: 'none',\n\t\t\tWebkitTapHighlightColor: 'transparent'\n\t\t},\n\t\tmediaActionsWrapperMobile: {\n\t\t\tpadding: '5px 5px'\n\t\t},\n\t\tmediaActionsInnerWrapper: {\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tposition: 'relative',\n\t\t\toverflow: 'hidden'\n\t\t},\n\t\tmediaActionsContainer: {\n\t\t\tposition: 'absolute',\n\t\t\tright: -60,\n\t\t\tpadding: 5,\n\t\t\theight: (props: ShowroomMediaActionsStylesProps) => (props.displayLabel ? `calc(100% - ${showroomImageLabelHeight}px)` : '100%'),\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'flex-start',\n\t\t\ttransition: 'all 0.2s'\n\t\t},\n\t\tactionButton: {\n\t\t\tpadding: 0,\n\n\t\t\t'&:hover': {\n\t\t\t\tbackground: 'none'\n\t\t\t}\n\t\t},\n\t\tactionButtonIcon: {\n\t\t\tcolor: grey[500]\n\t\t},\n\t\tactionButtonDownloadIcon: {\n\t\t\t'&:hover': {\n\t\t\t\tcolor: theme.palette.primary.main\n\t\t\t}\n\t\t},\n\t\tactionButtonDownloadIconActive: {\n\t\t\tcolor: theme.palette.primary.main\n\t\t},\n\t\tmediaActionsContainerVisible: {\n\t\t\tright: 0\n\t\t},\n\t\tactionsMenuDesktop: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\tpadding: '15px 5px',\n\t\t\twidth: 30,\n\t\t\talignItems: 'center',\n\t\t\tborderRadius: 100,\n\t\t\tpointerEvents: 'all',\n\t\t\tbackground: 'white',\n\t\t\tboxShadow: theme.custom.defaultBoxShadow\n\t\t},\n\t\tactionsMenuDivider: {\n\t\t\tmarginTop: 15,\n\t\t\tmarginBottom: 15,\n\t\t\twidth: 18\n\t\t},\n\t\tactionsMobileButton: {\n\t\t\tpointerEvents: 'all',\n\t\t\tpadding: 6\n\t\t},\n\t\tactionsMobileIcon: {\n\t\t\tcolor: 'white',\n\t\t\tfontSize: 23\n\t\t},\n\t\tzoomButtonContainer: {\n\t\t\tposition: 'absolute',\n\t\t\tbottom: -50,\n\t\t\twidth: '100%',\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\tpointerEvents: 'none',\n\t\t\ttransition: 'all 0.2s'\n\t\t},\n\t\tzoomButtonContainerDisplayed: {\n\t\t\tbottom: 0\n\t\t},\n\t\tzoomButton: {\n\t\t\tpointerEvents: 'all',\n\t\t\tbackground: 'black !important'\n\t\t},\n\t\tzoomButtonLabel: {\n\t\t\tcolor: 'white',\n\t\t\tfontSize: 24\n\t\t},\n\t\tsingleDownloadMenuPaper: {\n\t\t\tborderRadius: 4\n\t\t},\n\t\tsingleDownloadMenuList: {\n\t\t\tminWidth: 220\n\t\t},\n\t\tsingleDownloadMenuItem: {\n\t\t\tfontSize: 14,\n\t\t\tpadding: '15px 30px'\n\t\t},\n\t\tsingleDownloadMenuDivider: {\n\t\t\tmarginLeft: 30,\n\t\t\tmarginRight: 30\n\t\t},\n\t\ttooltip: {\n\t\t\tbackgroundColor: grey[700],\n\t\t\tcolor: 'white',\n\t\t\tpadding: 10,\n\t\t\tfontSize: 12,\n\t\t\tzIndex: 2000,\n\t\t\tborderRadius: 3,\n\n\t\t\t'&[x-placement*=\"right\"]': {\n\t\t\t\tleft: '15px !important'\n\t\t\t},\n\t\t\t'&[x-placement*=\"left\"]': {\n\t\t\t\tleft: '-15px !important'\n\t\t\t}\n\t\t},\n\t\tloader: {\n\t\t\tcolor: grey[500]\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport some from 'lodash/some';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { toggleSampleBasketMedia } from 'Apollo/Store/Showroom/UserView/Samples/Basket/resolvers';\nimport { openMediaMobileMenu } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport { Media, ShowroomMobileMenuType, useGetShowroomSamplesBasketQuery } from 'generated/graphql';\n\nimport { useTimeout } from 'lib/Hooks';\nimport { useDownloadSingleMedia } from 'lib/ShowroomSingleMediaDownload';\nimport { useIsShowroomDowloadOptionEnabled, useIsShowroomMobileVersion, useIsShowroomBasketEnabled, useGetCurrentShowroomData } from 'lib/showroom';\n\nimport { CircularProgress } from '@material-ui/core';\nimport Divider from '@material-ui/core/Divider';\nimport IconButton from '@material-ui/core/IconButton';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Popper from '@material-ui/core/Popper';\nimport MoreVertIcon from '@material-ui/icons/MoreVertOutlined';\nimport DownloadIcon from '@material-ui/icons/SaveAlt';\nimport SearchIcon from '@material-ui/icons/Search';\n\nimport { ReactComponent as AddToSamplesBasketIcon } from 'icons/addToSamplesBasket.svg';\nimport { ReactComponent as AddToSamplesBasketIconHovered } from 'icons/addToSamplesBasketHovered.svg';\nimport { ReactComponent as RemoveFromSamplesBasketIcon } from 'icons/removeFromSamplesBasket.svg';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tmedia: Media;\n\tchildren: JSX.Element;\n\tzoomButtonAction?(): void;\n\tdisplayLabel?: boolean;\n};\n\n// TODO: This component should be refactored to use the new ShowroomMediaActionsLayout\nconst ShowroomMediaActions = (props: ComponentProps) => {\n\tconst { media, children, displayLabel } = props;\n\tconst { zoomButtonAction } = props;\n\n\tconst showroom = useGetCurrentShowroomData();\n\tconst basketEnabled = useIsShowroomBasketEnabled();\n\tconst downloadEnabled = useIsShowroomDowloadOptionEnabled();\n\n\tconst classes = useStyles({ displayLabel });\n\tconst { t } = useTranslation();\n\tconst { run: runTimeout, clear: clearTimeout } = useTimeout();\n\tconst mobileVersion = useIsShowroomMobileVersion();\n\tconst [qualityOptions, downloadMedia, { loading: downloadMediaLoading }] = useDownloadSingleMedia(media, showroom as any);\n\n\tconst wrapperRef = React.useRef();\n\tconst actionsContainerRef = React.useRef();\n\n\tconst [tooltipProps, setTooltipProps] = React.useState<{ el: HTMLElement; text: string }>({ el: null, text: '' });\n\tconst clearTooltip = React.useCallback(() => setTooltipProps({ el: null, text: '' }), []);\n\n\tconst [menuAnchor, setMenuAnchor] = React.useState();\n\tconst closeMenu = React.useCallback(() => setMenuAnchor(null), []);\n\tconst [displayed, setDisplayed] = React.useState(false);\n\n\tconst mediaCloudinaryId = media.cloudinaryId;\n\tconst showMobileMediaMenu = React.useCallback(() => openMediaMobileMenu(media.id, ShowroomMobileMenuType.Section), [media.id]);\n\n\tconst isSamplesMedia = media.isSample;\n\tconst { data: samplesBasketData } = useGetShowroomSamplesBasketQuery({\n\t\tvariables: { showroomId: showroom.id },\n\t\tskip: !isSamplesMedia\n\t});\n\tconst [samplesIconHovered, setSamplesIconHovered] = React.useState(false);\n\tconst isSampleAdded = React.useMemo(\n\t\t() => isSamplesMedia && some(samplesBasketData?.showroomSamplesBasket, { id: media.id }),\n\t\t[samplesBasketData, media.id, isSamplesMedia]\n\t);\n\n\tconst onWrapperMouseEnter = React.useCallback(() => {\n\t\tsetDisplayed(true);\n\t}, []);\n\n\tconst onWrapperMouseLeave = React.useCallback(() => {\n\t\tsetDisplayed(false);\n\t\tclearTooltip();\n\t}, [clearTooltip]);\n\n\tconst downloadButton = React.useMemo(() => {\n\t\tif (!downloadEnabled) return null;\n\t\tif (downloadMediaLoading) return ;\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tsetMenuAnchor(ev.currentTarget);\n\t\t\t\t}}\n\t\t\t\tonMouseEnter={ev =>\n\t\t\t\t\tsetTooltipProps({\n\t\t\t\t\t\tel: ev.currentTarget,\n\t\t\t\t\t\ttext: t(`showroom.download.item.${media.mediaType.toLowerCase()}`)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tonMouseLeave={clearTooltip}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}, [classes, clearTooltip, downloadEnabled, downloadMediaLoading, media.mediaType, mediaCloudinaryId, menuAnchor, t]);\n\n\tconst addSampleButton = React.useMemo(() => {\n\t\tif (!basketEnabled || !isSamplesMedia) return null;\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tsetTooltipProps(prev => ({\n\t\t\t\t\t\tel: prev.el,\n\t\t\t\t\t\ttext: isSampleAdded ? t('showroom.samples.list.add') : t('showroom.samples.list.remove')\n\t\t\t\t\t}));\n\t\t\t\t\ttoggleSampleBasketMedia(showroom.tenant.uuid, showroom.id, media.id);\n\t\t\t\t}}\n\t\t\t\tonMouseEnter={ev => {\n\t\t\t\t\tsetSamplesIconHovered(true);\n\t\t\t\t\tsetTooltipProps({\n\t\t\t\t\t\tel: ev.currentTarget,\n\t\t\t\t\t\ttext: isSampleAdded ? t('showroom.samples.list.remove') : t('showroom.samples.list.add')\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={() => {\n\t\t\t\t\tsetSamplesIconHovered(false);\n\t\t\t\t\tclearTooltip();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{(() => {\n\t\t\t\t\tlet samplesIconId, SamplesIcon;\n\t\t\t\t\tif (isSampleAdded) {\n\t\t\t\t\t\tsamplesIconId = 'RemoveSampleIcon';\n\t\t\t\t\t\tSamplesIcon = RemoveFromSamplesBasketIcon;\n\t\t\t\t\t} else if (samplesIconHovered) {\n\t\t\t\t\t\tsamplesIconId = 'SamplesIconHovered';\n\t\t\t\t\t\tSamplesIcon = AddToSamplesBasketIconHovered;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsamplesIconId = 'AddSampleIcon';\n\t\t\t\t\t\tSamplesIcon = AddToSamplesBasketIcon;\n\t\t\t\t\t}\n\t\t\t\t\treturn ;\n\t\t\t\t})()}\n\t\t\t\n\t\t);\n\t}, [basketEnabled, classes, clearTooltip, isSampleAdded, isSamplesMedia, media.id, mediaCloudinaryId, samplesIconHovered, showroom, t]);\n\n\tconst actionsAvailable = !!downloadButton || !!addSampleButton;\n\n\tconst mediaActions = React.useMemo(() => {\n\t\tif (!actionsAvailable) return null;\n\t\tlet buttonsMenu;\n\t\tif (mobileVersion)\n\t\t\tbuttonsMenu = (\n\t\t\t\t {\n\t\t\t\t\t\tev.stopPropagation();\n\t\t\t\t\t\tshowMobileMediaMenu();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\telse {\n\t\t\tbuttonsMenu = (\n\t\t\t\t
\n\t\t\t\t\t{downloadButton}\n\t\t\t\t\t{downloadButton && addSampleButton ? : null}\n\t\t\t\t\t{addSampleButton}\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{buttonsMenu}\n\t\t\t
\n\t\t);\n\t}, [mobileVersion, mediaCloudinaryId, classes, showMobileMediaMenu, downloadButton, addSampleButton, displayed, actionsAvailable]);\n\n\t// Currently this button is focused on zoom action, but could be changed in a future to allow different actions besides zoom\n\tconst zoomButton = React.useMemo(() => {\n\t\tif (!zoomButtonAction || mobileVersion) return null;\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [mediaCloudinaryId, zoomButtonAction, mobileVersion, displayed]);\n\n\tconst singleDownloadMenu = React.useMemo(() => {\n\t\tif (mobileVersion || !downloadEnabled) return null;\n\t\treturn (\n\t\t\t\n\t\t\t\t{qualityOptions\n\t\t\t\t\t.map(({ label, value }, index) => [\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tdownloadMedia(value);\n\t\t\t\t\t\t\t\tcloseMenu();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t,\n\t\t\t\t\t\tindex !== qualityOptions.length - 1 ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null\n\t\t\t\t\t])\n\t\t\t\t\t.map(el => el)}\n\t\t\t\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [closeMenu, mediaCloudinaryId, menuAnchor, mobileVersion, qualityOptions, downloadMedia, downloadEnabled]);\n\n\tconst tooltip = React.useMemo(\n\t\t() => (\n\t\t\t\n\t\t\t\t
{tooltipProps.text}
\n\t\t\t\n\t\t),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[tooltipProps]\n\t);\n\n\treturn (\n\t\t ev.preventDefault()}\n\t\t\tonTouchStart={() => runTimeout(showMobileMediaMenu, 500)}\n\t\t\tonTouchEnd={() => {\n\t\t\t\tclearTimeout();\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{mediaActions}\n\t\t\t\t\t{zoomButton}\n\t\t\t\t
\n\t\t\t\n\t\t\t{children}\n\t\t\t{singleDownloadMenu}\n\t\t\t{tooltip}\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomMediaActions);\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\timageItem: {\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\tposition: 'relative'\n\t\t},\n\t\timageItemPortrait: {\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tobjectFit: 'contain'\n\t\t\t}\n\t\t},\n\t\tloader: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: '50%',\n\t\t\tleft: '50%',\n\t\t\tzIndex: 0\n\t\t},\n\t\tlinearOverlay: {\n\t\t\tposition: 'absolute',\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tbackground: 'linear-gradient(202.42deg, rgba(0, 0, 0, 0.12) -0.5%, rgba(0, 0, 0, 0) 24.05%)',\n\t\t\tzIndex: 2\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport { Image } from 'generated/graphql';\n\nimport { getImageUrl } from 'lib/cloudinary';\nimport { useIsShowroomBasketEnabled, useIsShowroomDowloadOptionEnabled, useIsShowroomMobileVersion } from 'lib/showroom';\n\nimport { CircularProgress } from '@material-ui/core';\n\nimport ShowroomMediaActions from '../../MediaActions';\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tfile: Image;\n\tindex: number;\n\timageStyle: string;\n\tposition: 'start' | 'center';\n};\n\nconst ShowroomLayerMedia = (props: ComponentProps) => {\n\tconst { file, index, imageStyle, position } = props;\n\n\tconst classes = useStyles();\n\tconst downloadEnabled = useIsShowroomDowloadOptionEnabled();\n\tconst basketEnabled = useIsShowroomBasketEnabled();\n\tconst isMobile = useIsShowroomMobileVersion();\n\n\tconst [loading, setLoading] = React.useState(true);\n\n\tconst imageUrl = getImageUrl(file.cloudinaryId, {\n\t\tquality: 'auto:good',\n\t\tversion: file.cloudinaryVersion.toString(),\n\t\tfetchFormat: 'auto',\n\t\twidth: 1000,\n\t\tcrop: 'scale'\n\t});\n\tconst isLandscape = file.width > file.height;\n\n\tconst mediaContent = React.useMemo(() => {\n\t\treturn (\n\t\t\t
\n\t\t\t\t ev.preventDefault()}\n\t\t\t\t\tonLoad={() => setLoading(false)}\n\t\t\t\t>\n\t\t\t\t{isMobile &&
}\n\t\t\t\t{loading && }\n\t\t\t
\n\t\t);\n\t}, [classes, position, file, index, imageStyle, isLandscape, imageUrl, loading, isMobile]);\n\n\treturn downloadEnabled || basketEnabled ? {mediaContent} : mediaContent;\n};\n\nexport default React.memo(ShowroomLayerMedia);\n","import ShowroomLayerMedia from './ShowroomLayerMedia';\n\nexport default ShowroomLayerMedia;\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport { borderGreyColor, secondaryMono1 } from 'Styles/theme';\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tfieldSection: {\n\t\t\tpaddingTop: 20,\n\t\t\tpaddingBottom: 20,\n\t\t\twidth: '100%',\n\t\t\tborderBottom: `1px solid ${borderGreyColor}`,\n\t\t\tfontSize: 14\n\t\t},\n\t\tsampleSection: {\n\t\t\twidth: '100%',\n\t\t\tfontSize: 14\n\t\t},\n\t\tproductTypeField: {\n\t\t\tcolor: secondaryMono1,\n\t\t\tlineHeight: '18px',\n\t\t\tfontWeight: 500,\n\t\t\tfontSize: 14\n\t\t},\n\t\tproductDecscriptionWrapper: {\n\t\t\t'& > :first-child': {\n\t\t\t\tmarginTop: 20\n\t\t\t}\n\t\t},\n\t\tfieldContainer: {\n\t\t\tpaddingBottom: 5\n\t\t},\n\t\tfieldValue: {\n\t\t\tfontWeight: 'bold'\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Image, TagRelationship, Video } from 'generated/graphql';\n\nimport { seasonYearFormat } from 'lib/media';\n\nimport Grid from '@material-ui/core/Grid';\n\nimport { FieldType } from 'components/Showroom/Editor/Steps/Sections/Details/Options/Click/ProductLayer/ShowroomEditorSectionProductLayerOption';\n\nimport { useStyles } from './styles';\n\nconst prices = ['retailPrices', 'salePrices', 'extraPrices', 'customsPrices'];\nconst commonFields = ['color', 'fabric', 'pattern', 'aspect'];\nconst productFields = [\n\t'barcode',\n\t'gender',\n\t'color',\n\t'fabric',\n\t'pattern',\n\t'type',\n\t'size',\n\t'sizeRange',\n\t'description',\n\t'sampleMadeIn',\n\t'styleNumber',\n\t'looks',\n\t'misc',\n\t'manufacturer'\n];\nconst descriptionFieldsNoColor = ['fabric', 'aspect', 'pattern', 'styles'];\n\ntype ComponentProps = {\n\tmedia: Image | Video;\n\tselectedGalleriesFields: string[];\n\tselectedSamplesFields: string[];\n};\n\nconst ProductDetails = (props: ComponentProps) => {\n\tconst { media, selectedGalleriesFields, selectedSamplesFields } = props;\n\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst displayableTags = React.useMemo(() => {\n\t\treturn media.tagRelationships.filter(\n\t\t\trel =>\n\t\t\t\trel.target.allowedRelationships?.length > 0 ||\n\t\t\t\trel.target.type === 'people_name' ||\n\t\t\t\trel.target.associatedTags?.map(tag => tag.key).includes('nature_product')\n\t\t);\n\t}, [media]);\n\n\tconst { locations, multiDesigner } = React.useMemo(() => {\n\t\treturn {\n\t\t\tlocations: media.tags\n\t\t\t\t.filter(tag => tag.type === 'LocationTag')\n\t\t\t\t.map(tag => tag.name)\n\t\t\t\t.join(', '),\n\t\t\tmultiDesigner: media.tags\n\t\t\t\t.filter(tag => tag.type === 'multi_designer')\n\t\t\t\t.map(tag => tag.name)\n\t\t\t\t.join(', ')\n\t\t};\n\t}, [media.tags]);\n\n\tconst isSampleLinked = React.useMemo(() => {\n\t\treturn media.tagRelationships.some(rel => rel.isSampleLinked);\n\t}, [media]);\n\n\tconst displayField = React.useCallback(\n\t\t(fieldKey, fieldValue, fieldType: FieldType) => {\n\t\t\tconst selectedFields = fieldType === 'galleries' ? selectedGalleriesFields : selectedSamplesFields;\n\t\t\tconst name = fieldType === 'galleries' ? t(`showroom.form.productLayer.galleriesFields.${fieldKey}`) : t(`samplesFields.${fieldKey}`);\n\t\t\tif (!selectedFields.includes(fieldKey) || !fieldValue) return;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{name} :{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{fieldValue}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t\t[classes, selectedGalleriesFields, selectedSamplesFields, t]\n\t);\n\n\tconst displaySampleFields = React.useCallback(\n\t\t(fields: string[]) => {\n\t\t\tif (!media?.sampleInfo) return;\n\t\t\tconst availableFields = fields.filter(field => selectedSamplesFields.includes(field) && media.sampleInfo[field]);\n\t\t\tif (availableFields.length === 0) return;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{availableFields.map(field => {\n\t\t\t\t\t\tif (prices.includes(field) && media.sampleInfo[field]) {\n\t\t\t\t\t\t\tconst priceWithValues = media.sampleInfo[field].filter(price => !!price.value);\n\t\t\t\t\t\t\tif (priceWithValues?.length > 0) {\n\t\t\t\t\t\t\t\tconst prices: string = priceWithValues.map(price => `${price.value}${price.currency}`).join(', ');\n\t\t\t\t\t\t\t\treturn displayField(field, prices, 'samples');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t} else if (field === 'looks') {\n\t\t\t\t\t\t\tconst value = media.sampleInfo[field].join(', ');\n\t\t\t\t\t\t\treturn displayField(field, value, 'samples');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn displayField(field, media.sampleInfo[field], 'samples');\n\t\t\t\t\t\t}\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t\t[media, classes, displayField, selectedSamplesFields]\n\t);\n\n\tconst handleDisplayCommonField = React.useCallback(\n\t\t(fieldKey: string, fieldValue: string, isSampleLinked: boolean) => {\n\t\t\tif (\n\t\t\t\t!media?.sampleInfo ||\n\t\t\t\t!isSampleLinked ||\n\t\t\t\t!selectedSamplesFields.includes(fieldKey) ||\n\t\t\t\t(selectedGalleriesFields.includes(fieldKey) && fieldValue)\n\t\t\t)\n\t\t\t\treturn displayField(fieldKey, fieldValue, 'galleries');\n\t\t\telse return displayField(fieldKey, media?.sampleInfo[fieldKey], 'samples');\n\t\t},\n\t\t[media, displayField, selectedGalleriesFields, selectedSamplesFields]\n\t);\n\n\tconst joinDescriptionTag = React.useCallback((relationship: TagRelationship, type: string): string => {\n\t\treturn relationship.relations\n\t\t\t.filter(tag => tag.type === type)\n\t\t\t.map(tag => tag.name)\n\t\t\t.join(', ');\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{selectedGalleriesFields.includes('library')\n\t\t\t\t\t? displayField('library', media.library?.name, 'galleries')\n\t\t\t\t\t: displaySampleFields(['designer'])}\n\t\t\t\t{displayField('multiDesigner', multiDesigner, 'galleries')}\n\t\t\t\t{handleDisplayCommonField('season', media.libraryFolders?.season?.name, true)}\n\t\t\t\t{handleDisplayCommonField('collection', media.libraryFolders?.collection?.name, true)}\n\t\t\t\t{displayField('seasonYear', seasonYearFormat(media?.seasonYear), 'galleries')}\n\t\t\t\t{displayField('location', locations, 'galleries')}\n\t\t\t\t{displaySampleFields(['department'])}\n\t\t\t\n\t\t\t{selectedGalleriesFields.includes('product') &&\n\t\t\t\tdisplayableTags.map(relationship => {\n\t\t\t\t\t// Since colors have subcategories we need to check on the parent too\n\t\t\t\t\tconst colorTags = relationship.relations.filter(\n\t\t\t\t\t\t({ type, parent: { type: parentType } }) => type === 'color' || parentType === 'color'\n\t\t\t\t\t);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{relationship.target.name.toUpperCase()}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{handleDisplayCommonField('color', colorTags.map(tag => tag.name).join(', '), relationship.isSampleLinked)}\n\t\t\t\t\t\t\t\t{descriptionFieldsNoColor.map(field =>\n\t\t\t\t\t\t\t\t\thandleDisplayCommonField(field, joinDescriptionTag(relationship, field), relationship.isSampleLinked)\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{relationship.isSampleLinked && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{displaySampleFields([...productFields.filter(field => !commonFields.includes(field)), ...prices])}\n\t\t\t\t\t\t\t\t\t\t{displaySampleFields(['vendor', 'vendorCode', 'vendorDate'])}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t{media.isSample && !isSampleLinked && (\n\t\t\t\t\n\t\t\t\t\t{selectedSamplesFields.includes('sampleType') && media?.sampleInfo?.sampleType && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{media.sampleInfo.sampleType.toUpperCase()}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t\t{displaySampleFields([...productFields, ...prices])}\n\t\t\t\t\t\t{displaySampleFields(['vendor', 'vendorCode', 'vendorDate'])}{' '}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default React.memo(ProductDetails);\n","import ShowroomProductDetails from './ShowroomProductDetails';\n\nexport default ShowroomProductDetails;\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\ntype StyleProps = {\n\tisMobileVersion: boolean;\n};\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tlayerContainer: {\n\t\t\twidth: '100%',\n\t\t\tjustifyContent: 'left',\n\t\t\tdisplay: 'flex',\n\t\t\toverflow: 'auto'\n\t\t},\n\t\timageContainer: {\n\t\t\twidth: (props: StyleProps) => (props.isMobileVersion ? '100%' : '50%'),\n\t\t\tpadding: (props: StyleProps) => (props.isMobileVersion ? 0 : 50),\n\t\t\theight: '100%',\n\t\t\tdisplay: 'flex'\n\t\t},\n\t\tdetailContainer: {\n\t\t\twidth: (props: StyleProps) => (props.isMobileVersion ? '100%' : '50%'),\n\t\t\theight: '100%',\n\t\t\tpadding: (props: StyleProps) => (props.isMobileVersion ? 20 : 50),\n\t\t\tjustifyContent: 'left'\n\t\t},\n\t\tmediaLabel: {\n\t\t\toverflowWrap: 'break-word',\n\t\t\twidth: '100%',\n\t\t\tmarginTop: 0\n\t\t},\n\t\tfieldContainer: {\n\t\t\tpaddingBottom: 5\n\t\t},\n\t\tfieldValue: {\n\t\t\tfontWeight: 'bold'\n\t\t},\n\t\timageItemImg: {\n\t\t\tmaxHeight: '100%',\n\t\t\tmaxWidth: '100%',\n\t\t\talignContent: 'start',\n\t\t\tobjectFit: 'contain',\n\t\t\tWebkitUserSelect: 'none',\n\t\t\tMozUserSelect: 'none',\n\t\t\tuserSelect: 'none',\n\t\t\tWebkitTouchCallout: 'none'\n\t\t},\n\t\tloading: {\n\t\t\tmarginTop: 10\n\t\t},\n\t\tglobalDescription: {\n\t\t\twhiteSpace: 'pre-line'\n\t\t}\n\t};\n});\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Image, ShowroomSectionOptions, useGetShowroomMediaQuery, Video } from 'generated/graphql';\n\nimport { useIsShowroomMobileVersion } from 'lib/showroom';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\n\nimport { ShowroomContext } from 'context/showroom/ShowroomContext';\n\nimport ShowroomLayerMedia from 'components/Showroom/Layer/Media';\n\nimport ShowroomProductDetails from './ProductDetails';\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tsectionOptions: ShowroomSectionOptions;\n\tfile: Image;\n\tindex: number;\n};\n\nconst ShowroomProductLayer = (props: ComponentProps) => {\n\tconst { file, index, sectionOptions } = props;\n\n\tconst isMobileVersion = useIsShowroomMobileVersion();\n\tconst classes = useStyles({ isMobileVersion });\n\tconst { t } = useTranslation();\n\n\tconst { getParams } = React.useContext(ShowroomContext);\n\n\tconst { data, loading, error } = useGetShowroomMediaQuery({\n\t\tvariables: {\n\t\t\tparams: getParams,\n\t\t\tmediaId: file.id\n\t\t}\n\t});\n\n\tconst showroomMedia = React.useMemo(() => (!!data ? data.showroomMedia : null), [data]);\n\tconst selectedFields = React.useMemo(() => {\n\t\tif (!showroomMedia) return [];\n\t\telse return [...sectionOptions.productLayerSettings.samplesFields, ...sectionOptions.productLayerSettings.galleriesFields];\n\t}, [sectionOptions, showroomMedia]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{sectionOptions.productLayerSettings?.galleriesFields?.includes('name') && (\n\t\t\t\t\t

\n\t\t\t\t\t\t{file.name}\n\t\t\t\t\t

\n\t\t\t\t)}\n\t\t\t\t{selectedFields.includes('globalDescription') && (\n\t\t\t\t\t\n\t\t\t\t\t\t{file.globalDescription}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{loading ? (\n\t\t\t\t\t\n\t\t\t\t) : error ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{t('showroom.form.productLayer.errorMessage')}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomProductLayer);\n","import ShowroomProductLayer from './ShowroomProductLayer';\n\nexport default ShowroomProductLayer;\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\timageItemCard: {\n\t\t\tdisplay: 'flex',\n\t\t\twidth: '100%',\n\t\t\tposition: 'relative',\n\t\t\tborderRadius: 0,\n\t\t\tbackgroundColor: 'black'\n\t\t},\n\t\timageItemCardContent: {\n\t\t\tposition: 'absolute',\n\t\t\tbottom: 0,\n\t\t\twidth: '100%',\n\t\t\tbackgroundColor: 'rgb(255,255,255,0.1)'\n\t\t},\n\t\timageItem: {\n\t\t\tbackgroundColor: 'black',\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\ttextAlign: 'center'\n\t\t},\n\t\timageItemImg: {\n\t\t\tmaxWidth: '100%',\n\t\t\tmaxHeight: '100%',\n\t\t\twidth: '100%',\n\t\t\tobjectFit: 'contain',\n\t\t\tWebkitUserSelect: 'none',\n\t\t\tMozUserSelect: 'none',\n\t\t\tuserSelect: 'none',\n\t\t\tWebkitTouchCallout: 'none'\n\t\t},\n\t\timageItemPortrait: {\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tobjectFit: 'cover'\n\t\t\t}\n\t\t}\n\t};\n});\n","import React from 'react';\n\nimport { Image } from 'generated/graphql';\n\nimport Card from '@material-ui/core/Card';\n\nimport ShowroomLayerMedia from 'components/Showroom/Layer/Media';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tfile: Image;\n\tindex: number;\n};\n\nconst ShowroomZoom = (props: ComponentProps) => {\n\tconst { file, index } = props;\n\n\tconst classes = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomZoom);\n","import grey from '@material-ui/core/colors/grey';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tshowroomGridItemLabel: {\n\t\t\toverflow: 'hidden',\n\t\t\theight: 18,\n\t\t\tcolor: '#FFF'\n\t\t},\n\t\tshowroomDialogAppBar: {\n\t\t\tposition: 'relative'\n\t\t},\n\t\tdialogContent: {\n\t\t\tpadding: 0,\n\t\t\theight: 'calc(100vh - 50px)',\n\t\t\tposition: 'relative',\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\theight: 'calc(100vh - 36px)'\n\t\t\t}\n\t\t},\n\t\tshowroomDialogTitle: {\n\t\t\tpaddingBottom: 0,\n\t\t\tmarginLeft: 20,\n\t\t\tflex: 1\n\t\t},\n\t\tshowroomDialogBackButton: {\n\t\t\tfontSize: 18\n\t\t},\n\t\tshowroomDialogCloseButton: {\n\t\t\tbackground: 'black !important',\n\t\t\tborderRadius: 0,\n\t\t\tcolor: '#FFF'\n\t\t},\n\t\tdialogTitle: {\n\t\t\tpadding: 0\n\t\t},\n\t\tzoomToolbar: {\n\t\t\tminHeight: 50,\n\t\t\tpaddingLeft: 55,\n\t\t\tpaddingRight: 0,\n\t\t\ttransform: 'none',\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tminHeight: 36,\n\t\t\t\tpaddingLeft: 0\n\t\t\t}\n\t\t},\n\t\tzoomLogo: {\n\t\t\tmarginRight: 10,\n\t\t\tmarginLeft: 10\n\t\t},\n\t\tfullLogo: {\n\t\t\tflexGrow: 1,\n\t\t\tmarginRight: 0\n\t\t},\n\t\tzoomLogoImg: {\n\t\t\twidth: 115,\n\t\t\theight: 45,\n\t\t\tobjectFit: 'contain',\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\theight: 30\n\t\t\t}\n\t\t},\n\t\tshowroomZoomArrowIcon: {\n\t\t\tfontSize: 20,\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tfontSize: 11\n\t\t\t}\n\t\t},\n\t\tshowroomZoomCloseIcon: {\n\t\t\tfontSize: 26,\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tfontSize: 12\n\t\t\t}\n\t\t},\n\t\tcurrentImageLabel: {\n\t\t\tfontSize: 16,\n\t\t\tfontWeight: 'bold',\n\t\t\tflexGrow: 1,\n\t\t\toverflow: 'hidden',\n\t\t\ttextOverflow: 'ellipsis',\n\t\t\twhiteSpace: 'nowrap'\n\t\t},\n\t\tshowroomZoomArrowButton: {\n\t\t\tcolor: 'black',\n\t\t\talignSelf: 'stretch',\n\t\t\tbackground: grey[200],\n\t\t\tborderRadius: 0\n\t\t},\n\t\tpreviewHeader: {\n\t\t\tbackground: 'white',\n\t\t\tboxShadow: 'none'\n\t\t},\n\t\tpreviewHeaderResponsive: {\n\t\t\tpadding: '0 10px 0'\n\t\t},\n\t\tswipeableWrapper: {\n\t\t\theight: '100%',\n\t\t\twidth: '100%',\n\t\t\tposition: 'absolute'\n\t\t},\n\t\tswipeableSlide: {\n\t\t\tdisplay: 'flex',\n\t\t\theight: '100%',\n\t\t\twidth: '100%'\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport isUndefined from 'lodash/isUndefined';\nimport React from 'react';\nimport SwipeableViews from 'react-swipeable-views';\nimport { bindKeyboard, virtualize } from 'react-swipeable-views-utils';\n\nimport { Image, ShowroomSectionOptions } from 'generated/graphql';\n\nimport { getImageUrl, getVersion } from 'lib/cloudinary';\nimport { useGetCurrentShowroomData } from 'lib/showroom';\n\nimport AppBar from '@material-ui/core/AppBar';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport IconButton from '@material-ui/core/IconButton';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\nimport ClearIcon from '@material-ui/icons/Clear';\n\nimport ShowroomProductLayer from './Product';\nimport ShowroomZoom from './Zoom';\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tsectionOptions: ShowroomSectionOptions;\n\timageFiles: Image[];\n\topen: boolean;\n\tshowLabel: boolean;\n\tinitialIndex?: number;\n\tonImageChange?(id: string): void;\n\tonClose(): void;\n};\n\nconst VirtualizedSwipeableViews = bindKeyboard(virtualize(SwipeableViews));\n\nconst ShowroomLayer = (props: ComponentProps) => {\n\tconst { sectionOptions, imageFiles, open, showLabel, initialIndex, onImageChange, onClose } = props;\n\n\tconst classes = useStyles();\n\n\tconst [currentImage, setCurrentImage] = React.useState(0);\n\tconst showroom = useGetCurrentShowroomData();\n\n\tconst logo = showroom.library?.logo;\n\n\tconst showroomLogo = React.useMemo(\n\t\t() =>\n\t\t\tlogo?.publicId && logo?.publicUrl\n\t\t\t\t? getImageUrl(logo.publicId, {\n\t\t\t\t\t\twidth: 315,\n\t\t\t\t\t\tcrop: 'scale',\n\t\t\t\t\t\tversion: getVersion(logo.publicUrl)\n\t\t\t\t })\n\t\t\t\t: `${process.env.PUBLIC_URL}/logo.svg`,\n\t\t[logo]\n\t);\n\n\tReact.useEffect(() => {\n\t\tif (!isUndefined(initialIndex) && open) setCurrentImage(initialIndex);\n\t}, [initialIndex, open]);\n\n\tconst handlePrev = React.useCallback(() => {\n\t\tconst index = currentImage === 0 ? imageFiles.length - 1 : currentImage - 1;\n\t\tsetCurrentImage(index);\n\t\tif (onImageChange) onImageChange(imageFiles[index].cloudinaryId);\n\t}, [currentImage, imageFiles, onImageChange]);\n\n\tconst handleNext = React.useCallback(() => {\n\t\tconst index = currentImage === imageFiles.length - 1 ? 0 : currentImage + 1;\n\t\tsetCurrentImage(index);\n\t\tif (onImageChange) onImageChange(imageFiles[index].cloudinaryId);\n\t}, [currentImage, imageFiles, onImageChange]);\n\n\tconst onExitedHanlder = React.useCallback(() => {\n\t\tsetCurrentImage(0);\n\t}, []);\n\n\tconst imageLayerRenderer = React.useCallback(\n\t\t({ index }) => {\n\t\t\tconst key = `showroomSwipeableView_${imageFiles[index]?.id}`;\n\t\t\tif (sectionOptions.zoomLayer) return ;\n\t\t\telse if (sectionOptions.productLayer)\n\t\t\t\treturn ;\n\t\t\telse return null;\n\t\t},\n\t\t[imageFiles, sectionOptions]\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{showLabel && imageFiles[currentImage] ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{imageFiles[currentImage].name}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetCurrentImage(index);\n\t\t\t\t\t\tif (onImageChange) onImageChange(imageFiles[index]?.cloudinaryId);\n\t\t\t\t\t}}\n\t\t\t\t\tslideCount={imageFiles.length}\n\t\t\t\t\tclassName={classes.swipeableWrapper}\n\t\t\t\t\tcontainerStyle={{ height: '100%', alignItems: 'center' }}\n\t\t\t\t\tslideClassName={classes.swipeableSlide}\n\t\t\t\t\tslideRenderer={imageLayerRenderer}\n\t\t\t\t/>\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomLayer);\n","import ShowroomLayer from './ShowroomLayer';\n\nexport default ShowroomLayer;\n","import { grey } from '@material-ui/core/colors';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\ntype PictureStyleProps = {\n\tclickable: boolean;\n};\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tpictureBox: {\n\t\t\tposition: 'relative',\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tminHeight: 0,\n\t\t\tcursor: (props: PictureStyleProps) => (props.clickable ? 'pointer' : null)\n\t\t},\n\t\tpreviewLabel: {\n\t\t\toverflow: 'hidden',\n\t\t\twidth: '100%',\n\t\t\theight: 30\n\t\t},\n\t\tlabel: {\n\t\t\tcolor: grey[600],\n\t\t\tfontSize: 13,\n\t\t\tfontWeight: 500\n\t\t}\n\t};\n});\n","import chroma from 'chroma-js';\nimport { Transformation } from 'cloudinary-core';\nimport React, { ImgHTMLAttributes } from 'react';\n\nimport { Image, Pdf } from 'generated/graphql';\n\nimport { ImageSizeValues } from 'lib/mediaThresholds';\n\nimport MediaImage from '../MediaImage';\nimport { useStyles, Theme } from './styles';\n\nconst colors = chroma.scale(['#F4EAE1', '#EBE8E6', '#DEAB86']).mode('lch').colors(20);\n\nexport type ComponentProps = {\n\timage: Image | Pdf;\n\tclassName?: string;\n\timageOptions?: Transformation.Options;\n\tsizes?: ImageSizeValues;\n\tonClick?(): void;\n\tlabel?: string;\n\tattributes?: Omit, 'className' | 'src' | 'onLoad' | 'srcSet' | 'sizes' | 'onClick'>;\n};\n\nconst ShowroomImage = ({ image, sizes, onClick = null, attributes, label = '', className }: ComponentProps) => {\n\tconst color = React.useMemo(() => colors[Math.floor(Math.random() * 19)], []);\n\tconst classes = useStyles({ clickable: !!onClick });\n\n\tconst theme = Theme();\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomImage);\n","import ShowroomImage from './ShowroomImage';\n\nexport default ShowroomImage;\n","import React from 'react';\n\nimport { MediaInfoFragment } from 'generated/graphql';\n\nimport { isImage, isPdf, isVideo } from 'lib/media';\nimport { useIsShowroomMobileVersion } from 'lib/showroom';\n\nimport Typography from '@material-ui/core/Typography';\n\nimport ShowroomImage from 'components/Common/ShowroomImage';\nimport { ComponentProps as PictureProps } from 'components/Common/ShowroomImage/ShowroomImage';\nimport VideoPlayer from 'components/Common/VideoPlayer';\nimport ShowroomMediaActions from 'components/Showroom/MediaActions';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tmedia: MediaInfoFragment;\n\tdisplayLabel: boolean;\n\tlayerEnabled: boolean;\n\tonMediaAction(cloudinaryId: string, type: 'image' | 'video'): void;\n\timageProps?: Partial;\n};\n\nconst ShowroomMediaItem = (props: ComponentProps) => {\n\tconst { media, displayLabel, layerEnabled, imageProps } = props;\n\tconst { onMediaAction } = props;\n\n\tconst classes = useStyles({ layerEnabled });\n\tconst isMobileVersion = useIsShowroomMobileVersion();\n\n\tconst mediaActionHandler = React.useCallback(() => {\n\t\tonMediaAction(media.cloudinaryId, !isVideo(media) ? 'image' : 'video');\n\t}, [media, onMediaAction]);\n\n\tconst labelComponent = React.useMemo(() => {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{media.name}\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}, [classes, media]);\n\n\tconst mediaContent =\n\t\tisImage(media) || isPdf(media) ? (\n\t\t\t ev.preventDefault()\n\t\t\t\t}}\n\t\t\t\t{...imageProps}\n\t\t\t/>\n\t\t) : (\n\t\t\t\n\t\t);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{mediaContent}\n\t\t\t\n\t\t\t{displayLabel && labelComponent}\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomMediaItem);\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport { borderGreyColor, secondaryMono1 } from 'Styles/theme';\n\nexport const useStyles = makeStyles(() => {\n\treturn {\n\t\tfilterTreeContainer: {\n\t\t\twidth: '100%'\n\t\t},\n\t\tfilterHeader: {\n\t\t\tdisplay: 'flex',\n\t\t\tcursor: 'pointer'\n\t\t},\n\t\tfilterTitle: {\n\t\t\tdisplay: 'flex',\n\t\t\tflex: 1,\n\t\t\tfontSize: 16,\n\t\t\tfontWeight: 500,\n\t\t\ttextTransform: 'uppercase'\n\t\t},\n\t\tcollapseIcon: { fontSize: 24 },\n\t\tfilterValuesContainer: {\n\t\t\tmarginTop: 10\n\t\t},\n\t\tfilterValueBox: { minHeight: 38 },\n\t\tfilterValueLabelRoot: {\n\t\t\tmarginRight: 7,\n\t\t\tmarginLeft: -7,\n\t\t\tflex: 1\n\t\t},\n\t\tfilterValueLabel: {\n\t\t\tdisplay: 'flex',\n\t\t\tflex: 1,\n\t\t\tjustifyContent: 'space-between'\n\t\t},\n\t\tfilterValueLabelText: {\n\t\t\tfontSize: 13\n\t\t},\n\t\tfilterValueLabelParent: {\n\t\t\tfontWeight: 600\n\t\t},\n\t\tfilterValueLabelCounter: {\n\t\t\tcolor: secondaryMono1\n\t\t},\n\t\tfilterValueCheckboxRoot: {\n\t\t\tpadding: 5,\n\t\t\tmarginRight: 5\n\t\t},\n\t\tfilterValueCheckBoxIcon: {\n\t\t\tfontSize: 20\n\t\t},\n\t\tchildDivider: {\n\t\t\tbackgroundColor: borderGreyColor\n\t\t},\n\t\tshowMoreButton: {\n\t\t\tjustifyContent: 'flex-start',\n\t\t\tpadding: 0,\n\t\t\tmarginTop: 10,\n\t\t\t'&:hover': {\n\t\t\t\tbackground: 'none'\n\t\t\t}\n\t\t},\n\t\tshowMoreButtonLabel: {\n\t\t\tfontSize: 13,\n\t\t\tfontWeight: 400,\n\t\t\tcolor: secondaryMono1\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport isEmpty from 'lodash/isEmpty';\nimport some from 'lodash/some';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ShowroomFilterTree, ShowroomFilterTreeValue } from 'Types/showroom';\n\nimport Button from '@material-ui/core/Button';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Collapse from '@material-ui/core/Collapse';\nimport Divider from '@material-ui/core/Divider';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport Typography from '@material-ui/core/Typography';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport IndeterminateCheckBoxIcon from '@material-ui/icons/IndeterminateCheckBox';\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\ttree: ShowroomFilterTree;\n\tselectedFilters: string[];\n\tmaxInitialItems?: number;\n\tonFilterToggle(value: ShowroomFilterTreeValue): void;\n};\n\nconst ShowroomContentFilterTree = (props: ComponentProps) => {\n\tconst { tree, selectedFilters, maxInitialItems = 10, onFilterToggle } = props;\n\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst [open, setOpen] = React.useState(false);\n\tconst [viewAll, setViewAll] = React.useState(false);\n\n\tconst buttonClasses = React.useMemo(() => ({ root: classes.collapseIcon }), [classes.collapseIcon]);\n\n\tconst onClickHandler: React.MouseEventHandler = React.useCallback(() => {\n\t\tsetOpen(prev => !prev);\n\t}, []);\n\tconst onShowMoreHandler: React.MouseEventHandler = React.useCallback(() => {\n\t\tsetViewAll(prev => !prev);\n\t}, []);\n\n\tconst renderChild = React.useCallback(\n\t\t(child: ShowroomFilterTreeValue, addDivider: boolean) => {\n\t\t\tlet checkStatus: 'none' | 'checked' | 'affected';\n\t\t\tif (selectedFilters.includes(child.value.id)) checkStatus = 'checked';\n\t\t\telse if (\n\t\t\t\tsome(selectedFilters, selectedFilter => !isEmpty(child.childs) && !isEmpty(selectedFilter.match(new RegExp(`^${child.value.id}`))))\n\t\t\t)\n\t\t\t\tcheckStatus = 'affected';\n\t\t\telse checkStatus = 'none';\n\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t onFilterToggle(child)}\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\ticon={}\n\t\t\t\t\t\t\t\t\tindeterminateIcon={}\n\t\t\t\t\t\t\t\t\tcheckedIcon={}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclasses={{ root: classes.filterValueLabelRoot, label: classes.filterValueLabel }}\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{child.value.value}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{child.value.mediaIds.length}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{addDivider && }\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t\t[classes, onFilterToggle, selectedFilters]\n\t);\n\n\tconst [firstChilds, showMoreChilds, totalTreeItems] = React.useMemo(() => {\n\t\tlet renderedElements = [];\n\t\tconst renderElements = (childs: ShowroomFilterTreeValue[], lastParent = false) => {\n\t\t\tchilds.forEach((child, index, arr) => {\n\t\t\t\tconst lastChild = index === arr.length - 1;\n\t\t\t\trenderedElements.push(renderChild(child, child.parent !== null && lastChild && !lastParent));\n\t\t\t\trenderElements(child.childs, lastChild);\n\t\t\t});\n\t\t};\n\t\trenderElements(tree.childs);\n\t\tconst firstChilds = renderedElements.slice(0, maxInitialItems);\n\t\tconst showMoreChilds = renderedElements.slice(maxInitialItems);\n\t\treturn [firstChilds, showMoreChilds, renderedElements.length];\n\t}, [maxInitialItems, renderChild, tree.childs]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{tree.name.replace('samples_', '').replace('sampleType', 'type')}\n\t\t\t\t\n\t\t\t\t{open ? : }\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{firstChilds}\n\t\t\t\t\t{!isEmpty(showMoreChilds) && {showMoreChilds}}\n\t\t\t\t
\n\t\t\t\t{totalTreeItems > maxInitialItems && (\n\t\t\t\t\t : }\n\t\t\t\t\t>\n\t\t\t\t\t\t{viewAll ? t('showroom.sectionFilters.showLess') : t('showroom.sectionFilters.showMore')}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomContentFilterTree);\n","import { grey } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport type FilterLayoutStyleProps = {\n\ttopOffset: number;\n\tfileTreeMaxHeight: number;\n};\n\nexport const useStyles = makeStyles(() => {\n\treturn {\n\t\tshowroomFilterTreeInnerWrapper: {\n\t\t\tpaddingBottom: 20\n\t\t},\n\t\ttreeDivider: {\n\t\t\tmarginTop: 24,\n\t\t\tmarginBottom: 24,\n\t\t\tbackgroundColor: grey[200]\n\t\t}\n\t};\n});\n","import React from 'react';\n\nimport { ShowroomFilterTree, ShowroomFilterTreeValue } from 'Types/showroom';\n\nimport { useIsShowroomUserView } from 'lib/showroom';\n\nimport Divider from '@material-ui/core/Divider';\n\nimport { HEADER_HEIGHT } from 'components/Showroom/Content/Header/styles';\nimport { SHOWROOM_LAYOUT_HEADER_HEIGHT } from 'components/Showroom/Layout/styles';\n\nimport ShowroomContentFilterTree from '../FilterTree';\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tselectedFilters: string[];\n\tsortedFilters: ShowroomFilterTree[];\n\tonFilterToggle(value: ShowroomFilterTreeValue): void;\n\tcontainerHeight: number;\n};\n\nconst ShowroomFilterTreeContainer = (props: ComponentProps) => {\n\tconst { selectedFilters, sortedFilters, onFilterToggle, containerHeight } = props;\n\n\tconst isUserView = useIsShowroomUserView();\n\n\tconst topOffset = isUserView ? HEADER_HEIGHT : HEADER_HEIGHT + SHOWROOM_LAYOUT_HEADER_HEIGHT;\n\tconst classes = useStyles({ fileTreeMaxHeight: containerHeight, topOffset });\n\n\treturn (\n\t\t
\n\t\t\t{sortedFilters.map((filterTree, index, arr) => (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{index !== arr.length - 1 && }\n\t\t\t\t\n\t\t\t))}\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomFilterTreeContainer);\n","import ShowroomFilterTreeContainer from './ShowroomFilterTreeContainer';\n\nexport default ShowroomFilterTreeContainer;\n","import { grey } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tmodal: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: 50,\n\t\t\tpadding: '30px 20px 20px 20px',\n\t\t\theight: '100%'\n\t\t},\n\t\ttitle: {\n\t\t\tmarginBottom: 25,\n\t\t\talignItems: 'center',\n\t\t\tfontSize: 22\n\t\t},\n\t\tfilterIcon: {\n\t\t\tmarginRight: 10\n\t\t},\n\t\tcloseIcon: {\n\t\t\tcolor: grey[600],\n\t\t\tfontSize: 18,\n\t\t\tmarginLeft: 'auto',\n\t\t\tcursor: 'pointer'\n\t\t},\n\t\tloadingContainer: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: '50%',\n\t\t\tleft: '50%',\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\talignItems: 'center'\n\t\t},\n\t\tfilterContainer: {\n\t\t\tpaddingBottom: 20\n\t\t}\n\t};\n});\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { CircularProgress, Drawer, Grid } from '@material-ui/core';\nimport CancelRoundedIcon from '@material-ui/icons/CancelRounded';\n\nimport { ReactComponent as ShowroomFilterIcon } from 'icons/showroomFilterIcon.svg';\n\nimport ShowroomFilterTreeContainer, { ComponentProps } from '../FilterTreeContainer/ShowroomFilterTreeContainer';\nimport { useStyles } from './styles';\n\nexport type MobileComponentProps = ComponentProps & {\n\tonClose: () => void;\n\tloading: boolean;\n\topen: boolean;\n};\n\nconst ShowroomMobileFilters = (props: MobileComponentProps) => {\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\tconst { onClose, loading, open, ...filterProps } = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
{t('showroom.filter.button.label.mobile')}
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{loading ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomMobileFilters);\n","import ShowroomMobileFilters from './ShowroomMobileFilters';\n\nexport default ShowroomMobileFilters;\n","import { makeStyles } from '@material-ui/core/styles';\n\nexport type FilterLayoutStyleProps = {\n\ttopOffset: number;\n\tfileTreeMaxHeight: number;\n};\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tshowroomFiltersContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'flex-start',\n\t\t\tmargin: '3.33% 3.5% 0 3.5%'\n\t\t},\n\t\tshowroomFilterTreeContainerWebkit: {\n\t\t\tposition: '-webkit-sticky'\n\t\t},\n\t\tshowroomFilterTreeContainer: {\n\t\t\twidth: 300,\n\t\t\tmarginRight: 35,\n\t\t\tpaddingRight: 15,\n\t\t\tpaddingLeft: 15,\n\t\t\tmarginLeft: -15,\n\t\t\tposition: 'sticky',\n\t\t\ttop: (props: FilterLayoutStyleProps) => props.topOffset,\n\t\t\toverflow: 'hidden auto',\n\t\t\tmaxHeight: (props: FilterLayoutStyleProps) => props.fileTreeMaxHeight\n\t\t},\n\t\tshowroomFilterTreeInnerWrapper: {\n\t\t\tpaddingBottom: 20\n\t\t},\n\t\tshowroomResultsContainer: {\n\t\t\tposition: 'relative',\n\t\t\tmarginTop: -7,\n\t\t\tflex: 1\n\t\t},\n\t\trefreshOverlay: {\n\t\t\tdisplay: 'block',\n\t\t\tposition: 'absolute',\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tbackgroundColor: 'rgba(255,255,255, 0.7)',\n\t\t\tzIndex: 2,\n\t\t\tpointerEvents: 'none',\n\t\t\topacity: 0,\n\t\t\ttransition: 'opacity 0.2s'\n\t\t},\n\t\trefreshOverlayActive: {\n\t\t\tpointerEvents: 'all',\n\t\t\topacity: 1,\n\t\t\tzIndex: 20\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport React from 'react';\nimport InfiniteScroll from 'react-infinite-scroller';\n\nimport { MediaInfoFragment } from 'generated/graphql';\n\nimport { ShowroomFilterTree, ShowroomFilterTreeValue } from 'Types/showroom';\n\nimport { imageSizes, ImageSizeValues } from 'lib/mediaThresholds';\nimport { useGetShowroomScrollElement, useIsShowroomMobileVersion, useIsShowroomUserView, useSortShowroomFilterTrees } from 'lib/showroom';\n\nimport Slide from '@material-ui/core/Slide';\n\nimport FlexLayout from 'components/Common/FlexLayout';\nimport { RenderFlexElementFn } from 'components/Common/FlexLayout/FlexLayout';\nimport { HEADER_HEIGHT } from 'components/Showroom/Content/Header/styles';\nimport { showroomImageLabelHeight } from 'components/Showroom/Content/MediaItem/styles';\nimport { SHOWROOM_LAYOUT_HEADER_HEIGHT } from 'components/Showroom/Layout/styles';\n\nimport ShowroomFilterTreeContainer from '../Filters/FilterTreeContainer';\nimport ShowroomMobileFilters from './MobileFilters';\nimport { useStyles } from './styles';\n\nexport type RenderItemFn = (item: MediaInfoFragment, sizes: ImageSizeValues) => React.ReactElement;\n\nexport type ComponentProps = {\n\tfilters: ShowroomFilterTree[];\n\titems: MediaInfoFragment[];\n\ttotalItems: number;\n\tselectedFilters: string[];\n\trefreshing: boolean;\n\trenderItem: RenderItemFn;\n\tonFilterToggle(value: ShowroomFilterTreeValue): void;\n\tonCloseFilters: () => void;\n\tonLoadMoreMedias: (page: number) => void;\n\tshowFilters: boolean;\n\tloading: boolean;\n\tdisplayLabel: boolean;\n};\n\nconst ShowroomContentSectionFiltersLayout = (props: ComponentProps) => {\n\tconst { filters, selectedFilters, items, refreshing, onCloseFilters, onLoadMoreMedias, showFilters, totalItems, loading, displayLabel } = props;\n\tconst { renderItem, onFilterToggle } = props;\n\n\tconst isUserView = useIsShowroomUserView();\n\tconst isMobileVersion = useIsShowroomMobileVersion();\n\tconst [containerHeight, setContainerHeight] = React.useState(0);\n\tconst containerRef = React.useRef();\n\tconst scrollElement = useGetShowroomScrollElement();\n\tconst { sorted: sortedFilters } = useSortShowroomFilterTrees(filters);\n\n\tconst topOffset = isUserView ? HEADER_HEIGHT : HEADER_HEIGHT + SHOWROOM_LAYOUT_HEADER_HEIGHT;\n\tconst classes = useStyles({ fileTreeMaxHeight: containerHeight, topOffset: HEADER_HEIGHT });\n\n\t/*\n\t * This useEffect calculates the maximum height of the tree based on the available space on the screen\n\t * This is calculated as follows: window height - position of the start of the menu\n\t * After scrolling past the start of the tree, we only consider the window height and the header offset\n\t */\n\tReact.useEffect(() => {\n\t\tif (!showFilters) return;\n\t\tconst handler = () => {\n\t\t\tif (!containerRef.current) return;\n\t\t\tconst { y } = containerRef.current.getBoundingClientRect();\n\t\t\tconst windowHeight = window.innerHeight;\n\t\t\tconst newHeight = Math.min(windowHeight - topOffset, windowHeight - y);\n\t\t\tsetContainerHeight(newHeight);\n\t\t};\n\t\tscrollElement.addEventListener('scroll', handler);\n\t\twindow.addEventListener('resize', handler);\n\t\thandler();\n\t\treturn () => {\n\t\t\tscrollElement.removeEventListener('scroll', handler);\n\t\t\twindow.removeEventListener('resize', handler);\n\t\t};\n\t}, [scrollElement, topOffset, showFilters]);\n\n\tconst renderFlexItem: RenderFlexElementFn = React.useCallback(\n\t\t(item, props) => {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t{renderItem(item, imageSizes.default)}\n\t\t\t\t
\n\t\t\t);\n\t\t},\n\t\t[renderItem]\n\t);\n\n\tconst filterTrees = React.useMemo(() => {\n\t\tconst props = { sortedFilters, selectedFilters, onFilterToggle, containerHeight };\n\t\treturn isMobileVersion ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t}, [classes, containerHeight, isMobileVersion, onFilterToggle, selectedFilters, sortedFilters, onCloseFilters, loading, showFilters]);\n\n\tconst useWindow = scrollElement === window;\n\tconst getScrollParent = React.useCallback(() => scrollElement as any, [scrollElement]);\n\n\treturn (\n\t\t
\n\t\t\t{filterTrees}\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomContentSectionFiltersLayout);\n","/**\n * Helper method that determines when to recalculate row or column metadata.\n */\nexport default function calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {\n var cellCount = _ref.cellCount,\n cellSize = _ref.cellSize,\n computeMetadataCallback = _ref.computeMetadataCallback,\n computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,\n nextCellsCount = _ref.nextCellsCount,\n nextCellSize = _ref.nextCellSize,\n nextScrollToIndex = _ref.nextScrollToIndex,\n scrollToIndex = _ref.scrollToIndex,\n updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;\n\n // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n // In that event users should use the manual recompute methods to inform of changes.\n if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {\n computeMetadataCallback(computeMetadataCallbackProps); // Updated cell metadata may have hidden the previous scrolled-to item.\n // In this case we should also update the scrollTop to ensure it stays visible.\n\n if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n updateScrollOffsetForScrollToIndex();\n }\n }\n}","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\";","// 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\";","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 _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;","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 Collection from './Collection';\nexport default Collection;\nexport { Collection };","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 ColumnSizer from './ColumnSizer';\nexport default ColumnSizer;\nexport { ColumnSizer };","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 InfiniteLoader from './InfiniteLoader';\nexport default InfiniteLoader;\nexport { InfiniteLoader };","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\";","/**\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 createCellPositioner from './createCellPositioner';\nimport Masonry from './Masonry';\nexport default Masonry;\nexport { createCellPositioner, Masonry };","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 createMultiSort from './createMultiSort';\nimport defaultCellDataGetter from './defaultCellDataGetter';\nimport defaultCellRenderer from './defaultCellRenderer';\nimport defaultHeaderRowRenderer from './defaultHeaderRowRenderer.js';\nimport defaultHeaderRenderer from './defaultHeaderRenderer';\nimport defaultRowRenderer from './defaultRowRenderer';\nimport Column from './Column';\nimport SortDirection from './SortDirection';\nimport SortIndicator from './SortIndicator';\nimport Table from './Table';\nexport default Table;\nexport { createMultiSort, defaultCellDataGetter, defaultCellRenderer, defaultHeaderRowRenderer, defaultHeaderRenderer, defaultRowRenderer, Column, SortDirection, SortIndicator, Table };","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\";","import WindowScroller, { IS_SCROLLING_TIMEOUT } from './WindowScroller';\nexport default WindowScroller;\nexport { WindowScroller, IS_SCROLLING_TIMEOUT };","type Element = {\n\twidth: number;\n\theight: number;\n};\n\nexport type SizeCalculatorFn = (element: T) => number;\n\nexport type CalculatorSettings = {\n\tgetWidth: SizeCalculatorFn;\n\tgetFlexGrow: SizeCalculatorFn;\n\tgetMaxWidth?: SizeCalculatorFn;\n};\n\nexport class SizeCalculator {\n\tprivate getWidth: SizeCalculatorFn;\n\tprivate getMaxWidth: SizeCalculatorFn;\n\tprivate getFlexGrow: SizeCalculatorFn;\n\n\tconstructor({ getWidth, getMaxWidth, getFlexGrow }: CalculatorSettings) {\n\t\tthis.getWidth = getWidth;\n\t\tthis.getMaxWidth = getMaxWidth;\n\t\tthis.getFlexGrow = getFlexGrow;\n\t}\n\n\tpublic getElementRatio(element: T) {\n\t\treturn element.width / element.height;\n\t}\n\n\tpublic calculateHeight(element: T, newWidth: number) {\n\t\tconst ratio = this.getElementRatio(element);\n\t\treturn newWidth / ratio;\n\t}\n\n\tpublic getComputedWidth(element: T, proposedWidth: number) {\n\t\treturn !!this.getMaxWidth ? Math.min(proposedWidth, this.getMaxWidth(element)) : proposedWidth;\n\t}\n\n\tpublic buildAllRows(elements: T[], containerWidth: number, gutterValue: number = 0): T[][] {\n\t\tconst result = [];\n\t\tconst screenWidth = containerWidth; // Can be overriden if there is a scrollbar for example\n\t\tlet row = [];\n\t\tlet remainingWidth = screenWidth;\n\t\tfor (const image of elements) {\n\t\t\tconst newWidth = this.getComputedWidth(image, this.getWidth(image)) + gutterValue;\n\n\t\t\tif (remainingWidth - newWidth <= 0) {\n\t\t\t\tresult.push(row);\n\t\t\t\trow = [image];\n\t\t\t\tremainingWidth = screenWidth - newWidth;\n\t\t\t} else {\n\t\t\t\trow.push(image);\n\t\t\t\t// Handle too big for width\n\t\t\t\tremainingWidth = remainingWidth - newWidth;\n\t\t\t}\n\t\t}\n\t\tresult.push(row);\n\t\treturn result;\n\t}\n\n\tpublic computeRowHeight(elements: T[], containerWidth: number, additionalHeight = 0): number {\n\t\tlet elementsWidth = 0;\n\t\tlet totalFlexGrow = 0;\n\t\tif (elements.length === 0) return 0;\n\t\telements.forEach(element => {\n\t\t\telementsWidth += this.getWidth(element);\n\t\t\ttotalFlexGrow += this.getFlexGrow(element);\n\t\t});\n\t\tconst remainingSpace = containerWidth - elementsWidth;\n\t\tconst resizedElements = elements.map(element => {\n\t\t\tconst newWidth = this.calculateElementFlexWidth(element, remainingSpace, totalFlexGrow);\n\t\t\tconst newHeight = this.calculateHeight(element, newWidth);\n\t\t\treturn { width: newWidth, height: newHeight };\n\t\t});\n\t\tconst maxHeight = Math.max(...resizedElements.map(element => element.height));\n\t\treturn maxHeight + additionalHeight;\n\t}\n\n\tpublic calculateElementFlexWidth(element: T, remainingSpace: number, totalFlexGrow: number) {\n\t\tconst width = this.getWidth(element);\n\t\tconst flexGrow = this.getFlexGrow(element);\n\t\tconst flexElementWidth = (flexGrow / totalFlexGrow) * remainingSpace + width;\n\t\treturn this.getComputedWidth(element, flexElementWidth);\n\t}\n}\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\nexport type UserContentStylesProps = {\n\tspacing: number;\n};\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tshowroomGridRowDisplayContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexFlow: 'wrap',\n\t\t\tmargin: (props: UserContentStylesProps) => `0 calc(${props.spacing}% * -1)`\n\t\t},\n\t\tshowroomGridRow: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexWrap: 'wrap'\n\t\t},\n\t\tshowroomGridItem: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\tposition: 'relative',\n\t\t\tmargin: (props: UserContentStylesProps) => `${props.spacing}%`,\n\t\t\t[theme.breakpoints.up('sm')]: {\n\t\t\t\tminWidth: `0 !important`\n\t\t\t}\n\t\t},\n\t\tshowroomGridItemContent: {\n\t\t\tflexGrow: 1\n\t\t},\n\t\tshowroomGridItemLabel: {\n\t\t\toverflow: 'hidden',\n\t\t\theight: 18,\n\t\t\tcolor: '#FFF'\n\t\t}\n\t};\n});\n","import flatten from 'lodash/flatten';\nimport React from 'react';\nimport useUpdateEffect from 'react-use/lib/useUpdateEffect';\nimport { WindowScroller } from 'react-virtualized';\nimport AutoSizer from 'react-virtualized/dist/commonjs/AutoSizer';\nimport List, { ListRowRenderer } from 'react-virtualized/dist/commonjs/List';\n\nimport { Image, ShowroomSectionInfoFragment, MediaInfoFragment, Video } from 'generated/graphql';\n\nimport CustomResizeObserver from 'lib/ResizeObserver';\nimport { SizeCalculator } from 'lib/flexSizeCalculator';\nimport { ImageSizeValues } from 'lib/mediaThresholds';\nimport { useGetShowroomScrollElement } from 'lib/showroom';\n\nimport useTheme from '@material-ui/core/styles/useTheme';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport { showroomImageLabelHeight } from 'components/Showroom/Content/MediaItem/styles';\n\nimport { useStyles } from './styles';\n\ntype ImageProps = {\n\tsizes: ImageSizeValues;\n};\n\nexport type RenderItemFn = (item: MediaInfoFragment, imageProps: ImageProps) => React.ReactElement;\n\nexport type ComponentProps = {\n\tcurrentSection: ShowroomSectionInfoFragment;\n\trenderItem: RenderItemFn;\n};\n\nconst getElementRatio = element => (1.0 * element.width) / element.height;\n\ntype RowMedia = ShowroomSectionInfoFragment['rows'][0]['medias'][0];\n\nconst ShowroomContentSectionRowLayout = (props: ComponentProps) => {\n\tconst { currentSection } = props;\n\tconst { renderItem } = props;\n\n\tconst spacing = currentSection?.options.spacing;\n\n\tconst theme = useTheme();\n\tconst mobileVersion = useMediaQuery(theme.breakpoints.down('sm'));\n\n\tconst classes = useStyles({\n\t\tspacing\n\t});\n\n\tconst containerRef = React.useRef();\n\tconst listRef = React.useRef();\n\n\tconst scrollElement = useGetShowroomScrollElement();\n\n\tconst [containerWidth, setContainerWidth] = React.useState(1500);\n\n\tconst calculateElementWidth = React.useCallback(\n\t\t// We set the minWidth in mobile version, otherwise this will be 0 (all images will placed in the same row)\n\t\t(element: RowMedia) => (mobileVersion ? Math.min(Math.ceil(containerWidth * getElementRatio(element) * 0.5), containerWidth) : 0),\n\t\t[containerWidth, mobileVersion]\n\t);\n\n\tconst calculateFlexGrow = React.useCallback((element: RowMedia) => getElementRatio(element) * 2, []);\n\n\tconst sizeCalculator = React.useMemo(\n\t\t() => new SizeCalculator({ getWidth: calculateElementWidth, getFlexGrow: calculateFlexGrow }),\n\t\t[calculateElementWidth, calculateFlexGrow]\n\t);\n\n\tconst rows = React.useMemo(() => {\n\t\tif (mobileVersion) {\n\t\t\tconst allMedias = flatten(currentSection?.rows.map(row => row.medias));\n\t\t\treturn sizeCalculator.buildAllRows(allMedias, containerWidth, (containerWidth * spacing) / 100);\n\t\t} else return currentSection?.rows.map(row => row.medias) || [];\n\t}, [containerWidth, currentSection?.rows, mobileVersion, sizeCalculator, spacing]);\n\n\tconst recompute = React.useCallback(() => {\n\t\tsetContainerWidth(containerRef.current.clientWidth);\n\t\tlistRef.current.recomputeRowHeights();\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tsetContainerWidth(containerRef.current.clientWidth);\n\t}, []);\n\n\tuseUpdateEffect(() => {\n\t\trecompute();\n\t}, [currentSection?.rows, recompute]);\n\n\tReact.useEffect(() => {\n\t\tconst { current: containerElement } = containerRef;\n\t\tconst observer = new CustomResizeObserver(() => {\n\t\t\trecompute();\n\t\t});\n\t\tobserver.observe(containerElement);\n\t\treturn () => {\n\t\t\tobserver.unobserve(containerElement);\n\t\t};\n\t}, [recompute]);\n\n\tconst buildRow: ListRowRenderer = React.useCallback(\n\t\t({ index, style }) => {\n\t\t\tconst row = rows[index];\n\t\t\tconst ratios = row.map((media: Image | Video) => media.width / media.height);\n\t\t\tconst totalRatioSum = ratios.reduce((total, currentRatio) => total + currentRatio, 0);\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t{row.map((media, mediaIndex) => {\n\t\t\t\t\t\tconst sizes: ImageSizeValues = [100, (ratios[mediaIndex] / totalRatioSum) * 100];\n\t\t\t\t\t\tconst minWidth = Math.min(ratios[mediaIndex] * 50, 100);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{renderItem(media, { sizes })}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t\t[rows, classes, renderItem]\n\t);\n\n\tconst computeRowHeight = React.useCallback(\n\t\t({ index }: { index: number }): number => {\n\t\t\tconst row = rows[index];\n\t\t\treturn sizeCalculator.computeRowHeight(row, containerWidth, currentSection?.options.displayLabel ? showroomImageLabelHeight : 0);\n\t\t},\n\t\t[containerWidth, rows, sizeCalculator, currentSection]\n\t);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{({ height, isScrolling, onChildScroll, scrollTop, registerChild }) => (\n\t\t\t\t\t\n\t\t\t\t\t\t{({ width }) => (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomContentSectionRowLayout);\n","import StateManager from 'Apollo/StateManager';\nimport { HeroMediaParams, QualityOptions } from 'generated/graphql';\n\nconst stateManager = new StateManager('showroom.userView.share');\n\nexport const setDialogIsOpen = (isDialogOpen: boolean) => {\n\tstateManager.update({ isDialogOpen });\n};\n\nexport const setShowroomShareMediaQuality = (mediaQuality: QualityOptions) => {\n\tstateManager.update({ mediaQuality });\n};\n\nexport const getHeroMediaParamsFromHeroMedia = (heroMedia): Partial => {\n\treturn {\n\t\tmediaType: heroMedia.mediaType,\n\t\tpublicId: heroMedia.publicId,\n\t\tpublicUrl: heroMedia.publicUrl\n\t};\n};\n","import { grey } from '@material-ui/core/colors';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport type UserContentStylesProps = {\n\tcanDownloadPdfs: boolean;\n\tuniqueMediaType: boolean;\n\tisMobile: boolean;\n};\n\nexport const useStyles = makeStyles(theme => {\n\tconst downloadMenuMediaHeight = 200;\n\tconst downloadMenuMediaHeightPdfs = 250;\n\n\tconst downloadMenuMediaSingleHeight = 120;\n\tconst downloadMenuMediaSingleHeightPdfs = 190;\n\tconst downloadMenuMediaSingleSubMenuOpenPDfs = 300;\n\n\tconst downloadMenuMediaSubMenuOpen = 300;\n\tconst downloadMenuMediaSubMenuOpenPdfs = 350;\n\n\treturn {\n\t\tshowroomActionsContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\tmarginTop: ({ isMobile }: UserContentStylesProps) => (isMobile ? 15 : 30),\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'flex-end',\n\t\t\tpadding: '0 15px'\n\t\t},\n\t\tshowroomActionTab: {\n\t\t\ttextTransform: 'none'\n\t\t},\n\t\tshowroomActionBox: {\n\t\t\tcursor: 'pointer',\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tpaddingRight: 50,\n\t\t\t[theme.breakpoints.down('md')]: {\n\t\t\t\tpaddingRight: 0\n\t\t\t},\n\t\t\tcolor: 'black',\n\t\t\tfontSize: 14\n\t\t},\n\t\tshowroomActionTextMobile: {\n\t\t\topacity: 1,\n\t\t\tfontWeight: 400\n\t\t},\n\t\tshowroomActionBoxIcon: {\n\t\t\tmarginRight: 15,\n\t\t\tcolor: 'black'\n\t\t},\n\t\tshowroomDownloadMenu: {\n\t\t\tminWidth: 200\n\t\t},\n\t\tshowroomDownloadMenuMobile: {\n\t\t\twidth: '100%',\n\t\t\tmaxWidth: '100%',\n\t\t\tleft: '0px !important',\n\t\t\tposition: 'fixed',\n\t\t\tbottom: 0,\n\t\t\ttop: 'auto !important',\n\t\t\tborderRadius: 0,\n\t\t\theight: ({ canDownloadPdfs }: UserContentStylesProps) => (canDownloadPdfs ? downloadMenuMediaHeightPdfs : downloadMenuMediaHeight)\n\t\t},\n\t\tshowroomDownloadMenuMobileNoMedia: {\n\t\t\theight: ({ canDownloadPdfs }: UserContentStylesProps) =>\n\t\t\t\tcanDownloadPdfs ? downloadMenuMediaSingleHeightPdfs : downloadMenuMediaSingleHeight\n\t\t},\n\t\tshowroomDownloadMenuMobileSubmenuOpened: {\n\t\t\theight: ({ canDownloadPdfs, uniqueMediaType }: UserContentStylesProps) => {\n\t\t\t\tif (canDownloadPdfs) return uniqueMediaType ? downloadMenuMediaSingleSubMenuOpenPDfs : downloadMenuMediaSubMenuOpenPdfs;\n\t\t\t\telse return downloadMenuMediaSubMenuOpen;\n\t\t\t}\n\t\t},\n\t\tshowroomDownloadMenuItem: {\n\t\t\tpadding: '15px 30px',\n\t\t\t'&:hover': {\n\t\t\t\tbackgroundColor: 'rgba(0, 199, 149, 0.1)'\n\t\t\t}\n\t\t},\n\t\tshowroomDownloadMenuItemMobile: {\n\t\t\tjustifyContent: 'center',\n\t\t\t'&:hover': {\n\t\t\t\tbackgroundColor: 'rgba(0, 199, 149, 0.1)'\n\t\t\t}\n\t\t},\n\t\tshowroomDownloadMenuSubItem: {\n\t\t\tbackgroundColor: grey[200]\n\t\t},\n\t\tshowroomDownloadMenuDivider: {\n\t\t\tmarginLeft: 30,\n\t\t\tmarginRight: 30,\n\t\t\tmarginTop: 5,\n\t\t\tmarginBottom: 5\n\t\t},\n\t\tstickyBar: {\n\t\t\ttop: 'auto',\n\t\t\tbottom: 0,\n\t\t\tbackgroundColor: '#FFF',\n\t\t\tborderRadius: '16px 16px 0px 0px'\n\t\t},\n\t\tstickyBarMobileOpened: {\n\t\t\tbottom: ({ canDownloadPdfs }: UserContentStylesProps) => (canDownloadPdfs ? downloadMenuMediaHeightPdfs : downloadMenuMediaHeight),\n\t\t\ttransition: theme.transitions.create(['bottom'], {\n\t\t\t\teasing: theme.transitions.easing.sharp,\n\t\t\t\tduration: theme.transitions.duration.enteringScreen\n\t\t\t})\n\t\t},\n\t\tstickyBarMobileOpenedNoMedia: {\n\t\t\tbottom: ({ canDownloadPdfs }: UserContentStylesProps) =>\n\t\t\t\tcanDownloadPdfs ? downloadMenuMediaSingleHeightPdfs : downloadMenuMediaSingleHeight\n\t\t},\n\t\tstickyBarMobileOpenedSubmenuOpened: {\n\t\t\tbottom: ({ canDownloadPdfs, uniqueMediaType }: UserContentStylesProps) => {\n\t\t\t\tif (canDownloadPdfs) return uniqueMediaType ? downloadMenuMediaSingleSubMenuOpenPDfs : downloadMenuMediaSubMenuOpenPdfs;\n\t\t\t\telse return downloadMenuMediaSubMenuOpen;\n\t\t\t}\n\t\t},\n\t\tactionContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexWrap: 'wrap'\n\t\t},\n\t\tmobileButtonDivider: {\n\t\t\tmarginTop: 20,\n\t\t\tmarginBottom: 20\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport filter from 'lodash/filter';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { setDialogIsOpen, setShowroomShareMediaQuality } from 'Apollo/Store/Showroom/UserView/Share/resolvers';\nimport { setSelectedPdfs, setShowroomSelectedMedia } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport { Media, MediaType, QualityOptions, useGetMobileMenuOpenedQuery, useGetShowroomSelectedTabQuery } from 'generated/graphql';\n\nimport { useGetCurrentShowroomData, useIsShowroomDowloadOptionEnabled, useIsShowroomMobileVersion, useIsShowroomUserView } from 'lib/showroom';\n\nimport AppBar from '@material-ui/core/AppBar';\nimport Collapse from '@material-ui/core/Collapse';\nimport Divider from '@material-ui/core/Divider';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Tab from '@material-ui/core/Tab';\nimport Tabs from '@material-ui/core/Tabs';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport DownloadIcon from '@material-ui/icons/SaveAlt';\n\nimport { ReactComponent as ShowroomFilterIcon } from 'icons/showroomFilterIcon.svg';\n\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tselectedSection: number;\n\tshowFilters: boolean;\n\tonShowFilters: () => void;\n\tloading: boolean;\n\tfilteredMedias: Media[];\n\thasFilters: boolean;\n};\n\nconst ShowroomSectionActions = (props: ComponentProps) => {\n\tconst { selectedSection, showFilters, onShowFilters, loading, filteredMedias, hasFilters } = props;\n\n\tconst { t } = useTranslation();\n\n\tconst showroom = useGetCurrentShowroomData();\n\tconst isMobileVersion = useIsShowroomMobileVersion();\n\tconst isUserView = useIsShowroomUserView();\n\tconst downloadEnabled = useIsShowroomDowloadOptionEnabled();\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: { activeMediaMobileMenu }\n\t\t\t}\n\t\t}\n\t} = useGetMobileMenuOpenedQuery();\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: { selectedTab }\n\t\t\t}\n\t\t}\n\t} = useGetShowroomSelectedTabQuery();\n\n\tconst [selectedAction, setSelectedAction] = React.useState(false);\n\tconst [anchorEl, setAnchorEl] = React.useState(null);\n\tconst [filterMediasBy, setFilterMediasBy] = React.useState(null);\n\n\tconst videoMedias = React.useMemo(() => filter(filteredMedias, { mediaType: MediaType.Video }), [filteredMedias]);\n\tconst imageMedias = React.useMemo(() => filter(filteredMedias, { mediaType: MediaType.Image }), [filteredMedias]);\n\tconst pdfMedias = React.useMemo(() => filter(filteredMedias, { mediaType: MediaType.Pdf }), [filteredMedias]);\n\tconst showroomPdfs = React.useMemo(() => showroom.pdfs || [], [showroom]);\n\tconst canDisplayDownloadOption = React.useMemo(\n\t\t() => downloadEnabled && isUserView && filteredMedias.length > 0,\n\t\t[downloadEnabled, isUserView, filteredMedias]\n\t);\n\tconst canDisplayDownloadPdfOption = React.useMemo(() => showroom.downloadPdfEnabled && !isEmpty(showroomPdfs), [showroom, showroomPdfs]);\n\n\tconst optionAvailable = React.useMemo(() => {\n\t\tconst mediaTypes = [!isEmpty(imageMedias), !isEmpty(videoMedias), !isEmpty(pdfMedias)];\n\t\tconst availableMediaCount = mediaTypes.filter(Boolean).length;\n\n\t\tif (availableMediaCount === 1) {\n\t\t\tif (!isEmpty(imageMedias)) return 'images';\n\t\t\tif (!isEmpty(videoMedias)) return 'videos';\n\t\t\tif (!isEmpty(pdfMedias)) return 'pdfs';\n\t\t}\n\t\treturn 'all';\n\t}, [imageMedias, videoMedias, pdfMedias]);\n\n\tconst classes = useStyles({\n\t\tuniqueMediaType: optionAvailable !== 'all',\n\t\tcanDownloadPdfs: canDisplayDownloadPdfOption,\n\t\tisMobile: isMobileVersion\n\t});\n\n\tReact.useEffect(() => {\n\t\tif (!anchorEl) setSelectedAction(false);\n\t}, [anchorEl]);\n\n\tconst handleShareMedias = React.useCallback(\n\t\t(mediaQuality: QualityOptions) => {\n\t\t\tsetAnchorEl(null);\n\t\t\tlet medias = filteredMedias;\n\t\t\tif (filterMediasBy && filterMediasBy !== 'all') medias = filter(medias, { mediaType: filterMediasBy });\n\t\t\tif (filterMediasBy && filterMediasBy === 'all' && canDisplayDownloadPdfOption) setSelectedPdfs(showroomPdfs);\n\t\t\tsetShowroomSelectedMedia(medias as any);\n\t\t\tsetShowroomShareMediaQuality(mediaQuality);\n\t\t\tsetFilterMediasBy(null);\n\t\t\tsetDialogIsOpen(true);\n\t\t},\n\t\t[canDisplayDownloadPdfOption, filterMediasBy, filteredMedias, showroomPdfs]\n\t);\n\n\tconst qualityOptions = React.useMemo(\n\t\t() => [\n\t\t\t handleShareMedias(QualityOptions.Screen)}\n\t\t\t\tclassName={clsx({\n\t\t\t\t\t[classes.showroomDownloadMenuSubItem]: optionAvailable === 'all',\n\t\t\t\t\t[classes.showroomDownloadMenuItem]: !isMobileVersion,\n\t\t\t\t\t[classes.showroomDownloadMenuItemMobile]: isMobileVersion\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{t('showroom.download.menu.subOptions.screen')}\n\t\t\t,\n\t\t\t,\n\t\t\t handleShareMedias(QualityOptions.Original)}\n\t\t\t\tclassName={clsx({\n\t\t\t\t\t[classes.showroomDownloadMenuSubItem]: optionAvailable === 'all',\n\t\t\t\t\t[classes.showroomDownloadMenuItem]: !isMobileVersion,\n\t\t\t\t\t[classes.showroomDownloadMenuItemMobile]: isMobileVersion\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{t('showroom.download.menu.subOptions.hd')}\n\t\t\t\n\t\t],\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[t, isMobileVersion, optionAvailable, selectedSection, handleShareMedias]\n\t);\n\n\tconst createMenuItem = React.useCallback(\n\t\t(key: string, id: string, onClick: () => void, text: string, disabled = false) => (\n\t\t\t\n\t\t\t\t{text}\n\t\t\t\n\t\t),\n\t\t[classes, isMobileVersion]\n\t);\n\n\tconst downloadMenuOptions = React.useMemo(() => {\n\t\tconst menuItems = [];\n\t\tif (optionAvailable !== 'all' && optionAvailable !== 'pdfs' && !canDisplayDownloadPdfOption) return qualityOptions;\n\t\tif (canDisplayDownloadPdfOption)\n\t\t\tmenuItems.push(\n\t\t\t\tcreateMenuItem(\n\t\t\t\t\t'showroomDownloadPdfs',\n\t\t\t\t\t'showroomDownloadPdfs',\n\t\t\t\t\t() => {\n\t\t\t\t\t\tsetAnchorEl(null);\n\t\t\t\t\t\tsetSelectedPdfs(showroomPdfs);\n\t\t\t\t\t\tsetDialogIsOpen(true);\n\t\t\t\t\t},\n\t\t\t\t\tt('showroom.download.menu.options.pressKits')\n\t\t\t\t),\n\t\t\t\t\n\t\t\t);\n\t\tif (!isEmpty(imageMedias)) {\n\t\t\tmenuItems.push(\n\t\t\t\tcreateMenuItem(\n\t\t\t\t\t'showroomDownloadItemImage',\n\t\t\t\t\t'showroomDownloadItemImage',\n\t\t\t\t\t() => setFilterMediasBy(filterMediasBy === MediaType.Image ? null : MediaType.Image),\n\t\t\t\t\tt('showroom.download.menu.options.images'),\n\t\t\t\t\tisEmpty(imageMedias)\n\t\t\t\t),\n\t\t\t\t,\n\t\t\t\t\n\t\t\t\t\t{qualityOptions}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t\tif (!isEmpty(videoMedias)) {\n\t\t\tmenuItems.push(\n\t\t\t\tcreateMenuItem(\n\t\t\t\t\t'showroomDownloadItemVideo',\n\t\t\t\t\t'showroomDownloadItemVideo',\n\t\t\t\t\t() => setFilterMediasBy(filterMediasBy === MediaType.Video ? null : MediaType.Video),\n\t\t\t\t\tt('showroom.download.menu.options.videos')\n\t\t\t\t),\n\t\t\t\t,\n\t\t\t\t\n\t\t\t\t\t{qualityOptions}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t\tif (!isEmpty(pdfMedias)) {\n\t\t\tmenuItems.push(\n\t\t\t\tcreateMenuItem(\n\t\t\t\t\t'showroomDownloadPdfFiles',\n\t\t\t\t\t'showroomDownloadPdfFiles',\n\t\t\t\t\t() => {\n\t\t\t\t\t\tsetAnchorEl(null);\n\t\t\t\t\t\tsetShowroomSelectedMedia(pdfMedias);\n\t\t\t\t\t\tsetShowroomShareMediaQuality(QualityOptions.Original);\n\t\t\t\t\t\tsetDialogIsOpen(true);\n\t\t\t\t\t},\n\t\t\t\t\tt('showroom.download.menu.options.pdfs')\n\t\t\t\t)\n\t\t\t);\n\t\t\tif (optionAvailable !== 'pdfs') {\n\t\t\t\tmenuItems.push();\n\t\t\t}\n\t\t}\n\t\tif (optionAvailable !== 'pdfs')\n\t\t\tmenuItems.push(\n\t\t\t\tcreateMenuItem(\n\t\t\t\t\t'showroomDownloadItemAll',\n\t\t\t\t\t'showroomDownloadItemAll',\n\t\t\t\t\t() => setFilterMediasBy(filterMediasBy === 'all' ? null : 'all'),\n\t\t\t\t\tt('showroom.download.menu.options.all'),\n\t\t\t\t\tisEmpty(videoMedias) && isEmpty(imageMedias) && isEmpty(pdfMedias)\n\t\t\t\t),\n\t\t\t\t\n\t\t\t\t\t{qualityOptions}\n\t\t\t\t\n\t\t\t);\n\t\treturn menuItems;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [canDisplayDownloadPdfOption, filterMediasBy, imageMedias, isMobileVersion, optionAvailable, qualityOptions, showroomPdfs, t, videoMedias]);\n\n\tconst downloadMediaActionButton = React.useMemo(\n\t\t() => (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\tisMobileVersion ? setAnchorEl(ev.currentTarget.parentNode.parentNode.parentElement) : setAnchorEl(ev.currentTarget)\n\t\t\t\t\t}\n\t\t\t\t\tid={'showroomDownloadButton'}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t{t('showroom.download.menu.label.all')}\n\t\t\t\t\t{!isMobileVersion && }\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetAnchorEl(null);\n\t\t\t\t\t\tsetFilterMediasBy(null);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{downloadMenuOptions}\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[t, isMobileVersion, filterMediasBy, optionAvailable, anchorEl, downloadMenuOptions]\n\t);\n\n\tconst displayFilterButton = React.useMemo(() => {\n\t\tif (loading && !isMobileVersion) return null;\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t{isMobileVersion\n\t\t\t\t\t? t('showroom.filter.button.label.mobile')\n\t\t\t\t\t: showFilters\n\t\t\t\t\t? t('showroom.filter.button.label.hide')\n\t\t\t\t\t: t('showroom.filter.button.label.show')}\n\t\t\t
\n\t\t);\n\t}, [classes, showFilters, loading, isMobileVersion, onShowFilters, t]);\n\n\tconst bottomStickyBar = React.useMemo(\n\t\t() => {\n\t\t\tif (!canDisplayDownloadOption && !hasFilters) return;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t, newValue: number) => setSelectedAction(newValue)}\n\t\t\t\t\t\tvariant=\"fullWidth\"\n\t\t\t\t\t\tTabIndicatorProps={{\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\tdisplay: 'none'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{canDisplayDownloadOption && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!anchorEl && hasFilters && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tcanDisplayDownloadOption,\n\t\t\thasFilters,\n\t\t\tisMobileVersion,\n\t\t\tanchorEl,\n\t\t\toptionAvailable,\n\t\t\tfilterMediasBy,\n\t\t\tselectedAction,\n\t\t\tisUserView,\n\t\t\tdownloadMediaActionButton,\n\t\t\tdisplayFilterButton\n\t\t]\n\t);\n\n\treturn (\n\t\t
\n\t\t\t{!isMobileVersion && (\n\t\t\t\t
\n\t\t\t\t\t{hasFilters && displayFilterButton}\n\t\t\t\t\t{canDisplayDownloadOption && downloadMediaActionButton}\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{isMobileVersion && !activeMediaMobileMenu && !selectedTab && bottomStickyBar}\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomSectionActions);\n","import ShowroomSectionActions from './ShowroomSectionActions';\n\nexport default ShowroomSectionActions;\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tshowroomGrid: {\n\t\t\tmaxWidth: '100%',\n\t\t\tmargin: '3.33% 3.5% 3.33% 3.5%',\n\t\t\toverflowX: 'hidden'\n\t\t},\n\t\tedgeToEdge: {\n\t\t\tmarginLeft: 0,\n\t\t\tmarginRight: 0\n\t\t},\n\t\tshowroomContentSectionLoading: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\theight: '100%'\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport filter from 'lodash/filter';\nimport findIndex from 'lodash/findIndex';\nimport flatten from 'lodash/flatten';\nimport isEmpty from 'lodash/isEmpty';\nimport keyBy from 'lodash/keyBy';\nimport map from 'lodash/map';\nimport React from 'react';\nimport useUpdateEffect from 'react-use/lib/useUpdateEffect';\n\nimport { getCache } from 'Apollo';\nimport { closeCurrentMediaMobileMenu } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport { GET_SHOWROOM_FILTER_VALUES, GET_SHOWROOM_SECTION_FILTERS } from 'Apollo/Store/Showroom/queries';\nimport {\n\tGetShowroomSectionFilterValuesQuery,\n\tMediaInfoFragment,\n\tMediaType,\n\tuseGetShowroomSectionFiltersUserViewQuery,\n\tuseGetShowroomSectionsQuery\n} from 'generated/graphql';\n\nimport { ShowroomFilterTree, ShowroomFilterTreeValue } from 'Types/showroom';\n\nimport { useTimeout } from 'lib/Hooks';\nimport { useGetCurrentShowroomData, useIsShowroomMobileVersion } from 'lib/showroom';\nimport { buildShowroomFiltersTree, searchMedias, updateFilterValues } from 'lib/showroomFilters';\n\nimport { CircularProgress } from '@material-ui/core';\n\nimport { ShowroomContext } from 'context/showroom/ShowroomContext';\n\nimport ShowroomLayer from 'components/Showroom/Layer';\n\nimport ShowroomMediaItem, { ComponentProps as ShowroomMediaItemProps } from '../MediaItem/ShowroomMediaItem';\nimport ShowroomContentSectionFiltersLayout from './Layout/Filters';\nimport { RenderItemFn as RenderItemFlexFn } from './Layout/Filters/ShowroomContentSectionFiltersLayout';\nimport ShowroomContentSectionRowLayout from './Layout/Row';\nimport { RenderItemFn as RenderItemRowFn } from './Layout/Row/ShowroomContentSectionRowLayout';\nimport ShowroomSectionActions from './Layout/SectionActions';\nimport { useStyles } from './styles';\n\nexport type ComponentProps = {\n\tselectedSection: number;\n};\n\nconst MEDIA_BATCH = 50;\n\nconst ShowroomContentSection = (props: ComponentProps) => {\n\tconst { selectedSection } = props;\n\n\tconst classes = useStyles();\n\n\tconst { track, getParams } = React.useContext(ShowroomContext);\n\tconst showroom = useGetCurrentShowroomData();\n\n\tconst { data: showroomSections, loading: loadingSections } = useGetShowroomSectionsQuery({ variables: { id: showroom.id } });\n\n\tconst sections = React.useMemo(() => showroomSections?.getShowroom.sections, [showroomSections]);\n\n\tconst isMobileVersion = useIsShowroomMobileVersion();\n\n\tconst [zoomViewOpen, setZoomViewOpen] = React.useState(false);\n\tconst [initialZoomImage, setInitialZoomImage] = React.useState(0);\n\n\tconst { run, clear } = useTimeout();\n\n\tconst showroomId = React.useMemo(() => showroom?.id, [showroom]);\n\tconst currentSection = React.useMemo(() => sections?.[selectedSection], [sections, selectedSection]);\n\tconst sectionMedias = React.useMemo(() => flatten(map(currentSection?.rows, 'medias')), [currentSection]);\n\tconst [filteredMedias, setFilteredMedias] = React.useState(sectionMedias);\n\tconst imageMedias = React.useMemo(() => filter(filteredMedias, media => media.mediaType !== MediaType.Video), [filteredMedias]);\n\n\tconst [refreshingSearch, setRefreshingSearch] = React.useState(false);\n\tconst [currentMediaPage, setCurrentMediaPage] = React.useState(0);\n\tconst [currentFilterTrees, setCurrentFilterTrees] = React.useState([]);\n\tconst [selectedFilters, setSelectedFilters] = React.useState([]);\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\n\tconst { data, loading, client } = useGetShowroomSectionFiltersUserViewQuery({\n\t\tvariables: {\n\t\t\tsection: selectedSection,\n\t\t\tparams: getParams\n\t\t},\n\t\tskip:\n\t\t\tcurrentSection?.options.globalSelectedFilters.galleriesFields.length === 0 &&\n\t\t\tcurrentSection?.options.globalSelectedFilters.samplesFields.length === 0\n\t});\n\n\tconst isFilterSection =\n\t\tcurrentSection?.options.globalSelectedFilters.galleriesFields.length > 0 ||\n\t\tcurrentSection?.options.globalSelectedFilters.samplesFields.length > 0;\n\tconst medias = React.useMemo(() => {\n\t\tif (!isFilterSection) return sectionMedias;\n\t\treturn filteredMedias.slice(0, (currentMediaPage + 1) * MEDIA_BATCH);\n\t}, [currentMediaPage, filteredMedias, isFilterSection, sectionMedias]);\n\n\tconst mediasByIndex = React.useMemo(() => keyBy(sectionMedias, 'id'), [sectionMedias]);\n\n\t// Preload rest of filters for the other sections with filters\n\tReact.useEffect(() => {\n\t\tsections?.forEach((section, index) => {\n\t\t\tif (\n\t\t\t\tindex === 0 ||\n\t\t\t\tsection.options.globalSelectedFilters.galleriesFields.length === 0 ||\n\t\t\t\tsection.options.globalSelectedFilters.samplesFields.length === 0\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tclient.query({\n\t\t\t\tquery: GET_SHOWROOM_SECTION_FILTERS,\n\t\t\t\tvariables: {\n\t\t\t\t\tsection: index,\n\t\t\t\t\tparams: getParams\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}, [client, getParams, sections]);\n\n\tuseUpdateEffect(() => {\n\t\tsetRefreshingSearch(false);\n\t\tsetSelectedFilters([]);\n\t\tsetFilteredMedias(sectionMedias);\n\t\tsetCurrentMediaPage(0);\n\t\tclear();\n\t}, [sectionMedias]);\n\n\tReact.useEffect(() => {\n\t\tif (!isMobileVersion) setShowFilters(!loading && !isEmpty(currentFilterTrees));\n\t}, [isMobileVersion, loading, currentFilterTrees]);\n\n\tReact.useEffect(() => {\n\t\tif (!data?.showroomSectionFilters) return;\n\t\tsetCurrentFilterTrees(buildShowroomFiltersTree(data.showroomSectionFilters));\n\t}, [data?.showroomSectionFilters]);\n\n\tconst onFilterToggle = React.useCallback(\n\t\t(filterValue: ShowroomFilterTreeValue) => {\n\t\t\tlet selectedSet = new Set(selectedFilters);\n\t\t\tif (!selectedSet.has(filterValue.value.id)) {\n\t\t\t\tconst addFilter = (filterToAdd: ShowroomFilterTreeValue) => {\n\t\t\t\t\tselectedSet.add(filterToAdd.value.id);\n\t\t\t\t\tif (!isEmpty(filterToAdd.childs)) filterToAdd.childs.forEach(addFilter);\n\t\t\t\t};\n\t\t\t\taddFilter(filterValue);\n\t\t\t} else {\n\t\t\t\tconst deleteFilter = (filterToDelete: ShowroomFilterTreeValue) => {\n\t\t\t\t\tselectedSet.delete(filterToDelete.value.id);\n\t\t\t\t\tif (!isEmpty(filterToDelete.childs)) filterToDelete.childs.forEach(deleteFilter);\n\t\t\t\t};\n\t\t\t\tconst deleteFilterParent = (filter: ShowroomFilterTreeValue) => {\n\t\t\t\t\tconst { parent } = filter;\n\t\t\t\t\tif (!parent || !selectedSet.has(parent.value.id)) return;\n\t\t\t\t\tselectedSet.delete(parent.value.id);\n\t\t\t\t\tdeleteFilterParent(parent);\n\t\t\t\t};\n\t\t\t\tdeleteFilter(filterValue);\n\t\t\t\tdeleteFilterParent(filterValue);\n\t\t\t}\n\t\t\tconst newSelectedFilters = Array.from(selectedSet);\n\t\t\tsetSelectedFilters(newSelectedFilters);\n\t\t\tsetRefreshingSearch(true);\n\t\t\trun(() => {\n\t\t\t\tlet newMedias: MediaInfoFragment[] = [];\n\t\t\t\tlet newBuckets = [];\n\t\t\t\tif (newSelectedFilters.length === 0) {\n\t\t\t\t\tnewMedias = sectionMedias;\n\t\t\t\t\tnewBuckets = data.showroomSectionFilters;\n\t\t\t\t} else {\n\t\t\t\t\tconst filtersData: GetShowroomSectionFilterValuesQuery = getCache().readQuery({\n\t\t\t\t\t\tquery: GET_SHOWROOM_FILTER_VALUES,\n\t\t\t\t\t\tvariables: {\n\t\t\t\t\t\t\tids: newSelectedFilters\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tconst mediaIds = searchMedias(filtersData.showroomFilterValues);\n\t\t\t\t\tnewMedias = mediaIds.map(mediaId => mediasByIndex[mediaId]);\n\t\t\t\t\tnewBuckets = updateFilterValues(data.showroomSectionFilters, filtersData.showroomFilterValues);\n\t\t\t\t}\n\t\t\t\tsetCurrentMediaPage(0);\n\t\t\t\tsetFilteredMedias(newMedias);\n\t\t\t\tsetRefreshingSearch(false);\n\t\t\t\tsetCurrentFilterTrees(buildShowroomFiltersTree(newBuckets));\n\t\t\t}, 200);\n\t\t},\n\t\t[selectedFilters, run, sectionMedias, data?.showroomSectionFilters, mediasByIndex]\n\t);\n\n\tconst onLoadMoreMedias = React.useCallback((page: number) => {\n\t\tsetCurrentMediaPage(page);\n\t}, []);\n\n\tconst layerEnabled = currentSection?.options.zoomLayer || currentSection?.options.productLayer;\n\n\tconst onPlay = React.useCallback(\n\t\tvideoId => {\n\t\t\ttrack([\n\t\t\t\t{\n\t\t\t\t\teventType: 'click',\n\t\t\t\t\tmediaType: 'video',\n\t\t\t\t\tmediaId: videoId,\n\t\t\t\t\tshowroomId\n\t\t\t\t}\n\t\t\t]);\n\t\t},\n\t\t[track, showroomId]\n\t);\n\n\tconst handleZoomViewClose = React.useCallback(() => {\n\t\tsetZoomViewOpen(false);\n\t}, []);\n\n\tconst handleZoomViewOpen = React.useCallback(\n\t\t(id: string) => {\n\t\t\tconst index = findIndex(imageMedias, { cloudinaryId: id });\n\t\t\tsetInitialZoomImage(index);\n\t\t\tsetZoomViewOpen(true);\n\t\t},\n\t\t[imageMedias]\n\t);\n\n\tconst zoom = React.useMemo(() => {\n\t\tif (isEmpty(imageMedias) || !layerEnabled) return null;\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tif (isMobileVersion) closeCurrentMediaMobileMenu();\n\t\t\t\t\ttrack([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\teventType: 'click',\n\t\t\t\t\t\t\tmediaType: 'image',\n\t\t\t\t\t\t\tmediaId: imageId,\n\t\t\t\t\t\t\tshowroomId: showroom.id\n\t\t\t\t\t\t}\n\t\t\t\t\t]);\n\t\t\t\t}}\n\t\t\t\topen={zoomViewOpen}\n\t\t\t\tonClose={handleZoomViewClose}\n\t\t\t\tshowLabel={currentSection?.options.displayLabel}\n\t\t\t/>\n\t\t);\n\t}, [\n\t\tlayerEnabled,\n\t\tcurrentSection?.options,\n\t\tinitialZoomImage,\n\t\tzoomViewOpen,\n\t\thandleZoomViewClose,\n\t\ttrack,\n\t\tshowroom.id,\n\t\timageMedias,\n\t\tisMobileVersion\n\t]);\n\n\tconst onMediaAction = React.useCallback(\n\t\t(cloudinaryId: string, type: 'image' | 'video') => {\n\t\t\tif (type === 'image') {\n\t\t\t\ttrack([\n\t\t\t\t\t{\n\t\t\t\t\t\teventType: 'click',\n\t\t\t\t\t\tmediaType: 'image',\n\t\t\t\t\t\tmediaId: cloudinaryId,\n\t\t\t\t\t\tshowroomId: showroom.id\n\t\t\t\t\t}\n\t\t\t\t]);\n\t\t\t\tif (layerEnabled) handleZoomViewOpen(cloudinaryId);\n\t\t\t} else onPlay(cloudinaryId);\n\t\t},\n\t\t[handleZoomViewOpen, onPlay, showroom.id, track, layerEnabled]\n\t);\n\n\tconst handleFiltersDisplay = React.useCallback(() => {\n\t\tsetShowFilters(prev => !prev);\n\t}, []);\n\n\tconst renderMediaItem = React.useCallback(\n\t\t(media: MediaInfoFragment, additionalProps?: Partial) => (\n\t\t\t\n\t\t),\n\t\t[currentSection?.options.displayLabel, layerEnabled, onMediaAction]\n\t);\n\n\tconst renderMediaRowItem: RenderItemRowFn = React.useCallback(\n\t\t(media, { sizes }) =>\n\t\t\trenderMediaItem(media, {\n\t\t\t\timageProps: {\n\t\t\t\t\tsizes\n\t\t\t\t}\n\t\t\t}),\n\t\t[renderMediaItem]\n\t);\n\n\tconst renderMediaFlex: RenderItemFlexFn = React.useCallback(\n\t\t(media, sizes) => renderMediaItem(media, { imageProps: { sizes } }),\n\t\t[renderMediaItem]\n\t);\n\n\treturn loadingSections ? (\n\t\t
\n\t\t\t\n\t\t
\n\t) : (\n\t\t<>\n\t\t\t 0 ||\n\t\t\t\t\tcurrentSection?.options.globalSelectedFilters.samplesFields.length > 0\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{currentSection?.options.globalSelectedFilters.galleriesFields.length > 0 ||\n\t\t\tcurrentSection?.options.globalSelectedFilters.samplesFields.length > 0 ? (\n\t\t\t\t setShowFilters(false)}\n\t\t\t\t\tshowFilters={showFilters}\n\t\t\t\t\tloading={loading}\n\t\t\t\t\tdisplayLabel={currentSection?.options?.displayLabel}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{zoom}\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomContentSection);\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport FormGroup from '../FormGroup';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\nimport RadioGroupContext from './RadioGroupContext';\nimport useId from '../utils/unstable_useId';\nvar RadioGroup = /*#__PURE__*/React.forwardRef(function RadioGroup(props, ref) {\n var actions = props.actions,\n children = props.children,\n nameProp = props.name,\n valueProp = props.value,\n onChange = props.onChange,\n other = _objectWithoutProperties(props, [\"actions\", \"children\", \"name\", \"value\", \"onChange\"]);\n\n var rootRef = React.useRef(null);\n\n var _useControlled = useControlled({\n controlled: valueProp,\n default: props.defaultValue,\n name: 'RadioGroup'\n }),\n _useControlled2 = _slicedToArray(_useControlled, 2),\n value = _useControlled2[0],\n setValue = _useControlled2[1];\n\n React.useImperativeHandle(actions, function () {\n return {\n focus: function focus() {\n var input = rootRef.current.querySelector('input:not(:disabled):checked');\n\n if (!input) {\n input = rootRef.current.querySelector('input:not(:disabled)');\n }\n\n if (input) {\n input.focus();\n }\n }\n };\n }, []);\n var handleRef = useForkRef(ref, rootRef);\n\n var handleChange = function handleChange(event) {\n setValue(event.target.value);\n\n if (onChange) {\n onChange(event, event.target.value);\n }\n };\n\n var name = useId(nameProp);\n return /*#__PURE__*/React.createElement(RadioGroupContext.Provider, {\n value: {\n name: name,\n onChange: handleChange,\n value: value\n }\n }, /*#__PURE__*/React.createElement(FormGroup, _extends({\n role: \"radiogroup\",\n ref: handleRef\n }, other), children));\n});\nprocess.env.NODE_ENV !== \"production\" ? RadioGroup.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The default `input` element value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string]),\n\n /**\n * The name used to reference the value of the control.\n * If you don't provide this prop, it falls back to a randomly generated name.\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when a radio button is selected.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n\n /**\n * Value of the selected radio button. The DOM API casts this to a string.\n */\n value: PropTypes.any\n} : void 0;\nexport default RadioGroup;","import red from '@material-ui/core/colors/red';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\twrapper: {\n\t\t\tpadding: '0 15px'\n\t\t},\n\t\tradioButtonBox: {\n\t\t\tflexDirection: 'row',\n\t\t\talignItems: 'center',\n\t\t\twidth: '100%',\n\t\t\tmarginBottom: 20,\n\t\t\t'& > label': {\n\t\t\t\tflexGrow: 1\n\t\t\t}\n\t\t},\n\t\tdirectDownloadAlertMessageBox: {\n\t\t\tcolor: red[500],\n\t\t\tfontSize: 14,\n\t\t\tlineHeight: 2\n\t\t},\n\t\tuserConsentWrapper: {\n\t\t\tmarginTop: 25\n\t\t}\n\t};\n});\n","import map from 'lodash/map';\nimport React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useTranslation } from 'react-i18next';\nimport isEmail from 'validator/lib/isEmail';\n\nimport { setDialogIsOpen } from 'Apollo/Store/Showroom/UserView/Share/resolvers';\nimport { setSelectedPdfs, setShowroomSelectedMedia } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport {\n\tuseGetShowroomSelectedMediaQuery,\n\tuseGetShowroomShareOptionsQuery,\n\tQualityOptions,\n\tuseGenerateShowroomArchiveMutation,\n\tGenerateShowroomArchiveMutationVariables,\n\tuseGetArchiveStatusLazyQuery,\n\tArchiveStatus,\n\tuseGetZipFileLazyQuery,\n\tDownloadFile,\n\tGetShowroomSelectedMediaQuery\n} from 'generated/graphql';\n\nimport { useCustomNotifications } from 'lib/Hooks';\nimport { useDownloadFiles, DownloadFileHookInput } from 'lib/downloadFiles';\nimport { useIdentifyUser } from 'lib/identifyUser';\nimport { isImage } from 'lib/media';\nimport { useGetCurrentShowroomData } from 'lib/showroom';\nimport { useUserConsent } from 'lib/userConsent';\n\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport TextField from '@material-ui/core/TextField';\nimport MailIcon from '@material-ui/icons/MailOutline';\n\nimport { ShowroomContext } from 'context/showroom/ShowroomContext';\n\nimport DialogConfirm from 'components/Common/Dialog/Confirm';\n\nimport { useStyles } from './styles';\n\ntype SelectedShowroomMedia = GetShowroomSelectedMediaQuery['showroom']['userView']['selectedMedias'][0];\ntype SelectedShowroomPdf = GetShowroomSelectedMediaQuery['showroom']['userView']['selectedPdfs'][0];\n\nconst ShowroomContentShare = () => {\n\tconst { track } = React.useContext(ShowroomContext);\n\tconst showroomObj = useGetCurrentShowroomData();\n\tconst { tenant } = showroomObj.tenant;\n\n\tconst classes = useStyles();\n\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: {\n\t\t\t\t\tshare: { isDialogOpen, mediaQuality }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} = useGetShowroomShareOptionsQuery();\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: { selectedMedias, selectedPdfs }\n\t\t\t}\n\t\t}\n\t} = useGetShowroomSelectedMediaQuery();\n\n\tconst { onSubmit, renderInput: renderUserConsentInput, acceptConsent } = useUserConsent();\n\n\tconst { t } = useTranslation();\n\tconst [cookies] = useCookies();\n\tconst { enqueueNotification } = useCustomNotifications();\n\tconst identify = useIdentifyUser();\n\n\tconst [emailToSendError, setEmailToSendError] = React.useState(false);\n\tconst [emailToSend, setEmailToSend] = React.useState(\n\t\tcookies[`showroom-${tenant}`] && cookies[`showroom-${tenant}`].userViewerEmail ? cookies[`showroom-${tenant}`].userViewerEmail : ''\n\t);\n\tconst [downloadOptionSelected, setDownloadOptionSelected] = React.useState('direct');\n\n\tconst [getArchiveStatus, { data: getArchiveStatusData, stopPolling }] = useGetArchiveStatusLazyQuery({ pollInterval: 5000 });\n\n\tconst closeDialog = React.useCallback(() => {\n\t\tsetDialogIsOpen(false);\n\t\tsetSelectedPdfs([]);\n\t\tsetShowroomSelectedMedia([]);\n\t\tsetLoading(false);\n\t\tif (stopPolling) stopPolling();\n\t}, [stopPolling]);\n\n\tconst { downloadFiles } = useDownloadFiles();\n\n\tconst buildTrackEvent = React.useCallback(\n\t\t(media: SelectedShowroomMedia | SelectedShowroomPdf) => {\n\t\t\tconst isPdf = !!(media as SelectedShowroomPdf).publicId;\n\t\t\treturn {\n\t\t\t\teventType: 'download',\n\t\t\t\tmediaType: isPdf ? 'pdf' : isImage(media as SelectedShowroomMedia) ? 'image' : 'video',\n\t\t\t\tmediaId: isPdf ? (media as SelectedShowroomPdf).publicId : (media as SelectedShowroomMedia).cloudinaryId,\n\t\t\t\tshowroomId: showroomObj.id,\n\t\t\t\tdownloadQuality: isPdf ? QualityOptions.Original : mediaQuality\n\t\t\t};\n\t\t},\n\t\t[showroomObj?.id, mediaQuality]\n\t);\n\n\tconst onSuccessHandler = React.useCallback(() => {\n\t\tconst trackEvents = map([...selectedMedias, ...selectedPdfs], buildTrackEvent);\n\t\tif (trackEvents.length > 0) track(trackEvents, emailToSend);\n\t\tcloseDialog();\n\t}, [closeDialog, emailToSend, selectedPdfs, track, buildTrackEvent, selectedMedias]);\n\n\tconst onErrorHandler = React.useCallback(() => {\n\t\tsetLoading(false);\n\t\tenqueueNotification({\n\t\t\ttitle: t('showroom.download.notification.error.title'),\n\t\t\ttext: {t('showroom.download.notification.error.content')}\n\t\t});\n\t}, [enqueueNotification, t]);\n\n\tconst directDownloadAction = React.useCallback(\n\t\t(generatedUrls: DownloadFile[]) => {\n\t\t\tdownloadFiles(generatedUrls as unknown as DownloadFileHookInput[], {\n\t\t\t\tonError: onErrorHandler,\n\t\t\t\twaitForCompletion: false\n\t\t\t});\n\t\t},\n\t\t[downloadFiles, onErrorHandler]\n\t);\n\n\tconst [generateShowroomArchiveZip] = useGenerateShowroomArchiveMutation();\n\n\tconst [getZipFileQuery] = useGetZipFileLazyQuery({\n\t\tonCompleted: data => {\n\t\t\tdirectDownloadAction(data.archiveFiles);\n\t\t\tonSuccessHandler();\n\t\t},\n\t\tonError: onErrorHandler\n\t});\n\n\tconst [loading, setLoading] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tif (!emailToSend && cookies[`showroom-${tenant}`] && cookies[`showroom-${tenant}`].userViewerEmail) {\n\t\t\tsetEmailToSend(cookies[`showroom-${tenant}`].userViewerEmail);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [cookies, tenant]);\n\n\tReact.useEffect(() => {\n\t\tsetDownloadOptionSelected(selectedMedias.length + selectedPdfs.length > 10 ? 'email' : 'direct');\n\t}, [selectedMedias, selectedPdfs]);\n\n\tReact.useEffect(() => {\n\t\tif (!getArchiveStatusData) return;\n\t\tconst {\n\t\t\tgetArchive: { id, status }\n\t\t} = getArchiveStatusData;\n\t\tif (status === ArchiveStatus.Pending) return;\n\t\tstopPolling();\n\t\tif (status === ArchiveStatus.Completed) {\n\t\t\tgetZipFileQuery({\n\t\t\t\tvariables: {\n\t\t\t\t\tid\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tonErrorHandler();\n\t\t}\n\t}, [getArchiveStatusData, stopPolling, getZipFileQuery, onErrorHandler]);\n\n\tconst exportMedia = React.useCallback(async () => {\n\t\tidentify(\n\t\t\t{ id: emailToSend, email: emailToSend, externalGuest: true },\n\t\t\t{\n\t\t\t\tSalesforceId: showroomObj.tenant?.salesforceAccountId,\n\t\t\t\tsfparentid: showroomObj.tenant?.salesforceAccountParentId,\n\t\t\t\tEcoAccountName: showroomObj.tenant?.EcosystemAccountName,\n\t\t\t\tecoAccountId: showroomObj.tenant?.EcosystemAccountID,\n\t\t\t\tSite: showroomObj.tenant?.name,\n\t\t\t\tsiteId: showroomObj.tenant?.id\n\t\t\t}\n\t\t);\n\t\tconst pdfIds = map(selectedPdfs, pdf => pdf.publicId);\n\t\tconst variables: GenerateShowroomArchiveMutationVariables = {\n\t\t\tparams: {\n\t\t\t\ttenant,\n\t\t\t\tshowroomId: showroomObj.id,\n\t\t\t\tpdfIds,\n\t\t\t\toptions: {\n\t\t\t\t\trecipients: downloadOptionSelected === 'email' ? [emailToSend] : [],\n\t\t\t\t\tquality: mediaQuality\n\t\t\t\t},\n\t\t\t\tmediaIds: selectedMedias.map(media => media.id)\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\tif (downloadOptionSelected === 'email') {\n\t\t\t\tawait generateShowroomArchiveZip({\n\t\t\t\t\tvariables\n\t\t\t\t});\n\t\t\t\tenqueueNotification({\n\t\t\t\t\ttitle: t('showroom.download.notification.email.success.title'),\n\t\t\t\t\ttext: {t('showroom.download.notification.email.success.text')},\n\t\t\t\t\ticon: \"\"\n\t\t\t\t});\n\t\t\t\tonSuccessHandler();\n\t\t\t} else {\n\t\t\t\tconst {\n\t\t\t\t\tdata: { generateShowroomArchive }\n\t\t\t\t} = await generateShowroomArchiveZip({\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\t...variables,\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t...variables.params,\n\t\t\t\t\t\t\tisDirectDownload: true,\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t...variables.params.options,\n\t\t\t\t\t\t\t\tremoveAfter: '5min'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} as GenerateShowroomArchiveMutationVariables\n\t\t\t\t});\n\t\t\t\tenqueueNotification({\n\t\t\t\t\ttitle: t('showroom.download.notification.direct.success.title'),\n\t\t\t\t\ttext: {t('showroom.download.notification.direct.success.text')},\n\t\t\t\t\ticon: \"\"\n\t\t\t\t});\n\t\t\t\tgetArchiveStatus({ variables: { id: generateShowroomArchive.id } });\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tonErrorHandler();\n\t\t}\n\t}, [\n\t\tidentify,\n\t\temailToSend,\n\t\tshowroomObj,\n\t\tselectedPdfs,\n\t\ttenant,\n\t\tdownloadOptionSelected,\n\t\tmediaQuality,\n\t\tselectedMedias,\n\t\tgenerateShowroomArchiveZip,\n\t\tenqueueNotification,\n\t\tt,\n\t\tonSuccessHandler,\n\t\tgetArchiveStatus,\n\t\tonErrorHandler\n\t]);\n\n\tconst dialogContent = React.useMemo(\n\t\t() => (\n\t\t\t
\n\t\t\t\t setDownloadOptionSelected(ev.target.value)}\n\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t\t\tlabel={t('showroom.download.dialog.direct.label')}\n\t\t\t\t\t/>\n\t\t\t\t\t} label={t('showroom.download.dialog.email.label')} />\n\t\t\t\t\n\t\t\t\t{downloadOptionSelected === 'email' ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetEmailToSend(ev.target.value.split(',')[0]);\n\t\t\t\t\t\t\t\tif (isEmail(emailToSend)) setEmailToSendError(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonBlur={() => (!isEmail(emailToSend) ? setEmailToSendError(true) : setEmailToSendError(false))}\n\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{renderUserConsentInput({\n\t\t\t\t\t\t\twrapper: {\n\t\t\t\t\t\t\t\tclassName: classes.userConsentWrapper\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t) : selectedMedias.length > 10 ? (\n\t\t\t\t\t
{t('showroom.download.dialog.direct.alert')}
\n\t\t\t\t) : null}\n\t\t\t
\n\t\t),\n\t\t[classes, downloadOptionSelected, emailToSend, emailToSendError, renderUserConsentInput, selectedMedias.length, t]\n\t);\n\n\tconst onConfirmHandler = React.useCallback(async () => {\n\t\tconst doExport = () => {\n\t\t\tsetLoading(true);\n\t\t\texportMedia();\n\t\t};\n\t\tif (downloadOptionSelected === 'email') {\n\t\t\tawait onSubmit(async () => {\n\t\t\t\tdoExport();\n\t\t\t\tawait acceptConsent(emailToSend);\n\t\t\t});\n\t\t} else doExport();\n\t}, [downloadOptionSelected, onSubmit, exportMedia, acceptConsent, emailToSend]);\n\n\treturn (\n\t\t{t('showroom.download.dialog.title')}}\n\t\t\tcontent={dialogContent}\n\t\t\tdismissText={t('showroom.download.dialog.dismiss')}\n\t\t\tconfirmText={t('showroom.download.dialog.confirm')}\n\t\t\tconfirmTypeButton=\"confirm\"\n\t\t\tonDismiss={closeDialog}\n\t\t\tonConfirm={onConfirmHandler}\n\t\t\tconfirmButtonDisabled={downloadOptionSelected === 'email' ? emailToSendError || !emailToSend : false}\n\t\t\tloading={loading}\n\t\t/>\n\t);\n};\n\nexport default React.memo(ShowroomContentShare);\n","import ShowroomContentShare from './ShowroomContentShare';\nexport default ShowroomContentShare;","import grey from '@material-ui/core/colors/grey';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\n\nexport const Theme = useTheme;\nexport type UserContentStylesProps = {\n\tspacing: number;\n\tzoomEnabled: boolean;\n\tisMobile: boolean;\n};\n\nexport const useStyles = makeStyles(theme => {\n\treturn {\n\t\tshowroomContentContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\tpaddingTop: 100,\n\t\t\tminHeight: 'calc(100% - 100px)'\n\t\t},\n\t\tshowroomContentContainerMobile: {\n\t\t\tpaddingTop: 50\n\t\t},\n\t\tshowroomContentDownloadableMobile: {\n\t\t\tpaddingBottom: 50\n\t\t},\n\t\tshowroomHero: {\n\t\t\twidth: '100%',\n\t\t\tposition: 'relative',\n\t\t\tzIndex: 0,\n\t\t\tmarginBottom: 20\n\t\t},\n\t\tshowroomHeroMobile: {\n\t\t\tmarginTop: 20,\n\t\t\tmarginBottom: 20\n\t\t},\n\t\tshowroomHeroMobileMedia: {\n\t\t\tmarginTop: 0\n\t\t},\n\t\tshowroomHeroBackground: {\n\t\t\twidth: '100%',\n\t\t\theight: 753,\n\t\t\tbackgroundPosition: 'center',\n\t\t\tbackgroundSize: 'cover',\n\t\t\tboxSizing: 'border-box'\n\t\t},\n\t\tshowroomHeroBackgroundMobile: {\n\t\t\theight: 'calc(100vh - 50px) !important'\n\t\t},\n\t\tshowroomHeroBackgroundVideo: {\n\t\t\twidth: '100%',\n\t\t\theight: 753\n\t\t},\n\t\tshowroomHeroContainer: {\n\t\t\tposition: 'relative',\n\t\t\tleft: 144,\n\t\t\tmarginTop: -264,\n\t\t\tbackgroundColor: '#FFF',\n\t\t\tpadding: '60px 70px',\n\t\t\twidth: 676,\n\t\t\t'& p': {\n\t\t\t\tfontSize: '14px',\n\t\t\t\tlineHeight: '22px'\n\t\t\t}\n\t\t},\n\t\tshowroomHeroContainerNoMedia: {\n\t\t\tmarginTop: '0 !important'\n\t\t},\n\t\tshowroomHeroContainerMobile: {\n\t\t\tleft: 'auto',\n\t\t\tmaxWidth: '90%',\n\t\t\tmarginLeft: 'auto',\n\t\t\tmarginRight: 'auto',\n\t\t\tboxSizing: 'border-box',\n\t\t\tpadding: '40px 50px',\n\t\t\tmarginTop: 'calc(-1 * 20vh)'\n\t\t},\n\t\tshowroomHeroContainerCollapse: {},\n\t\tshowroomHeroTitle: {\n\t\t\tfontSize: '36px',\n\t\t\tmarginBottom: '30px',\n\t\t\tmarginTop: 0,\n\t\t\tfontWeight: 'normal'\n\t\t},\n\t\tshowroomHeroContent: {\n\t\t\twordBreak: 'break-word'\n\t\t},\n\t\tshowroomTitle: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\talignItems: 'center',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tmargin: '20px 0',\n\t\t\t'& h4': {\n\t\t\t\tfontSize: 18,\n\t\t\t\tfontWeight: 600,\n\t\t\t\tlineHeight: '21px',\n\t\t\t\tmarginBottom: 5\n\t\t\t},\n\t\t\t'& h5': {\n\t\t\t\tfontSize: 16,\n\t\t\t\tfontWeight: 500,\n\t\t\t\tlineHeight: '19px'\n\t\t\t}\n\t\t},\n\t\tshowroomTitleMobile: {\n\t\t\tpadding: '20px 0px',\n\t\t\tposition: 'absolute',\n\t\t\ttransform: 'translateY(113%)'\n\t\t},\n\t\tshowroomTitleMediaMobile: {\n\t\t\tpadding: '0',\n\t\t\tzIndex: 10,\n\t\t\twidth: '100%',\n\t\t\t'& h4, h5': {\n\t\t\t\tcolor: 'white'\n\t\t\t}\n\t\t},\n\t\tsectionTabsContainer: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center'\n\t\t},\n\t\tsectionTabsBox: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tmarginTop: ({ isMobile }: UserContentStylesProps) => (isMobile ? 15 : 30),\n\t\t\tmarginBottom: 15,\n\t\t\tpaddingBottom: ({ isMobile }: UserContentStylesProps) => (isMobile ? 15 : 30),\n\t\t\toverflowX: 'auto'\n\t\t},\n\t\tsectionTabBox: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\twhiteSpace: 'pre'\n\t\t},\n\t\ttab: {\n\t\t\tmarginRight: 40,\n\t\t\tmarginLeft: 40,\n\t\t\tfontSize: 18,\n\t\t\tcolor: grey[400]\n\t\t},\n\t\ttabLabel: {\n\t\t\ttextTransform: 'uppercase'\n\t\t},\n\t\ttabSelected: {\n\t\t\tcolor: '#000',\n\t\t\tfontWeight: 'bold'\n\t\t},\n\t\tshowroomGridContainer: {\n\t\t\tmarginBottom: 50\n\t\t},\n\t\tshowroomGrid: {\n\t\t\tmaxWidth: '100%',\n\t\t\tmargin: '3.33% 3.5% 3.33% 3.5%'\n\t\t},\n\t\tedgeToEdge: {\n\t\t\tmarginLeft: 0,\n\t\t\tmarginRight: 0\n\t\t},\n\t\tshowroomGridContainerMobile: {\n\t\t\tmarginTop: 10\n\t\t},\n\t\tshowroomGridRow: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexWrap: 'wrap',\n\t\t\t'&:first-child': {\n\t\t\t\tpaddingTop: 0\n\t\t\t},\n\t\t\t'&:last-child': {\n\t\t\t\tpaddingBottom: 0\n\t\t\t},\n\t\t\t[theme.breakpoints.up('sm')]: {\n\t\t\t\tflexWrap: 'nowrap',\n\t\t\t\tpaddingTop: (props: UserContentStylesProps) => `${props.spacing}%`,\n\t\t\t\tpaddingBottom: (props: UserContentStylesProps) => `${props.spacing}%`\n\t\t\t}\n\t\t},\n\t\tshowroomGridItem: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\tpaddingBottom: (props: UserContentStylesProps) => `${props.spacing}%`,\n\t\t\tpaddingTop: (props: UserContentStylesProps) => `${props.spacing}%`,\n\n\t\t\t[theme.breakpoints.up('sm')]: {\n\t\t\t\tpaddingLeft: (props: UserContentStylesProps) => `${props.spacing}%`,\n\t\t\t\tpaddingRight: (props: UserContentStylesProps) => `${props.spacing}%`,\n\t\t\t\tpaddingBottom: '0 !important',\n\t\t\t\tpaddingTop: '0 !important',\n\t\t\t\t'&:first-child': {\n\t\t\t\t\tpaddingLeft: 0\n\t\t\t\t},\n\n\t\t\t\t'&:last-child': {\n\t\t\t\t\tpaddingRight: 0\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tshowroomGridItemContent: {\n\t\t\tflexGrow: 1\n\t\t},\n\t\tshowroomGridItemLabel: {\n\t\t\toverflow: 'hidden',\n\t\t\theight: 18,\n\t\t\tcolor: '#FFF'\n\t\t},\n\t\tshowroomGridItemPortrait: {\n\t\t\tflex: '1 1 50%',\n\t\t\t[theme.breakpoints.up('sm')]: {\n\t\t\t\tflex: '1 1 auto'\n\t\t\t}\n\t\t},\n\t\tshowroomGridItemLandscape: {\n\t\t\tflex: '3 1 auto'\n\t\t},\n\t\tpreviewMediaGridImg: {\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tobjectFit: 'cover',\n\t\t\tcursor: (props: UserContentStylesProps) => (props.zoomEnabled ? 'pointer' : 'default'),\n\t\t\tWebkitUserSelect: 'none',\n\t\t\tMozUserSelect: 'none',\n\t\t\tuserSelect: 'none',\n\t\t\tWebkitTouchCallout: 'none',\n\t\t\tWebkitTapHighlightColor: 'transparent'\n\t\t},\n\t\tshowroomDialogAppBar: {\n\t\t\tposition: 'relative'\n\t\t},\n\t\tdialogContent: {\n\t\t\tpadding: 0\n\t\t},\n\t\tshowroomDialogTitle: {\n\t\t\tpaddingBottom: 0,\n\t\t\tmarginLeft: 20,\n\t\t\tflex: 1\n\t\t},\n\t\tshowroomDialogBackButton: {\n\t\t\tfontSize: 18\n\t\t},\n\t\tshowroomDialogCloseButton: {\n\t\t\t'&:hover': {\n\t\t\t\tbackgroundColor: 'rgba(255, 255, 255, 0.18)'\n\t\t\t},\n\t\t\tcolor: '#FFF'\n\t\t},\n\t\tdialogTitle: {\n\t\t\tposition: 'absolute'\n\t\t},\n\t\tshowroomDialogPrevButtonContainer: {\n\t\t\tzIndex: 10,\n\t\t\tposition: 'absolute',\n\t\t\tleft: 20,\n\t\t\ttop: '50%',\n\t\t\ttransform: 'translate(0, -50%)'\n\t\t},\n\t\tshowroomDialogPrevButton: {\n\t\t\t'&:hover': {\n\t\t\t\tbackgroundColor: 'rgba(255, 255, 255, 0.18)'\n\t\t\t},\n\t\t\tcolor: '#FFF'\n\t\t},\n\t\tshowroomDialogNextButtonContainer: {\n\t\t\tzIndex: 10,\n\t\t\tposition: 'absolute',\n\t\t\tright: 20,\n\t\t\ttop: '50%',\n\t\t\ttransform: 'translate(0, -50%)'\n\t\t},\n\t\tshowroomDialogNextButton: {\n\t\t\t'&:hover': {\n\t\t\t\tbackgroundColor: 'rgba(255, 255, 255, 0.18)'\n\t\t\t},\n\t\t\tcolor: '#FFF'\n\t\t},\n\t\tpreviewHeader: {\n\t\t\tbackground: 'transparent',\n\t\t\tboxShadow: 'none'\n\t\t},\n\t\tpreviewHeaderResponsive: {\n\t\t\tpadding: '0 10px 0'\n\t\t},\n\t\timageItemCard: {\n\t\t\tdisplay: 'flex',\n\t\t\tposition: 'relative'\n\t\t},\n\t\timageItemCardContent: {\n\t\t\tposition: 'absolute',\n\t\t\tbottom: 0,\n\t\t\twidth: '100%',\n\t\t\tbackgroundColor: 'rgb(255,255,255,0.1)'\n\t\t},\n\t\timageItem: {\n\t\t\tbackgroundColor: 'black',\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\ttextAlign: 'center'\n\t\t},\n\t\tswipeableWrapper: {\n\t\t\theight: '100%',\n\t\t\twidth: '100%',\n\t\t\tposition: 'absolute',\n\t\t\tbackground: 'black'\n\t\t},\n\t\tswipeableSlide: {\n\t\t\tdisplay: 'flex',\n\t\t\theight: '100%',\n\t\t\twidth: '100%',\n\t\t\tjustifyContent: 'center'\n\t\t},\n\t\timageItemImg: {\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tobjectFit: 'contain'\n\t\t}\n\t};\n});\n","import clsx from 'clsx';\nimport { isEmpty } from 'lodash';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { closeCurrentMediaMobileMenu } from 'Apollo/Store/Showroom/UserView/resolvers';\nimport { useGetShowroomSectionsQuery, useGetShowroomSelectedTabQuery } from 'generated/graphql';\n\nimport { cloudinaryCore, getVersion } from 'lib/cloudinary';\nimport { useGetCurrentShowroomData, useIsShowroomMobileVersion, useIsShowroomUserView } from 'lib/showroom';\n\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\n\nimport { ShowroomContext } from 'context/showroom/ShowroomContext';\n\nimport VideoPlayer from 'components/Common/VideoPlayer';\n\nimport ShowroomMobileMediaMenu from '../MobileMediaMenu';\nimport ShowroomContacts from './Contacts';\nimport ShowroomFooter from './Footer';\nimport ShowroomContentHeader from './Header';\nimport ShowroomContentSection from './Section';\nimport ShowroomContentShare from './Share';\nimport { useStyles } from './styles';\n\nconst ShowroomContent = () => {\n\tconst { track } = React.useContext(ShowroomContext);\n\tconst { t, i18n } = useTranslation();\n\n\tconst showroom = useGetCurrentShowroomData();\n\n\tconst { data, loading } = useGetShowroomSectionsQuery({ variables: { id: showroom.id } });\n\tconst sections = React.useMemo(() => {\n\t\tif (loading) return [];\n\t\treturn data?.getShowroom?.sections ?? [];\n\t}, [data, loading]);\n\n\tconst isUserView = useIsShowroomUserView();\n\tconst isMobileVersion = useIsShowroomMobileVersion();\n\tconst {\n\t\tdata: {\n\t\t\tshowroom: {\n\t\t\t\tuserView: { selectedTab }\n\t\t\t}\n\t\t}\n\t} = useGetShowroomSelectedTabQuery();\n\n\tconst [selectedSection, setSelectedSection] = React.useState(0);\n\tconst [isExpanded, setIsExpanded] = React.useState(false);\n\n\tconst currentSection = sections[selectedSection];\n\n\tconst classes = useStyles({\n\t\tspacing: currentSection?.options.spacing,\n\t\tzoomEnabled: currentSection?.options.zoomLayer || currentSection?.options.productLayer,\n\t\tisMobile: isMobileVersion\n\t});\n\n\tReact.useEffect(() => {\n\t\tconst currentIsMobileVersion = isMobileVersion;\n\t\treturn () => {\n\t\t\tif (currentIsMobileVersion) {\n\t\t\t\tcloseCurrentMediaMobileMenu();\n\t\t\t}\n\t\t};\n\t}, [isMobileVersion]);\n\n\tReact.useEffect(() => {\n\t\tif (selectedSection > sections.length - 1) setSelectedSection(0);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [showroom]);\n\n\tReact.useEffect(() => {\n\t\tdocument.title = `Launchmetrics Galleries | ${showroom.name}`;\n\t\ttrack([\n\t\t\t{\n\t\t\t\teventType: 'visit',\n\t\t\t\tshowroomId: showroom.id\n\t\t\t}\n\t\t]);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [showroom]);\n\n\tReact.useEffect(() => {\n\t\tif (showroom.language && showroom.language !== i18n.language) i18n.changeLanguage(showroom.language);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [showroom.language]);\n\n\tconst handleExpand = React.useCallback(() => {\n\t\tsetIsExpanded(!isExpanded);\n\t}, [isExpanded]);\n\n\tconst showroomLogoPublicUrl = React.useMemo(() => showroom.library?.logo?.publicUrl ?? showroom.tenant.logo?.publicUrl, [showroom]);\n\tconst showroomLogoPublicId = React.useMemo(() => showroom.library?.logo?.publicId ?? showroom.tenant.logo?.publicId, [showroom]);\n\n\tconst sectionTabs = React.useMemo(() => {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{sections.map((section, index) => (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setSelectedSection(index)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{section.name}\n\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t{sections.length > index + 1 ? ' | ' : null}\n\t\t\t\t\t\t
\n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [sections, selectedSection]);\n\n\tconst canDisplayHeroMedia = !!(\n\t\tshowroom.displayHeroMedia &&\n\t\tshowroom.heroMedia &&\n\t\t!!showroom.heroMedia.publicUrl &&\n\t\t!!showroom.heroMedia.publicId &&\n\t\t!!showroom.heroMedia.mediaType\n\t);\n\tconst canDisplayHeroContent = !!showroom.displayHeroContent;\n\n\tconst hero = React.useMemo(() => {\n\t\tif (!canDisplayHeroMedia && !canDisplayHeroContent) return;\n\n\t\tconst heroMediaBanner = canDisplayHeroMedia ? (\n\t\t\tshowroom.heroMedia.mediaType === 'image' ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)\n\t\t) : null;\n\n\t\tconst heroContent = canDisplayHeroContent\n\t\t\t? (() => {\n\t\t\t\t\tconst wordLimit = 260;\n\t\t\t\t\tconst shouldCropText = showroom.heroContent.length > wordLimit && isMobileVersion;\n\t\t\t\t\tconst showReadMore = shouldCropText && !isExpanded;\n\t\t\t\t\tconst showReadLess = shouldCropText && isExpanded;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t wordLimit,\n\t\t\t\t\t\t\t\t[classes.showroomHeroContainerNoMedia]: !heroMediaBanner\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: showroom.heroBackgroundColor,\n\t\t\t\t\t\t\t\tcolor: showroom.heroFontColor\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t

{showroom.heroTitle}

\n\t\t\t\t\t\t\t') + '...'\n\t\t\t\t\t\t\t\t\t\t: showroom.heroContent.replace(/\\n/g, '
')\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{showReadLess ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t{showReadMore ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t })()\n\t\t\t: null;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{heroMediaBanner}\n\t\t\t\t{heroContent}\n\t\t\t\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tcanDisplayHeroMedia,\n\t\tcanDisplayHeroContent,\n\t\tshowroom.heroMedia,\n\t\tshowroom.heroContent,\n\t\tshowroom.heroBackgroundColor,\n\t\tshowroom.heroFontColor,\n\t\tshowroom.heroTitle,\n\t\tisMobileVersion,\n\t\tisExpanded,\n\t\thandleExpand,\n\t\tt\n\t]);\n\n\tconst showroomLogo = React.useMemo(() => {\n\t\tconst logoUrl = showroomLogoPublicId\n\t\t\t? cloudinaryCore.url(showroomLogoPublicId, {\n\t\t\t\t\tversion: getVersion(showroomLogoPublicUrl)\n\t\t\t })\n\t\t\t: `${process.env.PUBLIC_URL}/logo.svg`;\n\n\t\treturn logoUrl;\n\t}, [showroomLogoPublicId, showroomLogoPublicUrl]);\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t{showroom.libraryCollection || showroom.librarySeason ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{showroom.libraryCollection ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{showroom.libraryCollection}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t{showroom.librarySeason ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{showroom.librarySeason}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\t{hero}\n\t\t\t\t{sections?.length > 1 ? sectionTabs : null}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t{isUserView ? : null}\n\t\t\t\n\t\t\t{!isEmpty(showroom.prContacts) && }\n\t\t\t\n\t\t\t{isMobileVersion && }\n\t\t\n\t);\n};\n\nexport default React.memo(ShowroomContent);\n","import ShowroomContent from './ShowroomContent';\n\nexport default ShowroomContent;\n","export default __webpack_public_path__ + \"static/media/BG1.b413954b.jpg\";","import image1 from './BG1.jpg';\nimport image2 from './BG2.jpg';\nimport image3 from './BG3.jpg';\nimport image4 from './BG4.jpg';\nimport image5 from './BG5.jpg';\nimport image7 from './BG7.png';\nimport image8 from './BG8.jpg';\nimport image9 from './BG9.jpg';\nimport image10 from './BG10.jpg';\nimport image11 from './BG11.jpg';\nimport image12 from './BG12.jpg';\nimport image13 from './BG13.jpg';\n\nconst images = [image1, image2, image3, image4, image5, image7, image8, image9, image10, image11, image12, image13];\n\nexport default {\n\tgetNewImage: (imgArr = images, min = 0, max = 11) => {\n\t\tlet minAct = Math.ceil(min);\n\t\tlet maxAct = Math.floor(max);\n\t\tconst rand = Math.floor(Math.random() * (maxAct - minAct + 1)) + minAct;\n\n\t\treturn imgArr[rand];\n\t}\n};\n","export default __webpack_public_path__ + \"static/media/BG2.84030dc4.jpg\";","export default __webpack_public_path__ + \"static/media/BG3.2520556c.jpg\";","export default __webpack_public_path__ + \"static/media/BG4.2b606619.jpg\";","export default __webpack_public_path__ + \"static/media/BG5.7f8ee8c3.jpg\";","export default __webpack_public_path__ + \"static/media/BG7.e1074dae.png\";","export default __webpack_public_path__ + \"static/media/BG8.219ac973.jpg\";","export default __webpack_public_path__ + \"static/media/BG9.2c7d318d.jpg\";","export default __webpack_public_path__ + \"static/media/BG10.ba8391fb.jpg\";","export default __webpack_public_path__ + \"static/media/BG11.d7b1fd04.jpg\";","export default __webpack_public_path__ + \"static/media/BG12.309afc0a.jpg\";","export default __webpack_public_path__ + \"static/media/BG13.037b8ed4.jpg\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n padding: 16,\n '&:last-child': {\n paddingBottom: 24\n }\n }\n};\nvar CardContent = /*#__PURE__*/React.forwardRef(function CardContent(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardContent.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\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\n /* @typescript-to-proptypes-ignore */\n .elementType\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiCardContent'\n})(CardContent);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nvar RADIUS_STANDARD = 10;\nvar RADIUS_DOT = 4;\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'relative',\n display: 'inline-flex',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n flexShrink: 0\n },\n\n /* Styles applied to the badge `span` element. */\n badge: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n boxSizing: 'border-box',\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(12),\n minWidth: RADIUS_STANDARD * 2,\n lineHeight: 1,\n padding: '0 6px',\n height: RADIUS_STANDARD * 2,\n borderRadius: RADIUS_STANDARD,\n zIndex: 1,\n // Render the badge on top of potential ripples.\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.enteringScreen\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText\n },\n\n /* Styles applied to the root element if `variant=\"dot\"`. */\n dot: {\n borderRadius: RADIUS_DOT,\n height: RADIUS_DOT * 2,\n minWidth: RADIUS_DOT * 2,\n padding: 0\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }} overlap=\"rectangle\"`. */\n anchorOriginTopRightRectangle: {\n top: 0,\n right: 0,\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, -50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }} overlap=\"rectangular\"`. */\n anchorOriginTopRightRectangular: {\n top: 0,\n right: 0,\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, -50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }} overlap=\"rectangle\"`. */\n anchorOriginBottomRightRectangle: {\n bottom: 0,\n right: 0,\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, 50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }} overlap=\"rectangular\"`. */\n anchorOriginBottomRightRectangular: {\n bottom: 0,\n right: 0,\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, 50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }} overlap=\"rectangle\"`. */\n anchorOriginTopLeftRectangle: {\n top: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }} overlap=\"rectangular\"`. */\n anchorOriginTopLeftRectangular: {\n top: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }} overlap=\"rectangle\"`. */\n anchorOriginBottomLeftRectangle: {\n bottom: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }} overlap=\"rectangular\"`. */\n anchorOriginBottomLeftRectangular: {\n bottom: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }} overlap=\"circle\"`. */\n anchorOriginTopRightCircle: {\n top: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, -50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }} overlap=\"circular\"`. */\n anchorOriginTopRightCircular: {\n top: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, -50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }} overlap=\"circle\"`. */\n anchorOriginBottomRightCircle: {\n bottom: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, 50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }} overlap=\"circular\"`. */\n anchorOriginBottomRightCircular: {\n bottom: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, 50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }} overlap=\"circle\"`. */\n anchorOriginTopLeftCircle: {\n top: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }} overlap=\"circular\"`. */\n anchorOriginTopLeftCircular: {\n top: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }} overlap=\"circle\"`. */\n anchorOriginBottomLeftCircle: {\n bottom: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }} overlap=\"circular\"`. */\n anchorOriginBottomLeftCircular: {\n bottom: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n },\n\n /* Pseudo-class to the badge `span` element if `invisible={true}`. */\n invisible: {\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.leavingScreen\n })\n }\n };\n};\nvar Badge = /*#__PURE__*/React.forwardRef(function Badge(props, ref) {\n var _props$anchorOrigin = props.anchorOrigin,\n anchorOrigin = _props$anchorOrigin === void 0 ? {\n vertical: 'top',\n horizontal: 'right'\n } : _props$anchorOrigin,\n badgeContent = props.badgeContent,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'default' : _props$color,\n _props$component = props.component,\n ComponentProp = _props$component === void 0 ? 'span' : _props$component,\n invisibleProp = props.invisible,\n _props$max = props.max,\n max = _props$max === void 0 ? 99 : _props$max,\n _props$overlap = props.overlap,\n overlap = _props$overlap === void 0 ? 'rectangle' : _props$overlap,\n _props$showZero = props.showZero,\n showZero = _props$showZero === void 0 ? false : _props$showZero,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"anchorOrigin\", \"badgeContent\", \"children\", \"classes\", \"className\", \"color\", \"component\", \"invisible\", \"max\", \"overlap\", \"showZero\", \"variant\"]);\n\n var invisible = invisibleProp;\n\n if (invisibleProp == null && (badgeContent === 0 && !showZero || badgeContent == null && variant !== 'dot')) {\n invisible = true;\n }\n\n var displayValue = '';\n\n if (variant !== 'dot') {\n displayValue = badgeContent > max ? \"\".concat(max, \"+\") : badgeContent;\n }\n\n return /*#__PURE__*/React.createElement(ComponentProp, _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other), children, /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(classes.badge, classes[\"\".concat(anchorOrigin.horizontal).concat(capitalize(anchorOrigin.vertical), \"}\")], classes[\"anchorOrigin\".concat(capitalize(anchorOrigin.vertical)).concat(capitalize(anchorOrigin.horizontal)).concat(capitalize(overlap))], color !== 'default' && classes[\"color\".concat(capitalize(color))], invisible && classes.invisible, variant === 'dot' && classes.dot)\n }, displayValue));\n});\nprocess.env.NODE_ENV !== \"production\" ? Badge.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The anchor of the badge.\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n\n /**\n * The badge will be added relative to this node.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: chainPropTypes(PropTypes.object, function (props) {\n var classes = props.classes;\n\n if (classes == null) {\n return null;\n }\n\n [['anchorOriginTopRightRectangle', 'anchorOriginTopRightRectangular'], ['anchorOriginBottomRightRectangle', 'anchorOriginBottomRightRectangular'], ['anchorOriginTopLeftRectangle', 'anchorOriginTopLeftRectangular'], ['anchorOriginBottomLeftRectangle', 'anchorOriginBottomLeftRectangular'], ['anchorOriginTopRightCircle', 'anchorOriginTopRightCircular'], ['anchorOriginBottomRightCircle', 'anchorOriginBottomRightCircular'], ['anchorOriginTopLeftCircle', 'anchorOriginTopLeftCircular']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedClassKey = _ref2[0],\n newClassKey = _ref2[1];\n\n if (classes[deprecatedClassKey] != null && // 2 classnames? one from withStyles the other must be custom\n classes[deprecatedClassKey].split(' ').length > 1) {\n throw new Error(\"Material-UI: The `\".concat(deprecatedClassKey, \"` class was deprecated. Use `\").concat(newClassKey, \"` instead.\"));\n }\n });\n return null;\n }),\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'error', 'primary', 'secondary']),\n\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\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, the badge will be invisible.\n */\n invisible: PropTypes.bool,\n\n /**\n * Max count to show.\n */\n max: PropTypes.number,\n\n /**\n * Wrapped shape the badge should overlap.\n */\n overlap: chainPropTypes(PropTypes.oneOf(['circle', 'rectangle', 'circular', 'rectangular']), function (props) {\n var _props$overlap2 = props.overlap,\n overlap = _props$overlap2 === void 0 ? 'rectangle' : _props$overlap2;\n\n if (overlap === 'rectangle') {\n throw new Error('Material-UI: `overlap=\"rectangle\"` was deprecated. Use `overlap=\"rectangular\"` instead.');\n }\n\n if (overlap === 'circle') {\n throw new Error('Material-UI: `overlap=\"circle\"` was deprecated. Use `overlap=\"circular\"` instead.');\n }\n\n return null;\n }),\n\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n */\n showZero: PropTypes.bool,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['dot', 'standard'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiBadge'\n})(Badge);","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'RadioButtonUnchecked');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z\"\n}), 'RadioButtonChecked');","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport RadioButtonUncheckedIcon from '../internal/svg-icons/RadioButtonUnchecked';\nimport RadioButtonCheckedIcon from '../internal/svg-icons/RadioButtonChecked';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n root: {\n position: 'relative',\n display: 'flex',\n '&$checked $layer': {\n transform: 'scale(1)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.shortest\n })\n }\n },\n layer: {\n left: 0,\n position: 'absolute',\n transform: 'scale(0)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeIn,\n duration: theme.transitions.duration.shortest\n })\n },\n checked: {}\n };\n};\n/**\n * @ignore - internal component.\n */\n\nfunction RadioButtonIcon(props) {\n var checked = props.checked,\n classes = props.classes,\n fontSize = props.fontSize;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.root, checked && classes.checked)\n }, /*#__PURE__*/React.createElement(RadioButtonUncheckedIcon, {\n fontSize: fontSize\n }), /*#__PURE__*/React.createElement(RadioButtonCheckedIcon, {\n fontSize: fontSize,\n className: classes.layer\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? RadioButtonIcon.propTypes = {\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * The size of the radio.\n * `small` is equivalent to the dense radio styling.\n */\n fontSize: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'PrivateRadioButtonIcon'\n})(RadioButtonIcon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport SwitchBase from '../internal/SwitchBase';\nimport RadioButtonIcon from './RadioButtonIcon';\nimport { alpha } from '../styles/colorManipulator';\nimport capitalize from '../utils/capitalize';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport withStyles from '../styles/withStyles';\nimport useRadioGroup from '../RadioGroup/useRadioGroup';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n color: theme.palette.text.secondary\n },\n\n /* Pseudo-class applied to the root element if `checked={true}`. */\n checked: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n '&$checked': {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n '&$checked': {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n }\n };\n};\nvar defaultCheckedIcon = /*#__PURE__*/React.createElement(RadioButtonIcon, {\n checked: true\n});\nvar defaultIcon = /*#__PURE__*/React.createElement(RadioButtonIcon, null);\nvar Radio = /*#__PURE__*/React.forwardRef(function Radio(props, ref) {\n var checkedProp = props.checked,\n classes = props.classes,\n _props$color = props.color,\n color = _props$color === void 0 ? 'secondary' : _props$color,\n nameProp = props.name,\n onChangeProp = props.onChange,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n other = _objectWithoutProperties(props, [\"checked\", \"classes\", \"color\", \"name\", \"onChange\", \"size\"]);\n\n var radioGroup = useRadioGroup();\n var checked = checkedProp;\n var onChange = createChainedFunction(onChangeProp, radioGroup && radioGroup.onChange);\n var name = nameProp;\n\n if (radioGroup) {\n if (typeof checked === 'undefined') {\n checked = radioGroup.value === props.value;\n }\n\n if (typeof name === 'undefined') {\n name = radioGroup.name;\n }\n }\n\n return /*#__PURE__*/React.createElement(SwitchBase, _extends({\n color: color,\n type: \"radio\",\n icon: /*#__PURE__*/React.cloneElement(defaultIcon, {\n fontSize: size === 'small' ? 'small' : 'medium'\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(defaultCheckedIcon, {\n fontSize: size === 'small' ? 'small' : 'medium'\n }),\n classes: {\n root: clsx(classes.root, classes[\"color\".concat(capitalize(color))]),\n checked: classes.checked,\n disabled: classes.disabled\n },\n name: name,\n checked: checked,\n onChange: onChange,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Radio.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'primary', 'secondary']),\n\n /**\n * If `true`, the radio will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element will be required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the radio.\n * `small` is equivalent to the dense radio styling.\n */\n size: PropTypes.oneOf(['medium', 'small']),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n */\n value: PropTypes.any\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiRadio'\n})(Radio);","import * as React from 'react';\nimport RadioGroupContext from './RadioGroupContext';\nexport default function useRadioGroup() {\n return React.useContext(RadioGroupContext);\n}","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport React from 'react';\nimport { SheetsRegistry } from 'jss';\nimport StylesProvider from '../StylesProvider';\nimport createGenerateClassName from '../createGenerateClassName';\n\nvar ServerStyleSheets = /*#__PURE__*/function () {\n function ServerStyleSheets() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ServerStyleSheets);\n\n this.options = options;\n }\n\n _createClass(ServerStyleSheets, [{\n key: \"collect\",\n value: function collect(children) {\n // This is needed in order to deduplicate the injection of CSS in the page.\n var sheetsManager = new Map(); // This is needed in order to inject the critical CSS.\n\n this.sheetsRegistry = new SheetsRegistry(); // A new class name generator\n\n var generateClassName = createGenerateClassName();\n return /*#__PURE__*/React.createElement(StylesProvider, _extends({\n sheetsManager: sheetsManager,\n serverGenerateClassName: generateClassName,\n sheetsRegistry: this.sheetsRegistry\n }, this.options), children);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this.sheetsRegistry ? this.sheetsRegistry.toString() : '';\n }\n }, {\n key: \"getStyleElement\",\n value: function getStyleElement(props) {\n return /*#__PURE__*/React.createElement('style', _extends({\n id: 'jss-server-side',\n key: 'jss-server-side',\n dangerouslySetInnerHTML: {\n __html: this.toString()\n }\n }, props));\n }\n }]);\n\n return ServerStyleSheets;\n}();\n\nexport { ServerStyleSheets as default };","import { makeStyles } from '@material-ui/core/styles';\n\nimport { launchmetricsGrey } from 'Styles/theme';\n\nexport const useStyles = makeStyles(theme => ({\n\troot: {\n\t\tposition: 'fixed',\n\t\tminHeight: 80,\n\t\tbottom: 16,\n\t\tleft: 16,\n\t\tright: 16,\n\t\tzIndex: 2000\n\t},\n\tcontent: {\n\t\tpadding: 16,\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center'\n\t},\n\ttext: {\n\t\ttextAlign: 'center',\n\t\tfontSize: 16,\n\t\tletterSpacing: 0.44\n\t},\n\tbutton: {\n\t\tpadding: '9px, 14px',\n\t\tmarginLeft: 8,\n\t\tborderRadius: 4,\n\t\tbackground: '#3F3F3F',\n\t\tcolor: 'white',\n\t\tfontSize: 14,\n\t\t'&:hover': {\n\t\t\tbackground: launchmetricsGrey\n\t\t}\n\t},\n\tlegalLink: {\n\t\tcolor: 'black',\n\t\ttextDecoration: 'none',\n\t\tborderBottom: '1px solid black'\n\t}\n}));\n","import React from 'react';\nimport { useCookies } from 'react-cookie';\n\nimport { Typography } from '@material-ui/core';\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\n\nimport { useStyles } from './styles';\n\nconst COOKIE_NAME = 'cookies-user-consent';\nconst COOKIE_EXPIRATION = 31536000;\n\nconst CookieBanner = () => {\n\tconst classes = useStyles();\n\tconst [cookies, setCookie] = useCookies();\n\n\tconst onAcceptPolicy = React.useCallback(() => {\n\t\tsetCookie(COOKIE_NAME, cookies[COOKIE_NAME] ? { ...cookies[COOKIE_NAME], userConsent: true } : { userConsent: true }, {\n\t\t\tmaxAge: COOKIE_EXPIRATION,\n\t\t\tsameSite: 'none',\n\t\t\tsecure: true\n\t\t});\n\t}, [cookies, setCookie]);\n\n\treturn cookies[COOKIE_NAME]?.userConsent ? null : (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tThis website uses cookies to enable site functional, attendance reporting as well as platform usage data on an aggregate\n\t\t\t\t\t\tbasis. If you would like to know more about our cookie policy, please read our{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tprivacy\n\t\t\t\t\t\t{' '}\n\t\t\t\t\t\tand{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tcookies\n\t\t\t\t\t\t{' '}\n\t\t\t\t\t\tpolicies\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(CookieBanner);\n","import CookieBanner from './CookieBanner';\n\nexport default CookieBanner;\n","import { makeStyles, useTheme } from '@material-ui/core/styles';\n\ntype propsType = {\n\tbackgroundImage: string\n};\n\nexport const Theme = useTheme;\n\nexport const useStyles = makeStyles(theme => ({\n\tcontainer: {\n\t\tbackgroundImage: (props: propsType) => `url(${props.backgroundImage})`,\n\t\tWebkitTransition: \"background-image 0.2s ease-in-out\",\n\t\ttransition: \"background-image 0.2s ease-in-out\",\n\t\tbackgroundSize: \"cover\",\n\t\tbackgroundPosition: \"center\",\n\t\tmaxWidth: \"100%\",\n\t\tminHeight: \"100vh\",\n\t\tdisplay: \"flex\"\n\t},\n\timaxtreeButton: {\n\t\tposition: \"absolute\",\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tcolor: \"#FFF\",\n\t\tfontSize: 16\n\t},\n\tcardWrapperMobile: {\n\t\tmargin: '10px auto'\n\t},\n\tcard: {\n\t\tposition: \"absolute\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\twidth: 273,\n\t\tmarginTop: 159,\n\t\tmarginLeft: 50,\n\t\tpadding: 30,\n\t\tbackgroundColor: \"#FFF\",\n\t\t\"&:last-child\": {\n\t\t\tpaddingBottom: 30\n\t\t},\n\t\tborderRadius: 10\n\t},\n\tcardMobile: {\n\t\tmargin: 0,\n\t\tposition: 'static'\n\t},\n\tgalleriesLogo: {\n\t\tmaxWidth: 270,\n\t\twidth: '100%',\n\t\tmarginTop: 15,\n\t\tmarginBottom: 15\n\t},\n\tsubtitle: {\n\t\tfontSize: 18,\n\t\tcolor: \"#EC4C47\",\n\t\tlineHeight: '20px',\n\t\tmarginBottom: 20\n\t}\n}));\n","import clsx from 'clsx';\nimport React from 'react';\n\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Container from '@material-ui/core/Container';\nimport Typography from '@material-ui/core/Typography';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport images from 'containers/Download/images';\n\nimport { useStyles, Theme } from './styles';\n\nconst Error = () => {\n\tconst backgroundImage = React.useMemo(() => images.getNewImage(), []);\n\tconst classes = useStyles({ backgroundImage });\n\n\tconst theme = Theme();\n\tconst isMobileVersion = useMediaQuery(theme.breakpoints.down('xs'));\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\"Galleries\"\n\t\t\t\t\t\n\t\t\t\t\t\tSorry, this content is not available anymore\n\t\t\t\t\t\n\t\t\t\t\tThe link you were provided with has expired. Try asking the sender for a new one.\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(Error);\n","import Error from './Error';\n\nexport default Error;\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport { bottomButtonsBackground } from 'Styles/theme';\n\nexport const useStyles = makeStyles(theme => ({\n\tcontainer: {\n\t\theight: '100%',\n\t\twidth: '100%',\n\t\tmaxWidth: '100%',\n\t\tpadding: 0,\n\t\toverflow: 'hidden'\n\t},\n\tcard: {\n\t\tposition: 'fixed',\n\t\twidth: 333,\n\t\ttop: 100,\n\t\tleft: 50,\n\t\tzIndex: 1234,\n\t\toverflowY: 'auto',\n\t\tmaxHeight: 'calc(100vh - 30vh)',\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\tleft: '50%',\n\t\t\tmarginLeft: -166,\n\t\t\ttop: '10%',\n\t\t\tmaxHeight: 'calc(90vh - 10vh)'\n\t\t}\n\t},\n\tcenteredCard: {\n\t\ttop: '20%',\n\t\tleft: '50%',\n\t\tmarginTop: 0,\n\t\tmarginLeft: -166,\n\t\tmaxHeight: 'calc(80vh - 20vh)',\n\t\t[theme.breakpoints.down('sm')]: {\n\t\t\ttop: '10%',\n\t\t\tmaxHeight: 'calc(90vh - 10vh)'\n\t\t}\n\t},\n\tbackgroundImage: {\n\t\theight: '100%',\n\t\tbackgroundPosition: 'center',\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundSize: 'cover'\n\t},\n\tbackgroundLogo: {\n\t\tmarginLeft: '3.33%',\n\t\tmarginRight: '3.33%'\n\t},\n\tblackLine: {\n\t\twidth: '100%',\n\t\theight: 10,\n\t\tbackgroundColor: '#000'\n\t},\n\tcardContentRoot: {\n\t\tpadding: 0 + ' !important',\n\t\tposition: 'relative',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\theight: '100%'\n\t},\n\tcardHeader: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tflexDirection: 'column',\n\t\tpaddingTop: 30,\n\t\tpaddingBottom: 35\n\t},\n\tcardLogo: {\n\t\tmaxHeight: 60,\n\t\tmaxWidth: 200,\n\t\tpaddingTop: 10,\n\t\tpaddingBottom: 10\n\t},\n\tcardTitle: {\n\t\tfontSize: 16,\n\t\tfontWeight: 500\n\t},\n\tcardContent: {\n\t\twidth: '83%',\n\t\tbackgroundColor: bottomButtonsBackground,\n\t\tpadding: 30,\n\t\tflex: 1\n\t},\n\tcardContentTitle: {\n\t\tfontSize: 16,\n\t\tfontWeight: 500,\n\t\tmarginBottom: 10\n\t},\n\tcardContentSubTitle: {\n\t\tfontSize: 14,\n\t\tmarginBottom: 20\n\t},\n\tcardContentInputBox: {\n\t\tmarginBottom: 20\n\t},\n\tcardContentInput: {},\n\tcardContentInputItem: {\n\t\tbackgroundColor: '#FFF',\n\t\tpadding: '11px 14px'\n\t},\n\tprivacyPolicyWrapper: {\n\t\tmarginTop: 20\n\t},\n\tprivacyPolicyLabelRoot: {\n\t\ttextAlign: 'justify'\n\t}\n}));\n","import clsx from 'clsx';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GetPublicShowroomFieldsQuery } from 'generated/graphql';\n\nimport { getVersion } from 'lib/cloudinary';\nimport { UserConsentHookResponse } from 'lib/userConsent';\n\nimport Button from '@material-ui/core/Button';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Container from '@material-ui/core/Container';\nimport TextField from '@material-ui/core/TextField';\n\nimport VideoPlayer from 'components/Common/VideoPlayer';\n\nimport { useStyles } from './styles';\n\nexport type PasswordBackground = {\n\ttype: string;\n\tsrc: string;\n};\n\nexport type ComponentProps = {\n\tpublicFields: GetPublicShowroomFieldsQuery['publicShowroomFields'];\n\tbackground: PasswordBackground;\n\temail: string;\n\tpassword: string;\n\tloading: boolean;\n\twrongEmail: boolean;\n\twrongPassword: boolean;\n\trenderUserConsentInput: UserConsentHookResponse['renderInput'];\n\tonChangeEmail(email: string): void;\n\tonChangePassword(password: string): void;\n\tonSubmit(): void;\n};\n\nconst ShowroomLogin = (props: ComponentProps) => {\n\tconst { publicFields, background, email, password, loading, wrongEmail, wrongPassword } = props;\n\tconst { onChangeEmail, onChangePassword, onSubmit, renderUserConsentInput } = props;\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t{background.type === 'video' ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{!publicFields.heroMedia && !publicFields.defaultBackground ?
: null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\"Galleries\"\n\t\t\t\t\t\t
{publicFields.librarySeason}
\n\t\t\t\t\t\t
{publicFields.libraryCollection}
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('showroom.private.card.title')}
\n\t\t\t\t\t\t
{t('showroom.private.card.subTitle')}
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tev.preventDefault();\n\t\t\t\t\t\t\t\tonSubmit();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t onChangeEmail(ev.target.value)}\n\t\t\t\t\t\t\t\t\tvalue={email}\n\t\t\t\t\t\t\t\t\tplaceholder={t('showroom.private.card.form.email.placeholder')}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t onChangePassword(ev.target.value)}\n\t\t\t\t\t\t\t\t\tplaceholder={t('showroom.private.card.form.password.placeholder')}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{renderUserConsentInput({\n\t\t\t\t\t\t\t\twrapper: {\n\t\t\t\t\t\t\t\t\tclasses: {\n\t\t\t\t\t\t\t\t\t\troot: classes.cardContentInputBox\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tlabel: {\n\t\t\t\t\t\t\t\t\tclasses: {\n\t\t\t\t\t\t\t\t\t\troot: classes.privacyPolicyLabelRoot\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{loading ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t('showroom.private.card.form.button')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default React.memo(ShowroomLogin);\n","import axios, { AxiosInstance } from 'axios';\nimport React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { Helmet } from 'react-helmet';\nimport { useTranslation } from 'react-i18next';\nimport { useParams } from 'react-router-dom';\nimport isEmail from 'validator/lib/isEmail';\n\nimport { useGetPublicShowroomFieldsQuery, useGetPublicShowroomLazyQuery } from 'generated/graphql';\n\nimport { getImageUrl, getVersion } from 'lib/cloudinary';\nimport { useIdentifyUser } from 'lib/identifyUser';\nimport { useUserConsent } from 'lib/userConsent';\n\nimport ShowroomContext from 'context/showroom/';\n\nimport CookieBanner from 'components/Common/CookieBanner';\nimport Error from 'components/Common/Error';\nimport LoadingAnimation from 'components/Common/LoadingAnimation';\nimport ShowroomContent from 'components/Showroom/Content';\nimport PublicShowroomLogin from 'components/Showroom/Login';\n\nconst trackApiConfig = {\n\tbaseURL: `${process.env.REACT_APP_API_URL}`\n};\n\nconst PublicShowroom = () => {\n\tconst { id, tenant } = useParams();\n\tconst [cookies, setCookie] = useCookies();\n\tconst { acceptConsent, renderInput, onSubmit: onSubmitFormConsent } = useUserConsent();\n\tconst identify = useIdentifyUser();\n\n\tconst { i18n } = useTranslation();\n\n\tconst [getPublicShowroom, { loading, error, data: showroomData }] = useGetPublicShowroomLazyQuery();\n\n\tconst {\n\t\tloading: loadingPublicFields,\n\t\terror: errorPublicFields,\n\t\tdata: dataPublicFields\n\t} = useGetPublicShowroomFieldsQuery({ variables: { id, tenant } });\n\n\tReact.useEffect(() => {\n\t\tconst password = cookies[`showroom-${tenant}-${id}`] ? cookies[`showroom-${tenant}-${id}`].showroomPassword : '';\n\n\t\tgetPublicShowroom({ variables: { id, tenant, password } });\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tconst [password, setPassword] = React.useState('');\n\tconst [wrongPassword, setWrongPassword] = React.useState(false);\n\tconst [email, setEmail] = React.useState('');\n\tconst [wrongEmail, setWrongEmail] = React.useState(false);\n\tconst [isCheckPasswordQuery, setIsCheckPasswordQuery] = React.useState(false);\n\tconst [customLogo, setCustomLogo] = React.useState('');\n\tconst [customTitle, setCustomTitle] = React.useState('');\n\tconst [customDescription, setCustomDescription] = React.useState('');\n\n\tconst _ajax: AxiosInstance = React.useMemo(() => {\n\t\treturn axios.create({ ...trackApiConfig });\n\t}, []);\n\n\tconst HelmetComponent = React.useMemo(\n\t\t() => (\n\t\t\t\n\t\t\t\t{customTitle ? {customTitle} : null}\n\t\t\t\t{customLogo ? : null}\n\t\t\t\t{customDescription ? : null}\n\t\t\t\n\t\t),\n\t\t[customTitle, customLogo, customDescription]\n\t);\n\n\tReact.useEffect(() => {\n\t\tif (!showroomData && !dataPublicFields) return;\n\n\t\tif (showroomData) {\n\t\t\tconst publicId = showroomData.getShowroom.library?.logo?.publicId ?? showroomData.getShowroom.tenant.logo?.publicId;\n\t\t\tconst publicUrl = showroomData.getShowroom.library?.logo?.publicUrl ?? showroomData.getShowroom.tenant.logo?.publicUrl;\n\t\t\tif (publicId && publicUrl) {\n\t\t\t\tsetCustomLogo(\n\t\t\t\t\tgetImageUrl(publicId, {\n\t\t\t\t\t\twidth: 72,\n\t\t\t\t\t\theight: 72,\n\t\t\t\t\t\tversion: getVersion(publicUrl)\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tif (dataPublicFields?.publicShowroomFields?.logo) {\n\t\t\t\tsetCustomLogo(\n\t\t\t\t\tgetImageUrl(dataPublicFields.publicShowroomFields.logo, {\n\t\t\t\t\t\twidth: 72,\n\t\t\t\t\t\theight: 72,\n\t\t\t\t\t\tversion: getVersion(dataPublicFields.publicShowroomFields.logo)\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst language = showroomData ? showroomData.getShowroom.language : dataPublicFields.publicShowroomFields.language;\n\t\tif (language) i18n.changeLanguage(language);\n\n\t\tconst tenantName = showroomData ? showroomData.getShowroom.tenant.name : tenant;\n\t\tconst collection = showroomData ? showroomData.getShowroom.libraryCollection : dataPublicFields.publicShowroomFields.libraryCollection;\n\t\tconst season = showroomData ? showroomData.getShowroom.librarySeason : dataPublicFields.publicShowroomFields.librarySeason;\n\n\t\tsetCustomTitle(`${tenantName} ${season ? ` | ${season}` : ''} ${collection ? collection : ''}`);\n\t\tsetCustomDescription(`Digital showroom by ${tenantName} (powered by Launchmetrics)`);\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [dataPublicFields, showroomData, tenant]);\n\n\tconst generateUserViewer = React.useCallback(async () => {\n\t\tconst newId = (await _ajax.post('generateUserViewer', { tenant })).data;\n\t\t// Cookie duration: 1 month (30 days)\n\t\tsetCookie(\n\t\t\t`showroom-${tenant}`,\n\t\t\t{ ...cookies[`showroom-${tenant}`], userViewerId: newId, userViewerEmail: !!email ? email : undefined },\n\t\t\t{ maxAge: 2592000 }\n\t\t);\n\t\tconst tenantData = showroomData?.getShowroom.tenant;\n\t\tif (email) {\n\t\t\tconsole.log('Called only if the user has an email');\n\t\t\tidentify(\n\t\t\t\t{ id: email, email, externalGuest: true },\n\t\t\t\t{\n\t\t\t\t\tecoAccountId: tenantData?.EcosystemAccountID,\n\t\t\t\t\tEcoAccountName: tenantData?.EcosystemAccountName,\n\t\t\t\t\tSalesforceId: tenantData?.salesforceAccountId,\n\t\t\t\t\tsfparentid: tenantData?.salesforceAccountParentId,\n\t\t\t\t\tSite: tenantData?.name,\n\t\t\t\t\tsiteId: tenantData?.id\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [_ajax, tenant, email]);\n\n\tReact.useEffect(() => {\n\t\tif (password && !error && !!showroomData) {\n\t\t\tsetCookie(`showroom-${tenant}-${id}`, { showroomPassword: password }, { maxAge: 2592000 });\n\t\t\tacceptConsent(email);\n\t\t}\n\n\t\tif (showroomData) {\n\t\t\tconst checkUserViewerId = async () => {\n\t\t\t\tconst id = cookies[`showroom-${tenant}`] ? cookies[`showroom-${tenant}`].userViewerId : null;\n\t\t\t\tif (!id) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait generateUserViewer();\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t\tawait generateUserViewer();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tcheckUserViewerId();\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [error, id, password, showroomData, tenant]);\n\n\tReact.useEffect(() => {\n\t\tif (!loading && error && isCheckPasswordQuery && !wrongPassword) {\n\t\t\tsetWrongPassword(true);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [loading]);\n\n\tconst passwordBackground = React.useMemo(() => {\n\t\tif (!dataPublicFields)\n\t\t\treturn {\n\t\t\t\ttype: '',\n\t\t\t\tsrc: ''\n\t\t\t};\n\t\tconst publicFields = dataPublicFields.publicShowroomFields;\n\t\tif (publicFields.heroMedia && publicFields.heroMedia.publicUrl)\n\t\t\treturn {\n\t\t\t\ttype: publicFields.heroMedia.mediaType,\n\t\t\t\tsrc: publicFields.heroMedia.publicUrl\n\t\t\t};\n\t\telse if (publicFields.defaultBackground)\n\t\t\treturn {\n\t\t\t\ttype: publicFields.defaultBackground.mediaType,\n\t\t\t\tsrc: publicFields.defaultBackground.publicUrl\n\t\t\t};\n\t\telse\n\t\t\treturn {\n\t\t\t\ttype: 'image',\n\t\t\t\tsrc: publicFields.logo\n\t\t\t};\n\t}, [dataPublicFields]);\n\n\tconst handleSubmitPassword = React.useCallback(() => {\n\t\tonSubmitFormConsent(() => {\n\t\t\tif (password.length) {\n\t\t\t\tgetPublicShowroom({ variables: { id, tenant, password } });\n\t\t\t\tif (!isCheckPasswordQuery) setIsCheckPasswordQuery(true);\n\t\t\t}\n\t\t});\n\t}, [getPublicShowroom, id, isCheckPasswordQuery, onSubmitFormConsent, password, tenant]);\n\n\tconst ShowroomLogin = React.useMemo(() => {\n\t\tif (!dataPublicFields) return null;\n\t\tconst publicFields = dataPublicFields.publicShowroomFields;\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tsetEmail(email);\n\t\t\t\t\tif (!isEmail(email)) return setWrongEmail(true);\n\t\t\t\t\tsetWrongEmail(false);\n\t\t\t\t}}\n\t\t\t\tonChangePassword={password => {\n\t\t\t\t\tsetWrongPassword(false);\n\t\t\t\t\tsetPassword(password);\n\t\t\t\t}}\n\t\t\t\tonSubmit={handleSubmitPassword}\n\t\t\t/>\n\t\t);\n\t}, [dataPublicFields, passwordBackground, email, password, wrongEmail, wrongPassword, loading, renderInput, handleSubmitPassword]);\n\n\tif (!loadingPublicFields && errorPublicFields) return ;\n\tif ((loading || loadingPublicFields) && !isCheckPasswordQuery) return ;\n\n\tif ((!showroomData && dataPublicFields) || (isCheckPasswordQuery && !showroomData)) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{HelmetComponent}\n\t\t\t\t{ShowroomLogin}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\tconst { getShowroom: showroom } = showroomData;\n\treturn (\n\t\t<>\n\t\t\t{HelmetComponent}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(PublicShowroom);\n","import PublicShowroom from './PublicShowroom';\n\nexport default PublicShowroom;\n"],"sourceRoot":""}