{"version":3,"file":"5400.3a8136ebc5806e4b9305.js?ssi=0","mappings":"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","sources":["webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/base-package-left-arrow.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/base-package-right-arrow.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/base-package-rounded-left-arrow.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/base-package-rounded-right-arrow.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/down-arrow.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/track-product-left-arrow.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/track-product-right-arrow.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/up-arrow.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/clients/compare-client.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scroll-control-types.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/scrollable-table-helper.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/scrollable-table-with-slider-provider.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/use-scrollbar-handler.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/touch-scroll-wrapper.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollbar.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollbar.less?ab37","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/double-right-arrow.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/full-ownership.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/fully-included.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/partial-ownership.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/partly-included.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/svgs/hide-arrow.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/use-touch-handler.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shared/fullscreen-overlay-loading-spinner/index.less?9d09","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shared/fullscreen-overlay-loading-spinner/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/util/hooks/use-document-event-listener.js"],"sourcesContent":["module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2306296c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M15 18l-6-6 6-6'/%3e%3c/svg%3e\"","module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2306296c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M9 18l6-6-6-6'/%3e%3c/svg%3e\"","module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='23' height='23' viewBox='0 0 23 23'%3e%3cg fill='none' fill-rule='evenodd' transform='rotate(-180 11.5 11.5)'%3e%3crect width='23' height='23' fill='%23FFF' rx='11.5'/%3e%3cpath stroke='%2306296c' stroke-linecap='round' stroke-width='2' d='M13.95 10.95L10 7M10.05 14.95L14 11'/%3e%3c/g%3e%3c/svg%3e\"","module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='23' height='23' viewBox='0 0 23 23'%3e%3cg fill='none' fill-rule='evenodd'%3e%3crect width='23' height='23' fill='%23FFF' rx='11.5'/%3e%3cpath stroke='%2306296c' stroke-linecap='round' stroke-width='2' d='M13.95 10.95L10 7M10.05 14.95L14 11'/%3e%3c/g%3e%3c/svg%3e\"","module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231e91d6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e\"","module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='23' height='23' viewBox='0 0 23 23'%3e%3cg fill='none' fill-rule='evenodd' transform='rotate(-180 11.5 11.5)'%3e%3crect width='23' height='23' fill='%23005EC3' rx='11.5'/%3e%3cpath stroke='%23FFF' stroke-linecap='square' stroke-width='2' d='M13.95 10.95L10 7M10.05 14.95L14 11'/%3e%3c/g%3e%3c/svg%3e\"","module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='23' height='23' viewBox='0 0 23 23'%3e%3cg fill='none' fill-rule='evenodd'%3e%3crect width='23' height='23' fill='%23005EC3' rx='11.5'/%3e%3cpath stroke='%23FFF' stroke-linecap='square' stroke-width='2' d='M13.95 10.95L10 7M10.05 14.95L14 11'/%3e%3c/g%3e%3c/svg%3e\"","module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231e91d6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e\"","import { fetch } from '../util/fetch';\n\nexport default class CompareClient {\n\tstatic async getTrack(compareTrackBaseUrl, trackId) {\n\t\tconst request = { url: `${compareTrackBaseUrl}/${encodeURIComponent(trackId)}` };\n\t\tconst response = await fetch.get(request);\n\t\treturn await response.json();\n\t}\n\n\tstatic async getTrackProducts(compareTrackProductsBaseUrl, trackIds, clientVersion) {\n\t\tconst params = { trackIds: trackIds.join(',') };\n\n\t\tif (clientVersion) {\n\t\t\tparams.clientVersion = clientVersion;\n\t\t}\n\t\tconst response = await fetch.get({\n\t\t\turl: compareTrackProductsBaseUrl,\n\t\t\tparams: params,\n\t\t});\n\n\t\treturn await response.json();\n\t}\n\n\tstatic async getCompareSectionData(compareTrackSectionsBaseUrl, productIds) {\n\t\tconst params = { productIds: productIds.join(',') };\n\n\t\tconst response = await fetch.get({\n\t\t\turl: compareTrackSectionsBaseUrl,\n\t\t\tparams: params,\n\t\t});\n\n\t\tconst data = await response.json();\n\t\treturn {\n\t\t\tsections: data.sections,\n\t\t\torderedResourceCounts: data.orderedResourceCounts,\n\t\t};\n\t}\n\n\tstatic async getCompareSectionDataForSubscribableProducts(compareSubscribableProductSectionsBaseUrl, spoids) {\n\t\tconst params = { spoids: spoids.join(',') };\n\n\t\tconst response = await fetch.get({\n\t\t\turl: compareSubscribableProductSectionsBaseUrl,\n\t\t\tparams: params,\n\t\t});\n\n\t\tconst data = await response.json();\n\t\treturn {\n\t\t\tsections: data.sections,\n\t\t\torderedResourceCounts: data.orderedResourceCounts,\n\t\t};\n\t}\n\n\tstatic async getBasePackagesByTrackId(compareBasePackagesByTrackIdUrl, trackId) {\n\t\tconst response = await fetch.get({\n\t\t\turl: `${compareBasePackagesByTrackIdUrl}/${encodeURIComponent(trackId)}`,\n\t\t});\n\n\t\treturn await response.json();\n\t}\n\n\tstatic async getBasePackagesByProductIds(compareBasePackagesByProductIdsUrl, productIds) {\n\t\tconst response = await fetch.get({\n\t\t\turl: `${compareBasePackagesByProductIdsUrl}?productIds=${encodeURIComponent(productIds.join(','))}`,\n\t\t});\n\t\treturn await response.json();\n\t}\n}\n","const scrollControlTypes = {\n\tscrollbar: 'Scrollbar',\n\tbuttons: 'Buttons',\n};\n\nexport default scrollControlTypes;\n","const getValueFromAdditionalSizes = (valuesBySize, screenSize) =>\n\tvaluesBySize.reduce(\n\t\t(matchingValue, [size, value]) => (screenSize >= parseInt(size) ? value : matchingValue),\n\t\tundefined\n\t);\n\nconst getElementValueFromPredefinedScreenSizes = (screenSizeValues, screenSizeMatches) => {\n\tconst matchingSizeIndex = screenSizeMatches.lastIndexOf(true);\n\tif (matchingSizeIndex < 0) {\n\t\treturn 0;\n\t}\n\n\treturn screenSizeValues[Math.min(matchingSizeIndex, screenSizeValues.length - 1)];\n};\n\n/* screenSizeMatches: [isMobile, isTablet, isDesktop, isLargeDesktop, additionalSizes: { size:  value }] */\nconst getElementValueForScreenSize = (screenSizeValues, screenSize, screenSizeMatches) => {\n\tif (!screenSizeValues?.length) {\n\t\treturn 0;\n\t}\n\n\tconst additionalSizesValues = Object.entries(screenSizeValues[screenSizeValues.length - 1]);\n\tif (additionalSizesValues.length === 0) {\n\t\treturn getElementValueFromPredefinedScreenSizes(screenSizeValues, screenSizeMatches);\n\t}\n\n\tconst valueFromAdditionalSizes = getValueFromAdditionalSizes(additionalSizesValues, screenSize);\n\treturn (\n\t\tvalueFromAdditionalSizes ??\n\t\tgetElementValueFromPredefinedScreenSizes(screenSizeValues.slice(0, screenSizeValues.length - 1), screenSizeMatches)\n\t);\n};\n\nconst getColumnOffset = (columnIndex, columnWidth, columnGap, leftBoundaryMarginWidth) => {\n\tif (columnIndex === 0) {\n\t\treturn 0;\n\t}\n\n\tconst previousColumnOffset = columnWidth - leftBoundaryMarginWidth + columnGap;\n\tconst accumulatedPreviousColumnsOffset = (columnWidth + columnGap) * (columnIndex - 1);\n\treturn accumulatedPreviousColumnsOffset + previousColumnOffset;\n};\n\nconst buildSliderProps = (\n\tsliderProps,\n\ttotalNumberOfColumns,\n\tfirstVisibleColumnIndex,\n\tcolumnWidth,\n\tcolumnGap,\n\tleftBoundaryMarginWidth,\n\tnumberOfVisibleColumns,\n\tisLeftBoundaryReached,\n\tisRightBoundaryReached,\n\tscreenWidth,\n\tscreenSizeMatches\n) => {\n\tif (!sliderProps) {\n\t\treturn {};\n\t}\n\n\tconst { arrowWidthsByScreenSize } = sliderProps;\n\n\tconst arrowWidth = getElementValueForScreenSize(arrowWidthsByScreenSize, screenWidth, screenSizeMatches);\n\n\tconst isLeftArrowDisplayed =\n\t\tarrowWidth > 0 && totalNumberOfColumns > numberOfVisibleColumns && !isLeftBoundaryReached;\n\tconst isRightArrowDisplayed =\n\t\tarrowWidth > 0 && totalNumberOfColumns > numberOfVisibleColumns && !isRightBoundaryReached;\n\n\treturn {\n\t\tisLeftArrowDisplayed,\n\t\tisRightArrowDisplayed,\n\t\tarrowWidth,\n\t};\n};\n\nexport const buildScrollableTableProps = (\n\tfirstVisibleColumnIndexRequested,\n\ttotalNumberOfColumns,\n\tpropsByScreenSize,\n\tscreenWidth,\n\tscreenSizeMatches\n) => {\n\tconst {\n\t\tnumbersOfVisibleColumnsByScreenSize,\n\t\tcolumnWidthsByScreenSize,\n\t\tcolumnGapsByScreenSize,\n\t\tboundaryMarginWidthsByScreenSize,\n\t\tswipeRadiusXByScreenSize,\n\t\tsliderProps,\n\t} = propsByScreenSize;\n\n\tconst columnWidth = getElementValueForScreenSize(columnWidthsByScreenSize, screenWidth, screenSizeMatches);\n\tconst columnGap = getElementValueForScreenSize(columnGapsByScreenSize, screenWidth, screenSizeMatches);\n\tconst boundaryMarginWidth = getElementValueForScreenSize(\n\t\tboundaryMarginWidthsByScreenSize,\n\t\tscreenWidth,\n\t\tscreenSizeMatches\n\t);\n\tconst swipeRadiusX = getElementValueForScreenSize(swipeRadiusXByScreenSize, screenWidth, screenSizeMatches);\n\tconst numberOfVisibleColumnsRequested = getElementValueForScreenSize(\n\t\tnumbersOfVisibleColumnsByScreenSize,\n\t\tscreenWidth,\n\t\tscreenSizeMatches\n\t);\n\tconst numberOfVisibleColumns = Math.min(numberOfVisibleColumnsRequested, totalNumberOfColumns);\n\n\tconst effectiveFirstVisibleColumnIndex = Math.min(\n\t\tfirstVisibleColumnIndexRequested,\n\t\ttotalNumberOfColumns - numberOfVisibleColumns\n\t);\n\n\tlet visibleColumnsWidth = columnWidth * numberOfVisibleColumns + columnGap * (numberOfVisibleColumns - 1) + 1;\n\tif (boundaryMarginWidth > 0 && totalNumberOfColumns > numberOfVisibleColumns) {\n\t\tvisibleColumnsWidth += (boundaryMarginWidth + columnGap) * 2;\n\t}\n\n\tconst isLeftBoundaryReached = effectiveFirstVisibleColumnIndex === 0;\n\tconst isRightBoundaryReached = effectiveFirstVisibleColumnIndex + numberOfVisibleColumns === totalNumberOfColumns;\n\n\tconst isLeftBoundaryDisplayed = boundaryMarginWidth > 0 && !isLeftBoundaryReached;\n\tconst isRightBoundaryDisplayed = boundaryMarginWidth > 0 && !isRightBoundaryReached;\n\tconst leftBoundaryMarginWidth = isLeftBoundaryDisplayed\n\t\t? (boundaryMarginWidth + columnGap) * (isRightBoundaryReached ? 2 : 1)\n\t\t: 0;\n\tconst rightBoundaryMarginWidth = isRightBoundaryDisplayed\n\t\t? (boundaryMarginWidth + columnGap) * (isLeftBoundaryReached ? 2 : 1)\n\t\t: 0;\n\n\tconst leftOffset = getColumnOffset(effectiveFirstVisibleColumnIndex, columnWidth, columnGap, leftBoundaryMarginWidth);\n\n\tconst swipeRadius = swipeRadiusX ? { swipeRadiusX } : {};\n\tconst isScrollActive = totalNumberOfColumns > numberOfVisibleColumns;\n\n\treturn {\n\t\tnumberOfVisibleColumns,\n\t\tvisibleColumnsWidth,\n\t\tcolumnWidth,\n\t\tcolumnGap,\n\t\tleftOffset,\n\t\tisLeftBoundaryReached,\n\t\tisRightBoundaryReached,\n\t\tisLeftBoundaryDisplayed,\n\t\tisRightBoundaryDisplayed,\n\t\tleftBoundaryMarginWidth,\n\t\trightBoundaryMarginWidth,\n\t\teffectiveFirstVisibleColumnIndex,\n\t\tswipeRadius,\n\t\tisScrollActive,\n\t\tsliderProps: buildSliderProps(\n\t\t\tsliderProps,\n\t\t\ttotalNumberOfColumns,\n\t\t\teffectiveFirstVisibleColumnIndex,\n\t\t\tcolumnWidth,\n\t\t\tcolumnGap,\n\t\t\tleftBoundaryMarginWidth,\n\t\t\tnumberOfVisibleColumns,\n\t\t\tisLeftBoundaryReached,\n\t\t\tisRightBoundaryReached,\n\t\t\tscreenWidth,\n\t\t\tscreenSizeMatches\n\t\t),\n\t};\n};\n","import React, { createContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport useScreensize from '../../../util/hooks/use-screensize';\nimport scrollControlTypes from '../scroll-control-types';\nimport { buildScrollableTableProps } from './scrollable-table-helper';\n\nexport const ScrollableTableWithSliderContext = createContext({});\n\nconst ScrollableTableWithSliderProvider = ({\n\tpropsByScreenSize,\n\tfirstVisibleColumnIndex,\n\ttotalNumberOfColumns,\n\tscrollPublisher,\n\tonFirstVisibleColumnChange,\n\tchildren,\n\tscrollControlType = scrollControlTypes.buttons,\n}) => {\n\tconst { htmlElementWidth: screenWidth, isMobile, isTablet, isDesktop, isLargeDesktop } = useScreensize();\n\n\tconst scrollableTableWithSliderProps = buildScrollableTableProps(\n\t\tfirstVisibleColumnIndex,\n\t\ttotalNumberOfColumns,\n\t\tpropsByScreenSize,\n\t\tscreenWidth,\n\t\t[isMobile, isTablet, isDesktop, isLargeDesktop]\n\t);\n\n\tconst { effectiveFirstVisibleColumnIndex, sliderProps } = scrollableTableWithSliderProps;\n\n\tuseEffect(() => {\n\t\tif (onFirstVisibleColumnChange && firstVisibleColumnIndex !== effectiveFirstVisibleColumnIndex) {\n\t\t\tonFirstVisibleColumnChange(effectiveFirstVisibleColumnIndex);\n\t\t}\n\t}, [firstVisibleColumnIndex, effectiveFirstVisibleColumnIndex, onFirstVisibleColumnChange]);\n\n\treturn (\n\t\t<ScrollableTableWithSliderContext.Provider\n\t\t\tvalue={{\n\t\t\t\tfirstVisibleColumnIndex: effectiveFirstVisibleColumnIndex,\n\t\t\t\ttotalNumberOfColumns,\n\t\t\t\t...scrollableTableWithSliderProps,\n\t\t\t\tsliderProps: {\n\t\t\t\t\t...sliderProps,\n\t\t\t\t\tscrollControlType,\n\t\t\t\t},\n\t\t\t\tonFirstVisibleColumnChange,\n\t\t\t\tscrollPublisher,\n\t\t\t\tisMobile,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</ScrollableTableWithSliderContext.Provider>\n\t);\n};\n\nScrollableTableWithSliderProvider.propTypes = {\n\tfirstVisibleColumnIndex: PropTypes.number.isRequired,\n\ttotalNumberOfColumns: PropTypes.number.isRequired,\n\tpropsByScreenSize: PropTypes.shape({\n\t\tnumbersOfVisibleColumnsByScreenSize: PropTypes.array.isRequired,\n\t\tcolumnWidthsByScreenSize: PropTypes.array.isRequired,\n\t\tcolumnGapsByScreenSize: PropTypes.array,\n\t\tboundaryMarginWidthsByScreenSize: PropTypes.array,\n\t\tsliderProps: PropTypes.shape({\n\t\t\tarrowWidthsByScreenSize: PropTypes.array.isRequired,\n\t\t}),\n\t}).isRequired,\n\tonFirstVisibleColumnChange: PropTypes.func,\n\tchildren: PropTypes.node,\n\tscrollControlType: PropTypes.oneOf([scrollControlTypes.scrollbar, scrollControlTypes.buttons]),\n};\n\nexport default ScrollableTableWithSliderProvider;\n","import { useCallback, useRef, useState } from 'react';\nimport useDocumentEventListener from '../../util/hooks/use-document-event-listener';\n\nfunction clamp(x, lo, hi) {\n\treturn x < lo ? lo : x > hi ? hi : x;\n}\n\n// based on https://codepen.io/kellyex/pen/KKwwdYg\nfunction useScrollbarHandler(handleRef, steps, firstVisibleColumnIndex, onFirstVisibleColumnIndexUpdate) {\n\tconst [isDown, setIsDown] = useState(false);\n\tconst isDownRef = useRef(isDown);\n\tisDownRef.current = isDown;\n\n\tconst [mouseX, setMouseX] = useState(null);\n\tconst mouseXRef = useRef(mouseX);\n\tmouseXRef.current = mouseX;\n\n\tconst [scrollbarPosition, setScrollbarPosition] = useState(null);\n\tconst scrollbarPositionRef = useRef(scrollbarPosition);\n\tscrollbarPositionRef.current = scrollbarPosition;\n\n\tconst handleStartDrag = useCallback(\n\t\tfunction start(event) {\n\t\t\tsetIsDown(true);\n\t\t\tsetMouseX(event.pageX);\n\t\t\tsetScrollbarPosition(firstVisibleColumnIndex);\n\t\t},\n\t\t[firstVisibleColumnIndex]\n\t);\n\n\tconst handleMove = useCallback(\n\t\tfunction move(event) {\n\t\t\tif (isDownRef.current && handleRef.current) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst handleWidth = handleRef.current.offsetWidth;\n\t\t\t\tconst newMouseX = event.pageX;\n\t\t\t\tconst diffX = newMouseX - mouseXRef.current;\n\t\t\t\tconst diffPos = diffX / handleWidth;\n\t\t\t\tsetMouseX(newMouseX);\n\t\t\t\tconst newSliderPos = scrollbarPositionRef.current + diffPos;\n\t\t\t\tconst newSelectedIndex = clamp(Math.round(newSliderPos), 0, steps - 1);\n\t\t\t\tsetScrollbarPosition(newSliderPos);\n\t\t\t\tonFirstVisibleColumnIndexUpdate(newSelectedIndex);\n\t\t\t}\n\t\t},\n\t\t[handleRef, onFirstVisibleColumnIndexUpdate, steps]\n\t);\n\n\tconst handleEndDrag = useCallback(function end() {\n\t\tif (isDownRef.current) {\n\t\t\tsetIsDown(false);\n\t\t}\n\t}, []);\n\n\tuseDocumentEventListener('mousemove', handleMove);\n\tuseDocumentEventListener('mouseup', handleEndDrag);\n\n\treturn [handleStartDrag, isDown ? clamp(scrollbarPosition, 0, steps - 1) : null];\n}\n\nexport default useScrollbarHandler;\n","import React, { useCallback, useContext } from 'react';\nimport useTouchHandler from '../use-touch-handler';\nimport { ScrollableTableWithSliderContext } from './scrollable-table-with-slider-provider';\n\n// Min distance (in pixels) to activate touch scroll\nconst minTouchScrollRadiusX = 75;\n\nconst clamp = (x, lo, hi) => (x < lo ? lo : x > hi ? hi : x);\n\nconst TouchScrollWrapper = ({ children }) => {\n\tconst {\n\t\ttotalNumberOfColumns,\n\t\tnumberOfVisibleColumns,\n\t\tfirstVisibleColumnIndex,\n\t\tonFirstVisibleColumnChange,\n\t\tisScrollActive,\n\t} = useContext(ScrollableTableWithSliderContext);\n\n\tconst maxNumberOfSteps = Math.max(totalNumberOfColumns - numberOfVisibleColumns + 1, 1);\n\n\tconst handleScroll = useCallback(\n\t\t(startX, currentX) => {\n\t\t\tconst deltaX = currentX - startX;\n\t\t\tconst deltaFirstVisibleColumnIndex = deltaX / minTouchScrollRadiusX;\n\t\t\tconst newFirstVisibleColumnIndex = firstVisibleColumnIndex + deltaFirstVisibleColumnIndex;\n\t\t\tonFirstVisibleColumnChange(clamp(Math.round(newFirstVisibleColumnIndex), 0, maxNumberOfSteps - 1));\n\t\t\treturn false;\n\t\t},\n\t\t[firstVisibleColumnIndex, maxNumberOfSteps, onFirstVisibleColumnChange]\n\t);\n\n\tconst handleScrollStart = useTouchHandler(handleScroll, !isScrollActive);\n\n\treturn (\n\t\t<div onTouchStart={handleScrollStart} style={{ display: 'contents' }}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nexport default TouchScrollWrapper;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport useScrollbarHandler from './use-scrollbar-handler';\nimport TouchScrollWrapper from './scrollable-table-with-slider/touch-scroll-wrapper';\n\nimport styles from './scrollbar.less';\n\nconst Scrollbar = ({\n\ttotalNumberOfColumns,\n\tnumberOfVisibleColumns,\n\tfirstVisibleColumnIndex,\n\tonFirstVisibleColumnIndexUpdate,\n}) => {\n\tconst maxNumberOfSteps = Math.max(totalNumberOfColumns - numberOfVisibleColumns + 1, 1);\n\n\tconst handleRef = useRef(null);\n\tconst [handleScrollStart, overriddenScrollBarPosition] = useScrollbarHandler(\n\t\thandleRef,\n\t\tmaxNumberOfSteps,\n\t\tfirstVisibleColumnIndex,\n\t\tonFirstVisibleColumnIndexUpdate\n\t);\n\n\treturn (\n\t\t<TouchScrollWrapper>\n\t\t\t<div className={styles.scrollbar}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.scrollbarDrag}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: `calc(100% / ${maxNumberOfSteps})`,\n\t\t\t\t\t\ttransform: `translate3d(calc(100% * ${overriddenScrollBarPosition ?? firstVisibleColumnIndex}), 0px, 0px)`,\n\t\t\t\t\t\ttransitionDuration: overriddenScrollBarPosition === null ? '300ms' : null,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div ref={handleRef} role=\"none\" onMouseDown={handleScrollStart} className={styles.scrollbarDragHandle}></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</TouchScrollWrapper>\n\t);\n};\n\nScrollbar.propTypes = {\n\ttotalNumberOfColumns: PropTypes.number.isRequired,\n\tnumberOfVisibleColumns: PropTypes.number.isRequired,\n\tfirstVisibleColumnIndex: PropTypes.number.isRequired,\n\tonFirstVisibleColumnIndexUpdate: PropTypes.func.isRequired,\n};\n\nexport default Scrollbar;\n","// extracted by mini-css-extract-plugin\nexport default {\"scrollbar\":\"scrollbar--scrollbar---RvPg\",\"scrollbarDrag\":\"scrollbar--scrollbarDrag--DRwfx\",\"scrollbarDragHandle\":\"scrollbar--scrollbarDragHandle--8XJWG\"};","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgDoubleRightArrowcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 16,\n  height: 15,\n  viewBox: \"0 0 16 15\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m1 .5 6 7-6 7M9 .5l6 7-6 7\",\n  stroke: \"var(--brand-deep-blue, #030B60)\"\n})));\nexport default SvgDoubleRightArrowcomponent;","var _g, _rect;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgFullOwnershipcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 18,\n  height: 18,\n  viewBox: \"0 0 12 12\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"circle(6 at 6 6)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n  width: 12,\n  height: 12,\n  rx: 6,\n  fill: \"var(--brand-blue)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n  cx: 6,\n  cy: 5,\n  r: 2,\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n  cx: 6,\n  cy: 12,\n  r: 4,\n  fill: \"#fff\"\n}))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n  x: 0.5,\n  y: 0.5,\n  width: 11,\n  height: 11,\n  rx: 5.5,\n  stroke: \"var(--brand-blue)\"\n})));\nexport default SvgFullOwnershipcomponent;","var _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgFullyIncludedcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: 18,\n  height: 18,\n  viewBox: \"0 0 18 18\"\n}, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n  cx: 9,\n  cy: 9,\n  r: 9,\n  fill: \"var(--brand-blue)\",\n  fillRule: \"evenodd\"\n})));\nexport default SvgFullyIncludedcomponent;","var _g, _rect;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPartialOwnershipcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 18,\n  height: 18,\n  viewBox: \"0 0 12 12\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"circle(6 at 4 3)\",\n  fill: \"var(--brand-blue)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n  cx: 6,\n  cy: 5,\n  r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n  cx: 6,\n  cy: 12,\n  r: 4\n}))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n  x: 0.5,\n  y: 0.5,\n  width: 11,\n  height: 11,\n  rx: 5.5,\n  stroke: \"var(--brand-blue)\"\n})));\nexport default SvgPartialOwnershipcomponent;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPartlyIncludedcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: 18,\n  height: 18,\n  viewBox: \"0 0 18 18\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"var(--brand-blue)\",\n  fillRule: \"evenodd\",\n  d: \"M18 9A9 9 0 1 1 0 9a9 9 0 0 1 18 0zm-9 6.429A6.429 6.429 0 0 0 9 2.57v12.86z\"\n})));\nexport default SvgPartlyIncludedcomponent;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgHideArrowcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: 12,\n  height: 12,\n  viewBox: \"0 0 12 12\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6 8 2.757 4.577l.707-.707L6 6.586 8.536 3.87l.707.707z\",\n  fill: \"var(--brand-blue)\"\n})));\nexport default SvgHideArrowcomponent;","import { useCallback } from 'react';\n\nconst useTouchHandler = (onTouchMove, isDisabled) => {\n\tconst handleTouchStart = useCallback(\n\t\tevent => {\n\t\t\tif (isDisabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst touch = event.changedTouches[0];\n\t\t\tif (!touch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst startX = touch.screenX;\n\t\t\tconst startY = touch.screenY;\n\t\t\tconst touchId = touch.identifier;\n\n\t\t\tlet isListenersRemoved = false;\n\n\t\t\tfunction handleTouchMove(event) {\n\t\t\t\tconst changedTouches = Array.from(event.changedTouches);\n\t\t\t\tconst currentTouch = changedTouches.find(t => t.identifier === touchId);\n\t\t\t\tif (!currentTouch) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst currentX = currentTouch.screenX;\n\t\t\t\tconst currentY = currentTouch.screenY;\n\n\t\t\t\tif (onTouchMove(startX, currentX, startY, currentY)) {\n\t\t\t\t\tremoveListeners();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction handleTouchEnd(event) {\n\t\t\t\tconst changedTouches = Array.from(event.changedTouches);\n\t\t\t\tif (changedTouches.find(t => t.identifier === touchId)) {\n\t\t\t\t\tremoveListeners();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction removeListeners() {\n\t\t\t\tif (!isListenersRemoved) {\n\t\t\t\t\tdocument.removeEventListener('touchmove', handleTouchMove);\n\t\t\t\t\tdocument.removeEventListener('touchend', handleTouchEnd);\n\t\t\t\t}\n\t\t\t\tisListenersRemoved = true;\n\t\t\t}\n\n\t\t\tdocument.addEventListener('touchmove', handleTouchMove);\n\t\t\tdocument.addEventListener('touchend', handleTouchEnd);\n\t\t},\n\t\t[isDisabled, onTouchMove]\n\t);\n\n\treturn handleTouchStart;\n};\n\nexport default useTouchHandler;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"index--container--A6Gru\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { LoadingSpinner } from '@faithlife/styled-ui';\n\nimport styles from './index.less';\n\nconst FullscreenOverlayLoadingSpinner = ({ className, zIndex = null }) => {\n\treturn (\n\t\t<div className={classNames(styles.container, className)} style={zIndex !== null ? { zIndex } : undefined}>\n\t\t\t<LoadingSpinner large />\n\t\t</div>\n\t);\n};\nFullscreenOverlayLoadingSpinner.propTypes = {\n\tcontainerClassName: PropTypes.string,\n\tzIndex: PropTypes.number,\n};\n\nexport default FullscreenOverlayLoadingSpinner;\n","import { useEffect } from 'react';\n\nexport default (type, listener) => {\n\tuseEffect(() => {\n\t\tdocument.addEventListener(type, listener);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(type, listener);\n\t\t};\n\t}, [type, listener]);\n};\n"],"names":["module","exports","CompareClient","getTrack","compareTrackBaseUrl","trackId","request","url","concat","encodeURIComponent","response","fetch","get","json","getTrackProducts","compareTrackProductsBaseUrl","trackIds","clientVersion","params","join","getCompareSectionData","compareTrackSectionsBaseUrl","productIds","data","sections","orderedResourceCounts","getCompareSectionDataForSubscribableProducts","compareSubscribableProductSectionsBaseUrl","spoids","getBasePackagesByTrackId","compareBasePackagesByTrackIdUrl","getBasePackagesByProductIds","compareBasePackagesByProductIdsUrl","scrollbar","buttons","getElementValueFromPredefinedScreenSizes","screenSizeValues","screenSizeMatches","matchingSizeIndex","lastIndexOf","Math","min","length","getElementValueForScreenSize","screenSize","additionalSizesValues","Object","entries","valueFromAdditionalSizes","getValueFromAdditionalSizes","valuesBySize","reduce","matchingValue","_ref","_ref2","_slicedToArray","size","value","parseInt","undefined","slice","buildSliderProps","sliderProps","totalNumberOfColumns","firstVisibleColumnIndex","columnWidth","columnGap","leftBoundaryMarginWidth","numberOfVisibleColumns","isLeftBoundaryReached","isRightBoundaryReached","screenWidth","arrowWidthsByScreenSize","arrowWidth","isLeftArrowDisplayed","isRightArrowDisplayed","ScrollableTableWithSliderContext","createContext","ScrollableTableWithSliderProvider","propsByScreenSize","scrollPublisher","onFirstVisibleColumnChange","children","_ref$scrollControlTyp","scrollControlType","scrollControlTypes","_useScreensize","useScreensize","htmlElementWidth","isMobile","isTablet","isDesktop","isLargeDesktop","scrollableTableWithSliderProps","buildScrollableTableProps","firstVisibleColumnIndexRequested","numbersOfVisibleColumnsByScreenSize","columnWidthsByScreenSize","columnGapsByScreenSize","boundaryMarginWidthsByScreenSize","swipeRadiusXByScreenSize","boundaryMarginWidth","swipeRadiusX","numberOfVisibleColumnsRequested","effectiveFirstVisibleColumnIndex","visibleColumnsWidth","isLeftBoundaryDisplayed","isRightBoundaryDisplayed","rightBoundaryMarginWidth","leftOffset","getColumnOffset","columnIndex","swipeRadius","isScrollActive","useEffect","React","Provider","_objectSpread","propTypes","PropTypes","isRequired","scrollable_table_with_slider_provider","clamp","x","lo","hi","touch_scroll_wrapper","_useContext","useContext","maxNumberOfSteps","max","handleScroll","useCallback","startX","currentX","newFirstVisibleColumnIndex","round","handleScrollStart","useTouchHandler","onTouchStart","style","display","Scrollbar","onFirstVisibleColumnIndexUpdate","handleRef","useRef","_useScrollbarHandler","steps","_useState","useState","_useState2","isDown","setIsDown","isDownRef","current","_useState3","_useState4","mouseX","setMouseX","mouseXRef","_useState5","_useState6","scrollbarPosition","setScrollbarPosition","scrollbarPositionRef","handleStartDrag","event","pageX","handleMove","preventDefault","handleWidth","offsetWidth","newMouseX","diffPos","newSliderPos","newSelectedIndex","handleEndDrag","useDocumentEventListener","useScrollbarHandler","_useScrollbarHandler2","overriddenScrollBarPosition","TouchScrollWrapper","className","width","transform","transitionDuration","ref","role","onMouseDown","compare_page_scrollbar","_path","_extends","assign","bind","n","e","arguments","t","r","hasOwnProperty","call","apply","double_right_arrow_component","props","react","createElement","height","viewBox","fill","xmlns","d","stroke","_g","_rect","full_ownership_component_extends","full_ownership_component","clipPath","rx","cx","cy","y","_circle","fully_included_component_extends","fully_included_component","fillRule","partial_ownership_component_g","partial_ownership_component_rect","partial_ownership_component_extends","partial_ownership_component","partly_included_component_path","partly_included_component_extends","partly_included_component","hide_arrow_component_path","hide_arrow_component_extends","hide_arrow_component","onTouchMove","isDisabled","touch","changedTouches","screenX","startY","screenY","touchId","identifier","isListenersRemoved","handleTouchMove","currentTouch","Array","from","find","currentY","removeListeners","handleTouchEnd","document","removeEventListener","addEventListener","FullscreenOverlayLoadingSpinner","_ref$zIndex","zIndex","classNames","LoadingSpinner","large","containerClassName","shared_fullscreen_overlay_loading_spinner","__WEBPACK_DEFAULT_EXPORT__","type","listener","__webpack_require__","dn"],"sourceRoot":""}