{"version":3,"file":"index-C1VbuHc8.js","sources":["../../../app/javascript/src/explore/elements/Dropdown/index.jsx","../../../app/javascript/src/explore/elements/Sorting/services/LabelFormatter.js","../../../app/javascript/src/explore/elements/Sorting/compositions/List/elements/Option/index.tsx","../../../app/javascript/src/explore/elements/Sorting/compositions/List/index.tsx","../../../app/javascript/src/explore/elements/Sorting/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext/index.ts","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/Filter/elements/Button/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/Filter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/HolidayFilter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/BadgeFilter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/elements/FastDeliveryFilter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/elements/TagFilter/index.tsx","../../../app/javascript/src/explore/elements/TagFilters/index.tsx","../../../app/javascript/src/explore/services/deliveryDate/index.js","../../../app/javascript/src/explore/services/productFilters/mappers/ArrivalDateMapper/index.js","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/ApplyButton/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/OverlayTrigger/index.tsx","../../../app/javascript/src/explore/elements/Checkbox/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/FilterItem/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/ArrivalFilter/services/OptionFormatter/index.js","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/ArrivalFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/useHistory/index.js","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/TreeFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/CategoryFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/CuisineFilter/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/DietFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/DietMerchantFilter/index.tsx","../../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../../node_modules/@babel/runtime/helpers/esm/createSuper.js","../../../node_modules/rc-util/es/warning.js","../../../node_modules/rc-slider/es/common/Track.js","../../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../node_modules/rc-util/es/Dom/addEventListener.js","../../../node_modules/rc-slider/es/common/Steps.js","../../../node_modules/rc-slider/es/common/Marks.js","../../../node_modules/rc-slider/es/Handle.js","../../../node_modules/rc-util/es/KeyCode.js","../../../node_modules/rc-slider/es/utils.js","../../../node_modules/rc-slider/es/common/createSlider.js","../../../node_modules/rc-slider/es/Slider.js","../../../node_modules/rc-slider/es/Range.js","../../../node_modules/rc-util/es/raf.js","../../../node_modules/rc-util/es/Dom/contains.js","../../../node_modules/rc-util/es/Dom/findDOMNode.js","../../../node_modules/rc-util/es/ref.js","../../../node_modules/rc-util/es/Dom/canUseDom.js","../../../node_modules/rc-util/es/Portal.js","../../../node_modules/rc-trigger/es/utils/alignUtil.js","../../../node_modules/rc-util/es/isMobile.js","../../../node_modules/rc-motion/es/util/motion.js","../../../node_modules/rc-motion/es/interface.js","../../../node_modules/rc-motion/es/hooks/useState.js","../../../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../../../node_modules/rc-motion/es/hooks/useNextFrame.js","../../../node_modules/rc-motion/es/hooks/useStepQueue.js","../../../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../../../node_modules/rc-motion/es/hooks/useStatus.js","../../../node_modules/rc-motion/es/DomWrapper.js","../../../node_modules/rc-motion/es/CSSMotion.js","../../../node_modules/rc-trigger/es/utils/legacyUtil.js","../../../node_modules/rc-trigger/es/Popup/Mask.js","../../../node_modules/rc-util/es/Dom/isVisible.js","../../../node_modules/dom-align/dist-web/index.js","../../../node_modules/rc-align/es/util.js","../../../node_modules/rc-align/es/hooks/useBuffer.js","../../../node_modules/rc-align/es/Align.js","../../../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../../../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../../../node_modules/rc-trigger/es/Popup/PopupInner.js","../../../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../../../node_modules/rc-trigger/es/Popup/index.js","../../../node_modules/rc-trigger/es/context.js","../../../node_modules/rc-trigger/es/index.js","../../../node_modules/rc-tooltip/es/placements.js","../../../node_modules/rc-tooltip/es/Content.js","../../../node_modules/rc-tooltip/es/Tooltip.js","../../../node_modules/rc-slider/es/common/SliderTooltip.js","../../../node_modules/rc-slider/es/createSliderWithTooltip.js","../../../node_modules/rc-slider/es/index.js","../../../app/javascript/src/explore/elements/RangeFilter/index.jsx","../../../app/javascript/src/explore/compositions/Filters/services/PriceTipFormatter.js","../../../app/javascript/src/explore/compositions/Filters/elements/Price/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/PriceFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/ProductTypeFilter/elements/CheckboxItem/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/ProductTypeFilter/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/elements/RegionFilter/index.jsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/FilterFactory/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/elements/Loader/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/Header/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/index.tsx","../../../app/javascript/src/explore/compositions/FilteredSearch/compositions/SearchFilter/services/FiltersToParams/index.ts","../../../app/javascript/src/explore/compositions/FilteredSearch/services/SortLabelFormatter/index.js","../../../app/javascript/src/explore/compositions/FilteredSearch/index.tsx"],"sourcesContent":["import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown } from '@fortawesome/pro-solid-svg-icons';\n\nimport SvgIcon from 'src/explore/elements/SvgIcon';\n\n// Horrible hack\nimport styles from './index.module.sass';\n\nconst Option = ({ labelFormatter, selected, value, onSelect }) => (\n
  • \n onSelect( value )}>\n {!!selected && }\n {` ${labelFormatter( value )}`}\n \n
  • \n);\n\nexport const Dropdown = ({ className = '', value, values, labelFormatter, onSelect }) => {\n const formatter = labelFormatter || (( v ) => v );\n\n return (\n
    \n {/* the .btn-sorting is backwards compatibility :( */}\n \n {'Sort By: '}\n {formatter( value )}\n\n \n \n\n
      \n {values.map(( v ) => (\n \n ))}\n
    \n
    \n );\n};\n","const format = ( value ) => {\n switch ( value ) {\n case null:\n return 'Recommended';\n case 'trending':\n return 'Popular Now';\n case 'best_sellers':\n return 'Best Sellers';\n case 'price_low':\n return 'Price: Lowest First';\n case 'price_high':\n return 'Price: Highest First';\n default:\n return '';\n }\n};\n\nexport const LabelFormatter = {\n format,\n};\n","import React, { ReactNode } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheck } from '@fortawesome/pro-solid-svg-icons';\n\nimport styles from './index.module.sass';\n\ninterface OptionProps {\n children: ReactNode;\n selected: boolean;\n onClick: () => void;\n}\n\nexport const Option = ({ children, selected, onClick }: OptionProps ) => (\n \n {selected && (\n \n )}\n\n {children}\n \n);\n","import React from 'react';\nimport cls from 'classnames';\n\nimport { Option } from './elements/Option';\n\nimport styles from './index.module.sass';\n\ninterface ListProps {\n className?: string;\n labelFormatter: ( option: string ) => string;\n options: Array;\n selection: string | null;\n onSelect: ( value: string ) => void;\n}\n\nexport const List = ({ className, labelFormatter, options, selection, onSelect }: ListProps ) => (\n
    \n

    Sort

    \n\n
      \n {options.map(( option: string ) => (\n
    • \n \n
    • \n ))}\n
    \n
    \n);\n","import React, { useEffect } from 'react';\nimport cls from 'classnames';\n\nimport { Dropdown } from 'src/explore/elements/Dropdown';\n\nimport { LabelFormatter } from './services/LabelFormatter';\nimport { List } from './compositions/List';\n\nconst DEFAULT_OPTIONS = [ null, 'best_sellers', 'trending', 'price_low', 'price_high' ];\n\ninterface SortingProps {\n className?: string;\n format?: 'list';\n labelFormatter?: ( option: string ) => string;\n value: string | null;\n values: Array;\n onChange: ( value: string ) => void;\n}\n\nexport const Sorting = ({\n className,\n format,\n labelFormatter,\n value,\n values,\n onChange,\n}: SortingProps ) => {\n const safeValues = values || DEFAULT_OPTIONS;\n\n useEffect(() => {\n // If selected value is not allowed, select first by default\n if ( !safeValues.includes( value )) {\n onChange( safeValues[0]);\n }\n }, [ onChange, value, safeValues ]);\n\n return format === 'list' ? (\n \n ) : (\n \n );\n};\n","import { createContext } from 'react';\n\nexport type IAPIFilters = {\n arrives_before?: string;\n 'badges[]'?: string[] | string;\n 'categories.id'?: number;\n 'categories.name'?: string;\n collection_ids?: string;\n city?: string;\n cuisine?: string;\n editor_pick?: boolean;\n has_gb_tv_video?: boolean;\n highlight?: string; // comma separated list of product ids\n holidays?: string;\n is_class?: boolean;\n is_sold_out?: boolean;\n fast_delivery?: string;\n free_shipping?: boolean;\n has_available_or_coming_soon_products?: boolean;\n max_price?: number;\n merchant_id?: number;\n min_price?: number;\n occasions?: string;\n on_sale?: boolean;\n past?: boolean;\n product_tags?: string;\n 'product_types[]'?: string[] | string;\n query?: string;\n sort?: string;\n special_holiday?: string;\n 'state.region_name'?: string;\n 'state.name'?: string;\n tags?: string;\n};\n\nexport type IContextState = {\n appliedFilters: IAPIFilters;\n onFilterChange: ( updatedFilters: IAPIFilters ) => void;\n};\n\nconst INITIAL_STATE: IContextState = {\n appliedFilters: {},\n onFilterChange: () => null,\n};\n\nconst FiltersContext = createContext( INITIAL_STATE );\n\nexport { FiltersContext as default, INITIAL_STATE };\n","import React, { ReactNode } from 'react';\nimport cls from 'classnames';\n\nimport styles from './index.module.sass';\n\ninterface ButtonProps {\n children?: ReactNode;\n className?: string;\n disabled: boolean;\n highlightRed?: boolean;\n isSelected?: boolean;\n onClick?: () => void;\n}\n\nexport const Button = ({\n children,\n className,\n disabled,\n highlightRed,\n isSelected,\n onClick,\n}: ButtonProps ) => (\n \n {children}\n \n);\n","import React, { useMemo, useState } from 'react';\nimport { add } from 'date-fns';\n\nimport FiltersContext, {\n IAPIFilters,\n IContextState,\n} from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext'; // FIXME: import\nimport { ISearchFilter } from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/types'; // FIXME: import\nimport { ISearchAggregations, ISearchAggregationBucket } from 'src/explore/types/shoppe';\n\nimport { Button } from './elements/Button';\n\ninterface Props {\n aggs?: ISearchAggregations;\n disabled?: boolean;\n label?: string;\n loading?: boolean;\n name: ISearchFilter;\n isSelected?: boolean;\n onClick?: () => void;\n}\n\nexport const Filter = ({\n aggs,\n disabled,\n label,\n loading,\n name,\n isSelected = false,\n onClick,\n}: Props ) => {\n const [ isVisible, setIsVisible ] = useState();\n\n const { appliedFilters, onFilterChange }: IContextState = React.useContext( FiltersContext );\n const text = useMemo(() => {\n if ( label ) return label;\n\n switch ( name ) {\n case 'award_winner':\n return 'Award Winner';\n case 'editor_pick':\n return 'Joe’s Pick';\n case 'free_shipping':\n return 'Free Shipping';\n case 'gb_top_gifts':\n return 'Top 100';\n case 'gorgeous_box':\n return 'Gorgeous Box';\n case 'has_gb_tv_video':\n return 'Shop by Video';\n case 'on_sale':\n return 'Sale';\n default:\n return name;\n }\n }, [ label, name ]);\n\n const isAvailable = useMemo(() => {\n if ( disabled ) return false;\n\n switch ( name ) {\n case 'award_winner':\n return !aggs\n ? true\n : aggs?.badges?.buckets.some(\n ( bucket: ISearchAggregationBucket ) =>\n bucket.key === 'award_winner' && bucket.doc_count > 0\n );\n case 'editor_pick':\n return !aggs\n ? true\n : aggs?.editor_pick?.buckets.some(\n ( bucket: ISearchAggregationBucket ) => bucket.key === 1 && bucket.doc_count > 0\n );\n case 'fast_delivery':\n return !aggs\n ? true\n : aggs?.earliest_delivery_dates?.buckets.some(\n ( bucket ) =>\n bucket.doc_count > 0 &&\n ( bucket.key as number ) <= add( new Date(), { days: 2 }).getTime()\n );\n case 'free_shipping':\n return !aggs\n ? true\n : aggs?.free_shipping?.buckets.some(\n ( bucket: ISearchAggregationBucket ) => bucket.key === 1 && bucket.doc_count > 0\n );\n case 'gb_top_gifts':\n return !aggs\n ? true\n : aggs?.badges?.buckets.some(\n ( bucket: ISearchAggregationBucket ) =>\n bucket.key === 'gb_top_gifts' && bucket.doc_count > 0\n );\n case 'gorgeous_box':\n return !aggs\n ? true\n : aggs?.badges?.buckets.some(\n ( bucket: ISearchAggregationBucket ) =>\n bucket.key === 'gorgeous_box' && bucket.doc_count > 0\n );\n case 'has_gb_tv_video':\n return !aggs\n ? true\n : aggs?.has_gb_tv_video?.buckets.some(\n ( bucket: ISearchAggregationBucket ) => bucket.key === 1 && bucket.doc_count > 0\n );\n case 'on_sale':\n return !aggs\n ? true\n : aggs?.on_sale?.buckets.some(\n ( bucket: ISearchAggregationBucket ) => bucket.key === 1 && bucket.doc_count > 0\n );\n default:\n return true;\n }\n }, [ aggs, disabled, name ]);\n\n if ( isVisible === undefined && !loading ) {\n setIsVisible( isAvailable );\n } else if ( isVisible === false && isAvailable ) {\n setIsVisible( true );\n }\n\n isSelected = isSelected || !!appliedFilters[name as keyof IAPIFilters]; // FIXME: types\n\n const handleClick = () => {\n if ( onClick ) {\n onClick();\n } else {\n onFilterChange({ [name]: isSelected ? undefined : true });\n }\n };\n\n if ( !isVisible ) return null;\n\n return (\n
  • \n \n {text}\n \n
  • \n );\n};\n","import React, { useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport FiltersContext, {\n IContextState,\n} from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext'; // FIXME: import\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\nimport { IStore } from 'src/explore/types/store';\n\nimport { Filter } from '../Filter';\n\ninterface HolidayFilterProps {\n aggs: ISearchAggregations;\n loading?: boolean;\n}\n\nexport const HolidayFilter = ({ aggs, loading }: HolidayFilterProps ) => {\n const [ isVisible, setIsVisible ] = useState();\n\n const { appliedFilters, onFilterChange }: IContextState = React.useContext( FiltersContext );\n const { dateString, label } = useSelector(( state: IStore ) => state.data.specialDate || {});\n\n const isAvailable = useMemo(\n () =>\n aggs?.earliest_delivery_dates?.buckets.some(\n ( bucket ) => bucket.doc_count > 0 && ( bucket.key as number ) <= new Date( dateString ).getTime()\n ),\n [ aggs, dateString ]\n );\n\n if ( isVisible === undefined && !loading ) {\n setIsVisible( isAvailable );\n } else if ( isVisible === false && isAvailable ) {\n setIsVisible( true );\n }\n\n const active = appliedFilters.special_holiday === dateString;\n\n if ( !dateString || !label || !isVisible ) return null;\n\n return (\n onFilterChange({ special_holiday: !active ? dateString : undefined })}\n />\n );\n};\n","import React from 'react';\n\nimport FiltersContext, {\n IContextState,\n} from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext'; // FIXME: import\nimport { ISearchFilter } from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/types'; // FIXME: import\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport { Filter } from '../Filter';\n\ninterface Props {\n aggs?: ISearchAggregations;\n loading?: boolean;\n name: ISearchFilter;\n}\n\nexport const BadgeFilter = ({ aggs, loading, name }: Props ) => {\n const { appliedFilters, onFilterChange }: IContextState = React.useContext( FiltersContext );\n\n const active = appliedFilters['badges[]']?.includes( name );\n\n const handleOnClick = () => {\n const badges = appliedFilters['badges[]'];\n let currentBadges: string[] = [];\n\n if ( badges ) {\n currentBadges = typeof badges === 'string' ? badges.split( ',' ) : badges;\n }\n\n if ( active ) {\n onFilterChange({\n 'badges[]': currentBadges.filter(( badge: string ) => !name.includes( badge )),\n });\n } else {\n const newBadges = [ currentBadges, name ].flat();\n\n onFilterChange({ 'badges[]': newBadges });\n }\n };\n\n return (\n \n );\n};\n","import React from 'react';\nimport { add, format } from 'date-fns';\n\nimport FiltersContext, {\n IContextState,\n} from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext'; // FIXME: import\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport { Filter } from '../Filter';\n\ninterface FastDeliveryFilterProps {\n aggs?: ISearchAggregations;\n loading?: boolean;\n}\n\nexport const FastDeliveryFilter = ({ aggs, loading }: FastDeliveryFilterProps ) => {\n const { appliedFilters, onFilterChange }: IContextState = React.useContext( FiltersContext );\n\n const today = new Date();\n const dateString = format( add( today, { days: 2 }), 'yyyy-MM-dd' );\n\n const active = appliedFilters.fast_delivery === dateString;\n\n return (\n onFilterChange({ fast_delivery: !active ? dateString : undefined })}\n />\n );\n};\n","import React from 'react';\n\nimport { ISearchFilter } from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/types'; // FIXME: import\n\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\nimport { Filter } from './elements/Filter';\nimport { HolidayFilter } from './elements/HolidayFilter';\nimport { BadgeFilter } from './elements/BadgeFilter';\nimport { FastDeliveryFilter } from './elements/FastDeliveryFilter';\n\ninterface TagFilterProps {\n aggs: ISearchAggregations;\n loading?: boolean;\n name: ISearchFilter;\n}\n\nexport const TagFilter = ({ aggs, loading, name }: TagFilterProps ) => {\n switch ( name ) {\n case 'special_holiday':\n return ;\n case 'fast_delivery':\n return ;\n case 'gorgeous_box':\n return ;\n case 'award_winner':\n return ;\n case 'gb_top_gifts':\n return ;\n default:\n return ;\n }\n};\n","import React from 'react';\nimport cls from 'classnames';\n\nimport { ISearchFilter } from 'src/explore/compositions/FilteredSearch/compositions/SearchFilter/types'; // FIXME: import\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport { TagFilter } from './elements/TagFilter';\n\ninterface TagFiltersProps {\n aggs: ISearchAggregations;\n availableFilters?: ISearchFilter[];\n className?: string;\n loading?: boolean;\n}\n\n// TODO: this is replicating what the FilterFactory does, we should consolidate the code\nexport const TagFilters = ({ aggs, availableFilters, className, loading }: TagFiltersProps ) => (\n
      \n {availableFilters.map(( filter ) => (\n \n ))}\n
    \n);\n","// Dates (1/2)\nconst today = new Date();\nconst tomorrow = new Date();\ntomorrow.setDate( today.getDate() + 1 );\nconst lastSunday = new Date();\nlastSunday.setDate( today.getDate() - today.getDay());\n\n// Private helpers\nconst getDayRelativeToLastSunday = ( dayNumber ) => {\n const d = new Date( lastSunday.getTime());\n d.setDate( d.getDate() + dayNumber );\n return d;\n};\n\nconst getDaysRelativeToLastSunday = ( initialDayNumber, endDayNumber ) => {\n const result = [];\n\n for ( let i = initialDayNumber; i <= endDayNumber; i += 1 ) {\n result.push( getDayRelativeToLastSunday( i ));\n }\n\n return result;\n};\n\n// Dates (2/2)\nconst thisWeek = getDaysRelativeToLastSunday( 1, 7 ); // Last Monday to next Sunday\n\nconst thisWeekend = getDaysRelativeToLastSunday( 6, 7 ); // This Saturday & Sunday\n\nconst nextWeek = getDaysRelativeToLastSunday( 8, 14 ); // Next Monday up to following Sunday\n\n// Public methods\nconst isToday = ( day ) => {\n switch ( day ) {\n case 'sunday':\n return today.getDay() === 0;\n case 'monday':\n return today.getDay() === 1;\n case 'tuesday':\n return today.getDay() === 2;\n case 'wednesday':\n return today.getDay() === 3;\n case 'thursday':\n return today.getDay() === 4;\n case 'friday':\n return today.getDay() === 5;\n case 'saturday':\n return today.getDay() === 6;\n default:\n return false;\n }\n};\n\nconst dateToYMD = ( date ) => {\n let d = date.getDate();\n let m = date.getMonth() + 1; // Month from 0 to 11\n const y = date.getFullYear();\n\n // Add leading zeroes\n m = `0${m}`.slice( -2 );\n d = `0${d}`.slice( -2 );\n\n return `${y}-${m}-${d}`;\n};\n\n// Service export\nexport default {\n today,\n tomorrow,\n thisWeek,\n thisWeekend,\n nextWeek,\n dateToYMD,\n isToday,\n};\n","import DeliveryDate from 'src/explore/services/deliveryDate';\n\nconst map = ( text ) => {\n let date;\n\n switch ( text ) {\n case 'tomorrow':\n date = DeliveryDate.tomorrow;\n break;\n case 'this_week':\n // \"this week\" is defined as Monday thru Sunday in deliveryDate, so we need to look at the second to last day\n // because the ES query is a less than or equal to comparison, we want it to look at Saturday\n date = DeliveryDate.thisWeek[DeliveryDate.thisWeek.length - 2];\n break;\n case 'next_week':\n date = DeliveryDate.nextWeek[DeliveryDate.nextWeek.length - 1];\n break;\n default:\n // Check if the value matches yyyy-mm-dd\n if ( text && text.match( /^\\d{4}-\\d{2}-\\d{2}$/ )) {\n return text;\n }\n\n // This prevents the filter from filtering for wrong values\n return null;\n }\n\n return DeliveryDate.dateToYMD( date );\n};\n\nexport default {\n map,\n};\n","import React from 'react';\n\ninterface ApplyButtonProps {\n disabled: boolean;\n onClick: () => void;\n}\n\nexport const ApplyButton = ({ disabled, onClick }: ApplyButtonProps ) => (\n
    \n \n Apply\n \n
    \n);\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSlidersSimple } from '@fortawesome/pro-regular-svg-icons';\n\nimport styles from './index.module.sass';\n\ninterface OverlayTriggerProps {\n filterCount?: number;\n onClick: () => void;\n}\n\nexport const OverlayTrigger = ({ filterCount, onClick }: OverlayTriggerProps ) => (\n \n \n Filter\n {!!filterCount && ` (${filterCount})`}\n \n);\n","import React from 'react';\nimport cls from 'classnames';\n\nimport styles from './index.module.sass';\n\nexport const Checkbox = ({ checked, children, className, name, type, value, onChange }) => (\n \n);\n","import React, { ReactNode } from 'react';\nimport cls from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronLeft } from '@fortawesome/pro-solid-svg-icons';\n\nimport styles from './index.module.sass';\n\ninterface FilterItemProps {\n backTitle?: string;\n children: ReactNode;\n className?: string;\n currentValue?: string;\n loading?: boolean;\n name: string;\n onTitleClick?: () => void;\n}\n\nexport const FilterItem = ({\n backTitle,\n children,\n className,\n currentValue,\n loading,\n name,\n onTitleClick,\n}: FilterItemProps ) => {\n const handleClick = () => {\n if ( loading ) return;\n\n if ( currentValue && onTitleClick ) {\n onTitleClick();\n }\n };\n\n const handleKeyDown = ( event: React.KeyboardEvent ) => {\n if ( event.key === 'Enter' || event.key === ' ' ) {\n handleClick();\n }\n };\n\n return (\n
  • \n

    \n {currentValue ? (\n \n
    \n \n {backTitle || name}\n
    \n
    {currentValue}
    \n \n ) : (\n name\n )}\n

    \n\n {loading ? (\n
    \n Loading...\n
    \n ) : (\n children\n )}\n
  • \n );\n};\n","import moment from 'moment';\n\nconst format = ( option ) => {\n switch ( option ) {\n case '':\n return 'no rush';\n case 'tomorrow':\n return 'tomorrow';\n case 'this_week':\n return 'this week';\n case 'next_week':\n return 'next week';\n default: {\n const d = moment( option );\n\n return d.isValid() ? d.format( 'l' ) : null;\n }\n }\n};\n\nexport const OptionFormatter = {\n format,\n};\n","import React, { useCallback, useContext, useMemo, useState } from 'react';\nimport cls from 'classnames';\n// TODO: replace with date-fns\n// but it doesn't have full feature parity with moment (see other TODO in SingleDatePicker below)\nimport moment from 'moment';\n\nimport Breakpoints from 'src/explore/services/breakpoints';\n\nimport { Checkbox } from 'src/explore/elements/Checkbox';\nimport { SingleDatePicker } from 'src/explore/elements/SingleDatePicker';\n\nimport FiltersContext from '../../../../hooks/FiltersContext';\nimport { FilterItem } from '../FilterItem';\nimport { OptionFormatter } from './services/OptionFormatter';\n\nimport styles from './index.module.sass';\n\nconst DISCLAIMER_TEXT = 'You can specify your delivery (up to 90 days) at checkout.';\n\nconst DatepickerNote = () => (\n /* The bs4 is because the component is rendered on a portal */\n
    \n
    \n

    FILTER FOODS THAT CAN ARRIVE ON OR BEFORE A SPECIFIC DATE

    \n

    \n Have a party coming up or giving a gift? We’ll show you the products that can make it in\n time.*\n
    \n {`*${DISCLAIMER_TEXT}`}\n

    \n
    \n
    \n);\n\nconst ArrivalFilter = ({ className, earliestDate }) => {\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n const [ datePicker, setDatePicker ] = useState({\n date: null,\n focused: false,\n });\n const deadline = useMemo(() => moment( new Date()).add( 90, 'days' ), []);\n\n const selectedOption = appliedFilters.arrives_before || '';\n\n const earliestDateObj = useMemo(\n () =>\n earliestDate && moment.utc( earliestDate ).isAfter() ? moment.utc( earliestDate ) : moment(),\n [ earliestDate ]\n );\n\n const endOfWeekOptions = useMemo(\n () =>\n // moment defines end of week as Saturday at 11:59PM (in the user's timezone)\n earliestDate && moment.utc( earliestDate ).isBefore( moment().endOf( 'week' )),\n [ earliestDate ]\n );\n\n const handleFilterChange = useCallback(\n ( date ) => {\n onFilterChange({ arrives_before: date });\n setDatePicker(( state ) => ({ ...state, date: null }));\n },\n [ onFilterChange, setDatePicker ]\n );\n\n // If all sold out, then don't show filter\n if ( !earliestDate && !selectedOption ) return null;\n\n return (\n handleFilterChange( null )}\n >\n {!selectedOption && (\n
      \n
    • \n handleFilterChange( '' )}\n >\n {OptionFormatter.format( '' )}\n \n
    • \n\n {endOfWeekOptions && (\n
    • \n onFilterChange({ arrives_before: 'this_week' })}\n >\n {OptionFormatter.format( 'this_week' )}\n \n
    • \n )}\n\n
    • \n {\n setDatePicker(( state ) => ({ ...state, focused: true }));\n }}\n >\n
      \n \n // TODO: date-fns doesn't have isSameOrBefore/isSameOrAfter\n // https://stackoverflow.com/questions/68314103/issameorbefore-implementation-for-date-fns\n value.isSameOrBefore( earliestDateObj ) || value.isSameOrAfter( deadline )\n }\n numberOfMonths={Breakpoints.appliesTo( 'md' ) ? 3 : 1}\n placeholder=\"Or pick a date\"\n renderCalendarInfo={DatepickerNote}\n showDefaultInputIcon\n small\n withPortal\n onDateChange={( date ) => {\n setDatePicker(( state ) => ({ ...state, date }));\n onFilterChange({ arrives_before: date.format( 'YYYY-MM-DD' ) });\n }}\n onFocusChange={({ focused }) => {\n setDatePicker(( state ) => ({ ...state, focused }));\n }}\n />\n
      \n \n
    • \n
    \n )}\n \n );\n};\n\nexport default ArrivalFilter;\n","import { useState } from 'react';\n\nexport default () => {\n const [ history, setHistory ] = useState([]);\n\n const push = ( value ) => {\n setHistory([ ...history, value ]);\n };\n\n const pop = () => {\n setHistory( history.slice( 0, -1 ));\n };\n\n return [ history, pop, push ];\n};\n","import React, { useEffect } from 'react';\n\nimport { FilterItem } from '../FilterItem';\n\nimport useHistory from '../../../../hooks/useHistory';\n\nimport styles from './index.module.sass';\n\nconst TreeFilter = ({ activeFilter, className, defaultTitle, filters, onBack, onNavigate }) => {\n const [ history, pop, push ] = useHistory();\n\n // Save first value to history if set\n useEffect(() => {\n if ( history.length === 0 && activeFilter ) push( activeFilter );\n }, [ activeFilter, history, push ]);\n\n const handleNavigateBack = () => {\n onBack( history[history.length - 2]);\n pop();\n };\n\n const handleNavigateForward = ( filter ) => {\n onNavigate( filter.key );\n push( filter.key );\n };\n\n return (\n \n {filters?.length > 0 && (\n
      \n {filters.map(( filter ) => (\n
    • \n handleNavigateForward( filter )}\n >\n {filter.key} {`(${filter.doc_count})`}\n \n
    • \n ))}\n
    \n )}\n \n );\n};\n\nexport default TreeFilter;\n","import React, { useContext, useEffect, useRef } from 'react';\nimport cls from 'classnames';\n\nimport TreeFilter from '../TreeFilter';\n\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst CategoryFilter = ({ className, categories = []}) => {\n const forceShow = useRef( false );\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n useEffect(() => {\n if ( forceShow.current ) return;\n\n forceShow.current = categories.length > 1;\n }, [ categories ]);\n\n const currentFilter = appliedFilters['categories.name'];\n\n if ( forceShow.current || currentFilter ) {\n return (\n onFilterChange({ 'categories.name': filter })}\n onNavigate={( filter ) => onFilterChange({ 'categories.name': filter })}\n />\n );\n }\n\n return null;\n};\n\nexport default CategoryFilter;\n","import * as React from 'react';\nimport cls from 'classnames';\n\nimport { ISearchAggregationBucket } from 'src/explore/types/shoppe';\n\nimport FiltersContext, { IAPIFilters } from '../../../../hooks/FiltersContext';\nimport TreeFilter from '../TreeFilter';\n\ninterface Props {\n className?: string;\n cuisine: ISearchAggregationBucket[];\n}\n\nexport const CuisineFilter: React.FC = ({ className, cuisine }) => {\n const {\n appliedFilters,\n onFilterChange,\n }: {\n appliedFilters: IAPIFilters;\n onFilterChange: ( filter: IAPIFilters ) => void;\n } = React.useContext( FiltersContext );\n\n if ( !cuisine?.length ) return null;\n\n return (\n onFilterChange({ cuisine: undefined })}\n onNavigate={( filter: string ) => onFilterChange({ cuisine: filter })}\n />\n );\n};\n","import React, { useContext } from 'react';\nimport cls from 'classnames';\n\nimport TreeFilter from '../TreeFilter';\n\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst DietFilter = ({ className, tags }) => {\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n if ( !tags?.length ) return null;\n\n return (\n onFilterChange({ tags: undefined })}\n onNavigate={( filter ) => onFilterChange({ tags: filter })}\n />\n );\n};\n\nexport default DietFilter;\n","import * as React from 'react';\nimport cls from 'classnames';\n\nimport { ISearchAggregationBucket } from 'src/explore/types/shoppe';\n\nimport FiltersContext, { IAPIFilters } from '../../../../hooks/FiltersContext';\nimport TreeFilter from '../TreeFilter';\n\ninterface Props {\n className?: string;\n tags: ISearchAggregationBucket[];\n}\n\nexport const DietMerchantFilter: React.FC = ({ className, tags }) => {\n const {\n appliedFilters,\n onFilterChange,\n }: {\n appliedFilters: IAPIFilters;\n onFilterChange: ( filter: IAPIFilters ) => void;\n } = React.useContext( FiltersContext );\n\n if ( !tags?.length ) return null;\n\n return (\n onFilterChange({ product_tags: undefined })}\n onNavigate={( filter: string ) => onFilterChange({ product_tags: filter })}\n />\n );\n};\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\n\nvar Track = function Track(props) {\n var _ref, _ref2;\n\n var className = props.className,\n included = props.included,\n vertical = props.vertical,\n style = props.style;\n var length = props.length,\n offset = props.offset,\n reverse = props.reverse;\n\n if (length < 0) {\n reverse = !reverse;\n length = Math.abs(length);\n offset = 100 - offset;\n }\n\n var positonStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"height\", \"\".concat(length, \"%\")), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"width\", \"\".concat(length, \"%\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positonStyle);\n\n return included ? /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: elStyle\n }) : null;\n};\n\nexport default Track;","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default 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}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback);\n }\n }\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\n\nvar calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {\n warning(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n var points = Object.keys(marks).map(parseFloat).sort(function (a, b) {\n return a - b;\n });\n\n if (dots && step) {\n for (var i = min; i <= max; i += step) {\n if (points.indexOf(i) === -1) {\n points.push(i);\n }\n }\n }\n\n return points;\n};\n\nvar Steps = function Steps(_ref) {\n var prefixCls = _ref.prefixCls,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n dots = _ref.dots,\n step = _ref.step,\n included = _ref.included,\n lowerBound = _ref.lowerBound,\n upperBound = _ref.upperBound,\n max = _ref.max,\n min = _ref.min,\n dotStyle = _ref.dotStyle,\n activeDotStyle = _ref.activeDotStyle;\n var range = max - min;\n var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {\n var _classNames;\n\n var offset = \"\".concat(Math.abs(point - min) / range * 100, \"%\");\n var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var style = vertical ? _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'top' : 'bottom', offset)) : _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'right' : 'left', offset));\n\n if (isActived) {\n style = _objectSpread(_objectSpread({}, style), activeDotStyle);\n }\n\n var pointClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-active\"), isActived), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-reverse\"), reverse), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: pointClassName,\n style: style,\n key: point\n });\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, elements);\n};\n\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Marks = function Marks(_ref) {\n var className = _ref.className,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n included = _ref.included,\n upperBound = _ref.upperBound,\n lowerBound = _ref.lowerBound,\n max = _ref.max,\n min = _ref.min,\n onClickLabel = _ref.onClickLabel;\n var marksKeys = Object.keys(marks);\n var range = max - min;\n var elements = marksKeys.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (point) {\n var _classNames;\n\n var markPoint = marks[point];\n var markPointIsObject = _typeof(markPoint) === 'object' && ! /*#__PURE__*/React.isValidElement(markPoint);\n var markLabel = markPointIsObject ? markPoint.label : markPoint;\n\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n\n var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var markClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(className, \"-text\"), true), _defineProperty(_classNames, \"\".concat(className, \"-text-active\"), isActive), _classNames));\n\n var bottomStyle = _defineProperty({\n marginBottom: '-50%'\n }, reverse ? 'top' : 'bottom', \"\".concat((point - min) / range * 100, \"%\"));\n\n var leftStyle = _defineProperty({\n transform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\"),\n msTransform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\")\n }, reverse ? 'right' : 'left', \"\".concat((point - min) / range * 100, \"%\"));\n\n var style = vertical ? bottomStyle : leftStyle;\n var markStyle = markPointIsObject ? _objectSpread(_objectSpread({}, style), markPoint.style) : style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: markClassName,\n style: markStyle,\n key: point,\n onMouseDown: function onMouseDown(e) {\n return onClickLabel(e, point);\n },\n onTouchStart: function onTouchStart(e) {\n return onClickLabel(e, point);\n }\n }, markLabel);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, elements);\n};\n\nexport default Marks;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\n\nvar Handle = /*#__PURE__*/function (_React$Component) {\n _inherits(Handle, _React$Component);\n\n var _super = _createSuper(Handle);\n\n function Handle() {\n var _this;\n\n _classCallCheck(this, Handle);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n clickFocused: false\n };\n\n _this.setHandleRef = function (node) {\n _this.handle = node;\n };\n\n _this.handleMouseUp = function () {\n if (document.activeElement === _this.handle) {\n _this.setClickFocus(true);\n }\n };\n\n _this.handleMouseDown = function (e) {\n // avoid selecting text during drag\n // https://github.com/ant-design/ant-design/issues/25010\n e.preventDefault(); // fix https://github.com/ant-design/ant-design/issues/15324\n\n _this.focus();\n };\n\n _this.handleBlur = function () {\n _this.setClickFocus(false);\n };\n\n _this.handleKeyDown = function () {\n _this.setClickFocus(false);\n };\n\n return _this;\n }\n\n _createClass(Handle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // mouseup won't trigger if mouse moved out of handle,\n // so we listen on document here.\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.handleMouseUp);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.onMouseUpListener) {\n this.onMouseUpListener.remove();\n }\n }\n }, {\n key: \"setClickFocus\",\n value: function setClickFocus(focused) {\n this.setState({\n clickFocused: focused\n });\n }\n }, {\n key: \"clickFocus\",\n value: function clickFocus() {\n this.setClickFocus(true);\n this.focus();\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.handle.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.handle.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _ref, _ref2;\n\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n vertical = _this$props.vertical,\n reverse = _this$props.reverse,\n offset = _this$props.offset,\n style = _this$props.style,\n disabled = _this$props.disabled,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n tabIndex = _this$props.tabIndex,\n ariaLabel = _this$props.ariaLabel,\n ariaLabelledBy = _this$props.ariaLabelledBy,\n ariaValueTextFormatter = _this$props.ariaValueTextFormatter,\n restProps = _objectWithoutProperties(_this$props, [\"prefixCls\", \"vertical\", \"reverse\", \"offset\", \"style\", \"disabled\", \"min\", \"max\", \"value\", \"tabIndex\", \"ariaLabel\", \"ariaLabelledBy\", \"ariaValueTextFormatter\"]);\n\n var className = classNames(this.props.className, _defineProperty({}, \"\".concat(prefixCls, \"-handle-click-focused\"), this.state.clickFocused));\n var positionStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"transform\", reverse ? null : \"translateY(+50%)\"), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"transform\", \"translateX(\".concat(reverse ? '+' : '-', \"50%)\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positionStyle);\n\n var mergedTabIndex = tabIndex || 0;\n\n if (disabled || tabIndex === null) {\n mergedTabIndex = null;\n }\n\n var ariaValueText;\n\n if (ariaValueTextFormatter) {\n ariaValueText = ariaValueTextFormatter(value);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.setHandleRef,\n tabIndex: mergedTabIndex\n }, restProps, {\n className: className,\n style: elStyle,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleMouseDown // aria attribute\n ,\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"aria-disabled\": !!disabled,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-valuetext\": ariaValueText\n }));\n }\n }]);\n\n return Handle;\n}(React.Component);\n\nexport { Handle as default };","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { findDOMNode } from 'react-dom';\nimport keyCode from \"rc-util/es/KeyCode\";\nexport function isEventFromHandle(e, handles) {\n try {\n return Object.keys(handles).some(function (key) {\n return e.target === findDOMNode(handles[key]);\n });\n } catch (error) {\n return false;\n }\n}\nexport function isValueOutOfRange(value, _ref) {\n var min = _ref.min,\n max = _ref.max;\n return value < min || value > max;\n}\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\nexport function getClosestPoint(val, _ref2) {\n var marks = _ref2.marks,\n step = _ref2.step,\n min = _ref2.min,\n max = _ref2.max;\n var points = Object.keys(marks).map(parseFloat);\n\n if (step !== null) {\n var baseNum = Math.pow(10, getPrecision(step));\n var maxSteps = Math.floor((max * baseNum - min * baseNum) / (step * baseNum));\n var steps = Math.min((val - min) / step, maxSteps);\n var closestStep = Math.round(steps) * step + min;\n points.push(closestStep);\n }\n\n var diffs = points.map(function (point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, _toConsumableArray(diffs)))];\n}\nexport function getPrecision(step) {\n var stepString = step.toString();\n var precision = 0;\n\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n\n return precision;\n}\nexport function getMousePosition(vertical, e) {\n return vertical ? e.clientY : e.pageX;\n}\nexport function getTouchPosition(vertical, e) {\n return vertical ? e.touches[0].clientY : e.touches[0].pageX;\n}\nexport function getHandleCenterPosition(vertical, handle) {\n var coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : window.pageXOffset + coords.left + coords.width * 0.5;\n}\nexport function ensureValueInRange(val, _ref3) {\n var max = _ref3.max,\n min = _ref3.min;\n\n if (val <= min) {\n return min;\n }\n\n if (val >= max) {\n return max;\n }\n\n return val;\n}\nexport function ensureValuePrecision(val, props) {\n var step = props.step;\n var closestPoint = isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0; // eslint-disable-line\n\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\nexport function calculateNextValue(func, value, props) {\n var operations = {\n increase: function increase(a, b) {\n return a + b;\n },\n decrease: function decrease(a, b) {\n return a - b;\n }\n };\n var indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n var keyToGet = Object.keys(props.marks)[indexToGet];\n\n if (props.step) {\n return operations[func](value, props.step);\n }\n\n if (!!Object.keys(props.marks).length && !!props.marks[keyToGet]) {\n return props.marks[keyToGet];\n }\n\n return value;\n}\nexport function getKeyboardValueMutator(e, vertical, reverse) {\n var increase = 'increase';\n var decrease = 'decrease';\n var method = increase;\n\n switch (e.keyCode) {\n case keyCode.UP:\n method = vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.RIGHT:\n method = !vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.DOWN:\n method = vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.LEFT:\n method = !vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.END:\n return function (value, props) {\n return props.max;\n };\n\n case keyCode.HOME:\n return function (value, props) {\n return props.min;\n };\n\n case keyCode.PAGE_UP:\n return function (value, props) {\n return value + props.step * 2;\n };\n\n case keyCode.PAGE_DOWN:\n return function (value, props) {\n return value - props.step * 2;\n };\n\n default:\n return undefined;\n }\n\n return function (value, props) {\n return calculateNextValue(method, value, props);\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _get from \"@babel/runtime/helpers/esm/get\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nfunction noop() {}\n\nexport default function createSlider(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_Component) {\n _inherits(ComponentEnhancer, _Component);\n\n var _super = _createSuper(ComponentEnhancer);\n\n function ComponentEnhancer(props) {\n var _this;\n\n _classCallCheck(this, ComponentEnhancer);\n\n _this = _super.call(this, props);\n\n _this.onDown = function (e, position) {\n var p = position;\n var _this$props = _this.props,\n draggableTrack = _this$props.draggableTrack,\n isVertical = _this$props.vertical;\n var bounds = _this.state.bounds;\n var value = draggableTrack && _this.positionGetValue ? _this.positionGetValue(p) || [] : [];\n var inPoint = utils.isEventFromHandle(e, _this.handlesRefs);\n _this.dragTrack = draggableTrack && bounds.length >= 2 && !inPoint && !value.map(function (n, i) {\n var v = !i ? n >= bounds[i] : true;\n return i === value.length - 1 ? n <= bounds[i] : v;\n }).some(function (c) {\n return !c;\n });\n\n if (_this.dragTrack) {\n _this.dragOffset = p;\n _this.startBounds = _toConsumableArray(bounds);\n } else {\n if (!inPoint) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = p - handlePosition;\n p = handlePosition;\n }\n\n _this.onStart(p);\n }\n };\n\n _this.onMouseDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n _this.removeDocumentEvents();\n\n var isVertical = _this.props.vertical;\n var position = utils.getMousePosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentMouseEvents();\n };\n\n _this.onTouchStart = function (e) {\n if (utils.isNotTouchEvent(e)) return;\n var isVertical = _this.props.vertical;\n var position = utils.getTouchPosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentTouchEvents();\n\n utils.pauseEvent(e);\n };\n\n _this.onFocus = function (e) {\n var _this$props2 = _this.props,\n onFocus = _this$props2.onFocus,\n vertical = _this$props2.vertical;\n\n if (utils.isEventFromHandle(e, _this.handlesRefs) && !_this.dragTrack) {\n var handlePosition = utils.getHandleCenterPosition(vertical, e.target);\n _this.dragOffset = 0;\n\n _this.onStart(handlePosition);\n\n utils.pauseEvent(e);\n\n if (onFocus) {\n onFocus(e);\n }\n }\n };\n\n _this.onBlur = function (e) {\n var onBlur = _this.props.onBlur;\n\n if (!_this.dragTrack) {\n _this.onEnd();\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n _this.onMouseUp = function () {\n if (_this.handlesRefs[_this.prevMovedHandleIndex]) {\n _this.handlesRefs[_this.prevMovedHandleIndex].clickFocus();\n }\n };\n\n _this.onMouseMove = function (e) {\n if (!_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getMousePosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onTouchMove = function (e) {\n if (utils.isNotTouchEvent(e) || !_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getTouchPosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onKeyDown = function (e) {\n if (_this.sliderRef && utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.onKeyboard(e);\n }\n };\n\n _this.onClickMarkLabel = function (e, value) {\n e.stopPropagation();\n\n _this.onChange({\n value: value\n }); // eslint-disable-next-line react/no-unused-state\n\n\n _this.setState({\n value: value\n }, function () {\n return _this.onEnd(true);\n });\n };\n\n _this.saveSlider = function (slider) {\n _this.sliderRef = slider;\n };\n\n var step = props.step,\n max = props.max,\n min = props.min;\n var isPointDiffEven = isFinite(max - min) ? (max - min) % step === 0 : true; // eslint-disable-line\n\n warning(step && Math.floor(step) === step ? isPointDiffEven : true, \"Slider[max] - Slider[min] (\".concat(max - min, \") should be a multiple of Slider[step] (\").concat(step, \")\"));\n _this.handlesRefs = {};\n return _this;\n }\n\n _createClass(ComponentEnhancer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Snapshot testing cannot handle refs, so be sure to null-check this.\n this.document = this.sliderRef && this.sliderRef.ownerDocument;\n var _this$props3 = this.props,\n autoFocus = _this$props3.autoFocus,\n disabled = _this$props3.disabled;\n\n if (autoFocus && !disabled) {\n this.focus();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (_get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this)) _get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this).call(this);\n this.removeDocumentEvents();\n }\n }, {\n key: \"getSliderStart\",\n value: function getSliderStart() {\n var slider = this.sliderRef;\n var _this$props4 = this.props,\n vertical = _this$props4.vertical,\n reverse = _this$props4.reverse;\n var rect = slider.getBoundingClientRect();\n\n if (vertical) {\n return reverse ? rect.bottom : rect.top;\n }\n\n return window.pageXOffset + (reverse ? rect.right : rect.left);\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n var slider = this.sliderRef;\n\n if (!slider) {\n return 0;\n }\n\n var coords = slider.getBoundingClientRect();\n return this.props.vertical ? coords.height : coords.width;\n }\n }, {\n key: \"addDocumentTouchEvents\",\n value: function addDocumentTouchEvents() {\n // just work for Chrome iOS Safari and Android Browser\n this.onTouchMoveListener = addEventListener(this.document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(this.document, 'touchend', this.onEnd);\n }\n }, {\n key: \"addDocumentMouseEvents\",\n value: function addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(this.document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(this.document, 'mouseup', this.onEnd);\n }\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {\n /* eslint-disable @typescript-eslint/no-unused-expressions */\n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n /* eslint-enable no-unused-expressions */\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var _this$handlesRefs$;\n\n if (this.props.disabled) {\n return;\n }\n\n (_this$handlesRefs$ = this.handlesRefs[0]) === null || _this$handlesRefs$ === void 0 ? void 0 : _this$handlesRefs$.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n var _this2 = this;\n\n if (this.props.disabled) {\n return;\n }\n\n Object.keys(this.handlesRefs).forEach(function (key) {\n var _this2$handlesRefs$ke, _this2$handlesRefs$ke2;\n\n (_this2$handlesRefs$ke = _this2.handlesRefs[key]) === null || _this2$handlesRefs$ke === void 0 ? void 0 : (_this2$handlesRefs$ke2 = _this2$handlesRefs$ke.blur) === null || _this2$handlesRefs$ke2 === void 0 ? void 0 : _this2$handlesRefs$ke2.call(_this2$handlesRefs$ke);\n });\n }\n }, {\n key: \"calcValue\",\n value: function calcValue(offset) {\n var _this$props5 = this.props,\n vertical = _this$props5.vertical,\n min = _this$props5.min,\n max = _this$props5.max;\n var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n }\n }, {\n key: \"calcValueByPos\",\n value: function calcValueByPos(position) {\n var sign = this.props.reverse ? -1 : +1;\n var pixelOffset = sign * (position - this.getSliderStart());\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n var _this$props6 = this.props,\n min = _this$props6.min,\n max = _this$props6.max;\n var ratio = (value - min) / (max - min);\n return Math.max(0, ratio * 100);\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props7 = this.props,\n prefixCls = _this$props7.prefixCls,\n className = _this$props7.className,\n marks = _this$props7.marks,\n dots = _this$props7.dots,\n step = _this$props7.step,\n included = _this$props7.included,\n disabled = _this$props7.disabled,\n vertical = _this$props7.vertical,\n reverse = _this$props7.reverse,\n min = _this$props7.min,\n max = _this$props7.max,\n children = _this$props7.children,\n maximumTrackStyle = _this$props7.maximumTrackStyle,\n style = _this$props7.style,\n railStyle = _this$props7.railStyle,\n dotStyle = _this$props7.dotStyle,\n activeDotStyle = _this$props7.activeDotStyle;\n\n var _get$call = _get(_getPrototypeOf(ComponentEnhancer.prototype), \"render\", this).call(this),\n tracks = _get$call.tracks,\n handles = _get$call.handles;\n\n var sliderClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-marks\"), Object.keys(marks).length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), vertical), _defineProperty(_classNames, className, className), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.saveSlider,\n className: sliderClassName,\n onTouchStart: disabled ? noop : this.onTouchStart,\n onMouseDown: disabled ? noop : this.onMouseDown,\n onMouseUp: disabled ? noop : this.onMouseUp,\n onKeyDown: disabled ? noop : this.onKeyDown,\n onFocus: disabled ? noop : this.onFocus,\n onBlur: disabled ? noop : this.onBlur,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-rail\"),\n style: _objectSpread(_objectSpread({}, maximumTrackStyle), railStyle)\n }), tracks, /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n vertical: vertical,\n reverse: reverse,\n marks: marks,\n dots: dots,\n step: step,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n dotStyle: dotStyle,\n activeDotStyle: activeDotStyle\n }), handles, /*#__PURE__*/React.createElement(Marks, {\n className: \"\".concat(prefixCls, \"-mark\"),\n onClickLabel: disabled ? noop : this.onClickMarkLabel,\n vertical: vertical,\n marks: marks,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n reverse: reverse\n }), children);\n }\n }]);\n\n return ComponentEnhancer;\n }(Component), _a.displayName = \"ComponentEnhancer(\".concat(Component.displayName, \")\"), _a.defaultProps = _objectSpread(_objectSpread({}, Component.defaultProps), {}, {\n prefixCls: 'rc-slider',\n className: '',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n handle: function handle(props) {\n var index = props.index,\n restProps = _objectWithoutProperties(props, [\"index\"]);\n\n delete restProps.dragging;\n\n if (restProps.value === null) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n key: index\n }));\n },\n onBeforeChange: noop,\n onChange: noop,\n onAfterChange: noop,\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n reverse: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }), _a;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n /* eslint-enable */\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n return [];\n };\n\n _this.onEnd = function (force) {\n var dragging = _this.state.dragging;\n\n _this.removeDocumentEvents();\n\n if (dragging || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n dragging: false\n });\n };\n\n var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;\n var value = props.value !== undefined ? props.value : defaultValue;\n _this.state = {\n value: _this.trimAlignValue(value),\n dragging: false\n };\n warning(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecated, please use trackStyle instead.');\n warning(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecated, please use railStyle instead.');\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Slider, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props = this.props,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n onChange = _this$props.onChange;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n var theValue = value !== undefined ? value : prevState.value;\n var nextValue = this.trimAlignValue(theValue, this.props);\n\n if (nextValue === prevState.value) {\n return;\n } // eslint-disable-next-line\n\n\n this.setState({\n value: nextValue\n });\n\n if (!(min === prevProps.min && max === prevProps.max) && utils.isValueOutOfRange(theValue, this.props)) {\n onChange(nextValue);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n var nextState = state.value > this.props.max ? _objectSpread(_objectSpread({}, state), {}, {\n value: this.props.max\n }) : state;\n\n if (isNotControlled) {\n this.setState(nextState);\n }\n\n var changedValue = nextState.value;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n this.setState({\n dragging: true\n });\n var props = this.props;\n var prevValue = this.getValue();\n props.onBeforeChange(prevValue);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n if (value === prevValue) return;\n this.prevMovedHandleIndex = 0;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var oldValue = this.state.value;\n var value = this.calcValueByPos(position);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state;\n var oldValue = state.value;\n var mutatedValue = valueMutator(oldValue, this.props);\n var value = this.trimAlignValue(mutatedValue);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n this.props.onAfterChange(value);\n this.onEnd();\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.value;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n var minPoint = this.props.startPoint || this.props.min;\n return this.state.value > minPoint ? minPoint : this.state.value;\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n if (this.state.value < this.props.startPoint) {\n return this.props.startPoint;\n }\n\n return this.state.value;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (v === null) {\n return null;\n }\n\n var mergedProps = _objectSpread(_objectSpread({}, this.props), nextProps);\n\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n prefixCls = _this$props3.prefixCls,\n vertical = _this$props3.vertical,\n included = _this$props3.included,\n disabled = _this$props3.disabled,\n minimumTrackStyle = _this$props3.minimumTrackStyle,\n trackStyle = _this$props3.trackStyle,\n handleStyle = _this$props3.handleStyle,\n tabIndex = _this$props3.tabIndex,\n ariaLabelForHandle = _this$props3.ariaLabelForHandle,\n ariaLabelledByForHandle = _this$props3.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _this$props3.ariaValueTextFormatterForHandle,\n min = _this$props3.min,\n max = _this$props3.max,\n startPoint = _this$props3.startPoint,\n reverse = _this$props3.reverse,\n handleGenerator = _this$props3.handle;\n var _this$state = this.state,\n value = _this$state.value,\n dragging = _this$state.dragging;\n var offset = this.calcOffset(value);\n var handle = handleGenerator({\n className: \"\".concat(prefixCls, \"-handle\"),\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offset,\n value: value,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n reverse: reverse,\n index: 0,\n tabIndex: tabIndex,\n ariaLabel: ariaLabelForHandle,\n ariaLabelledBy: ariaLabelledByForHandle,\n ariaValueTextFormatter: ariaValueTextFormatterForHandle,\n style: handleStyle[0] || handleStyle,\n ref: function ref(h) {\n return _this2.saveHandle(0, h);\n }\n });\n var trackOffset = startPoint !== undefined ? this.calcOffset(startPoint) : 0;\n var mergedTrackStyle = trackStyle[0] || trackStyle;\n var track = /*#__PURE__*/React.createElement(Track, {\n className: \"\".concat(prefixCls, \"-track\"),\n vertical: vertical,\n included: included,\n offset: trackOffset,\n reverse: reverse,\n length: offset - trackOffset,\n style: _objectSpread(_objectSpread({}, minimumTrackStyle), mergedTrackStyle)\n });\n return {\n tracks: track,\n handles: handle\n };\n }\n }]);\n\n return Slider;\n}(React.Component);\n\nexport default createSlider(Slider);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function trimAlignValue(_ref) {\n var value = _ref.value,\n handle = _ref.handle,\n bounds = _ref.bounds,\n props = _ref.props;\n var allowCross = props.allowCross,\n pushable = props.pushable;\n var thershold = Number(pushable);\n var valInRange = utils.ensureValueInRange(value, props);\n var valNotConflict = valInRange;\n\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n\n return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar Range = /*#__PURE__*/function (_React$Component) {\n _inherits(Range, _React$Component);\n\n var _super = _createSuper(Range);\n\n function Range(props) {\n var _this;\n\n _classCallCheck(this, Range);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n var bounds = _this.getValue();\n\n var value = _this.calcValueByPos(position);\n\n var closestBound = _this.getClosestBound(value);\n\n var index = _this.getBoundNeedMoving(value, closestBound);\n\n var prevValue = bounds[index];\n if (value === prevValue) return null;\n\n var nextBounds = _toConsumableArray(bounds);\n\n nextBounds[index] = value;\n return nextBounds;\n };\n\n _this.onEnd = function (force) {\n var handle = _this.state.handle;\n\n _this.removeDocumentEvents();\n\n if (!handle) {\n _this.dragTrack = false;\n }\n\n if (handle !== null || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n handle: null\n });\n };\n\n var count = props.count,\n min = props.min,\n max = props.max;\n var initialValue = Array.apply(void 0, _toConsumableArray(Array(count + 1))).map(function () {\n return min;\n });\n var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n var value = props.value !== undefined ? props.value : defaultValue;\n var bounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n _this.state = {\n handle: null,\n recent: recent,\n bounds: bounds\n };\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Range, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _this$props = this.props,\n onChange = _this$props.onChange,\n value = _this$props.value,\n min = _this$props.min,\n max = _this$props.max;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n if (min === prevProps.min && max === prevProps.max) {\n return;\n }\n\n var currentValue = value || prevState.bounds;\n\n if (currentValue.some(function (v) {\n return utils.isValueOutOfRange(v, _this2.props);\n })) {\n var newValues = currentValue.map(function (v) {\n return utils.ensureValueInRange(v, _this2.props);\n });\n onChange(newValues);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n\n if (isNotControlled) {\n this.setState(state);\n } else {\n var controlledState = {};\n ['handle', 'recent'].forEach(function (item) {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n\n var data = _objectSpread(_objectSpread({}, this.state), state);\n\n var changedValue = data.bounds;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n var props = this.props,\n state = this.state;\n var bounds = this.getValue();\n props.onBeforeChange(bounds);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n var closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n this.setState({\n handle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n var prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({\n bounds: nextBounds\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position, dragTrack, startBounds) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var maxValue = props.max || 100;\n var minValue = props.min || 0;\n\n if (dragTrack) {\n var pos = props.vertical ? -position : position;\n pos = props.reverse ? -pos : pos;\n var max = maxValue - Math.max.apply(Math, _toConsumableArray(startBounds));\n var min = minValue - Math.min.apply(Math, _toConsumableArray(startBounds));\n var ratio = Math.min(Math.max(pos / (this.getSliderLength() / 100), min), max);\n var nextBounds = startBounds.map(function (v) {\n return Math.floor(Math.max(Math.min(v + ratio, maxValue), minValue));\n });\n\n if (state.bounds.map(function (c, i) {\n return c === nextBounds[i];\n }).some(function (c) {\n return !c;\n })) {\n this.onChange({\n bounds: nextBounds\n });\n }\n\n return;\n }\n\n var value = this.calcValueByPos(position);\n var oldValue = state.bounds[state.handle];\n if (value === oldValue) return;\n this.moveTo(value);\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var bounds = state.bounds,\n handle = state.handle;\n var oldValue = bounds[handle === null ? state.recent : handle];\n var mutatedValue = valueMutator(oldValue, props);\n\n var value = _trimAlignValue({\n value: mutatedValue,\n handle: handle,\n bounds: state.bounds,\n props: props\n });\n\n if (value === oldValue) return;\n var isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.bounds;\n }\n }, {\n key: \"getClosestBound\",\n value: function getClosestBound(value) {\n var bounds = this.state.bounds;\n var closestBound = 0;\n\n for (var i = 1; i < bounds.length - 1; i += 1) {\n if (value >= bounds[i]) {\n closestBound = i;\n }\n }\n\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n\n return closestBound;\n }\n }, {\n key: \"getBoundNeedMoving\",\n value: function getBoundNeedMoving(value, closestBound) {\n var _this$state = this.state,\n bounds = _this$state.bounds,\n recent = _this$state.recent;\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n\n return boundNeedMoving;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n return this.state.bounds[0];\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n var bounds = this.state.bounds;\n return bounds[bounds.length - 1];\n }\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n\n }, {\n key: \"getPoints\",\n value: function getPoints() {\n var _this$props3 = this.props,\n marks = _this$props3.marks,\n step = _this$props3.step,\n min = _this$props3.min,\n max = _this$props3.max;\n var cache = this.internalPointsCache;\n\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _objectSpread({}, marks);\n\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this.internalPointsCache = {\n marks: marks,\n step: step,\n points: points\n };\n }\n\n return this.internalPointsCache.points;\n }\n }, {\n key: \"moveTo\",\n value: function moveTo(value, isFromKeyboardEvent) {\n var _this3 = this;\n\n var state = this.state,\n props = this.props;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n var handle = state.handle === null ? state.recent : state.handle;\n nextBounds[handle] = value;\n var nextHandle = handle;\n\n if (props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n\n this.onChange({\n recent: nextHandle,\n handle: nextHandle,\n bounds: nextBounds\n });\n\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hack,but not elegant\n this.props.onAfterChange(nextBounds);\n this.setState({}, function () {\n _this3.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n }\n }, {\n key: \"pushSurroundingHandles\",\n value: function pushSurroundingHandles(bounds, handle) {\n var value = bounds[handle];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var direction = 0;\n\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n }\n }, {\n key: \"pushHandle\",\n value: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = originalValue;\n return false;\n }\n\n currentValue = bounds[handle];\n } // the handle was pushed enough to create the needed `amount` gap\n\n\n return true;\n }\n }, {\n key: \"pushHandleOnePoint\",\n value: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n } // push the handle\n // eslint-disable-next-line no-param-reassign\n\n\n bounds[handle] = nextValue;\n return true;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(value) {\n var _this$state2 = this.state,\n handle = _this$state2.handle,\n bounds = _this$state2.bounds;\n return _trimAlignValue({\n value: value,\n handle: handle,\n bounds: bounds,\n props: this.props\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$state3 = this.state,\n handle = _this$state3.handle,\n bounds = _this$state3.bounds;\n var _this$props4 = this.props,\n prefixCls = _this$props4.prefixCls,\n vertical = _this$props4.vertical,\n included = _this$props4.included,\n disabled = _this$props4.disabled,\n min = _this$props4.min,\n max = _this$props4.max,\n reverse = _this$props4.reverse,\n handleGenerator = _this$props4.handle,\n trackStyle = _this$props4.trackStyle,\n handleStyle = _this$props4.handleStyle,\n tabIndex = _this$props4.tabIndex,\n ariaLabelGroupForHandles = _this$props4.ariaLabelGroupForHandles,\n ariaLabelledByGroupForHandles = _this$props4.ariaLabelledByGroupForHandles,\n ariaValueTextFormatterGroupForHandles = _this$props4.ariaValueTextFormatterGroupForHandles;\n var offsets = bounds.map(function (v) {\n return _this4.calcOffset(v);\n });\n var handleClassName = \"\".concat(prefixCls, \"-handle\");\n var handles = bounds.map(function (v, i) {\n var _classNames;\n\n var mergedTabIndex = tabIndex[i] || 0;\n\n if (disabled || tabIndex[i] === null) {\n mergedTabIndex = null;\n }\n\n var dragging = handle === i;\n return handleGenerator({\n className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-\").concat(i + 1), true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-dragging\"), dragging), _classNames)),\n prefixCls: prefixCls,\n vertical: vertical,\n dragging: dragging,\n offset: offsets[i],\n value: v,\n index: i,\n tabIndex: mergedTabIndex,\n min: min,\n max: max,\n reverse: reverse,\n disabled: disabled,\n style: handleStyle[i],\n ref: function ref(h) {\n return _this4.saveHandle(i, h);\n },\n ariaLabel: ariaLabelGroupForHandles[i],\n ariaLabelledBy: ariaLabelledByGroupForHandles[i],\n ariaValueTextFormatter: ariaValueTextFormatterGroupForHandles[i]\n });\n });\n var tracks = bounds.slice(0, -1).map(function (_, index) {\n var _classNames2;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track\"), true), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track-\").concat(i), true), _classNames2));\n return /*#__PURE__*/React.createElement(Track, {\n className: trackClassName,\n vertical: vertical,\n reverse: reverse,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1],\n style: trackStyle[index],\n key: i\n });\n });\n return {\n tracks: tracks,\n handles: handles\n };\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if (!('value' in props || 'min' in props || 'max' in props)) {\n return null;\n }\n\n var value = props.value || state.bounds;\n var nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n bounds: state.bounds,\n props: props\n });\n });\n\n if (state.bounds.length === nextBounds.length) {\n if (nextBounds.every(function (v, i) {\n return v === state.bounds[i];\n })) {\n return null;\n }\n } else {\n nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n bounds: nextBounds\n });\n }\n }]);\n\n return Range;\n}(React.Component);\n/* eslint-enable */\n\n\nRange.displayName = 'Range';\nRange.defaultProps = {\n count: 1,\n allowCross: true,\n pushable: false,\n draggableTrack: false,\n tabIndex: [],\n ariaLabelGroupForHandles: [],\n ariaLabelledByGroupForHandles: [],\n ariaValueTextFormatterGroupForHandles: []\n};\nexport default createSlider(Range);","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nvar rafUUID = 0;\nvar rafIds = new Map();\n\nfunction cleanup(id) {\n rafIds.delete(id);\n}\n\nexport default function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id); // Trigger\n\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n }); // Bind real raf id\n\n rafIds.set(id, realId);\n }\n }\n\n callRef(times);\n return id;\n}\n\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n return root.contains(n);\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from './Dom/canUseDom';\nvar Portal = forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var containerRef = useRef(); // Ref return nothing, only for wrapper check exist\n\n useImperativeHandle(ref, function () {\n return {};\n }); // Create container in client side with sync to avoid useEffect not get ref\n\n var initRef = useRef(false);\n\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n initRef.current = true;\n } // [Legacy] Used by `rc-trigger`\n\n\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n return function () {\n var _containerRef$current, _containerRef$current2;\n\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4))) {\n return true;\n }\n\n return false;\n});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState, useRef } from 'react';\nexport default function useMountStatus(defaultValue) {\n var destroyRef = useRef(false);\n\n var _useState = useState(defaultValue),\n _useState2 = _slicedToArray(_useState, 2),\n val = _useState2[0],\n setVal = _useState2[1];\n\n function setValue(next) {\n if (!destroyRef.current) {\n setVal(next);\n }\n }\n\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return [val, setValue];\n}","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useNextFrame from './useNextFrame';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _React$useState = React.useState(STEP_NONE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n step = _React$useState2[0],\n setStep = _React$useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useState from './useState';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n var destroyedRef = useRef(false); // =========================== Dom Node ===========================\n\n var cacheElementRef = useRef(null);\n\n function getDomElement() {\n var element = getElement();\n return element || cacheElementRef.current;\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var canEnd;\n\n if (status === STATUS_APPEAR && activeRef.current) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && activeRef.current) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && activeRef.current) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (canEnd !== false && !destroyedRef.current) {\n setStatus(STATUS_NONE);\n setStyle(null);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case 'appear':\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case 'enter':\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case 'leave':\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n clearTimeout(deadlineRef.current);\n destroyedRef.current = true;\n };\n }, []); // Trigger `onVisibleChanged`\n\n useEffect(function () {\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n return findDOMNode(nodeRef.current || wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rended\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var originRef = useRef(ref);\n originRef.current = ref;\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(originRef.current, node);\n }, []); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n\n // In motion\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n\n if (element.offsetParent) {\n return true;\n }\n\n if (element.getBBox) {\n var box = element.getBBox();\n\n if (box.width || box.height) {\n return true;\n }\n }\n\n if (element.getBoundingClientRect) {\n var _box = element.getBoundingClientRect();\n\n if (_box.width || _box.height) {\n return true;\n }\n }\n\n return false;\n});","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n
    \n
    \n 元素 6 高 100px 宽 50px
    \n
    \n
    \n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); parent && parent !== body; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
    \n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2({}, align, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (element && isVisible(element)) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if (React.isValidElement(childNode)) {\n childNode = React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nvar StatusQueue = ['measure', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n var destroyRef = useRef(false);\n\n function setStatus(nextStatus) {\n if (!destroyRef.current) {\n setInternalStatus(nextStatus);\n }\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n\n var prepareResolveRef = useRef(); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n if (status === 'align') {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n setAlignedClassName(nextAlignedClassName); // Repeat until not more align needed\n\n if (alignedClassName !== nextAlignedClassName) {\n Promise.resolve().then(function () {\n forceAlign();\n });\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // ======================== Motion ========================\n\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n pointerEvents: status === 'stable' ? undefined : 'none'\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nimport MobilePopupInner from './MobilePopupInner';\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, [\"visible\", \"mobile\"]);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n\n _this.attachParent(popupContainer);\n\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n _this.triggerContextValue = {\n onPopupMouseDown: _this.onPopupMouseDown\n };\n var popupVisible;\n\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n\n }, {\n key: \"setPopupVisible\",\n value: function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\n\nvar Content = function Content(props) {\n var overlay = props.overlay,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof overlay === 'function' ? overlay() : overlay);\n};\n\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n var _props$arrowContent = props.arrowContent,\n arrowContent = _props$arrowContent === void 0 ? null : _props$arrowContent,\n overlay = props.overlay,\n id = props.id;\n return [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(Content, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlay: overlay,\n overlayInnerStyle: overlayInnerStyle\n })];\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tooltip from 'rc-tooltip';\nimport { composeRef } from \"rc-util/es/ref\";\nimport raf from \"rc-util/es/raf\";\nvar SliderTooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n overlay = props.overlay;\n var innerRef = React.useRef(null);\n var tooltipRef = composeRef(ref, innerRef);\n var rafRef = React.useRef(null);\n\n function cancelKeepAlign() {\n raf.cancel(rafRef.current);\n }\n\n function keepAlign() {\n rafRef.current = raf(function () {\n var _innerRef$current;\n\n (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.forcePopupAlign();\n });\n }\n\n React.useEffect(function () {\n if (visible) {\n keepAlign();\n } else {\n cancelKeepAlign();\n }\n\n return cancelKeepAlign;\n }, [visible, overlay]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n ref: tooltipRef\n }, props));\n});\nexport default SliderTooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport Tooltip from './common/SliderTooltip';\nimport Handle from './Handle';\nexport default function createSliderWithTooltip(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_React$Component) {\n _inherits(ComponentWrapper, _React$Component);\n\n var _super = _createSuper(ComponentWrapper);\n\n function ComponentWrapper() {\n var _this;\n\n _classCallCheck(this, ComponentWrapper);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n visibles: {}\n };\n\n _this.handleTooltipVisibleChange = function (index, visible) {\n _this.setState(function (prevState) {\n return {\n visibles: _objectSpread(_objectSpread({}, prevState.visibles), {}, _defineProperty({}, index, visible))\n };\n });\n };\n\n _this.handleWithTooltip = function (_ref) {\n var value = _ref.value,\n dragging = _ref.dragging,\n index = _ref.index,\n disabled = _ref.disabled,\n restProps = _objectWithoutProperties(_ref, [\"value\", \"dragging\", \"index\", \"disabled\"]);\n\n var _this$props = _this.props,\n tipFormatter = _this$props.tipFormatter,\n tipProps = _this$props.tipProps,\n handleStyle = _this$props.handleStyle,\n getTooltipContainer = _this$props.getTooltipContainer;\n\n var _tipProps$prefixCls = tipProps.prefixCls,\n prefixCls = _tipProps$prefixCls === void 0 ? 'rc-slider-tooltip' : _tipProps$prefixCls,\n _tipProps$overlay = tipProps.overlay,\n overlay = _tipProps$overlay === void 0 ? tipFormatter(value) : _tipProps$overlay,\n _tipProps$placement = tipProps.placement,\n placement = _tipProps$placement === void 0 ? 'top' : _tipProps$placement,\n _tipProps$visible = tipProps.visible,\n visible = _tipProps$visible === void 0 ? false : _tipProps$visible,\n restTooltipProps = _objectWithoutProperties(tipProps, [\"prefixCls\", \"overlay\", \"placement\", \"visible\"]);\n\n var handleStyleWithIndex;\n\n if (Array.isArray(handleStyle)) {\n handleStyleWithIndex = handleStyle[index] || handleStyle[0];\n } else {\n handleStyleWithIndex = handleStyle;\n }\n\n return /*#__PURE__*/React.createElement(Tooltip, _extends({}, restTooltipProps, {\n getTooltipContainer: getTooltipContainer,\n prefixCls: prefixCls,\n overlay: overlay,\n placement: placement,\n visible: !disabled && (_this.state.visibles[index] || dragging) || visible,\n key: index\n }), /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n style: _objectSpread({}, handleStyleWithIndex),\n value: value,\n onMouseEnter: function onMouseEnter() {\n return _this.handleTooltipVisibleChange(index, true);\n },\n onMouseLeave: function onMouseLeave() {\n return _this.handleTooltipVisibleChange(index, false);\n }\n })));\n };\n\n return _this;\n }\n\n _createClass(ComponentWrapper, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Component, _extends({}, this.props, {\n handle: this.handleWithTooltip\n }));\n }\n }]);\n\n return ComponentWrapper;\n }(React.Component), _a.defaultProps = {\n tipFormatter: function tipFormatter(value) {\n return value;\n },\n handleStyle: [{}],\n tipProps: {},\n getTooltipContainer: function getTooltipContainer(node) {\n return node.parentNode;\n }\n }, _a;\n}","import Slider from './Slider';\nimport Range from './Range';\nimport Handle from './Handle';\nimport createSliderWithTooltip from './createSliderWithTooltip';\nimport SliderTooltip from './common/SliderTooltip';\nvar InternalSlider = Slider;\nInternalSlider.Range = Range;\nInternalSlider.Handle = Handle;\nInternalSlider.createSliderWithTooltip = createSliderWithTooltip;\nexport default InternalSlider;\nexport { Range, Handle, createSliderWithTooltip, SliderTooltip };","import React from 'react';\nimport { Range, createSliderWithTooltip } from 'rc-slider';\nimport 'rc-slider/assets/index.css';\n\nconst RangeWithTooltip = createSliderWithTooltip(Range);\n\nconst RangeFilter = ({ ariaLabel = '', ...attrs }) => (\n
    \n \n
    \n);\n\nexport default RangeFilter;\n","import { ntc } from 'src/explore/services/currency_helper';\n\nconst format = ( value ) => ntc( value, { verbose: false });\n\nexport default {\n format,\n};\n","import React, { useState } from 'react';\n\nimport RangeFilter from 'src/explore/elements/RangeFilter';\n\nimport { ntc } from 'src/explore/services/currency_helper';\n\nimport TipFormatter from '../../services/PriceTipFormatter';\n\nexport const Price = ({ defaultValue, onChange, ...props }) => {\n const [ value, setValue ] = useState( defaultValue );\n\n let { min, max } = props;\n // Round cents\n min = Math.floor( min / 100 ) * 100;\n max = Math.ceil( max / 100 ) * 100;\n\n const marks = {};\n // Create marks\n marks[min] = ntc( min, { verbose: false });\n marks[max] = ntc( max, { verbose: false });\n\n return (\n onChange( value )}\n />\n );\n};\n","import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';\nimport cls from 'classnames';\nimport debounce from 'lodash-es/debounce';\nimport isEqual from 'lodash-es/isEqual';\n\nimport { ntc } from 'src/explore/services/currency_helper';\n\nimport { Price } from 'src/explore/compositions/Filters/elements/Price';\n\nimport { FilterItem } from '../FilterItem';\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst PriceFilter = ({ className, max, min }) => {\n const values = useRef();\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n useEffect(() => {\n if ( !min || !max ) return;\n if ( values.current ) return;\n\n values.current = [ min, max ];\n }, [ min, max ]);\n\n const currentValues = [ appliedFilters.min_price, appliedFilters.max_price ];\n\n const filterTitle = useMemo(() => {\n const { max_price, min_price } = appliedFilters;\n\n if ( !max_price && !min_price ) return null;\n\n return `${ntc( min_price, { verbose: false })} - ${ntc( max_price, { verbose: false })}`;\n }, [ appliedFilters ]);\n\n const handleChange = useCallback(\n debounce(\n ( newValues ) => {\n if ( isEqual( currentValues, newValues )) return;\n\n onFilterChange({\n min_price: newValues[0],\n max_price: newValues[1],\n });\n },\n 1500,\n { trailing: true }\n ),\n [ currentValues, onFilterChange ]\n );\n\n // show filters only when default values present and they are different\n const showFilter = values.current && values.current[0] !== values.current[1];\n\n // if no prices to filter by, and no applied values\n if ( !showFilter && !currentValues[0] && !currentValues[1]) return null;\n\n return (\n onFilterChange({ min_price: null, max_price: null })}\n >\n
    \n {showFilter && (\n \n )}\n
    \n \n );\n};\n\nexport default PriceFilter;\n","import React from 'react';\nimport { Checkbox } from '@goldbely/explore-component-library';\n\ninterface CheckboxProps {\n checked: boolean;\n label?: string;\n value: string;\n onChange: ( target: string, isChecked: boolean ) => void;\n}\n\nexport const CheckboxItem = ({ checked, label, value, onChange }: CheckboxProps ) => {\n const handleChange = () => {\n onChange( value, checked );\n };\n\n return (\n \n );\n};\n","import React, { useContext } from 'react';\nimport cls from 'classnames';\n\nimport { ISearchAggregationBucket } from 'src/explore/types/shoppe';\n\nimport { CheckboxItem } from './elements/CheckboxItem';\nimport { FilterItem } from '../FilterItem';\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst labelMaker = ( key: string ) => {\n switch ( key ) {\n case 'combo':\n return 'Combos';\n case 'food':\n return 'Foods';\n case 'gift_card':\n return 'Gift Cards';\n case 'live_class':\n return 'Live Classes';\n case 'mealkit':\n return 'Meal Kits';\n case 'merch':\n return 'Merchandise';\n case 'subscription':\n return 'Subscriptions';\n default:\n return key;\n }\n};\n\ninterface ProductTypeFilterProps {\n className?: string;\n filters?: ISearchAggregationBucket[];\n}\n\nexport const ProductTypeFilter = ({ className, filters = []}: ProductTypeFilterProps ) => {\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n const handleChange = ( filter: string, isChecked: boolean ) => {\n let activeFilters = appliedFilters['product_types[]'] || [];\n if ( typeof activeFilters === 'string' ) {\n activeFilters = activeFilters.split( ',' );\n }\n\n onFilterChange({\n 'product_types[]': isChecked\n ? activeFilters.filter(( activeFilter: string ) => !filter.includes( activeFilter ))\n : [ activeFilters, filter ].flat(),\n });\n };\n\n if ( filters.length < 1 ) return null;\n\n return (\n \n
      \n {filters.map(( filter ) => (\n
    • \n \n
    • \n ))}\n
    \n
    \n );\n};\n","import React, { useCallback, useContext } from 'react';\nimport cls from 'classnames';\n\nimport TreeFilter from '../TreeFilter';\n\nimport FiltersContext from '../../../../hooks/FiltersContext';\n\nconst RegionFilter = ({ className, regions = []}) => {\n const { appliedFilters, onFilterChange } = useContext( FiltersContext );\n\n let activeFilter;\n let filters;\n let handleBack;\n let handleNavigate;\n\n const selectedState = appliedFilters['state.name'];\n const selectedRegion = appliedFilters['state.region_name'];\n\n const selectLocation = useCallback(\n ( region, state ) => onFilterChange({ 'state.region_name': region, 'state.name': state }),\n [ onFilterChange ]\n );\n\n if ( selectedRegion || selectedState ) {\n activeFilter = selectedState || selectedRegion;\n filters = selectedState ? undefined : regions[0]?.states?.buckets;\n handleBack = selectedState ? () => selectLocation( selectedRegion ) : selectLocation;\n handleNavigate = ( key ) => selectLocation( selectedRegion, key );\n } else {\n filters = regions;\n handleNavigate = selectLocation;\n }\n\n return (\n \n );\n};\n\nexport default RegionFilter;\n","import * as React from 'react';\n\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport ArrivalFilter from './elements/ArrivalFilter';\nimport CategoryFilter from './elements/CategoryFilter';\nimport { CuisineFilter } from './elements/CuisineFilter';\nimport DietFilter from './elements/DietFilter';\nimport { DietMerchantFilter } from './elements/DietMerchantFilter';\nimport PriceFilter from './elements/PriceFilter';\nimport { ProductTypeFilter } from './elements/ProductTypeFilter';\nimport RegionFilter from './elements/RegionFilter';\nimport { ISearchFilter } from '../../../../types';\n\ninterface Props {\n aggs?: ISearchAggregations;\n className?: string;\n filter: ISearchFilter;\n}\n\nexport const FilterFactory: React.FC = ({ aggs, className, filter }) => {\n switch ( filter ) {\n case 'arrives_before':\n return (\n \n );\n case 'category':\n return (\n \n );\n case 'cuisine':\n return ;\n case 'diet':\n return ;\n case 'price':\n return (\n \n );\n case 'product_tags':\n return (\n \n );\n case 'product_types':\n return (\n \n );\n case 'region':\n return ;\n default:\n return null;\n }\n};\n","import React from 'react';\nimport cls from 'classnames';\n\nimport styles from './index.module.sass';\n\ninterface LoaderProps {\n show: boolean;\n}\n\nexport const Loader = ({ show }: LoaderProps ) => (\n \n \n Loading...\n \n \n);\n","import * as React from 'react';\n\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\nimport { Sorting } from 'src/explore/elements/Sorting';\nimport { TagFilters } from 'src/explore/elements/TagFilters';\n\nimport { FilterFactory } from './elements/FilterFactory';\nimport { Loader } from './elements/Loader';\nimport { ISearchFilter } from '../../types';\n\nimport styles from './index.module.sass';\n\ninterface FiltersAndSortingProps {\n aggs?: ISearchAggregations;\n loading: boolean;\n panelFilters: ISearchFilter[];\n sortLabelFormatter: ( option: string ) => string;\n sortOptions: Array;\n sortSelection: string | null;\n tagFilters: ISearchFilter[];\n onSort: ( value: string ) => void;\n}\n\nexport const FiltersAndSorting = ({\n aggs,\n loading,\n panelFilters,\n sortLabelFormatter,\n sortOptions,\n sortSelection,\n tagFilters,\n onSort,\n}: FiltersAndSortingProps ) => (\n
    \n {!!tagFilters.length && (\n \n )}\n\n {!!sortOptions.length && (\n \n )}\n\n
      \n {panelFilters.map(( filter: ISearchFilter ) => (\n \n ))}\n
    \n\n \n
    \n);\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTimes } from '@fortawesome/pro-solid-svg-icons';\n\nimport styles from './index.module.sass';\n\ninterface HeaderProps {\n onClickClose: () => void;\n}\n\nexport const Header = ({ onClickClose }: HeaderProps ) => (\n
    \n \n Filters\n
    \n\n \n \n \n \n);\n","import React, { useEffect, useState } from 'react';\nimport cls from 'classnames';\n\nimport { ISearchAggregations } from 'src/explore/types/shoppe';\n\nimport { ApplyButton } from './elements/ApplyButton';\nimport { OverlayTrigger } from './elements/OverlayTrigger';\nimport { FiltersAndSorting } from './elements/FiltersAndSorting';\nimport { Header } from './elements/Header';\nimport { ISearchFilter } from './types';\n\nimport styles from './index.module.sass';\n\nexport type ISource = {\n id?: string;\n text?: string;\n type: string;\n};\n\ninterface SearchFilterProps {\n aggs?: ISearchAggregations;\n availablePanelFilters?: ISearchFilter[];\n availableTagFilters?: ISearchFilter[];\n count?: number;\n loading: boolean;\n sortLabelFormatter: ( option: string ) => string;\n sortOptions: Array;\n sortSelection: string | null;\n onSort: ( value: string ) => void;\n}\n\nexport const SearchFilter = ({\n aggs,\n availablePanelFilters,\n availableTagFilters,\n count,\n loading,\n sortLabelFormatter,\n sortOptions,\n sortSelection,\n onSort,\n}: SearchFilterProps ) => {\n const [ open, setOpen ] = useState( false );\n\n useEffect(() => {\n const handleKeyDown = ( event: KeyboardEvent ) => {\n if ( event.key === 'Escape' ) {\n setOpen( false );\n }\n };\n\n document.addEventListener( 'keydown', handleKeyDown );\n return () => {\n document.removeEventListener( 'keydown', handleKeyDown );\n };\n }, []);\n\n return (\n <>\n setOpen( !open )} />\n\n \n
    setOpen( !open )} />\n\n \n\n setOpen( !open )} />\n \n \n );\n};\n","import { IAPIFilters } from '../../elements/FiltersAndSorting/hooks/FiltersContext';\nimport { ISearchFilter } from '../../types';\n\nconst convert = ( filters: ISearchFilter[]): Array => {\n if ( !filters ) return null;\n\n const result: Array = [];\n\n filters.forEach(( filter ) => {\n switch ( filter ) {\n case 'category':\n result.push( 'categories.name' );\n break;\n case 'diet':\n result.push( 'tags' ); // Temporary\n break;\n case 'award_winner':\n case 'gorgeous_box':\n case 'gb_top_gifts':\n result.push( 'badges[]' );\n break;\n case 'on_sale':\n result.push( 'on_sale' );\n break;\n case 'price':\n result.push( 'max_price' );\n result.push( 'min_price' );\n break;\n case 'product_types':\n result.push( 'product_types[]' );\n break;\n case 'region':\n result.push( 'state.region_name' );\n result.push( 'state.name' );\n break;\n default:\n result.push( filter );\n }\n });\n\n return result;\n};\n\nexport const FiltersToParams = {\n convert,\n};\n","const format = ( value ) => {\n switch ( value ) {\n case null:\n case '':\n return 'Popular Now';\n case 'recommended':\n return 'Recommended';\n case 'best_sellers':\n return 'Best Sellers';\n case 'class_date_low':\n return 'Date: Earliest First';\n case 'class_date_high':\n return 'Date: Latest First';\n case 'price_low':\n return 'Price: Lowest First';\n case 'price_high':\n return 'Price: Highest First';\n default:\n return '';\n }\n};\n\nexport const SortLabelFormatter = {\n format,\n};\n","import React, {\n isValidElement,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport * as EppoSdk from '@eppo/js-client-sdk';\nimport cls from 'classnames';\n\nimport { Sorting } from 'src/explore/elements/Sorting';\nimport { TagFilters } from 'src/explore/elements/TagFilters';\nimport { useApiObject } from 'src/explore/hooks/useApiObject';\nimport ahoyTrack from 'src/explore/services/ahoy';\nimport ArrivalDateMapper from 'src/explore/services/productFilters/mappers/ArrivalDateMapper';\nimport URLParams from 'src/explore/services/URLParams';\nimport { IPromotion, ITrackingParams } from 'src/explore/types/shoppe';\n\nimport { useSelector } from 'react-redux';\nimport { IStore } from 'src/explore/types/store';\nimport { ISource, SearchFilter } from './compositions/SearchFilter';\nimport FiltersContext, {\n IAPIFilters,\n INITIAL_STATE as FILTERS_INITIAL_STATE,\n} from './compositions/SearchFilter/elements/FiltersAndSorting/hooks/FiltersContext';\nimport { FiltersToParams } from './compositions/SearchFilter/services/FiltersToParams';\nimport { ISearchFilter } from './compositions/SearchFilter/types';\nimport { SortLabelFormatter } from './services/SortLabelFormatter';\n\nimport styles from './index.module.sass';\n\nconst buildURLParams = ( filters: IAPIFilters ) =>\n URLParams.buildURLParams( filters, {\n mappers: {\n arrives_before: ArrivalDateMapper.map,\n },\n });\n\nconst eppo = EppoSdk.getInstance();\n\nconst TAG_FILTERS: ISearchFilter[] = [\n 'award_winner',\n 'editor_pick',\n 'fast_delivery',\n 'free_shipping',\n 'gb_top_gifts',\n 'gorgeous_box',\n 'has_gb_tv_video',\n 'special_holiday',\n 'on_sale',\n];\n\nexport type { IAPIFilters };\n\nexport type ISearchParams = {\n source_id?: string;\n source_text?: string;\n source_type?: string;\n limit?: number;\n page?: number;\n cacheable?: number;\n video_offset?: number;\n product_offset?: number;\n max_num_videos?: number;\n};\n\ninterface Props {\n adjustQueryParams?: ( queryParams: ISearchParams ) => ISearchParams;\n apiPath: string;\n apiPathOverride?: string;\n apiResponseParser?: ( response: any ) => Promise;\n availableFilters?: ISearchFilter[];\n availableSorting?: Array;\n cacheable?: boolean;\n children?: ReactNode;\n conditions?: IAPIFilters;\n defaultSortOrder?: string;\n experimentName?: string;\n filterColumnClass?: string;\n filteredResultsColumnClass?: string;\n loadMore?: string | ReactElement;\n pageSize?: number;\n parseCollectionData?: ( collection: T[], page: number ) => Array;\n source?: ISource;\n sidebar?: ReactNode;\n syncTrackingDataToPage?: ( data: ITrackingParams, page: T[]) => ITrackingParams;\n syncUrl?: boolean;\n title?: string;\n onChangePage?: ( page: number ) => void;\n onRenderContent: ( arg0: {\n data: T[];\n filterCount: number;\n loading: boolean;\n meta: any;\n onResetFilters: () => void;\n }) => ReactElement;\n onRenderHeader?: ({ content, filters }: { content: T[]; filters: IAPIFilters }) => void;\n}\n\nexport const FilteredSearch = ({\n adjustQueryParams,\n apiPath,\n apiPathOverride,\n apiResponseParser,\n availableFilters = [],\n availableSorting = [],\n cacheable,\n children,\n conditions,\n defaultSortOrder,\n experimentName,\n filterColumnClass,\n filteredResultsColumnClass,\n loadMore,\n pageSize,\n parseCollectionData,\n source,\n sidebar,\n syncTrackingDataToPage,\n syncUrl,\n title,\n onChangePage,\n onRenderContent,\n onRenderHeader,\n}: Props ) => {\n // Services\n const urlParams = useRef( new URLParams());\n\n // Get filters from URL\n const initialFilters = useMemo(() => {\n if ( !availableFilters || !syncUrl ) return {};\n\n const parsedFilters = FiltersToParams.convert( availableFilters );\n\n return urlParams.current.mread( parsedFilters );\n }, [ availableFilters, syncUrl ]);\n\n const account = useSelector(( state: IStore ) => state.data.account );\n const [ content, setContent ] = useState([]);\n const [ filters, setFilters ] = useState( initialFilters );\n const [ loading, setLoading ] = useState( true );\n const [ page, setPage ] = useState( 1 );\n const [ sort, setSort ] = useState(\n typeof defaultSortOrder === 'undefined' ? availableSorting[0] : defaultSortOrder\n );\n\n // This help us make sure users are not multi-clicking\n const currentPage = useRef( page );\n useEffect(() => {\n currentPage.current = page;\n }, [ page ]);\n\n // Set up the search query\n const query = useMemo(() => {\n const combinedFilters: { [key: string]: IAPIFilters[keyof IAPIFilters] } = { ...conditions };\n // We're only overriding the options passed in through conditions if is defined in filters.\n // filters represents the actual chosen filters by the user and many of them are undefined\n // if not selected.\n Object.keys( filters ).forEach(( key ) => {\n const typedKey = key as keyof IAPIFilters;\n if ( filters[typedKey]) {\n combinedFilters[typedKey] = filters[typedKey];\n }\n });\n\n if ( sort ) {\n combinedFilters.sort = sort;\n }\n\n return buildURLParams( combinedFilters );\n }, [ conditions, filters, sort ]);\n\n // Generate full query\n const completeQuery = useMemo(() => {\n if ( !apiPath ) return null;\n\n let params: ISearchParams = {};\n if ( source ) {\n if ( source.id ) {\n params.source_id = source.id;\n }\n if ( source.text ) {\n params.source_text = source.text;\n }\n if ( source.type ) {\n params.source_type = source.type;\n }\n }\n if ( pageSize ) {\n params.limit = pageSize;\n params.page = page;\n }\n if ( cacheable ) {\n params.cacheable = 1;\n }\n\n if ( adjustQueryParams ) {\n params = adjustQueryParams( params );\n }\n\n return `/${apiPath}?${query}&${URLParams.buildURLParams( params )}`;\n }, [ apiPath, cacheable, query, page, pageSize, source ]);\n\n // map available filters\n const availableTagFilters = useMemo(\n () =>\n availableFilters.filter(( availableFilter: ISearchFilter ) =>\n TAG_FILTERS.includes( availableFilter )\n ),\n [ availableFilters ]\n );\n const availablePanelFilters = useMemo(\n () =>\n availableFilters.filter(\n ( availableFilter: ISearchFilter ) => !TAG_FILTERS.includes( availableFilter )\n ),\n [ availableFilters ]\n );\n\n // Call API to retrieve content\n // FIXME: any data type\n const collection = useApiObject( completeQuery, {\n responseParser: apiResponseParser,\n apiPathOverride,\n });\n\n const track = useCallback(\n ( data: any ) => {\n if ( data ) {\n if ( experimentName ) {\n const variation =\n window.eppo?.experimentOverrides[experimentName] ||\n ( window.ahoy.getVisitorToken()\n ? eppo.getStringAssignment(\n experimentName,\n String( account?.data?.meta_store?.account_id || window.ahoy.getVisitorToken()),\n {},\n null\n )\n : null );\n\n ahoyTrack( '$browserSearch', {\n ...data,\n 'experiment-key': experimentName,\n 'experiment-value': variation,\n });\n } else {\n ahoyTrack( '$browserSearch', data );\n }\n }\n },\n [ experimentName ]\n );\n\n const trackFb = useMemo(() => {\n let fired = false;\n\n return ( queryString: string, products: any ) => {\n if ( fired ) return;\n fired = true;\n if ( !!window.fbq && !!queryString ) {\n window.fbq( 'track', 'Search', {\n search_string: queryString,\n content_ids: products.slice( 0, 10 ).map(( p: any ) => p.id ),\n content_type: 'product',\n });\n }\n };\n }, []);\n\n // Store content locally\n useEffect(() => {\n if ( !collection.data ) return;\n\n let newContent = collection.data;\n trackFb( conditions?.query, newContent );\n\n if ( parseCollectionData ) {\n newContent = parseCollectionData( collection.data, currentPage.current );\n }\n\n if ( currentPage.current === 1 ) {\n // new search\n setContent( newContent );\n } else {\n // new page\n setContent(( currentContent ) => {\n newContent = currentContent.concat( newContent );\n return newContent;\n });\n }\n\n if ( collection.meta ) {\n track(\n syncTrackingDataToPage\n ? syncTrackingDataToPage( collection.meta.tracking_params, newContent )\n : collection.meta.tracking_params\n );\n }\n\n setLoading( false );\n }, [ collection.data ]);\n\n // Sync URL\n useEffect(() => {\n if ( !syncUrl ) return;\n\n urlParams.current.sync( filters );\n }, [ filters, syncUrl ]);\n\n // Reset state when query changes\n useEffect(() => {\n setPage( 1 );\n if ( onChangePage ) {\n onChangePage( 1 );\n }\n setLoading( true );\n setContent([]);\n }, [ query ]);\n\n // FIXME: this is ugly, but I don't care too much right now\n const filterCount = useMemo(() => {\n const queryString = buildURLParams( filters );\n\n return queryString ? queryString.split( '&' ).length : 0;\n }, [ filters ]);\n\n // Set the context for the components using filters\n const filtersContext = {\n ...FILTERS_INITIAL_STATE,\n appliedFilters: filters,\n onFilterChange: ( updatedFilters: IAPIFilters ) => {\n const result = { ...filters, ...updatedFilters };\n\n setLoading( true );\n setFilters( result );\n },\n };\n\n const aggs = collection.meta?.aggs;\n\n const hasMoreResults = useMemo(() => {\n if ( !pageSize ) return false;\n if ( collection.status !== 'success' ) return false;\n\n return collection.meta?.total_count > content.length;\n }, [ collection, pageSize, content ]);\n\n // If no results and no filters applied\n if ( filterCount === 0 && collection.meta?.total_count === 0 && children ) {\n return <>{children};\n }\n\n const hasSideContent = !!availablePanelFilters.length || sidebar;\n\n return (\n \n {title &&

    {title}

    }\n\n {!!onRenderHeader && onRenderHeader({ content, filters })}\n\n {( !!availableSorting.length || !!availableTagFilters.length ) && (\n \n {!!availableTagFilters.length && (\n \n )}\n\n {/* FIXME: sorting drop-down can overflow page with many tag filters on screens >= large */}\n {!!availableSorting.length && (\n \n \n \n )}\n \n )}\n\n \n {hasSideContent && (\n 0,\n },\n filterColumnClass\n )}\n >\n 0,\n })}\n >\n {sidebar}\n\n \n \n \n )}\n\n \n {onRenderContent({\n data: content,\n filterCount,\n loading,\n meta: collection.meta,\n onResetFilters: () => setFilters({}),\n })}\n\n
    \n {hasMoreResults && (\n <>\n {isValidElement( loadMore ) ? (\n loadMore\n ) : (\n {\n setPage( page + 1 );\n if ( onChangePage ) {\n onChangePage( page + 1 );\n }\n }}\n >\n {loadMore || 'Show More'}\n \n )}\n \n )}\n\n {!loading && collection.loading && (\n
    \n Loading...\n
    \n )}\n
    \n \n \n
    \n );\n};\n"],"names":["Option","labelFormatter","selected","value","onSelect","React","SvgIcon","Dropdown","className","values","formatter","v","styles","FontAwesomeIcon","faChevronDown","format","LabelFormatter","children","onClick","faCheck","List","options","selection","cls","option","DEFAULT_OPTIONS","Sorting","onChange","safeValues","useEffect","INITIAL_STATE","FiltersContext","createContext","Button","disabled","highlightRed","isSelected","Filter","aggs","label","loading","name","isVisible","setIsVisible","useState","appliedFilters","onFilterChange","text","useMemo","isAvailable","_a","bucket","_b","_c","add","_d","_e","_f","_g","_h","handleClick","HolidayFilter","dateString","useSelector","state","active","BadgeFilter","handleOnClick","badges","currentBadges","badge","newBadges","FastDeliveryFilter","TagFilter","TagFilters","availableFilters","filter","today","tomorrow","lastSunday","getDayRelativeToLastSunday","dayNumber","d","getDaysRelativeToLastSunday","initialDayNumber","endDayNumber","result","i","thisWeek","thisWeekend","nextWeek","isToday","day","dateToYMD","date","m","y","DeliveryDate","map","ArrivalDateMapper","ApplyButton","OverlayTrigger","filterCount","faSlidersSimple","Checkbox","checked","type","FilterItem","backTitle","currentValue","onTitleClick","handleKeyDown","event","faChevronLeft","moment","OptionFormatter","DISCLAIMER_TEXT","DatepickerNote","ArrivalFilter","earliestDate","useContext","datePicker","setDatePicker","deadline","selectedOption","earliestDateObj","endOfWeekOptions","handleFilterChange","useCallback","SingleDatePicker","Breakpoints","focused","useHistory","history","setHistory","TreeFilter","activeFilter","defaultTitle","filters","onBack","onNavigate","pop","push","handleNavigateBack","handleNavigateForward","CategoryFilter","categories","forceShow","useRef","currentFilter","CuisineFilter","cuisine","React.useContext","React.createElement","DietFilter","tags","DietMerchantFilter","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread2","target","source","key","defineProperty","_isNativeReflectConstruct","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","getPrototypeOf","NewTarget","possibleConstructorReturn","warned","warning","valid","message","call","method","warningOnce","Track","props","_ref","_ref2","included","vertical","style","length","offset","reverse","positonStyle","_defineProperty","elStyle","_objectSpread","_arrayWithoutHoles","arr","arrayLikeToArray","_iterableToArray","iter","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","addEventListenerWrap","eventType","cb","callback","ReactDOM","e","calcPoints","marks","dots","step","min","max","points","a","b","Steps","prefixCls","lowerBound","upperBound","dotStyle","activeDotStyle","range","elements","point","_classNames","isActived","pointClassName","classNames","Marks","onClickLabel","marksKeys","markPoint","markPointIsObject","_typeof","markLabel","isActive","markClassName","bottomStyle","leftStyle","markStyle","Handle","_React$Component","_inherits","_super","_this","_classCallCheck","node","_createClass","addEventListener","_this$props","tabIndex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter","restProps","_objectWithoutProperties","positionStyle","mergedTabIndex","ariaValueText","_extends","KeyCode","keyCode","isEventFromHandle","handles","findDOMNode","isValueOutOfRange","isNotTouchEvent","getClosestPoint","val","baseNum","getPrecision","maxSteps","steps","closestStep","diffs","stepString","precision","getMousePosition","getTouchPosition","getHandleCenterPosition","handle","coords","ensureValueInRange","_ref3","ensureValuePrecision","closestPoint","pauseEvent","calculateNextValue","func","operations","indexToGet","keyToGet","getKeyboardValueMutator","increase","decrease","noop","createSlider","Component","_Component","ComponentEnhancer","position","p","draggableTrack","isVertical","bounds","inPoint","utils.isEventFromHandle","n","c","handlePosition","utils.getHandleCenterPosition","utils.getMousePosition","utils.isNotTouchEvent","utils.getTouchPosition","utils.pauseEvent","_this$props2","onFocus","onBlur","slider","isPointDiffEven","_this$props3","autoFocus","_get","_getPrototypeOf","_this$props4","rect","_this$handlesRefs$","_this2","_this2$handlesRefs$ke","_this2$handlesRefs$ke2","_this$props5","ratio","sign","pixelOffset","nextValue","_this$props6","index","_this$props7","maximumTrackStyle","railStyle","_get$call","tracks","sliderClassName","Slider","force","dragging","defaultValue","h","prevProps","prevState","theValue","utils.isValueOutOfRange","isNotControlled","nextState","changedValue","prevValue","oldValue","valueMutator","utils.getKeyboardValueMutator","mutatedValue","minPoint","nextProps","mergedProps","utils.ensureValueInRange","utils.ensureValuePrecision","minimumTrackStyle","trackStyle","handleStyle","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","startPoint","handleGenerator","_this$state","trackOffset","mergedTrackStyle","track","Slider$1","_trimAlignValue","allowCross","pushable","thershold","valInRange","valNotConflict","Range","closestBound","nextBounds","count","initialValue","recent","newValues","controlledState","item","data","dragTrack","startBounds","maxValue","minValue","pos","isFromKeyboardEvent","boundNeedMoving","isAtTheSamePoint","cache","pointsObject","_this3","nextHandle","threshold","direction","diffToNext","amount","originalValue","pointIndex","nextPointIndex","_this$state2","_this4","_this$state3","ariaLabelGroupForHandles","ariaLabelledByGroupForHandles","ariaValueTextFormatterGroupForHandles","offsets","handleClassName","_","_classNames2","trackClassName","Range$1","raf","caf","num","rafUUID","rafIds","cleanup","id","wrapperRaf","times","callRef","leftTimes","realId","contains","root","fillRef","ref","composeRef","_len","refs","_key","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isMemo","canUseDom","Portal","forwardRef","didUpdate","getContainer","containerRef","useImperativeHandle","initRef","_containerRef$current","_containerRef$current2","isPointsEq","a1","a2","isAlignPoint","getAlignFromPlacement","builtinPlacements","placementStr","align","baseAlign","getAlignPopupClassName","placements","placement","isMobile","agent","makePrefixMap","styleProp","eventName","prefixes","getVendorPrefixes","domSupport","win","vendorPrefixes","canUseDOM","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","len","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","match","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","useMountStatus","destroyRef","_useState","_useState2","_slicedToArray","setVal","setValue","next","useIsomorphicLayoutEffect","useLayoutEffect","useNextFrame","nextFrameRef","React.useRef","cancelNextFrame","nextFrame","delay","nextFrameId","React.useEffect","STEP_QUEUE","SkipStep","DoStep","useStepQueue","status","_React$useState","React.useState","_React$useState2","setStep","_useNextFrame","_useNextFrame2","startQueue","nextStep","info","doNext","useDomMotionEvents","cacheElementRef","callbackRef","onInternalMotionEnd","React.useCallback","removeMotionEvents","element","patchMotionEvents","useStatus","supportMotion","visible","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState3","_useState4","setStatus","_useState5","_useState6","setStyle","mountedRef","deadlineRef","destroyedRef","getDomElement","activeRef","canEnd","_useDomMotionEvents","_useDomMotionEvents2","eventHandlers","React.useMemo","_ref4","_useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","isMounted","nextStatus","mergedStyle","DomWrapper","React.Component","genCSSMotion","config","transitionSupport","isSupportTransition","CSSMotion","React.forwardRef","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","motionName","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","originRef","setNodeRef","motionChildren","statusSuffix","getMotion","motion","animation","Mask","zIndex","mask","maskMotion","maskAnimation","maskTransitionName","box","_box","obj","vendorPrefix","jsCssMap","getVendorPrefix","testProp","getTransformName","setTransitionProperty","setTransform","getTransitionProperty","getTransformXY","transform","matrix","matrix2d","matrix3d","setTransformXY","xy","match2d","match3d","RE_NUM","getComputedStyleX","forceRelayout","elem","originalStyle","css","el","getClientPosition","x","doc","body","docElem","getScroll","w","top","ret","getScrollLeft","getScrollTop","getOffset","isWindow","getDocument","_getComputedStyle","cs","computedStyle","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","PX","_getComputedStyleIE","left","rsLeft","getOffsetDirection","dir","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","_dir","_off","setTransform$1","originalXY","resultXY","setOffset","oriOffset","oLeft","oTop","tLeft","tTop","each","fn","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","swap","getPBMWidth","which","prop","j","cssProp","domUtils","parent","refWin","documentElement","documentElementProp","getWH","ex","extra","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","cssShow","getWHIgnoreDisplay","args","_key2","first","includeMargin","mix","to","from","utils","overflow","getParent","getOffsetParent","skipStatic","getParent$1","isAncestorFixed","getVisibleRectForElement","alwaysByViewport","visibleRect","originalPosition","scrollX","scrollY","viewportWidth","viewportHeight","documentWidth","documentHeight","bodyStyle","maxVisibleWidth","maxVisibleHeight","adjustForViewport","elFuturePos","elRegion","size","getRegion","getAlignOffset","region","V","H","getElFuturePos","refNodeRegion","targetOffset","p1","p2","diff","isFailX","isFailY","isCompleteFailX","isCompleteFailY","flip","reg","flipOffset","convertOffset","str","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","newElFuturePos","_newPoints","_newOffset","_newTargetOffset","_newElFuturePos","isStillFailX","isStillFailY","_newPoints2","isOutOfVisibleRect","targetRegion","alignElement","refNode","isTargetNotOutOfVisible","alignPoint","tgtPoint","pageX","pageY","pointInView","isSamePoint","prev","restoreFocus","activeElement","container","monitorResize","prevWidth","prevHeight","onResize","_target$getBoundingCl","width","height","fixedWidth","fixedHeight","resizeObserver","ResizeObserver","useBuffer","buffer","calledRef","timeoutRef","cancelTrigger","trigger","getPoint","Align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","childNode","forceAlignPropsRef","_useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestOnAlign","_document","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","winResizeRef","RefAlign","StatusQueue","useVisibleStatus","doMeasure","setInternalStatus","rafRef","cancelRaf","goNextStatus","_asyncToGenerator","_regeneratorRuntime","_callee","_context","useStretchStyle","stretch","targetSize","setTargetSize","measureStretch","sizeStyle","PopupInner","destroyPopupOnHide","getRootDomNode","getClassNameFromAlign","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","alignRef","elementRef","alignedClassName","setAlignedClassName","_useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","_useVisibleStatus2","prepareResolveRef","getAlignTarget","forceAlign","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","originHandler","onShowPrepare","resolve","React.useImperativeHandle","alignDisabled","React.Children","motionRef","motionClassName","motionStyle","mergedClassName","MobilePopupInner","_props$mobile","popupClassName","popupStyle","_props$mobile$popupMo","popupMotion","popupRender","Popup","mobile","innerVisible","serInnerVisible","inMobile","setInMobile","cloneProps","popupNode","TriggerContext","React.createContext","returnEmptyString","returnDocument","ALL_HANDLERS","generateTrigger","PortalComponent","Trigger","React.createRef","mouseEnterDelay","_this$popupRef$curren","preTime","nextVisible","_this$context","getTriggerDOMNode","domNode","_assertThisInitialized","popupPlacement","getPopupClassNameFromAlign","onPopupAlign","popupAnimation","popupTransitionName","popup","popupVisible","mouseProps","popupContainer","getPopupContainer","mountNode","currentDocument","_this$popupRef$curren2","popupAlign","prevPopupVisible","delayS","childPros","action","showAction","hideAction","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","child","newChildProps","childrenClassName","React.cloneElement","portal","newState","autoAdjustOverflow","Content","overlay","overlayInnerStyle","Tooltip","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","mouseLeaveDelay","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","domRef","extraProps","getPopupElement","_props$arrowContent","arrowContent","destroyTooltip","keepParent","Tooltip$1","SliderTooltip","innerRef","tooltipRef","cancelKeepAlign","keepAlign","_innerRef$current","createSliderWithTooltip","ComponentWrapper","tipFormatter","tipProps","_tipProps$prefixCls","_tipProps$overlay","_tipProps$placement","_tipProps$visible","restTooltipProps","handleStyleWithIndex","InternalSlider","RangeWithTooltip","RangeFilter","attrs","ntc","TipFormatter","Price","PriceFilter","currentValues","filterTitle","max_price","min_price","handleChange","debounce","isEqual","showFilter","CheckboxItem","labelMaker","ProductTypeFilter","isChecked","activeFilters","RegionFilter","regions","handleBack","handleNavigate","selectedState","selectedRegion","selectLocation","FilterFactory","_i","_j","_k","Loader","show","FiltersAndSorting","panelFilters","sortLabelFormatter","sortOptions","sortSelection","tagFilters","onSort","Header","onClickClose","faTimes","SearchFilter","availablePanelFilters","availableTagFilters","open","setOpen","convert","FiltersToParams","SortLabelFormatter","buildURLParams","URLParams","eppo","EppoSdk.getInstance","TAG_FILTERS","FilteredSearch","adjustQueryParams","apiPath","apiPathOverride","apiResponseParser","availableSorting","cacheable","conditions","defaultSortOrder","experimentName","filterColumnClass","filteredResultsColumnClass","loadMore","pageSize","parseCollectionData","sidebar","syncTrackingDataToPage","syncUrl","title","onChangePage","onRenderContent","onRenderHeader","urlParams","initialFilters","parsedFilters","account","content","setContent","setFilters","setLoading","page","setPage","sort","setSort","currentPage","query","combinedFilters","typedKey","completeQuery","params","availableFilter","collection","useApiObject","variation","ahoyTrack","trackFb","fired","queryString","products","newContent","currentContent","filtersContext","FILTERS_INITIAL_STATE","updatedFilters","hasMoreResults","hasSideContent","isValidElement"],"mappings":"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","x_google_ignoreList":[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82]}