{"version":3,"file":"custom-universal-select-d0700d67.js","sources":["../../../client/src/javascripts/customer_pages/_utils/paginator/use-pagination-range.jsx","../../../client/src/javascripts/customer_pages/_utils/paginator/index.jsx","../../../client/src/javascripts/customer_pages/_utils/custom-universal-select.jsx"],"sourcesContent":["import { useMemo } from 'react';\n\nconst PAGINATION_BREAK = undefined;\n\nconst usePaginationRange = ({ totalPageCount, currentPage, maxSiblings }) => {\n const paginationRange = useMemo(() => {\n if (totalPageCount === 1) {\n return [1];\n }\n\n const leftSibling = Math.max(currentPage - maxSiblings, 1);\n const rightSibling = Math.min(currentPage + maxSiblings, totalPageCount);\n\n const range = [];\n let previousPage;\n\n for (let i = 1; i <= totalPageCount; i++) {\n const isFirstOrLastPage = i === 1 || i === totalPageCount;\n const isWithinDisplayableRange = i >= leftSibling && i <= rightSibling;\n\n if (isFirstOrLastPage || isWithinDisplayableRange) {\n if (previousPage && i !== previousPage + 1) {\n range.push(PAGINATION_BREAK);\n }\n range.push(i);\n previousPage = i;\n }\n }\n\n return range;\n }, [totalPageCount, currentPage, maxSiblings]);\n\n return({\n paginationRange\n });\n}\n\nexport { usePaginationRange, PAGINATION_BREAK };\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport screenAndStyle from '../screen-and-style';\nimport { usePaginationRange, PAGINATION_BREAK } from './use-pagination-range';\n\n// Max number of siblings either side of current page\n// * First & Last page always displayed\n// * Prev & Next displayed when valid\n// [1, PAGINATION_BREAK, 9, _10_, 11, PAGINATION_BREAK, 15] = 1 siblings\n// [1, PAGINATION_BREAK, 8, 9, _10_, 11, 12, PAGINATION_BREAK, 15] = 2 siblings\nconst MOBILE_PAGINATION_SIBLINGS = 1;\nconst DESKTOP_PAGINATION_SIBLINGS = 4;\n// ---------}\n\nconst scrollTo = (target) => {\n var top = target || 0,\n $target;\n\n if (isNaN(top)) {\n $target = $(target || 'body');\n\n if (['auto', 'scroll'].indexOf($target.css('overflow-y')) > -1) {\n // we're in a scrolling div\n $target.animate({ scrollTop: 0 });\n return;\n }\n\n top = $target.offset().top;\n }\n\n $('html, body').animate({\n scrollTop: top,\n });\n}\n\nconst Paginator = ({ scrollTarget, page: currentPage, onPagePrevious, onPageNext, totalPageCount, onGoToPage, title, children }) => {\n const handlePagePrevious = useCallback((e) => {\n e.preventDefault();\n if (currentPage > 1) {\n scrollTo(scrollTarget);\n onPagePrevious();\n }\n }, [scrollTarget, onPagePrevious, currentPage]);\n\n const handlePageNext = useCallback((e) => {\n e.preventDefault();\n if (currentPage < totalPageCount) {\n scrollTo(scrollTarget);\n onPageNext();\n }\n }, [scrollTarget, onPageNext, currentPage, totalPageCount]);\n\n const maxSiblings = screenAndStyle.assumePhoneOrSmallScreen() ? MOBILE_PAGINATION_SIBLINGS : DESKTOP_PAGINATION_SIBLINGS;\n const { paginationRange } = usePaginationRange({ totalPageCount, maxSiblings, currentPage });\n\n return (\n <>\n {children}\n {totalPageCount > 1 && (\n \n )}\n \n );\n}\n\nPaginator.propTypes = {\n scrollTarget: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]).isRequired,\n page: PropTypes.number, // aka currentPage\n totalPageCount: PropTypes.number.isRequired,\n onPagePrevious: PropTypes.func.isRequired,\n onPageNext: PropTypes.func.isRequired,\n onGoToPage: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n title: PropTypes.string,\n}\n\nPaginator.defaultProps = {\n title: \"Pagination Navigation\"\n}\n\nexport default Paginator;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nfunction CustomUniversalSelect({\n options,\n value,\n onChange,\n ariaLabel,\n hideCheckBox,\n solidArrowIcon,\n}) {\n const newRef = useRef(null);\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n });\n\n const [isListOpen, setIsListOpen] = useState('');\n const arrowStyle = solidArrowIcon ? 'caret' : 'angle';\n\n const paramOption = options.find(option => option.value === value) || options[0],\n headerOption = options.find(option => option.selected) || paramOption,\n headerTitle = headerOption?.label;\n\n const handleClick = e => {\n if (!newRef.current.contains(e.target)) {\n setIsListOpen(false);\n }\n };\n\n const toggleList = () => {\n setIsListOpen(prevState => !prevState);\n };\n\n const selectItem = item => {\n const { value } = item;\n setIsListOpen(false);\n onChange(value);\n };\n\n const handleKeyPress = event => {\n if (event.key === 'Escape') {\n event.preventDefault();\n \n setIsListOpen(false);\n }\n };\n\n const $options = options.map((option, i) => {\n if (value == option.label) {\n value = option.value;\n }\n return (\n selectItem(option)}\n value={'' + option.value}\n disabled={!!option.disabled}>\n \n {option.label}\n \n );\n });\n\n return (\n
\n \n {headerTitle}\n \n \n {isListOpen && (\n
\n {$options}\n
\n )}\n
\n );\n}\n\nCustomUniversalSelect.propTypes = {\n options: PropTypes.array.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n solidArrowIcon: PropTypes.bool,\n hideCheckBox: PropTypes.bool,\n};\n\nCustomUniversalSelect.defaultProps = {\n solidArrowIcon: false,\n hideCheckBox: false,\n};\n\nexport default CustomUniversalSelect;\n"],"names":["PAGINATION_BREAK","usePaginationRange","totalPageCount","currentPage","maxSiblings","useMemo","leftSibling","rightSibling","range","previousPage","i","isFirstOrLastPage","isWithinDisplayableRange","MOBILE_PAGINATION_SIBLINGS","DESKTOP_PAGINATION_SIBLINGS","scrollTo","target","top","$target","Paginator","scrollTarget","onPagePrevious","onPageNext","onGoToPage","title","children","handlePagePrevious","useCallback","e","handlePageNext","screenAndStyle","paginationRange","React","classNames","pageNumber","index","selected","goToPage","PropTypes","CustomUniversalSelect","options","value","onChange","ariaLabel","hideCheckBox","solidArrowIcon","newRef","useRef","useEffect","handleClick","isListOpen","setIsListOpen","useState","arrowStyle","paramOption","option","headerOption","headerTitle","toggleList","prevState","selectItem","item","handleKeyPress","event","$options"],"mappings":"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"}