{"version":3,"file":"9189.56d2b5c503b0878ca631.js?ssi=0","mappings":"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","sources":["webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/shared.less?84f2","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/comparison-table-controls/index.less?77bb","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/comparison-table-controls/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/comparison-table-legend/index.less?650a","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/comparison-table-legend/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/hooks/comparison-table-controls-handler.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/resource-preview-tooltip.less?5ac8","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/resource-preview-tooltip.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/comparison-row.less?97c3","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/comparison-row.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/comparison-section.less?54b2","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/comparison-section.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/new-comparison-table-with-slider/comparison-sections-table/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/row-wrapper.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/column-wrapper.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/scrollable-wrapper.less?0e35","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/scrollable-wrapper.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/slider-arrow-options.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/svgs/singleArrow.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/svgs/singleArrowLarge.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/svgs/singleArrowLargeAlt.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/slider-wrapper.less?9ece","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/slider-wrapper.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/use-wheel-scroll-handler.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/scrollable-table-with-slider/swipeable-wrapper.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/compare-page/use-swipe-handler.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/progress-indicator-v2/index.less?5b43","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/progress-indicator-v2/progress-indicator-item.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/progress-indicator-v2/use-progress-indicator-handler.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/progress-indicator-v2/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/util/container-fragment.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/summary-trough/cart-item.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/summary-trough/cart-item.less?97d0","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/summary-trough/index.less?de25","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/summary-trough/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/blueCheckmark.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/checkmark.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/chevron.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/downChevron24px.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/emptyCircle.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/expandableClosedIcon.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/expandableOpenedIcon.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/filledCircle.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/fully-included.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/leftArrow.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/rightArrow.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/subscription-star.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/x.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/subscription.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/svgs/library.component.svg","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/wizard-hero/index.less?4f14","webpack://@logos/commerceweb-frontend/./Scripts/site/components/configuration-wizard/wizard-hero/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/product/foreign-price-tooltip/index.less?42a4","webpack://@logos/commerceweb-frontend/./Scripts/site/components/product/foreign-price-tooltip/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shared/configuration-wizard-cart/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/util/dom-utility.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shared/dangerous-html-content/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/util/merge-refs.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/sticky-header/index.less?9d07","webpack://@logos/commerceweb-frontend/./Scripts/site/components/sticky-header/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/util/hooks/use-didomi-notice-height.js","webpack://@logos/commerceweb-frontend/./Scripts/site/util/hooks/use-prevent-body-scrolling.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"h2\":\"shared--h2--x64wZ h2\",\"h4\":\"shared--h4--lWBdm h2\",\"h5\":\"shared--h5--O73NR h3\",\"ui1\":\"shared--ui1--oynNU\",\"ui2\":\"shared--ui2--XtaYf\",\"ui3\":\"shared--ui3--rPvEt\",\"ui5\":\"shared--ui5--UDKf8\",\"b2\":\"shared--b2--+w8ym\",\"b3\":\"shared--b3--83PpR\",\"loadingSpinner\":\"shared--loadingSpinner--tmaLI\"};","// extracted by mini-css-extract-plugin\nexport default {\"controlsContainer\":\"index--controlsContainer--EedrP\",\"hideBooksIOwnContainer\":\"index--hideBooksIOwnContainer--XdYzH\",\"expansionControlsContainer\":\"index--expansionControlsContainer--Tfjac\",\"separator\":\"index--separator--4Y5CM\",\"expansionControl\":\"index--expansionControl--vlSJo\"};","import React from 'react';\nimport { Checkbox } from '@faithlife/styled-ui';\nimport { useLocalization } from '../../../localization';\nimport styles from './index.less';\n\nconst ComparisonTableControls = ({\n\tuserIsBasePackageOwner,\n\thandleHideBooksIOwnChange,\n\thideBooksIOwn,\n\thandleExpandAll,\n\thandleCollapseAll,\n}) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Product.Compare');\n\treturn (\n\t\t<div className={styles.controlsContainer}>\n\t\t\t{userIsBasePackageOwner && (\n\t\t\t\t<>\n\t\t\t\t\t<div className={styles.hideBooksIOwnContainer}>\n\t\t\t\t\t\t<Checkbox onClick={handleHideBooksIOwnChange} isChecked={hideBooksIOwn} title={resources.HideBooksIOwn} />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className={styles.separator} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t<div className={styles.expansionControlsContainer}>\n\t\t\t\t<button onClick={handleExpandAll} className={styles.expansionControl}>\n\t\t\t\t\t{resources.ExpandAll}\n\t\t\t\t</button>\n\t\t\t\t<div className={styles.separator} />\n\t\t\t\t<button onClick={handleCollapseAll} className={styles.expansionControl}>\n\t\t\t\t\t{resources.CollapseAll}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ComparisonTableControls;\n","// extracted by mini-css-extract-plugin\nexport default {\"legendContainer\":\"index--legendContainer--CL-xN\",\"defaultLegendContainer\":\"index--defaultLegendContainer--Bkwfb index--legendContainer--CL-xN\",\"wideLegendContainer\":\"index--wideLegendContainer--Pqz25 index--legendContainer--CL-xN\",\"responsiveLegendContainer\":\"index--responsiveLegendContainer--Tuplf index--legendContainer--CL-xN\",\"legendItemsContainer\":\"index--legendItemsContainer--rNQs3\",\"defaultLegendItemsContainer\":\"index--defaultLegendItemsContainer--vM7KP index--legendItemsContainer--rNQs3\",\"wideLegendItemsContainer\":\"index--wideLegendItemsContainer--lSsM3 index--legendItemsContainer--rNQs3\",\"responsiveLegendItemsContainer\":\"index--responsiveLegendItemsContainer--e1+0f index--legendItemsContainer--rNQs3\",\"legendItem\":\"index--legendItem--0ZBEW\",\"name\":\"index--name--s0VaP\",\"iconContainer\":\"index--iconContainer--Q27om\"};","import React from 'react';\nimport {\n\tFullOwnershipComponent,\n\tFullyIncludedComponent,\n\tPartialOwnershipComponent,\n\tPartlyIncludedComponent,\n} from '../svgs';\nimport { useLocalization } from '../../../localization';\nimport styles from './index.less';\n\nconst ComparisonTableLegend = ({ mode = 'default' }) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Product.Compare');\n\tlet selectedStyles = {\n\t\tlegendContainer: styles.defaultLegendContainer,\n\t\tlegendItemsContainer: styles.defaultLegendItemsContainer,\n\t};\n\n\tif (mode === 'wide') {\n\t\tselectedStyles = {\n\t\t\tlegendContainer: styles.wideLegendContainer,\n\t\t\tlegendItemsContainer: styles.wideLegendItemsContainer,\n\t\t};\n\t} else if (mode === 'responsive') {\n\t\tselectedStyles = {\n\t\t\tlegendContainer: styles.responsiveLegendContainer,\n\t\t\tlegendItemsContainer: styles.responsiveLegendItemsContainer,\n\t\t};\n\t}\n\n\treturn (\n\t\t<div className={selectedStyles.legendContainer}>\n\t\t\t<div className={selectedStyles.legendItemsContainer}>\n\t\t\t\t<LegendItem name={resources.Owned}>\n\t\t\t\t\t<FullOwnershipComponent alt={resources.OwnedIcon} />\n\t\t\t\t</LegendItem>\n\t\t\t\t<LegendItem name={resources.PartiallyOwned}>\n\t\t\t\t\t<PartialOwnershipComponent alt={resources.PartiallyOwnedIcon} />\n\t\t\t\t</LegendItem>\n\t\t\t</div>\n\t\t\t<div className={selectedStyles.legendItemsContainer}>\n\t\t\t\t<LegendItem name={resources.PartlyIncluded}>\n\t\t\t\t\t<PartlyIncludedComponent alt={resources.PartlyIncludedIcon} />\n\t\t\t\t</LegendItem>\n\t\t\t\t<LegendItem name={resources.FullyIncluded}>\n\t\t\t\t\t<FullyIncludedComponent alt={resources.FullyIncludedIcon} />\n\t\t\t\t</LegendItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nconst LegendItem = ({ name, children }) => (\n\t<div className={styles.legendItem}>\n\t\t<div className={styles.name}>{name}</div>\n\t\t<div className={styles.iconContainer}>{children}</div>\n\t</div>\n);\n\nexport default ComparisonTableLegend;\n","import { useState, useCallback } from 'react';\n\nconst useComparisonTableControlsHandler = () => {\n\tconst [hideBooksIOwn, setHideBooksIOwn] = useState(false);\n\n\tconst handleHideBooksIOwnChange = useCallback(\n\t\t() => setHideBooksIOwn(!hideBooksIOwn),\n\t\t[setHideBooksIOwn, hideBooksIOwn]\n\t);\n\n\tconst [tableCollapseState, setTableCollapseState] = useState('toggle');\n\n\tconst handleExpandAll = useCallback(() => {\n\t\tsetTableCollapseState('expand');\n\t}, []);\n\n\tconst handleCollapseAll = useCallback(() => {\n\t\tsetTableCollapseState('collapse');\n\t}, []);\n\n\tconst handleToggle = useCallback(() => {\n\t\tsetTableCollapseState('toggle');\n\t}, []);\n\n\tconst isOpenAccordingToCollapseState = useCallback(\n\t\tisOpen => {\n\t\t\tswitch (tableCollapseState) {\n\t\t\t\tcase 'expand':\n\t\t\t\t\treturn true;\n\t\t\t\tcase 'collapse':\n\t\t\t\t\treturn false;\n\t\t\t\tcase 'toggle':\n\t\t\t\tdefault:\n\t\t\t\t\treturn isOpen;\n\t\t\t}\n\t\t},\n\t\t[tableCollapseState]\n\t);\n\n\treturn {\n\t\thideBooksIOwn,\n\t\thandleHideBooksIOwnChange,\n\t\thandleExpandAll,\n\t\thandleCollapseAll,\n\t\thandleToggle,\n\t\tisOpenAccordingToCollapseState,\n\t};\n};\n\nexport default useComparisonTableControlsHandler;\n","// extracted by mini-css-extract-plugin\nexport default {\"trigger\":\"resource-preview-tooltip--trigger--mVhJq\",\"content\":\"resource-preview-tooltip--content---X55Z\",\"resourceTooltipFadeIn\":\"resource-preview-tooltip--resourceTooltipFadeIn--4WY6A\",\"resourceTooltipFadeOut\":\"resource-preview-tooltip--resourceTooltipFadeOut--gRxUI\",\"arrow\":\"resource-preview-tooltip--arrow--7j2pE\",\"resourceTooltip\":\"resource-preview-tooltip--resourceTooltip--z3yWS\",\"loadingSpinner\":\"resource-preview-tooltip--loadingSpinner--3fezt\",\"previewNotAvailable\":\"resource-preview-tooltip--previewNotAvailable--RZair h3\"};","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport * as Tooltip from '@radix-ui/react-tooltip';\nimport { LoadingSpinner } from '@faithlife/styled-ui';\nimport DangerousHtmlContent from '../shared/dangerous-html-content';\nimport { useLocalization } from '../../localization';\n\nimport styles from './resource-preview-tooltip.less';\n\nconst showDelay = 250;\n\nfunction useLazyTooltipContent(tooltipUrl, shouldLoad) {\n\tconst [html, setHtml] = useState(null);\n\tconst hasRequested = useRef(false);\n\n\tuseEffect(() => {\n\t\tif (!shouldLoad || !tooltipUrl || hasRequested.current) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\thasRequested.current = true;\n\t\tlet isCancelled = false;\n\t\tlet requestSettled = false;\n\n\t\tfetch(tooltipUrl, { credentials: 'same-origin' })\n\t\t\t.then(response => (response.ok ? response.text() : null))\n\t\t\t.then(text => {\n\t\t\t\tif (!isCancelled && text) {\n\t\t\t\t\tsetHtml(text);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {})\n\t\t\t.then(() => {\n\t\t\t\trequestSettled = true;\n\t\t\t});\n\n\t\treturn () => {\n\t\t\tisCancelled = true;\n\t\t\tif (!requestSettled) {\n\t\t\t\thasRequested.current = false;\n\t\t\t}\n\t\t};\n\t}, [tooltipUrl, shouldLoad]);\n\n\treturn html;\n}\n\nconst TooltipBody = ({ tooltipUrl, html }) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Product.Compare');\n\n\tif (!tooltipUrl) {\n\t\treturn (\n\t\t\t<div className={styles.resourceTooltip}>\n\t\t\t\t<div className={styles.previewNotAvailable}>{resources.PreviewNotAvailable}</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn html ? (\n\t\t<DangerousHtmlContent className={styles.resourceTooltip} html={html} />\n\t) : (\n\t\t<div className={styles.resourceTooltip}>\n\t\t\t<div className={styles.loadingSpinner}>\n\t\t\t\t<LoadingSpinner medium />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nTooltipBody.propTypes = {\n\ttooltipUrl: PropTypes.string,\n\thtml: PropTypes.string,\n};\n\nconst ResourcePreviewTooltip = ({ name, tooltipUrl }) => {\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst html = useLazyTooltipContent(tooltipUrl, isOpen);\n\tconst wasOpenOnPointerDownRef = useRef(false);\n\n\t// Radix ignores touch pointer events, so taps are handled here. The trigger's own handlers run\n\t// before Radix's, which closes the tooltip on both pointer down and click; preventing the default\n\t// on click makes Radix skip its close handler so the tap can open the tooltip.\n\tconst handlePointerDown = useCallback(() => {\n\t\twasOpenOnPointerDownRef.current = isOpen;\n\t}, [isOpen]);\n\n\tconst handleClick = useCallback(event => {\n\t\tevent.preventDefault();\n\t\tsetIsOpen(!wasOpenOnPointerDownRef.current);\n\t}, []);\n\n\treturn (\n\t\t<Tooltip.Provider delayDuration={showDelay}>\n\t\t\t<Tooltip.Root open={isOpen} onOpenChange={setIsOpen}>\n\t\t\t\t<Tooltip.Trigger asChild>\n\t\t\t\t\t<button type=\"button\" className={styles.trigger} onPointerDown={handlePointerDown} onClick={handleClick}>\n\t\t\t\t\t\t{name}\n\t\t\t\t\t</button>\n\t\t\t\t</Tooltip.Trigger>\n\t\t\t\t<Tooltip.Portal>\n\t\t\t\t\t<Tooltip.Content className={styles.content} side=\"bottom\" sideOffset={8} collisionPadding={12}>\n\t\t\t\t\t\t<TooltipBody tooltipUrl={tooltipUrl} html={html} />\n\t\t\t\t\t\t<Tooltip.Arrow className={styles.arrow} width={16} height={8} />\n\t\t\t\t\t</Tooltip.Content>\n\t\t\t\t</Tooltip.Portal>\n\t\t\t</Tooltip.Root>\n\t\t</Tooltip.Provider>\n\t);\n};\n\nResourcePreviewTooltip.propTypes = {\n\tname: PropTypes.string,\n\ttooltipUrl: PropTypes.string,\n};\n\nexport default ResourcePreviewTooltip;\n","// extracted by mini-css-extract-plugin\nexport default {\"comparisonRow\":\"comparison-row--comparisonRow--m9zRq\",\"nameContainer\":\"comparison-row--nameContainer--GFq+j\",\"withToggle\":\"comparison-row--withToggle--bv9W3\",\"name\":\"comparison-row--name--sLpQK\",\"withSubResources\":\"comparison-row--withSubResources---Ok-V\",\"nameToggle\":\"comparison-row--nameToggle--huYhc\",\"ownershipIconContainer\":\"comparison-row--ownershipIconContainer--Yyug5\",\"ownershipIcon\":\"comparison-row--ownershipIcon--g2BVf\",\"inclusionIconsContainer\":\"comparison-row--inclusionIconsContainer--3v004\",\"inclusionIcons\":\"comparison-row--inclusionIcons--4qZb-\",\"dynamicSizeInclusionIcons\":\"comparison-row--dynamicSizeInclusionIcons--D7PUo comparison-row--inclusionIcons--4qZb-\",\"staticSizeInclusionIcons\":\"comparison-row--staticSizeInclusionIcons--sHho3 comparison-row--inclusionIcons--4qZb-\",\"inclusionIconsWrapper\":\"comparison-row--inclusionIconsWrapper--h8Wz4\",\"inclusionIcon\":\"comparison-row--inclusionIcon--RAyMc\",\"dynamicSizeInclusionIcon\":\"comparison-row--dynamicSizeInclusionIcon--VvVCM comparison-row--inclusionIcon--RAyMc\",\"staticSizeInclusionIcon\":\"comparison-row--staticSizeInclusionIcon--GMFdG comparison-row--inclusionIcon--RAyMc\",\"subResource\":\"comparison-row--subResource--dMHo5\",\"hideVolumes\":\"comparison-row--hideVolumes--Xj0qE\",\"hideVolumesArrow\":\"comparison-row--hideVolumesArrow--K4tmh\"};","import React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { ExpandableClosedIcon, ExpandableOpenedIcon } from '../configuration-wizard/svgs';\nimport { useLocalization } from '../../localization';\nimport ResourcePreviewTooltip from './resource-preview-tooltip';\nimport {\n\tFullOwnershipComponent,\n\tFullyIncludedComponent,\n\tPartialOwnershipComponent,\n\tPartlyIncludedComponent,\n\tHideArrowComponent,\n} from './svgs';\nimport RowWrapper from './scrollable-table-with-slider/row-wrapper';\n\nimport styles from './comparison-row.less';\n\nconst ComparisonRow = ({\n\tname,\n\tisOwned,\n\tisPartiallyOwned,\n\townedResourceCount,\n\ttotalAvailableResourceCount,\n\tsubResources,\n\torderedIncludedInProducts,\n\ttooltipUrl,\n\tclassName,\n\tonToggle,\n\tsize,\n}) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Product.Compare');\n\tconst [isOpen, setIsOpen] = useState(false);\n\n\tconst handleArrowClick = useCallback(() => {\n\t\tonToggle?.(!isOpen);\n\t\tsetIsOpen(!isOpen);\n\t}, [isOpen, onToggle]);\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t<div className={styles.comparisonRow}>\n\t\t\t\t<ComparisonRowName\n\t\t\t\t\tname={name}\n\t\t\t\t\thasSubresources={!!subResources?.length}\n\t\t\t\t\tisOpen={isOpen}\n\t\t\t\t\tisPartiallyOwned={isPartiallyOwned}\n\t\t\t\t\tisOwned={isOwned}\n\t\t\t\t\townedResourceCount={ownedResourceCount}\n\t\t\t\t\ttotalAvailableResourceCount={totalAvailableResourceCount}\n\t\t\t\t\ttooltipUrl={tooltipUrl}\n\t\t\t\t\tonArrowClick={handleArrowClick}\n\t\t\t\t/>\n\t\t\t\t<div className={styles[`${size}SizeInclusionIcons`]}>\n\t\t\t\t\t<InclusionIcons\n\t\t\t\t\t\torderedIncludedInProducts={orderedIncludedInProducts}\n\t\t\t\t\t\tsingleInclusionIconClass={styles[`${size}SizeInclusionIcon`]}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{!!subResources?.length && isOpen && (\n\t\t\t\t<div>\n\t\t\t\t\t{subResources.map((sr, index) => (\n\t\t\t\t\t\t<ComparisonRow\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tname={sr.name}\n\t\t\t\t\t\t\tisOwned={sr.isOwned}\n\t\t\t\t\t\t\tisPartiallyOwned={sr.isPartiallyOwned}\n\t\t\t\t\t\t\townedResourceCount={sr.ownedResourceCount}\n\t\t\t\t\t\t\ttotalAvailableResourceCount={sr.totalAvailableResourceCount}\n\t\t\t\t\t\t\torderedIncludedInProducts={sr.orderedIncludedInProducts}\n\t\t\t\t\t\t\ttooltipUrl={sr.tooltipUrl}\n\t\t\t\t\t\t\tclassName={styles.subResource}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t\t<button onClick={handleArrowClick} className={styles.hideVolumes}>\n\t\t\t\t\t\t<HideArrowComponent className={styles.hideVolumesArrow} />\n\t\t\t\t\t\t{resources.HideVolumes}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nComparisonRow.propTypes = {\n\tname: PropTypes.string,\n\tisOwned: PropTypes.bool,\n\tisPartiallyOwned: PropTypes.bool,\n\townedResourceCount: PropTypes.number,\n\ttotalAvailableResourceCount: PropTypes.number,\n\tsubResources: PropTypes.arrayOf(PropTypes.object),\n\torderedIncludedInProducts: PropTypes.arrayOf(\n\t\tPropTypes.shape({\n\t\t\tproductId: PropTypes.string,\n\t\t\tisIncluded: PropTypes.bool,\n\t\t\tisPartiallyIncluded: PropTypes.bool,\n\t\t})\n\t),\n\ttooltipUrl: PropTypes.string,\n\tsize: PropTypes.oneOf(['static', 'dynamic']).isRequired,\n};\n\nconst ComparisonRowName = ({\n\tname,\n\thasSubresources,\n\tisOpen,\n\tisPartiallyOwned,\n\tisOwned,\n\townedResourceCount,\n\ttotalAvailableResourceCount,\n\ttooltipUrl,\n\tonArrowClick,\n}) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Product.Compare');\n\tlet OwnershipIconComponent;\n\tlet ownershipIconTooltipText;\n\tif (isOwned) {\n\t\tOwnershipIconComponent = FullOwnershipComponent;\n\t\townershipIconTooltipText = resources.YouOwnThisProduct;\n\t} else if (isPartiallyOwned) {\n\t\tOwnershipIconComponent = PartialOwnershipComponent;\n\t\townershipIconTooltipText = `${resources.YouOwnPartOfThisCollectionAndAreReceivingADiscount} ${ownedResourceCount} ${resources.Of} ${totalAvailableResourceCount} ${resources.ResourcesAndDatasets}`;\n\t} else {\n\t\tOwnershipIconComponent = null;\n\t\townershipIconTooltipText = null;\n\t}\n\n\treturn (\n\t\t<div className={classNames(styles.nameContainer, hasSubresources && styles.withToggle)}>\n\t\t\t<div className={classNames(styles.name, hasSubresources && styles.withSubResources)}>\n\t\t\t\t{hasSubresources ? (\n\t\t\t\t\t<button className={styles.nameToggle} onClick={onArrowClick}>\n\t\t\t\t\t\t{isOpen ? <ExpandableOpenedIcon /> : <ExpandableClosedIcon />}\n\t\t\t\t\t\t<span>{name}</span>\n\t\t\t\t\t</button>\n\t\t\t\t) : (\n\t\t\t\t\t<ResourcePreviewTooltip name={name} tooltipUrl={tooltipUrl} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{OwnershipIconComponent && (\n\t\t\t\t<div className={styles.ownershipIconContainer}>\n\t\t\t\t\t<OwnershipIconComponent\n\t\t\t\t\t\talt={resources.Ownership}\n\t\t\t\t\t\tclassName={styles.ownershipIcon}\n\t\t\t\t\t\ttitle={ownershipIconTooltipText}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nconst InclusionIcon = ({ Icon, alt, className }) => (\n\t<div key={`inclusion-icon-${alt}`} className={className}>\n\t\t{Icon && <Icon alt={alt} title={alt} />}\n\t</div>\n);\n\nconst InclusionIcons = ({ orderedIncludedInProducts, singleInclusionIconClass }) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Product.Compare');\n\tconst inclusionIconComponents = orderedIncludedInProducts.map(iip => {\n\t\tlet IconComponent;\n\t\tlet alt;\n\t\tif (iip.isIncluded) {\n\t\t\tIconComponent = FullyIncludedComponent;\n\t\t\talt = resources.AllResourcesFromThisCollectionAreIncluded;\n\t\t} else if (iip.isPartiallyIncluded) {\n\t\t\tIconComponent = PartlyIncludedComponent;\n\t\t\talt = resources.OnlySomeResourcesFromThisCollectionAreIncluded;\n\t\t} else {\n\t\t\tIconComponent = null;\n\t\t\talt = null;\n\t\t}\n\n\t\treturn {\n\t\t\tid: iip.productId,\n\t\t\tcomponent: <InclusionIcon Icon={IconComponent} alt={alt} className={singleInclusionIconClass} />,\n\t\t};\n\t});\n\n\treturn (\n\t\t<div className={styles.inclusionIconsContainer}>\n\t\t\t<RowWrapper items={inclusionIconComponents} className={styles.inclusionIconsWrapper} />\n\t\t</div>\n\t);\n};\n\nexport default ComparisonRow;\n","// extracted by mini-css-extract-plugin\nexport default {\"comparisonSectionHeader\":\"comparison-section--comparisonSectionHeader--6oj6V\",\"comparisonSectionNameContainer\":\"comparison-section--comparisonSectionNameContainer--OAEEe h3\",\"comparisonSectionName\":\"comparison-section--comparisonSectionName--Yp1ov\",\"resourceCountsContainer\":\"comparison-section--resourceCountsContainer--QiDFu\",\"dynamicSizeOrderedResourceCounts\":\"comparison-section--dynamicSizeOrderedResourceCounts--0QQ69\",\"staticSizeOrderedResourceCounts\":\"comparison-section--staticSizeOrderedResourceCounts--ikQEB\",\"resourceCountsWrapper\":\"comparison-section--resourceCountsWrapper--b8CJA\",\"resourceCount\":\"comparison-section--resourceCount--PUo1q\",\"dynamicSizeResourceCount\":\"comparison-section--dynamicSizeResourceCount--s1ZSC comparison-section--resourceCount--PUo1q\",\"staticSizeResourceCount\":\"comparison-section--staticSizeResourceCount--ReVi3 comparison-section--resourceCount--PUo1q\",\"hideSection\":\"comparison-section--hideSection--gOi0j\",\"hideSectionArrow\":\"comparison-section--hideSectionArrow--3pQtO\"};","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { ExpandableClosedIcon, ExpandableOpenedIcon } from '../configuration-wizard/svgs';\nimport { useLocalization } from '../../localization';\nimport ComparisonRow from './comparison-row';\nimport RowWrapper from './scrollable-table-with-slider/row-wrapper';\nimport { HideArrowComponent } from './svgs';\n\nimport styles from './comparison-section.less';\n\nconst ComparisonSection = ({\n\thideBooksIOwn,\n\tcategory,\n\tcomparisonRows,\n\torderedResourceCounts,\n\tonToggle,\n\tisOpenAccordingToCollapseState,\n\tsize,\n\tstartsOpen = false,\n}) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Product.Compare');\n\tconst [isOpen, setIsOpen] = useState(startsOpen);\n\n\tuseEffect(() => {\n\t\tsetIsOpen(o => isOpenAccordingToCollapseState(o));\n\t}, [isOpenAccordingToCollapseState]);\n\n\tconst handleClick = useCallback(() => {\n\t\tonToggle?.(!isOpen);\n\t\tsetIsOpen(!isOpen);\n\t}, [onToggle, isOpen]);\n\n\tconst comparisonRowComponents =\n\t\tisOpen &&\n\t\tcomparisonRows.map((row, index) => {\n\t\t\treturn <ComparisonRow key={index} {...row} onToggle={onToggle} size={size} />;\n\t\t});\n\n\treturn (\n\t\t<>\n\t\t\t<button className={styles.comparisonSectionHeader} onClick={handleClick}>\n\t\t\t\t<ComparisonSectionName isOpen={isOpen} name={category.name} />\n\t\t\t\t<div className={styles[`${size}SizeOrderedResourceCounts`]}>\n\t\t\t\t\t<OrderedResourceCounts\n\t\t\t\t\t\torderedIds={category.orderedIds}\n\t\t\t\t\t\torderedResourceCounts={orderedResourceCounts}\n\t\t\t\t\t\thideBooksIOwn={hideBooksIOwn}\n\t\t\t\t\t\tsingleResourceCountClass={styles[`${size}SizeResourceCount`]}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</button>\n\t\t\t{isOpen && (\n\t\t\t\t<>\n\t\t\t\t\t{comparisonRowComponents}\n\t\t\t\t\t<button onClick={handleClick} className={styles.hideSection}>\n\t\t\t\t\t\t<HideArrowComponent className={styles.hideSectionArrow} />\n\t\t\t\t\t\t{resources.HideSection}\n\t\t\t\t\t</button>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nComparisonSection.propTypes = {\n\thideBooksIOwn: PropTypes.bool.isRequired,\n\tcategory: PropTypes.shape({\n\t\tname: PropTypes.string,\n\t\ttoken: PropTypes.string,\n\t\torderedIds: PropTypes.arrayOf(PropTypes.string),\n\t}),\n\tcomparisonRows: PropTypes.arrayOf(\n\t\tPropTypes.shape({\n\t\t\tname: PropTypes.string,\n\t\t\tisOwned: PropTypes.bool,\n\t\t\tisPartiallyOwned: PropTypes.bool,\n\t\t\townedResourceCount: PropTypes.number,\n\t\t\ttotalAvailableResourceCount: PropTypes.number,\n\t\t\tsubResources: PropTypes.arrayOf(PropTypes.object),\n\t\t\torderedIncludedInProducts: PropTypes.arrayOf(\n\t\t\t\tPropTypes.shape({\n\t\t\t\t\tproductId: PropTypes.string,\n\t\t\t\t\tisIncluded: PropTypes.bool,\n\t\t\t\t\tisPartiallyIncluded: PropTypes.bool,\n\t\t\t\t})\n\t\t\t),\n\t\t\ttooltipUrl: PropTypes.string,\n\t\t})\n\t),\n\torderedResourceCounts: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n\thandleClick: PropTypes.func,\n\tisOpen: PropTypes.bool,\n\tsize: PropTypes.oneOf(['static', 'dynamic']).isRequired,\n};\n\nconst ComparisonSectionName = ({ isOpen, name }) => (\n\t<div className={styles.comparisonSectionNameContainer}>\n\t\t{isOpen ? <ExpandableOpenedIcon /> : <ExpandableClosedIcon />}\n\t\t<div className={styles.comparisonSectionName}>{name}</div>\n\t</div>\n);\n\nconst ResourceCount = ({ resourceCount, className }) => <div className={className}>{resourceCount}</div>;\n\nconst OrderedResourceCounts = ({ hideBooksIOwn, orderedIds, orderedResourceCounts, singleResourceCountClass }) => {\n\tconst items = orderedIds.map((id, index) => {\n\t\tconst resourceCounts = orderedResourceCounts[index];\n\t\tconst resourceCount = hideBooksIOwn\n\t\t\t? resourceCounts.unownedResourceCount\n\t\t\t: resourceCounts.totalAvailableResourceCount;\n\n\t\treturn {\n\t\t\tid: id,\n\t\t\tcomponent: <ResourceCount resourceCount={resourceCount} className={singleResourceCountClass} />,\n\t\t};\n\t});\n\n\treturn (\n\t\t<div className={styles.resourceCountsContainer}>\n\t\t\t<RowWrapper items={items} className={styles.resourceCountsWrapper} />\n\t\t</div>\n\t);\n};\n\nexport default ComparisonSection;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ComparisonSection from '../../comparison-section';\nimport SwipeableWrapper from '../../scrollable-table-with-slider/swipeable-wrapper';\n\nconst ComparisonSectionsTable = ({ selectedCompareSections, comparisonTableControlsHandler }) => {\n\tconst { hideBooksIOwn, onToggle, isOpenAccordingToCollapseState } = comparisonTableControlsHandler;\n\tconst comparisonSections = selectedCompareSections\n\t\t.filter(s => !hideBooksIOwn || !s.comparisonRows.every(row => row.isOwned))\n\t\t.map(s => (\n\t\t\t<ComparisonSection\n\t\t\t\tkey={s.category.token}\n\t\t\t\thideBooksIOwn={hideBooksIOwn}\n\t\t\t\tcategory={s.category}\n\t\t\t\tcomparisonRows={s.comparisonRows\n\t\t\t\t\t.filter(row => !hideBooksIOwn || !row.isOwned)\n\t\t\t\t\t.map(row => ({\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\tsubResources: row.subResources.filter(sr => !hideBooksIOwn || !sr.isOwned),\n\t\t\t\t\t}))}\n\t\t\t\torderedResourceCounts={s.orderedResourceCounts}\n\t\t\t\tonToggle={onToggle}\n\t\t\t\tisOpenAccordingToCollapseState={isOpenAccordingToCollapseState}\n\t\t\t\tsize=\"dynamic\"\n\t\t\t\tstartsOpen={s.isOpen}\n\t\t\t/>\n\t\t));\n\n\treturn <SwipeableWrapper>{comparisonSections}</SwipeableWrapper>;\n};\n\nComparisonSectionsTable.propTypes = {\n\tselectedCompareSections: PropTypes.array.isRequired,\n\tcomparisonTableControlsHandler: PropTypes.object.isRequired,\n};\n\nexport default ComparisonSectionsTable;\n","import React from 'react';\nimport ScrollableWrapper from './scrollable-wrapper';\n\nconst RowWrapper = ({ scrollableWrapperClassName, itemsClassName, className, items }) => (\n\t<ScrollableWrapper\n\t\tclassName={scrollableWrapperClassName}\n\t\titemsClassName={itemsClassName}\n\t\twrapperClassName={className}\n\t\tlayoutVariant={`columns`}\n\t\titems={items}\n\t/>\n);\n\nexport default RowWrapper;\n","import React from 'react';\nimport { useContext } from 'react';\nimport { ScrollableTableWithSliderContext } from './scrollable-table-with-slider-provider';\n\nconst ColumnWrapper = ({ className, children }) => {\n\tconst { columnWidth } = useContext(ScrollableTableWithSliderContext);\n\n\treturn (\n\t\t<div className={className} style={{ width: columnWidth, minWidth: columnWidth }}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nexport default ColumnWrapper;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"scrollable-wrapper--wrapper--dZVJW\",\"boundaryMargin\":\"scrollable-wrapper--boundaryMargin--RbrLT\",\"leftBoundaryMargin\":\"scrollable-wrapper--leftBoundaryMargin--fcJBc scrollable-wrapper--boundaryMargin--RbrLT\",\"rightBoundaryMargin\":\"scrollable-wrapper--rightBoundaryMargin--5Mo18 scrollable-wrapper--boundaryMargin--RbrLT\",\"items\":\"scrollable-wrapper--items--Pqjp+\",\"columnsLayout\":\"scrollable-wrapper--columnsLayout--SzmmH\",\"gridLayout\":\"scrollable-wrapper--gridLayout--NbbaM\"};","import React, { useContext, useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { ScrollableTableWithSliderContext } from './scrollable-table-with-slider-provider';\nimport ColumnWrapper from './column-wrapper';\n\nimport styles from './scrollable-wrapper.less';\n\nconst ScrollableWrapper = ({ className, itemsClassName, wrapperClassName, layoutVariant = 'grid', items }) => {\n\tconst {\n\t\tvisibleColumnsWidth,\n\t\tcolumnWidth,\n\t\tcolumnGap,\n\t\tleftOffset,\n\t\tisLeftBoundaryDisplayed,\n\t\tisRightBoundaryDisplayed,\n\t\tleftBoundaryMarginWidth,\n\t\trightBoundaryMarginWidth,\n\t} = useContext(ScrollableTableWithSliderContext);\n\n\tconst shouldAnimateScroll = useRef(false);\n\n\tconst scrollableContainerRef = useRef(null);\n\n\tuseEffect(() => {\n\t\tconst scrollableContainer = scrollableContainerRef.current;\n\n\t\tif (!scrollableContainer?.scroll) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!shouldAnimateScroll.current) {\n\t\t\tscrollableContainer.scrollLeft = leftOffset;\n\t\t\tshouldAnimateScroll.current = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (Math.abs(scrollableContainer.scrollLeft - leftOffset) > 1) {\n\t\t\tscrollableContainer.scroll({\n\t\t\t\tleft: leftOffset,\n\t\t\t\tbehavior: 'smooth',\n\t\t\t});\n\t\t}\n\t}, [leftOffset]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(styles.wrapper, className)}\n\t\t\tstyle={{ width: visibleColumnsWidth, minWidth: visibleColumnsWidth }}\n\t\t>\n\t\t\t{isLeftBoundaryDisplayed && (\n\t\t\t\t<div className={styles.leftBoundaryMargin} style={{ width: leftBoundaryMarginWidth }}></div>\n\t\t\t)}\n\t\t\t{layoutVariant === 'grid' ? (\n\t\t\t\t<div\n\t\t\t\t\tref={scrollableContainerRef}\n\t\t\t\t\tclassName={classNames(styles.items, itemsClassName, styles.gridLayout)}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgridAutoColumns: `${columnWidth}px`,\n\t\t\t\t\t\tcolumnGap: `${columnGap}px`,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{items.map(item => (\n\t\t\t\t\t\t<React.Fragment key={item.id}>{item.component}</React.Fragment>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div\n\t\t\t\t\tref={scrollableContainerRef}\n\t\t\t\t\tclassName={classNames(styles.items, itemsClassName, styles.columnsLayout)}\n\t\t\t\t\tstyle={{ gap: columnGap }}\n\t\t\t\t>\n\t\t\t\t\t{items.map(item => (\n\t\t\t\t\t\t<ColumnWrapper key={item.id} className={wrapperClassName}>\n\t\t\t\t\t\t\t{item.component}\n\t\t\t\t\t\t</ColumnWrapper>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{isRightBoundaryDisplayed && (\n\t\t\t\t<div className={styles.rightBoundaryMargin} style={{ width: rightBoundaryMarginWidth }}></div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default ScrollableWrapper;\n","const sliderArrowOptions = {\n\tbuttonHeight: {\n\t\ttall: 'tall',\n\t\tshort: 'short',\n\t},\n\tdisplayTheme: {\n\t\tlight: 'light',\n\t\tdark: 'dark',\n\t},\n};\n\nexport default sliderArrowOptions;\n","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 SvgSingleArrowcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: 17,\n  height: 20,\n  viewBox: \"0 0 17 20\",\n  fill: \"none\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10.605 15.5 6.395 10l4.21-5.5\",\n  stroke: \"#A8A8A8\",\n  strokeWidth: 1.5\n})));\nexport default SvgSingleArrowcomponent;","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 SvgSingleArrowLargecomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 10,\n  height: 26,\n  viewBox: \"0 0 10 26\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9 25 1 13 9 1\",\n  stroke: \"#00042F\"\n})));\nexport default SvgSingleArrowLargecomponent;","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 SvgSingleArrowLargeAltcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 10,\n  height: 26,\n  viewBox: \"0 0 10 26\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9 25 1 13 9 1\",\n  stroke: \"#FFF\"\n})));\nexport default SvgSingleArrowLargeAltcomponent;","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"slider-wrapper--container--ytj3o\",\"slider\":\"slider-wrapper--slider--nZBEL\",\"buttonContainer\":\"slider-wrapper--buttonContainer--82Ru7\",\"leftButtonContainer\":\"slider-wrapper--leftButtonContainer--LKKt5 slider-wrapper--buttonContainer--82Ru7\",\"rightButtonContainer\":\"slider-wrapper--rightButtonContainer--ph0tx slider-wrapper--buttonContainer--82Ru7\",\"arrow\":\"slider-wrapper--arrow--HwhUh\",\"shortArrow\":\"slider-wrapper--shortArrow--fIKFI slider-wrapper--arrow--HwhUh\",\"tallArrow\":\"slider-wrapper--tallArrow--J+ISx slider-wrapper--arrow--HwhUh\",\"lightArrow\":\"slider-wrapper--lightArrow--vMYDy slider-wrapper--arrow--HwhUh\",\"darkArrow\":\"slider-wrapper--darkArrow--LCXfI slider-wrapper--arrow--HwhUh\",\"scrollbar\":\"slider-wrapper--scrollbar--MmQd-\",\"scrollbarArrow\":\"slider-wrapper--scrollbarArrow--9uBrt\",\"leftScrollbarArrow\":\"slider-wrapper--leftScrollbarArrow--9BPng slider-wrapper--scrollbarArrow--9uBrt\",\"rightScrollbarArrow\":\"slider-wrapper--rightScrollbarArrow--0S1VI slider-wrapper--scrollbarArrow--9uBrt\",\"scrollbarArrowsContainer\":\"slider-wrapper--scrollbarArrowsContainer--JecqT\"};","import React, { useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport scrollControlTypes from '../scroll-control-types';\nimport Scrollbar from '../scrollbar';\nimport useWheelScrollHandler from '../use-wheel-scroll-handler';\nimport { ScrollableTableWithSliderContext } from './scrollable-table-with-slider-provider';\nimport { SingleArrow, SingleArrowLarge, SingleArrowLargeAlt } from './svgs';\nimport ScrollableWrapper from './scrollable-wrapper';\nimport SwipeableWrapper from './swipeable-wrapper';\nimport sliderArrowOptions from './slider-arrow-options';\n\nimport styles from './slider-wrapper.less';\n\nconst SliderWrapper = ({ itemsClassName, arrowOptions, items }) => {\n\tconst {\n\t\ttotalNumberOfColumns,\n\t\tnumberOfVisibleColumns,\n\t\tfirstVisibleColumnIndex,\n\t\tisLeftBoundaryReached,\n\t\tisRightBoundaryReached,\n\t\tsliderProps,\n\t\tonFirstVisibleColumnChange,\n\t\tisScrollActive,\n\t\tisMobile,\n\t} = useContext(ScrollableTableWithSliderContext);\n\n\tconst { isLeftArrowDisplayed, isRightArrowDisplayed, scrollControlType } = sliderProps ?? {};\n\n\tconst handleLeftArrowClick = () => {\n\t\tonFirstVisibleColumnChange?.(firstVisibleColumnIndex - 1);\n\t};\n\n\tconst handleRightArrowClick = () => {\n\t\tonFirstVisibleColumnChange?.(firstVisibleColumnIndex + 1);\n\t};\n\n\tconst containerRef = useRef(null);\n\tconst handleWheelScroll = useWheelScrollHandler(handleLeftArrowClick, handleRightArrowClick);\n\n\tuseEffect(() => {\n\t\tconst container = containerRef.current;\n\t\tif (!container) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.addEventListener('wheel', handleWheelScroll, { passive: false });\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener('wheel', handleWheelScroll);\n\t\t};\n\t}, [handleWheelScroll]);\n\n\tconst { buttonHeight = sliderArrowOptions.buttonHeight.tall, displayTheme = sliderArrowOptions.displayTheme.light } =\n\t\tarrowOptions ?? {};\n\n\tconst wrappedSliderItems = (\n\t\t<>\n\t\t\t{scrollControlType === scrollControlTypes.buttons && isScrollActive && isLeftArrowDisplayed && (\n\t\t\t\t<SliderArrow\n\t\t\t\t\tlocation=\"left\"\n\t\t\t\t\tbuttonHeight={buttonHeight}\n\t\t\t\t\tdisplayTheme={displayTheme}\n\t\t\t\t\tonClick={handleLeftArrowClick}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<ScrollableWrapper itemsClassName={itemsClassName} items={items} />\n\t\t\t{scrollControlType === scrollControlTypes.buttons && isScrollActive && isRightArrowDisplayed && (\n\t\t\t\t<SliderArrow\n\t\t\t\t\tlocation=\"right\"\n\t\t\t\t\tbuttonHeight={buttonHeight}\n\t\t\t\t\tdisplayTheme={displayTheme}\n\t\t\t\t\tonClick={handleRightArrowClick}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n\n\tconst scrollbar = scrollControlType === scrollControlTypes.scrollbar && !isMobile && isScrollActive && (\n\t\t<div className={styles.scrollbar}>\n\t\t\t<Scrollbar\n\t\t\t\ttotalNumberOfColumns={totalNumberOfColumns}\n\t\t\t\tnumberOfVisibleColumns={numberOfVisibleColumns}\n\t\t\t\tfirstVisibleColumnIndex={firstVisibleColumnIndex}\n\t\t\t\tonFirstVisibleColumnIndexUpdate={onFirstVisibleColumnChange}\n\t\t\t\tshowArrows={true}\n\t\t\t/>\n\t\t\t<div className={styles.scrollbarArrowsContainer}>\n\t\t\t\t<ScrollbarArrow variant=\"left\" isDisabled={isLeftBoundaryReached} onClick={handleLeftArrowClick} />\n\t\t\t\t<ScrollbarArrow variant=\"right\" isDisabled={isRightBoundaryReached} onClick={handleRightArrowClick} />\n\t\t\t</div>\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<div className={styles.container} ref={containerRef}>\n\t\t\t<SwipeableWrapper>\n\t\t\t\t<div className={styles.slider}>{wrappedSliderItems}</div>\n\t\t\t</SwipeableWrapper>\n\t\t\t{scrollbar}\n\t\t</div>\n\t);\n};\n\nconst SliderArrow = ({ location, buttonHeight, displayTheme, onClick }) => (\n\t<div className={styles[`${location}ButtonContainer`]}>\n\t\t<button className={classNames(styles[`${buttonHeight}Arrow`], styles[`${displayTheme}Arrow`])} onClick={onClick}>\n\t\t\t{displayTheme === 'dark' ? <SingleArrowLargeAlt /> : <SingleArrowLarge />}\n\t\t</button>\n\t</div>\n);\n\nconst ScrollbarArrow = ({ variant, isDisabled, onClick }) => (\n\t<button className={styles[`${variant}ScrollbarArrow`]} disabled={isDisabled} onClick={onClick}>\n\t\t<SingleArrow />\n\t</button>\n);\n\nexport default SliderWrapper;\n","import { useCallback, useContext, useState } from 'react';\nimport { ScrollableTableWithSliderContext } from './scrollable-table-with-slider/scrollable-table-with-slider-provider';\n\n// Shift+scroll horizontally navigates the carousel without hijacking normal vertical page scrolling.\n// Touch/swipe scrolling on tablets is unaffected (handled separately via SwipeableWrapper).\nexport default function useWheelScrollHandler(scrollLeft, scrollRight) {\n\tconst { isLeftBoundaryReached, isRightBoundaryReached, isScrollActive } = useContext(\n\t\tScrollableTableWithSliderContext\n\t);\n\n\tconst [lastExecutionTime, setLastExecutionTime] = useState(0);\n\n\tconst handleWheelScroll = useCallback(\n\t\tevent => {\n\t\t\tif (!isScrollActive || !event.shiftKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Browsers may report shift+scroll as deltaX (horizontal) or deltaY (vertical) depending on OS/browser.\n\t\t\tconst delta = event.deltaX || event.deltaY;\n\t\t\tif (!delta) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconst now = Date.now();\n\t\t\tif (now - lastExecutionTime < 500) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetLastExecutionTime(now);\n\n\t\t\tif (delta < 0 && !isLeftBoundaryReached) {\n\t\t\t\tscrollLeft();\n\t\t\t} else if (delta > 0 && !isRightBoundaryReached) {\n\t\t\t\tscrollRight();\n\t\t\t}\n\t\t},\n\t\t[isLeftBoundaryReached, isRightBoundaryReached, lastExecutionTime, scrollLeft, scrollRight, isScrollActive]\n\t);\n\n\treturn handleWheelScroll;\n}\n","import React, { useContext } from 'react';\nimport useSwipeHandler from '../use-swipe-handler';\nimport { ScrollableTableWithSliderContext } from './scrollable-table-with-slider-provider';\n\nconst SwipeableWrapper = ({ children }) => {\n\tconst {\n\t\tfirstVisibleColumnIndex,\n\t\tisLeftBoundaryReached,\n\t\tisRightBoundaryReached,\n\t\tonFirstVisibleColumnChange,\n\t\tswipeRadius,\n\t\tisScrollActive,\n\t} = useContext(ScrollableTableWithSliderContext);\n\n\tconst handleTouchStart = useSwipeHandler(\n\t\tswipeDirection => {\n\t\t\tif (!isRightBoundaryReached && swipeDirection === 'left') {\n\t\t\t\tonFirstVisibleColumnChange?.(firstVisibleColumnIndex + 1);\n\t\t\t}\n\n\t\t\tif (!isLeftBoundaryReached && swipeDirection === 'right') {\n\t\t\t\tonFirstVisibleColumnChange?.(firstVisibleColumnIndex - 1);\n\t\t\t}\n\t\t},\n\t\t!isScrollActive,\n\t\tswipeRadius\n\t);\n\n\treturn (\n\t\t<div onTouchStart={handleTouchStart} style={{ display: 'contents' }}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nexport default SwipeableWrapper;\n","import { useCallback } from 'react';\nimport useTouchHandler from './use-touch-handler';\n\n// distance (in pixels) to swipe left or right to activate a swipe\nconst defaultSwipeRadiusX = 50;\n// distance (in pixels) to swipe vertically to no longer consider this a swipe left or right\nconst defaultSwipeRadiusY = 30;\n\nfunction useSwipeHandler(\n\tonSwipe,\n\tisDisabled,\n\t{ swipeRadiusX = defaultSwipeRadiusX, swipeRadiusY = defaultSwipeRadiusY } = {}\n) {\n\tconst handleSwipe = useCallback(\n\t\t(startX, currentX, startY, currentY) => {\n\t\t\tconst handleSwipeX = () => {\n\t\t\t\tconst deltaX = currentX - startX;\n\t\t\t\tif (Math.abs(deltaX) > swipeRadiusX) {\n\t\t\t\t\tif (deltaX < 0) {\n\t\t\t\t\t\tonSwipe('left');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonSwipe('right');\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t};\n\n\t\t\tconst handleSwipeY = () => {\n\t\t\t\tconst deltaY = currentY - startY;\n\t\t\t\treturn Math.abs(deltaY) > swipeRadiusY;\n\t\t\t};\n\n\t\t\treturn handleSwipeX() || handleSwipeY();\n\t\t},\n\t\t[onSwipe, swipeRadiusX, swipeRadiusY]\n\t);\n\n\treturn useTouchHandler(handleSwipe, isDisabled);\n}\n\nexport default useSwipeHandler;\n","// extracted by mini-css-extract-plugin\nexport default {\"ProgressIndicatorV2Container\":\"index--ProgressIndicatorV2Container--Mmkj1\",\"progressIndicatorV2Container\":\"index--ProgressIndicatorV2Container--Mmkj1\",\"ProgressIndicatorV2\":\"index--ProgressIndicatorV2--J+4lZ\",\"progressIndicatorV2\":\"index--ProgressIndicatorV2--J+4lZ\",\"ProgressIndicatorV2List\":\"index--ProgressIndicatorV2List--9wWcl\",\"progressIndicatorV2List\":\"index--ProgressIndicatorV2List--9wWcl\",\"ListItem\":\"index--ListItem--Rh0Ka\",\"listItem\":\"index--ListItem--Rh0Ka\",\"ListItemActive\":\"index--ListItemActive--6WywP\",\"listItemActive\":\"index--ListItemActive--6WywP\",\"ListItemLabel\":\"index--ListItemLabel--NGf7Z\",\"listItemLabel\":\"index--ListItemLabel--NGf7Z\",\"ListItemClickable\":\"index--ListItemClickable--zB1gZ\",\"listItemClickable\":\"index--ListItemClickable--zB1gZ\",\"ListItemDivider\":\"index--ListItemDivider--G0l3n\",\"listItemDivider\":\"index--ListItemDivider--G0l3n\",\"EllipsizedText\":\"index--EllipsizedText--6jlD9\",\"ellipsizedText\":\"index--EllipsizedText--6jlD9\",\"IconContainer\":\"index--IconContainer--CNYLx\",\"iconContainer\":\"index--IconContainer--CNYLx\",\"Icon\":\"index--Icon--PT5U4\",\"icon\":\"index--Icon--PT5U4\"};","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport sharedStyles from '../shared.less';\nimport { SubscriptionIcon, LibraryIcon } from '../svgs';\nimport styles from './index.less';\n\nconst IconMap = {\n\tsubscription: SubscriptionIcon,\n\tlibrary: LibraryIcon,\n};\n\nconst ProgressIndicatorItem = ({ number, label, labelFields, icon, url, isActive }) => {\n\tconst IconComponent = IconMap[icon] || null;\n\n\tconst content = (\n\t\t<>\n\t\t\t<h5 className={classNames(sharedStyles.h5, styles.ListItemLabel)}>{number}</h5>\n\t\t\t<div className={styles.IconContainer}>{IconComponent && <IconComponent className={styles.Icon} />}</div>\n\t\t\t<CommandSentence\n\t\t\t\tContainer=\"h5\"\n\t\t\t\tclassName={classNames(sharedStyles.h5, styles.ListItemLabel, styles.EllipsizedText)}\n\t\t\t\ttemplate={label}\n\t\t\t>\n\t\t\t\t{labelFields &&\n\t\t\t\t\tlabelFields.map((field, index) => (\n\t\t\t\t\t\t<CommandSentence.Field key={field.title + index} name={field.title}>\n\t\t\t\t\t\t\t{field.value}\n\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t))}\n\t\t\t</CommandSentence>\n\t\t</>\n\t);\n\n\tif (isActive) {\n\t\treturn (\n\t\t\t<div aria-current=\"page\" className={classNames(styles.ListItem, styles.ListItemActive)}>\n\t\t\t\t{content}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (url) {\n\t\treturn (\n\t\t\t<a href={url} className={classNames(styles.ListItem, styles.ListItemClickable)}>\n\t\t\t\t{content}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn <div className={styles.ListItem}>{content}</div>;\n};\n\nProgressIndicatorItem.propTypes = {\n\tnumber: PropTypes.number.isRequired,\n\tlabel: PropTypes.string.isRequired,\n\tlabelFields: PropTypes.arrayOf(\n\t\tPropTypes.shape({\n\t\t\ttitle: PropTypes.string.isRequired,\n\t\t\tvalue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n\t\t})\n\t),\n\ticon: PropTypes.string.isRequired,\n\turl: PropTypes.string,\n\tisActive: PropTypes.bool,\n};\n\nexport { ProgressIndicatorItem };\n","import { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useConfigurationWizardCartContext } from '../../shared/configuration-wizard-cart';\n\nconst ENTRY_STEP_STORAGE_KEY = 'configWizardEntryStep';\nconst VALID_STEPS = ['subscriptions', 'libraries'];\n\nconst getEntryStep = currentStep => {\n\tif (typeof window === 'undefined') {\n\t\treturn currentStep;\n\t}\n\n\tconst stored = window.sessionStorage.getItem(ENTRY_STEP_STORAGE_KEY);\n\tconst isValidStep = VALID_STEPS.includes(stored);\n\n\tif (!isValidStep) {\n\t\tif (!VALID_STEPS.includes(currentStep)) {\n\t\t\tconsole.warn(`Invalid step provided to getEntryStep: ${currentStep}. Defaulting to 'subscriptions'.`);\n\t\t\treturn 'subscriptions';\n\t\t}\n\t\twindow.sessionStorage.setItem(ENTRY_STEP_STORAGE_KEY, currentStep);\n\t\treturn currentStep;\n\t}\n\n\treturn stored;\n};\n\nconst getLibrariesDisplayFields = librariesInCart => {\n\tconst remaining = librariesInCart.length - 1;\n\treturn [\n\t\t{\n\t\t\ttitle: 'FIRSTLIBRARYTITLE',\n\t\t\tvalue: librariesInCart[0].description,\n\t\t},\n\t\t{\n\t\t\ttitle: 'N',\n\t\t\tvalue: remaining,\n\t\t},\n\t];\n};\n\nconst useProgressIndicatorHandler = ({ routes, resources, step }) => {\n\tconst { value: cart } = useConfigurationWizardCartContext();\n\n\tconst [entryStep] = useState(() => getEntryStep(step));\n\tconst entryIsSubscription = entryStep === 'subscriptions';\n\n\tconst subscriptionDisplayText =\n\t\tcart?.subscriptionsInCart?.length > 0 && cart?.subscriptionsInCart[0].description\n\t\t\t? cart?.subscriptionsInCart[0].description\n\t\t\t: resources.subscriptionsLabel;\n\n\tconst libraryDisplayText =\n\t\tcart?.librariesInCart?.length > 0\n\t\t\t? cart?.librariesInCart?.length > 1\n\t\t\t\t? resources.libraryTitleAndNMoreTemplate\n\t\t\t\t: cart?.librariesInCart[0].description\n\t\t\t: resources.librariesLabel;\n\tconst libraryDisplayFields =\n\t\tcart?.librariesInCart?.length > 1 ? getLibrariesDisplayFields(cart.librariesInCart) : undefined;\n\n\tconst sections = useMemo(() => {\n\t\tconst subscriptionSection = {\n\t\t\tnumber: entryIsSubscription ? 1 : 2,\n\t\t\ticon: 'subscription',\n\t\t\tlabel: subscriptionDisplayText,\n\t\t\tlabelFields: undefined,\n\t\t\tisActive: step === 'subscriptions',\n\t\t\turl: step === 'subscriptions' ? undefined : routes.subscriptionsUrl,\n\t\t};\n\n\t\tconst librarySection = {\n\t\t\tnumber: entryIsSubscription ? 2 : 1,\n\t\t\ticon: 'library',\n\t\t\tlabel: libraryDisplayText,\n\t\t\tlabelFields: libraryDisplayFields,\n\t\t\tisActive: step === 'libraries',\n\t\t\turl: step === 'libraries' ? undefined : routes.librariesUrl,\n\t\t};\n\n\t\treturn entryIsSubscription ? [subscriptionSection, librarySection] : [librarySection, subscriptionSection];\n\t}, [entryIsSubscription, step, subscriptionDisplayText, libraryDisplayText, libraryDisplayFields, routes]);\n\n\treturn { sections };\n};\n\nuseProgressIndicatorHandler.propTypes = {\n\tstep: PropTypes.oneOf(['subscriptions', 'libraries']).isRequired,\n\troutes: PropTypes.shape({\n\t\tsubscriptionsUrl: PropTypes.string.isRequired,\n\t\tlibrariesUrl: PropTypes.string.isRequired,\n\t}).isRequired,\n\tresources: PropTypes.shape({\n\t\tsubscriptionsLabel: PropTypes.string.isRequired,\n\t\tlibrariesLabel: PropTypes.string.isRequired,\n\t\tlibraryTitleAndNMoreTemplate: PropTypes.string.isRequired,\n\t}).isRequired,\n};\n\nexport { useProgressIndicatorHandler };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ProgressIndicatorItem } from './progress-indicator-item';\nimport { useProgressIndicatorHandler } from './use-progress-indicator-handler';\n\nimport styles from './index.less';\n\nconst ProgressIndicatorV2 = ({ routes, resources, step }) => {\n\tconst [isClient, setIsClient] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetIsClient(true);\n\t}, []);\n\n\tconst { sections } = useProgressIndicatorHandler({ routes, resources, step });\n\n\tif (!isClient) {\n\t\treturn (\n\t\t\t<div className={styles.ProgressIndicatorV2Container}>\n\t\t\t\t<nav className={styles.ProgressIndicatorV2} style={{ visibility: 'hidden' }} aria-hidden=\"true\">\n\t\t\t\t\t<ol className={styles.ProgressIndicatorV2List}>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<div className={styles.ListItem}>&nbsp;</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<hr className={styles.ListItemDivider} />\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<div className={styles.ListItem}>&nbsp;</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ol>\n\t\t\t\t</nav>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={styles.ProgressIndicatorV2Container}>\n\t\t\t<nav className={styles.ProgressIndicatorV2}>\n\t\t\t\t<ol className={styles.ProgressIndicatorV2List}>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ProgressIndicatorItem {...sections[0]} />\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<hr className={styles.ListItemDivider} />\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ProgressIndicatorItem {...sections[1]} />\n\t\t\t\t\t</li>\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t</div>\n\t);\n};\n\nProgressIndicatorV2.propTypes = {\n\tstep: PropTypes.oneOf(['subscriptions', 'libraries']).isRequired,\n\troutes: PropTypes.shape({\n\t\tsubscriptionsUrl: PropTypes.string,\n\t\tlibrariesUrl: PropTypes.string,\n\t}).isRequired,\n\tresources: PropTypes.shape({\n\t\tsubscriptionsLabel: PropTypes.string,\n\t\tlibrariesLabel: PropTypes.string,\n\t\tlibraryTitleAndNMoreTemplate: PropTypes.string,\n\t}).isRequired,\n};\n\nexport default ProgressIndicatorV2;\n","import React from 'react';\n\n// HACK, avoids react/prop-type console warnings when passing React.Fragment directly for the CommandSentence Container prop\nfunction ContainerFragment({ children }) {\n\treturn <>{children}</>;\n}\n\nexport default ContainerFragment;\n","import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\n\nimport ContainerFragment from '../../../util/container-fragment';\nimport { useLocalization } from '../../../localization';\nimport ForeignPriceTooltip from '../../product/foreign-price-tooltip';\nimport styles from './cart-item.less';\n\nfunction CartItem({ variant, shouldShowPrice, price, description, term, quantity = 1, editLinkProps }) {\n\treturn (\n\t\t<div className={classNames(styles.cartItem, variant === 'library' && styles.libraryCartItem)}>\n\t\t\t<div className={styles.description}>{description}</div>\n\t\t\t<div className={styles.priceAndEdit}>\n\t\t\t\t{shouldShowPrice && price && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div className={styles.price}>\n\t\t\t\t\t\t\t<DisplayPrice term={term} quantity={quantity}>\n\t\t\t\t\t\t\t\t{price.value}\n\t\t\t\t\t\t\t</DisplayPrice>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{price.isForeignCurrency && (\n\t\t\t\t\t\t\t<ForeignPriceTooltip\n\t\t\t\t\t\t\t\tclassName={styles.priceLocalized}\n\t\t\t\t\t\t\t\tlink={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{'('}\n\t\t\t\t\t\t\t\t\t\t<DisplayPrice term={term} quantity={quantity}>\n\t\t\t\t\t\t\t\t\t\t\t{price.valueLocalized}\n\t\t\t\t\t\t\t\t\t\t</DisplayPrice>\n\t\t\t\t\t\t\t\t\t\t{')'}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{editLinkProps && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<a className={styles.editLink} href={editLinkProps.href}>\n\t\t\t\t\t\t\t{editLinkProps.children}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\nCartItem.propTypes = {\n\tvariant: PropTypes.oneOf(['subscription', 'library']).isRequired,\n\tshouldShowPrice: PropTypes.bool,\n\tprice: PropTypes.shape({\n\t\tisForeignCurrency: PropTypes.bool.isRequired,\n\t\tvalue: PropTypes.string.isRequired,\n\t\tvalueLocalized: PropTypes.string.isRequired,\n\t}),\n\tdescription: PropTypes.node,\n\tterm: PropTypes.oneOf(['month', 'year']),\n\tquantity: PropTypes.number,\n\teditLinkProps: PropTypes.shape({\n\t\thref: PropTypes.string.isRequired,\n\t\tchildren: PropTypes.node.isRequired,\n\t}),\n};\n\nfunction DisplayPrice({ children, quantity, term }) {\n\tconst resources = useLocalization('CommerceWeb.Resources.Configure.SubscriptionPlans');\n\tlet format, detailFormat;\n\tif (term === 'month') {\n\t\tformat = resources.MonthlyPriceFormat;\n\t} else if (term === 'year') {\n\t\tif (quantity === 2) {\n\t\t\tformat = resources.MultiAnnualTermPriceFormat;\n\t\t\tdetailFormat = resources.MultiAnnualTermPriceDetailFormat;\n\t\t} else {\n\t\t\tformat = resources.AnnualPriceFormat;\n\t\t}\n\t}\n\treturn (\n\t\t<>\n\t\t\t{format ? (\n\t\t\t\t<Fragment key={format}>\n\t\t\t\t\t<CommandSentence Container={ContainerFragment} template={format}>\n\t\t\t\t\t\t<CommandSentence.Field name=\"PRICE\">{children}</CommandSentence.Field>\n\t\t\t\t\t</CommandSentence>\n\t\t\t\t</Fragment>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t\t{detailFormat && <span>{` ${detailFormat}`}</span>}\n\t\t</>\n\t);\n}\nDisplayPrice.propTypes = {\n\tterm: PropTypes.oneOf(['month', 'year']),\n\tquantity: PropTypes.number,\n\tchildren: PropTypes.node,\n};\n\nexport default CartItem;\n","// extracted by mini-css-extract-plugin\nexport default {\"cartItem\":\"cart-item--cartItem--gQHUX\",\"libraryCartItem\":\"cart-item--libraryCartItem--HYPxk\",\"description\":\"cart-item--description--pySo4\",\"priceAndEdit\":\"cart-item--priceAndEdit--qSkHs\",\"price\":\"cart-item--price--j9ZBI\",\"priceLocalized\":\"cart-item--priceLocalized--MF-j- cart-item--price--j9ZBI\",\"editLink\":\"cart-item--editLink--ZTbVS\"};","// extracted by mini-css-extract-plugin\nexport default {\"trough\":\"index--trough--F-tzk\",\"loadingIndicator\":\"index--loadingIndicator--HYzkd\",\"controls\":\"index--controls--uNX6x\",\"backLink\":\"index--backLink--nRrsh\",\"summaryExpanderToggle\":\"index--summaryExpanderToggle--pKVSD\",\"expanded\":\"index--expanded--KxKWE\",\"summary\":\"index--summary--VsPtB\",\"expandedBackLink\":\"index--expandedBackLink--fpQdp\",\"cartItems\":\"index--cartItems--sbgHs\",\"collapsed\":\"index--collapsed--CNBLf\",\"subtotalAndCheckout\":\"index--subtotalAndCheckout--vhAWX\",\"subtotalInfo\":\"index--subtotalInfo--eG7KO\",\"subtotalTitle\":\"index--subtotalTitle--2TcOM\",\"subtotalPrice\":\"index--subtotalPrice--eI+Ob\",\"subtotalPriceLocalized\":\"index--subtotalPriceLocalized--AYaIk index--subtotalPrice--eI+Ob\",\"nextButton\":\"index--nextButton--NcSno btn btn-primary\",\"checkoutButton\":\"index--checkoutButton--9MIzw btn btn-primary\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { LoadingSpinner } from '@faithlife/styled-ui';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\n\nimport useScreensize from '../../../util/hooks/use-screensize';\nimport { useConfigurationWizardCartContext } from '../../shared/configuration-wizard-cart';\nimport ForeignPriceTooltip from '../../product/foreign-price-tooltip';\n\nimport { Chevron, LeftArrow } from '../svgs';\nimport { useDidomiNoticeHeight } from '../../../util/hooks/use-didomi-notice-height';\nimport { useLocalization } from '../../../localization';\nimport CartItem from './cart-item';\n\nimport styles from './index.less';\n\nfunction SummaryTrough({ step, routes }) {\n\tconst { loaded, loading, value: cart } = useConfigurationWizardCartContext();\n\n\treturn (\n\t\t<>\n\t\t\t{loaded && cart.hasConfigurationWizardItems && (\n\t\t\t\t<SummaryTroughCore step={step} loading={loading} cart={cart} routes={routes} />\n\t\t\t)}\n\t\t</>\n\t);\n}\nSummaryTrough.propTypes = {\n\tstep: PropTypes.oneOf(['libraries', 'subscriptions']),\n\troutes: PropTypes.object.isRequired,\n};\n\nfunction SummaryTroughCore({ step, loading, cart, routes }) {\n\tconst resources = useLocalization('CommerceWeb.Resources.Configure.SummaryTrough');\n\tconst { isSimplePricing, subtotal, subscriptionsInCart, hasEffectiveSubscription, librariesInCart, librarySubtotal } =\n\t\tcart;\n\n\tconst countLibraries = librariesInCart.length;\n\tconst hasMultipleLibraries = countLibraries > 1;\n\tconst libraryInCart = countLibraries === 1 ? librariesInCart[0] : null;\n\n\tconst hasSubscriptionInCart = subscriptionsInCart.length > 0;\n\tconst hasLibraryInCart = countLibraries > 0;\n\n\tconst isLibraryStep = step === 'libraries';\n\tconst isSubscriptionStep = step === 'subscriptions';\n\n\tconst { isMobile } = useScreensize();\n\tconst [isMobileExpanded, setIsMobileExpanded] = useState(false);\n\tconst didomiNoticeHeight = useDidomiNoticeHeight();\n\n\tuseEffect(() => {\n\t\tif (isMobileExpanded && !isMobile) {\n\t\t\tsetIsMobileExpanded(false);\n\t\t}\n\t}, [isMobile, isMobileExpanded]);\n\n\tconst proceedButton = (() => {\n\t\tif (hasLibraryInCart && hasEffectiveSubscription) {\n\t\t\treturn <CheckoutButton routes={routes} />;\n\t\t}\n\n\t\tif (isSubscriptionStep) {\n\t\t\treturn hasEffectiveSubscription ? (\n\t\t\t\t<a className={styles.nextButton} href={routes.ConfigurationWizardLibrariesUrl}>\n\t\t\t\t\t{resources.Next}\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<CheckoutButton routes={routes} />\n\t\t\t);\n\t\t}\n\n\t\t// libraries\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{!hasEffectiveSubscription && (\n\t\t\t\t\t<a className={styles.nextButton} href={routes.ConfigurationWizardSubscriptionsUrl}>\n\t\t\t\t\t\t{resources.ChoosePlan}\n\t\t\t\t\t</a>\n\t\t\t\t)}\n\t\t\t\t<CheckoutButton routes={routes} />\n\t\t\t</>\n\t\t);\n\t})();\n\n\tconst shouldShowGoBack = (isSubscriptionStep && hasLibraryInCart) || (isLibraryStep && hasSubscriptionInCart);\n\n\tconst goBackButton = shouldShowGoBack ? (\n\t\t<a\n\t\t\tclassName={classNames(styles.backLink, isMobileExpanded && styles.expandedBackLink)}\n\t\t\thref={isLibraryStep ? routes.ConfigurationWizardSubscriptionsUrl : routes.ConfigurationWizardLibrariesUrl}\n\t\t>\n\t\t\t<LeftArrow />\n\t\t\t<span>{resources.GoBack}</span>\n\t\t</a>\n\t) : null;\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"summary-trough-core\"\n\t\t\tclassName={classNames(styles.trough)}\n\t\t\tstyle={didomiNoticeHeight ? { marginBottom: didomiNoticeHeight } : undefined}\n\t\t>\n\t\t\t{loading && (\n\t\t\t\t<div className={styles.loadingIndicator}>\n\t\t\t\t\t<LoadingSpinner small />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className={styles.controls}>\n\t\t\t\t<div>{goBackButton}</div>\n\t\t\t\t<button\n\t\t\t\t\tclassName={styles.summaryExpanderToggle}\n\t\t\t\t\taria-controls=\"configuration-summary\"\n\t\t\t\t\taria-expanded={isMobileExpanded}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tsetIsMobileExpanded(value => !value);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{resources.ConfigurationSummary}\n\t\t\t\t\t<Chevron className={classNames(isMobileExpanded && styles.expanded)} />\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div id=\"configuration-summary\" className={classNames(styles.summary, !isMobileExpanded && styles.collapsed)}>\n\t\t\t\t<div className={styles.cartItems}>\n\t\t\t\t\t{subscriptionsInCart.map((subscription, index) => {\n\t\t\t\t\t\tconst editLinkProps = isLibraryStep\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\thref: routes.ConfigurationWizardSubscriptionsUrl,\n\t\t\t\t\t\t\t\t\tchildren: resources.Edit,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<CartItem\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tshouldShowPrice={isSimplePricing}\n\t\t\t\t\t\t\t\tvariant=\"subscription\"\n\t\t\t\t\t\t\t\t{...subscription}\n\t\t\t\t\t\t\t\teditLinkProps={editLinkProps}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\t{hasMultipleLibraries ? (\n\t\t\t\t\t\t<CartItem\n\t\t\t\t\t\t\tvariant=\"library\"\n\t\t\t\t\t\t\tshouldShowPrice={isSimplePricing}\n\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t<CommandSentence template={resources.NumberOfLibraries}>\n\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"COUNT\">{countLibraries}</CommandSentence.Field>\n\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tprice={librarySubtotal}\n\t\t\t\t\t\t\teditLinkProps={{\n\t\t\t\t\t\t\t\thref: routes.CartUrl,\n\t\t\t\t\t\t\t\tchildren: resources.EditInCart,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : libraryInCart ? (\n\t\t\t\t\t\t<CartItem\n\t\t\t\t\t\t\tvariant=\"library\"\n\t\t\t\t\t\t\tshouldShowPrice={isSimplePricing}\n\t\t\t\t\t\t\t{...libraryInCart}\n\t\t\t\t\t\t\teditLinkProps={{\n\t\t\t\t\t\t\t\thref: routes.CartUrl,\n\t\t\t\t\t\t\t\tchildren: resources.EditInCart,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\t\t\t\t</div>\n\t\t\t\t<div className={styles.subtotalAndCheckout}>\n\t\t\t\t\t{isSimplePricing && (\n\t\t\t\t\t\t<div className={styles.subtotalInfo}>\n\t\t\t\t\t\t\t<div className={styles.subtotalTitle}>\n\t\t\t\t\t\t\t\t{resources.Subtotal}\n\t\t\t\t\t\t\t\t{':'}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<div className={styles.subtotalPrice}>{subtotal.value}</div>\n\t\t\t\t\t\t\t\t{subtotal.isForeignCurrency && (\n\t\t\t\t\t\t\t\t\t<ForeignPriceTooltip\n\t\t\t\t\t\t\t\t\t\tclassName={styles.subtotalPriceLocalized}\n\t\t\t\t\t\t\t\t\t\tlink={`(${subtotal.valueLocalized})`}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{proceedButton}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\nconst pricePropTypes = PropTypes.shape({\n\tisForeignCurrency: PropTypes.bool.isRequired,\n\tvalue: PropTypes.string.isRequired,\n\tvalueLocalized: PropTypes.string.isRequired,\n});\nSummaryTroughCore.propTypes = {\n\tstep: PropTypes.oneOf(['libraries', 'subscriptions']),\n\tloading: PropTypes.bool,\n\tcart: PropTypes.shape({\n\t\tlibrariesInCart: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n\t\tsubscriptionsInCart: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n\t\thasEffectiveSubscription: PropTypes.bool.isRequired,\n\t\tisSimplePricing: PropTypes.bool.isRequired,\n\t\tsubtotalLocalized: pricePropTypes,\n\t\tlibrarySubtotalLocalized: pricePropTypes,\n\t}).isRequired,\n\troutes: PropTypes.shape({\n\t\tConfigurationWizardSubscriptionsUrl: PropTypes.string.isRequired,\n\t\tConfigurationWizardLibrariesUrl: PropTypes.string.isRequired,\n\t\tCartUrl: PropTypes.string.isRequired,\n\t}).isRequired,\n};\n\nfunction CheckoutButton({ routes }) {\n\tconst resources = useLocalization('CommerceWeb.Resources.Configure.SummaryTrough');\n\treturn (\n\t\t<a className={styles.checkoutButton} href={routes.CartUrl}>\n\t\t\t{resources.Checkout}\n\t\t</a>\n\t);\n}\n\nexport default SummaryTrough;\n","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 SvgBlueCheckmarkcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 28,\n  height: 20,\n  viewBox: \"0 0 28 20\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m2 7.5 9 9 15-15\",\n  stroke: \"var(--brand-blue)\",\n  strokeWidth: 4\n})));\nexport default SvgBlueCheckmarkcomponent;","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 SvgCheckmarkcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 20,\n  height: 13,\n  viewBox: \"0 0 20 13\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m1 4.65 6.9 6.9L19 .45\",\n  stroke: \"currentColor\"\n})));\nexport default SvgCheckmarkcomponent;","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 SvgChevroncomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 14,\n  height: 9,\n  viewBox: \"0 0 14 9\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m1 8 6-6 6 6\",\n  stroke: \"currentColor\",\n  strokeWidth: 2\n})));\nexport default SvgChevroncomponent;","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 SvgDownChevron24Pxcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 26,\n  height: 11,\n  viewBox: \"0 0 26 11\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m1 1 12 8 12-8\",\n  stroke: \"currentColor\",\n  strokeWidth: 2\n})));\nexport default SvgDownChevron24Pxcomponent;","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 SvgEmptyCirclecomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 19,\n  height: 18,\n  viewBox: \"0 0 19 18\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n  cx: 9.563,\n  cy: 9,\n  r: 8.5,\n  stroke: \"var(--configuration-wizard-dark-bg)\"\n})));\nexport default SvgEmptyCirclecomponent;","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 SvgExpandableClosedIconcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 24,\n  height: 24,\n  viewBox: \"0 0 24 24\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  fillRule: \"evenodd\",\n  clipRule: \"evenodd\",\n  d: \"M13 0h-1v11H0v1h12v12h1V12h11v-1H13V0Z\",\n  fill: \"var(--very-deep-gray)\"\n})));\nexport default SvgExpandableClosedIconcomponent;","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 SvgExpandableOpenedIconcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 24,\n  height: 24,\n  viewBox: \"0 0 24 24\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M0 12.5v-1h24v1H0Z\",\n  fill: \"var(--very-deep-gray)\"\n})));\nexport default SvgExpandableOpenedIconcomponent;","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 SvgFilledCirclecomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 19,\n  height: 18,\n  viewBox: \"0 0 19 18\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n  cx: 9.938,\n  cy: 9,\n  r: 8.5,\n  fill: \"var(--configuration-wizard-dark-bg)\",\n  stroke: \"var(--configuration-wizard-dark-bg)\"\n})));\nexport default SvgFilledCirclecomponent;","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 _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 SvgLeftArrowcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 21,\n  height: 18,\n  viewBox: \"0 0 21 18\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9 17 1 9l8-8M1 9h20\",\n  stroke: \"currentColor\"\n})));\nexport default SvgLeftArrowcomponent;","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 SvgRightArrowcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 21,\n  height: 18,\n  viewBox: \"0 0 21 18\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m12 1 8 8-8 8M0 9h20\",\n  stroke: \"currentColor\"\n})));\nexport default SvgRightArrowcomponent;","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 SvgSubscriptionStarcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 24,\n  height: 25,\n  viewBox: \"0 0 24 25\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12 .5v12m0 0h12m-12 0 8.485-8.485M12 12.5H0m12.019-.05 4.65-11.062m6.442 6.516-11.092 4.578m-.02.018L3.516 4.015m8.466 8.435L7.331 1.388M.888 7.904l11.092 4.578M12 24.5v-12m0 0H0m12 0-8.485 8.485M12 12.5h12m-12.019.05-4.65 11.062M.888 17.096l11.092-4.578m.02-.018 8.484 8.485M12.02 12.55l4.65 11.062m6.442-6.516-11.092-4.578\",\n  stroke: \"currentColor\",\n  strokeWidth: 1.286,\n  strokeMiterlimit: 10\n})));\nexport default SvgSubscriptionStarcomponent;","var _path, _path2;\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 SvgXcomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 18,\n  height: 18,\n  viewBox: \"0 0 18 18\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"currentColor\",\n  d: \"M0 1.385 1.385 0 18 16.615 16.615 18z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"currentColor\",\n  d: \"M16.616 0 18 1.385 1.385 18 .001 16.615z\"\n})));\nexport default SvgXcomponent;","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 SvgSubscriptioncomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 24,\n  height: 25,\n  viewBox: \"0 0 24 25\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12 .5v12m0 0h12m-12 0 8.485-8.485M12 12.5H0m12.019-.05 4.65-11.062m6.442 6.516-11.092 4.578m-.02.018L3.516 4.015m8.466 8.435L7.331 1.388M.888 7.904l11.092 4.578M12 24.5v-12m0 0H0m12 0-8.485 8.485M12 12.5h12m-12.019.05-4.65 11.062M.888 17.096l11.092-4.578m.02-.018 8.484 8.485M12.02 12.55l4.65 11.062m6.442-6.516-11.092-4.578\",\n  stroke: \"#00042F\",\n  strokeWidth: 1.286,\n  strokeMiterlimit: 10\n})));\nexport default SvgSubscriptioncomponent;","var _path, _path2, _path3;\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 SvgLibrarycomponent = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: 26,\n  height: 25,\n  viewBox: \"0 0 26 25\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m6.845.5 3.75 15.615h14.404L21.249.5H6.845Z\",\n  stroke: \"#00042F\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M1 8.885 4.75 24.5h14.404l-3.75-15.615H1Z\",\n  stroke: \"#00042F\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m3.83 4.614 3.75 15.615h14.405l-3.75-15.615H3.83Z\",\n  stroke: \"#00042F\"\n})));\nexport default SvgLibrarycomponent;","// extracted by mini-css-extract-plugin\nexport default {\"wizardHeroContainer\":\"index--wizardHeroContainer--pPCLf\",\"content\":\"index--content--Qe3PA\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport classNames from 'classnames';\n\nimport sharedStyles from '../shared.less';\nimport styles from './index.less';\n\nconst WizardHero = ({ title, subtitle, logosOrVerbum }) => {\n\treturn (\n\t\t<div className={styles.wizardHeroContainer}>\n\t\t\t<div className={styles.content}>\n\t\t\t\t<CommandSentence Container=\"h4\" className={classNames(sharedStyles.h4)} template={title}>\n\t\t\t\t\t<CommandSentence.Field name=\"LOGOSORVERBUM\">{logosOrVerbum}</CommandSentence.Field>\n\t\t\t\t</CommandSentence>\n\t\t\t\t<CommandSentence Container=\"p\" className={classNames(sharedStyles.ui2)} template={subtitle}>\n\t\t\t\t\t<CommandSentence.Field name=\"LOGOSORVERBUM\">{logosOrVerbum}</CommandSentence.Field>\n\t\t\t\t</CommandSentence>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nWizardHero.propTypes = {\n\ttitle: PropTypes.string.isRequired,\n\tsubtitle: PropTypes.string,\n\tlogosOrVerbum: PropTypes.string,\n};\n\nexport default WizardHero;\n","// extracted by mini-css-extract-plugin\nexport default {\"foreignPrice\":\"index--foreignPrice--E0+Q4 ui1\",\"link\":\"index--link--lWaI7\",\"disclaimer\":\"index--disclaimer--VdYzm ui3\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport Tooltip from '../../shared/tooltip';\nimport { useLocalization } from '../../../localization';\n\nimport styles from './index.less';\n\nconst ForeignPriceTooltip = ({ className, link, price }) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Product.DisplayTemplates.PricingSidebarViewModel');\n\tconst priceTemplate = `(${price})`;\n\n\treturn (\n\t\t<Tooltip\n\t\t\tlink={\n\t\t\t\tlink ? (\n\t\t\t\t\t<div className={styles.link}>{link}</div>\n\t\t\t\t) : (\n\t\t\t\t\t<CommandSentence key={priceTemplate} Container=\"span\" template={priceTemplate} className={styles.link}>\n\t\t\t\t\t\t<CommandSentence.Field name=\"PERDAYABBREVIATED\">{resources.PerDayAbbreviated}</CommandSentence.Field>\n\t\t\t\t\t\t<CommandSentence.Field name=\"PERMONTHABBREVIATED\">{resources.PerMonthAbbreviated}</CommandSentence.Field>\n\t\t\t\t\t\t<CommandSentence.Field name=\"PERYEARABBREVIATED\">{resources.PerYearAbbreviated}</CommandSentence.Field>\n\t\t\t\t\t</CommandSentence>\n\t\t\t\t)\n\t\t\t}\n\t\t\tplacement={'bottom'}\n\t\t\tclassName={className}\n\t\t\tcontainer=\"body\"\n\t\t>\n\t\t\t<div className={styles.disclaimer}>\n\t\t\t\t<p>{resources.ForeignPricesBasedOnUSD}</p>\n\t\t\t\t<p>{resources.ForeignPricesNotExact}</p>\n\t\t\t</div>\n\t\t</Tooltip>\n\t);\n};\n\nForeignPriceTooltip.propTypes = {\n\tprice: PropTypes.string,\n\tlink: PropTypes.node,\n\tclassNames: PropTypes.shape({\n\t\ttooltipContainer: PropTypes.string,\n\t\tlinkContainer: PropTypes.string,\n\t\tcontentContainer: PropTypes.string,\n\t}),\n};\n\nexport default ForeignPriceTooltip;\n","import React, { createContext, useCallback, useContext, useEffect, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useDocumentEventListener from '../../../util/hooks/use-document-event-listener';\n\nconst ConfigurationWizardCartContext = createContext(null);\n\nfunction useConfigurationWizardCartContext() {\n\tconst context = useContext(ConfigurationWizardCartContext);\n\tif (context === null) {\n\t\tthrow new Error(\n\t\t\t'no value supplied for ConfigurationWizardCartContext. Ensure your component is wrapped in a provider'\n\t\t);\n\t}\n\treturn context;\n}\n\nconst BEGIN_LOADING = 'BEGIN_LOADING';\nconst CLEAR_LOADING = 'CLEAR_LOADING';\nconst LOAD = 'LOAD';\nconst LOAD_FAILED = 'LOAD_FAILED';\nfunction configurationWizardCartContextReducer(state, action) {\n\tswitch (action.type) {\n\t\tcase BEGIN_LOADING:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcurrentEventId: action.eventId,\n\t\t\t\tloading: true,\n\t\t\t};\n\t\tcase CLEAR_LOADING:\n\t\t\tif (state.currentEventId !== action.eventId) {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloading: false,\n\t\t\t};\n\t\tcase LOAD:\n\t\t\tif (state.currentEventId !== action.eventId) {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloaded: true,\n\t\t\t\tloading: false,\n\t\t\t\terror: false,\n\t\t\t\tvalue: action.value,\n\t\t\t\treason: null,\n\t\t\t};\n\t\tcase LOAD_FAILED:\n\t\t\tif (state.currentEventId !== action.eventId) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloaded: false,\n\t\t\t\tloading: false,\n\t\t\t\terror: true,\n\t\t\t\tvalue: null,\n\t\t\t\treason: action.reason,\n\t\t\t};\n\t}\n\treturn state;\n}\nconfigurationWizardCartContextReducer.initialState = {\n\tloaded: false,\n\tloading: false,\n\tcurrentEventId: null,\n\tvalue: null,\n\terror: false,\n\treason: null,\n};\nconfigurationWizardCartContextReducer.getStateFromPreloadedValue = preloadedValue => ({\n\tloaded: true,\n\tloading: false,\n\tcurrentEventId: null,\n\tvalue: preloadedValue,\n\terror: false,\n\treason: null,\n});\n\nlet nextEventId = 0;\nconst getNextEventId = () => nextEventId++;\n\nfunction ConfigurationWizardCartContextProvider({ initialValue, routes, children }) {\n\tconst [state, dispatch] = useReducer(\n\t\tconfigurationWizardCartContextReducer,\n\t\tconfigurationWizardCartContextReducer.initialState,\n\t\tinitialState => {\n\t\t\tif (initialValue) {\n\t\t\t\treturn configurationWizardCartContextReducer.getStateFromPreloadedValue(initialValue);\n\t\t\t}\n\t\t\treturn initialState;\n\t\t}\n\t);\n\n\tconst fetchConfigurationWizardCart = useCallback(async () => {\n\t\tconst getWizardCartUrl = routes?.GetWizardCartUrl;\n\n\t\tif (!getWizardCartUrl) {\n\t\t\treturn;\n\t\t}\n\t\tconst eventId = getNextEventId();\n\t\tdispatch({ type: BEGIN_LOADING, eventId });\n\t\ttry {\n\t\t\tconst value = await fetch(getWizardCartUrl);\n\t\t\tif (value.ok) {\n\t\t\t\tdispatch({ type: LOAD, eventId, value: await value.json() });\n\t\t\t} else {\n\t\t\t\tthrow value;\n\t\t\t}\n\t\t} catch (reason) {\n\t\t\tdispatch({ type: LOAD_FAILED, eventId, reason });\n\t\t}\n\t}, [routes]);\n\n\tconst onCartUpdated = useCallback(() => {\n\t\tfetchConfigurationWizardCart();\n\t}, [fetchConfigurationWizardCart]);\n\n\tuseDocumentEventListener('faithlife.sites.cart.updated', onCartUpdated);\n\n\tconst onAddToCartClicked = useCallback(() => {\n\t\tconst eventId = getNextEventId();\n\n\t\tfunction handleCartUpdateFinished() {\n\t\t\tdispatch({ type: CLEAR_LOADING, eventId });\n\n\t\t\tdocument.removeEventListener('faithlife.sites.cart.updated', handleCartUpdateFinished);\n\t\t\tdocument.removeEventListener('faithlife.sites.cart.updateError', handleCartUpdateFinished);\n\t\t}\n\n\t\tdispatch({ type: BEGIN_LOADING, eventId });\n\n\t\tdocument.addEventListener('faithlife.sites.cart.updated', handleCartUpdateFinished);\n\t\tdocument.addEventListener('faithlife.sites.cart.updateError', handleCartUpdateFinished);\n\t}, []);\n\n\tuseDocumentEventListener('faithlife.sites.addToCartButton.click', onAddToCartClicked);\n\n\tconst firstTimeLoadedRef = useRef(state.loaded);\n\tuseEffect(() => {\n\t\t// we only want this to possibly run on the first time render\n\t\tif (!firstTimeLoadedRef.current) {\n\t\t\tfetchConfigurationWizardCart();\n\t\t}\n\t}, [fetchConfigurationWizardCart]);\n\n\treturn <ConfigurationWizardCartContext.Provider value={state}>{children}</ConfigurationWizardCartContext.Provider>;\n}\nConfigurationWizardCartContextProvider.propTypes = {\n\tinitialValue: PropTypes.object,\n\troutes: PropTypes.shape({\n\t\tGetWizardCartUrl: PropTypes.string,\n\t}),\n\tchildren: PropTypes.node,\n};\n\nexport { ConfigurationWizardCartContextProvider, useConfigurationWizardCartContext, ConfigurationWizardCartContext };\n","export const executeScriptTagsInContainer = container => {\n\tconst scriptElements = Array.from(container.getElementsByTagName('script'));\n\n\tif (scriptElements.length) {\n\t\t(function appendAndLoadScript(i) {\n\t\t\tconst script = scriptElements[i];\n\t\t\tconst parent = script.parentElement;\n\n\t\t\tparent.removeChild(script);\n\t\t\tconst newScript = document.createElement('script');\n\n\t\t\tif (script.src) {\n\t\t\t\tnewScript.src = script.src;\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line no-unsanitized/property\n\t\t\tnewScript.innerHTML = script.innerHTML;\n\n\t\t\ti++;\n\n\t\t\tif (i < scriptElements.length) {\n\t\t\t\tif (script.src) {\n\t\t\t\t\tnewScript.onload = () => {\n\t\t\t\t\t\tappendAndLoadScript(i);\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tappendAndLoadScript(i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tparent.appendChild(newScript);\n\t\t})(0);\n\t}\n};\n","import React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { executeScriptTagsInContainer } from '../../../util/dom-utility';\n\nconst DangerousHtmlContent = ({ html, className, ignoreInitialRender = false }) => {\n\tconst container = useRef();\n\tconst isInitialRender = useRef(!ignoreInitialRender);\n\n\tuseEffect(() => {\n\t\tif (container.current) {\n\t\t\tif (isInitialRender.current) {\n\t\t\t\tisInitialRender.current = false;\n\t\t\t} else {\n\t\t\t\texecuteScriptTagsInContainer(container.current);\n\t\t\t}\n\t\t}\n\t}, [container, html]);\n\n\tif (!html) {\n\t\treturn null;\n\t}\n\n\treturn <div className={className} ref={container} dangerouslySetInnerHTML={{ __html: html }} />;\n};\n\nDangerousHtmlContent.props = {\n\theaderHtml: PropTypes.string,\n};\n\nexport default DangerousHtmlContent;\n","function mergeRefs(...refs) {\n\tconst validRefs = refs.filter(\n\t\tref => (ref !== null && typeof ref === 'object' && 'current' in ref) || typeof ref === 'function'\n\t);\n\tif (validRefs.length === 0) {\n\t\treturn null;\n\t}\n\tif (validRefs.length > 1) {\n\t\treturn node => {\n\t\t\tfor (const ref of validRefs) {\n\t\t\t\tif (typeof ref === 'function') {\n\t\t\t\t\tref(node);\n\t\t\t\t} else {\n\t\t\t\t\tref.current = node;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\treturn validRefs[0];\n}\n\nexport default mergeRefs;\n","// extracted by mini-css-extract-plugin\nexport default {\"stickyHeader\":\"index--stickyHeader--m85Vr\",\"stopSticky\":\"index--stopSticky--lknSq\",\"exit\":\"index--exit--XxM9X\",\"sticky\":\"index--sticky--AzwJk\",\"enter\":\"index--enter---mdHH\"};","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport useScreensize from '../../util/hooks/use-screensize';\nimport mergeRefs from '../../util/merge-refs';\nimport styles from './index.less';\n\nconst isStickyHeaderVisible = (stickyHeaderElement, anchorElement, boundingElement) => {\n\tconst anchorElementRect = anchorElement.getBoundingClientRect();\n\tconst boundingElementRect = boundingElement.getBoundingClientRect();\n\n\tconst hasScrolledPastAnchor = anchorElementRect.bottom - stickyHeaderElement.offsetHeight < 0;\n\tconst boundingBottomVisible = boundingElementRect.bottom - stickyHeaderElement.offsetHeight > 0;\n\n\treturn hasScrolledPastAnchor && boundingBottomVisible;\n};\n\nconst StickyHeader = ({ headerRef, anchorElementRef, boundingElementRef, children }) => {\n\tconst stickyHeaderRef = useRef(null);\n\tconst [stickyState, setStickyState] = useState('init');\n\tconst { isMobile } = useScreensize();\n\tconst previousIsMobile = useRef(isMobile);\n\n\tuseEffect(() => {\n\t\tif (previousIsMobile.current !== isMobile) {\n\t\t\tsetStickyState('init');\n\t\t}\n\t\tpreviousIsMobile.current = isMobile;\n\t}, [isMobile]);\n\n\tuseEffect(() => {\n\t\tconst handleScroll = () => {\n\t\t\tconst stickyHeader = stickyHeaderRef.current;\n\t\t\tconst anchorElement = anchorElementRef.current;\n\t\t\tconst boundingElement = boundingElementRef.current;\n\n\t\t\tif (stickyHeader && anchorElement && boundingElement) {\n\t\t\t\tconst shouldBeSticky = isStickyHeaderVisible(stickyHeader, anchorElement, boundingElement);\n\n\t\t\t\tsetStickyState(prev => {\n\t\t\t\t\treturn shouldBeSticky ? 'sticky' : prev === 'init' ? 'init' : 'stop';\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\thandleScroll();\n\t\twindow.addEventListener('scroll', handleScroll);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('scroll', handleScroll);\n\t\t};\n\t}, [anchorElementRef, boundingElementRef, isMobile]);\n\n\treturn (\n\t\t<div\n\t\t\tref={mergeRefs(stickyHeaderRef, headerRef)}\n\t\t\tclassName={classNames(styles.stickyHeader, {\n\t\t\t\t[styles.sticky]: stickyState === 'sticky',\n\t\t\t\t[styles.stopSticky]: stickyState === 'stop',\n\t\t\t})}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nStickyHeader.propTypes = {\n\tanchorElementRef: PropTypes.object.isRequired,\n\tboundingElementRef: PropTypes.object.isRequired,\n\tchildren: PropTypes.node,\n};\nexport default StickyHeader;\n","import { useState, useEffect } from 'react';\n\nexport const useDidomiNoticeHeight = () => {\n\tconst [height, setHeight] = useState(0);\n\n\tuseEffect(() => {\n\t\tlet resizeObserver;\n\n\t\tconst resizeObserverCallback = () => {\n\t\t\tconst el = document.getElementById('didomi-notice');\n\n\t\t\tif (!el) {\n\t\t\t\tsetHeight(0);\n\t\t\t\tresizeObserver?.disconnect();\n\t\t\t\tresizeObserver = null;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Reset observer to avoid stale references\n\t\t\tresizeObserver?.disconnect();\n\n\t\t\tresizeObserver = new ResizeObserver(([entry]) => {\n\t\t\t\tsetHeight(entry.contentRect.height);\n\t\t\t});\n\n\t\t\tresizeObserver.observe(el);\n\t\t\tsetHeight(el.getBoundingClientRect().height);\n\t\t};\n\n\t\tresizeObserverCallback();\n\n\t\tconst mutationObserver = new MutationObserver(resizeObserverCallback);\n\t\tmutationObserver.observe(document.body, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t});\n\n\t\treturn () => {\n\t\t\tmutationObserver.disconnect();\n\t\t\tresizeObserver?.disconnect();\n\t\t};\n\t}, []);\n\n\treturn height;\n};\n","import { useEffect } from 'react';\n\nfunction usePreventBodyScrolling(shouldPreventBodyScrolling) {\n\tuseEffect(() => {\n\t\tif (shouldPreventBodyScrolling) {\n\t\t\tconst body = document.querySelector('body');\n\n\t\t\tif (!body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tbody.style.overflowY = 'hidden';\n\n\t\t\treturn () => {\n\t\t\t\tbody.style.overflowY = '';\n\t\t\t};\n\t\t}\n\t}, [shouldPreventBodyScrolling]);\n}\n\nexport default usePreventBodyScrolling;\n"],"names":["h2","h4","h5","ui1","ui2","ui3","ui5","b2","b3","loadingSpinner","comparison_table_controls","compare_page_comparison_table_controls","ComparisonTableControls","userIsBasePackageOwner","handleHideBooksIOwnChange","hideBooksIOwn","handleExpandAll","handleCollapseAll","resources","useLocalization","React","className","Checkbox","onClick","isChecked","title","HideBooksIOwn","styles","ExpandAll","CollapseAll","LegendItem","name","children","compare_page_comparison_table_legend","ComparisonTableLegend","mode","selectedStyles","legendContainer","legendItemsContainer","Owned","FullOwnershipComponent","alt","OwnedIcon","PartiallyOwned","PartialOwnershipComponent","PartiallyOwnedIcon","PartlyIncluded","PartlyIncludedComponent","PartlyIncludedIcon","FullyIncluded","FullyIncludedComponent","FullyIncludedIcon","useComparisonTableControlsHandler","setHideBooksIOwn","useState","useCallback","tableCollapseState","setTableCollapseState","handleToggle","isOpenAccordingToCollapseState","isOpen","resource_preview_tooltip","TooltipBody","tooltipUrl","html","DangerousHtmlContent","LoadingSpinner","medium","PreviewNotAvailable","propTypes","PropTypes","ResourcePreviewTooltip","setIsOpen","shouldLoad","setHtml","hasRequested","useRef","useEffect","current","isCancelled","requestSettled","fetch","credentials","then","response","ok","text","catch","useLazyTooltipContent","wasOpenOnPointerDownRef","handlePointerDown","handleClick","event","preventDefault","Tooltip","delayDuration","open","onOpenChange","asChild","type","onPointerDown","side","sideOffset","collisionPadding","width","height","compare_page_resource_preview_tooltip","comparison_row","comparisonRow","nameContainer","withToggle","withSubResources","nameToggle","ownershipIconContainer","ownershipIcon","inclusionIconsContainer","inclusionIcons","dynamicSizeInclusionIcons","staticSizeInclusionIcons","inclusionIconsWrapper","inclusionIcon","dynamicSizeInclusionIcon","staticSizeInclusionIcon","subResource","hideVolumes","hideVolumesArrow","ComparisonRow","isOwned","isPartiallyOwned","ownedResourceCount","totalAvailableResourceCount","subResources","orderedIncludedInProducts","onToggle","size","handleArrowClick","ComparisonRowName","hasSubresources","length","onArrowClick","InclusionIcons","singleInclusionIconClass","map","sr","index","key","HideArrowComponent","HideVolumes","productId","isIncluded","isPartiallyIncluded","isRequired","OwnershipIconComponent","ownershipIconTooltipText","YouOwnThisProduct","YouOwnPartOfThisCollectionAndAreReceivingADiscount","Of","ResourcesAndDatasets","classNames","ExpandableOpenedIcon","ExpandableClosedIcon","Ownership","InclusionIcon","Icon","inclusionIconComponents","iip","IconComponent","AllResourcesFromThisCollectionAreIncluded","OnlySomeResourcesFromThisCollectionAreIncluded","id","component","RowWrapper","items","compare_page_comparison_row","comparison_section","comparisonSectionHeader","comparisonSectionNameContainer","comparisonSectionName","resourceCountsContainer","dynamicSizeOrderedResourceCounts","staticSizeOrderedResourceCounts","resourceCountsWrapper","resourceCount","dynamicSizeResourceCount","staticSizeResourceCount","hideSection","hideSectionArrow","ComparisonSection","category","comparisonRows","orderedResourceCounts","startsOpen","o","comparisonRowComponents","row","_extends","ComparisonSectionName","OrderedResourceCounts","orderedIds","singleResourceCountClass","HideSection","token","ResourceCount","resourceCounts","unownedResourceCount","compare_page_comparison_section","ComparisonSectionsTable","selectedCompareSections","comparisonTableControlsHandler","comparisonSections","filter","s","every","SwipeableWrapper","comparison_sections_table","scrollableWrapperClassName","itemsClassName","ScrollableWrapper","wrapperClassName","layoutVariant","column_wrapper","ColumnWrapper","columnWidth","useContext","ScrollableTableWithSliderContext","style","minWidth","scrollable_wrapper","scrollable_table_with_slider_scrollable_wrapper","visibleColumnsWidth","columnGap","leftOffset","isLeftBoundaryDisplayed","isRightBoundaryDisplayed","leftBoundaryMarginWidth","rightBoundaryMarginWidth","shouldAnimateScroll","scrollableContainerRef","scrollableContainer","scroll","Math","abs","scrollLeft","left","behavior","ref","gridAutoColumns","item","gap","buttonHeight","tall","short","displayTheme","light","dark","_path","Object","assign","bind","n","e","arguments","t","r","hasOwnProperty","call","apply","singleArrow_component","props","react","createElement","xmlns","viewBox","fill","d","stroke","strokeWidth","singleArrowLarge_component_path","singleArrowLarge_component_extends","singleArrowLarge_component","singleArrowLargeAlt_component_path","singleArrowLargeAlt_component_extends","singleArrowLargeAlt_component","slider_wrapper","container","slider","buttonContainer","leftButtonContainer","rightButtonContainer","arrow","shortArrow","tallArrow","lightArrow","darkArrow","scrollbar","scrollbarArrow","leftScrollbarArrow","rightScrollbarArrow","scrollbarArrowsContainer","SliderArrow","location","SingleArrowLargeAlt","SingleArrowLarge","ScrollbarArrow","variant","isDisabled","disabled","SingleArrow","scrollable_table_with_slider_slider_wrapper","SliderWrapper","arrowOptions","totalNumberOfColumns","numberOfVisibleColumns","firstVisibleColumnIndex","isLeftBoundaryReached","isRightBoundaryReached","sliderProps","onFirstVisibleColumnChange","isScrollActive","isMobile","isLeftArrowDisplayed","isRightArrowDisplayed","scrollControlType","handleLeftArrowClick","handleRightArrowClick","containerRef","handleWheelScroll","scrollRight","lastExecutionTime","setLastExecutionTime","shiftKey","delta","deltaX","deltaY","now","Date","useWheelScrollHandler","addEventListener","passive","removeEventListener","sliderArrowOptions","wrappedSliderItems","scrollControlTypes","buttons","Scrollbar","onFirstVisibleColumnIndexUpdate","showArrows","swipeable_wrapper","swipeRadius","handleTouchStart","onSwipe","swipeRadiusX","swipeRadiusY","handleSwipe","startX","currentX","startY","currentY","handleSwipeX","handleSwipeY","useTouchHandler","useSwipeHandler","swipeDirection","onTouchStart","display","progress_indicator_v2","IconMap","subscription","SubscriptionIcon","library","LibraryIcon","ProgressIndicatorItem","number","label","labelFields","icon","url","isActive","content","sharedStyles","CommandSentence","Container","template","field","Field","value","href","ENTRY_STEP_STORAGE_KEY","VALID_STEPS","useProgressIndicatorHandler","routes","step","cart","useConfigurationWizardCartContext","entryStep","currentStep","window","stored","sessionStorage","getItem","includes","setItem","console","warn","getEntryStep","entryIsSubscription","subscriptionDisplayText","subscriptionsInCart","description","subscriptionsLabel","libraryDisplayText","librariesInCart","libraryTitleAndNMoreTemplate","librariesLabel","libraryDisplayFields","remaining","getLibrariesDisplayFields","undefined","sections","useMemo","subscriptionSection","subscriptionsUrl","librarySection","librariesUrl","ProgressIndicatorV2","isClient","setIsClient","visibility","configuration_wizard_progress_indicator_v2","container_fragment","CartItem","shouldShowPrice","price","term","quantity","editLinkProps","DisplayPrice","isForeignCurrency","ForeignPriceTooltip","link","valueLocalized","format","detailFormat","MonthlyPriceFormat","MultiAnnualTermPriceFormat","MultiAnnualTermPriceDetailFormat","AnnualPriceFormat","Fragment","ContainerFragment","summary_trough_cart_item","summary_trough","SummaryTrough","loaded","loading","hasConfigurationWizardItems","SummaryTroughCore","isSimplePricing","subtotal","hasEffectiveSubscription","librarySubtotal","countLibraries","hasMultipleLibraries","libraryInCart","hasSubscriptionInCart","hasLibraryInCart","isLibraryStep","isSubscriptionStep","useScreensize","isMobileExpanded","setIsMobileExpanded","didomiNoticeHeight","useDidomiNoticeHeight","proceedButton","CheckoutButton","ConfigurationWizardLibrariesUrl","Next","ConfigurationWizardSubscriptionsUrl","ChoosePlan","goBackButton","LeftArrow","GoBack","marginBottom","small","ConfigurationSummary","Chevron","Edit","NumberOfLibraries","CartUrl","EditInCart","Subtotal","pricePropTypes","Checkout","subtotalLocalized","librarySubtotalLocalized","configuration_wizard_summary_trough","blueCheckmark_component","checkmark_component_path","checkmark_component_extends","checkmark_component","chevron_component_path","chevron_component_extends","chevron_component","downChevron24px_component_path","downChevron24px_component_extends","downChevron24px_component","emptyCircle_component_circle","emptyCircle_component_extends","emptyCircle_component","cx","cy","expandableClosedIcon_component_path","expandableClosedIcon_component_extends","expandableClosedIcon_component","fillRule","clipRule","expandableOpenedIcon_component_path","expandableOpenedIcon_component_extends","expandableOpenedIcon_component","filledCircle_component_circle","filledCircle_component_extends","filledCircle_component","fully_included_component_circle","fully_included_component_extends","fully_included_component","leftArrow_component_path","leftArrow_component_extends","leftArrow_component","rightArrow_component_path","rightArrow_component_extends","rightArrow_component","subscription_star_component_path","subscription_star_component_extends","subscription_star_component","strokeMiterlimit","x_component_path","_path2","x_component_extends","x_component","subscription_component_path","subscription_component_extends","subscription_component","library_component_path","library_component_path2","_path3","library_component_extends","library_component","WizardHero","subtitle","logosOrVerbum","configuration_wizard_wizard_hero","foreign_price_tooltip","priceTemplate","PerDayAbbreviated","PerMonthAbbreviated","PerYearAbbreviated","placement","ForeignPricesBasedOnUSD","ForeignPricesNotExact","tooltipContainer","linkContainer","contentContainer","product_foreign_price_tooltip","ConfigurationWizardCartContext","createContext","context","Error","BEGIN_LOADING","CLEAR_LOADING","LOAD","LOAD_FAILED","configurationWizardCartContextReducer","state","action","currentEventId","eventId","error","reason","initialState","getStateFromPreloadedValue","preloadedValue","nextEventId","getNextEventId","ConfigurationWizardCartContextProvider","initialValue","dispatch","useReducer","fetchConfigurationWizardCart","async","getWizardCartUrl","GetWizardCartUrl","json","onCartUpdated","useDocumentEventListener","onAddToCartClicked","handleCartUpdateFinished","document","firstTimeLoadedRef","Provider","ignoreInitialRender","isInitialRender","scriptElements","Array","from","getElementsByTagName","appendAndLoadScript","i","script","parent","parentElement","removeChild","newScript","src","innerHTML","onload","appendChild","executeScriptTagsInContainer","dangerouslySetInnerHTML","__html","headerHtml","dangerous_html_content","merge_refs","refs","validRefs","node","sticky_header","StickyHeader","headerRef","anchorElementRef","boundingElementRef","stickyHeaderRef","stickyState","setStickyState","previousIsMobile","handleScroll","stickyHeader","anchorElement","boundingElement","shouldBeSticky","isStickyHeaderVisible","stickyHeaderElement","anchorElementRect","getBoundingClientRect","boundingElementRect","hasScrolledPastAnchor","bottom","offsetHeight","boundingBottomVisible","prev","mergeRefs","sticky_header_sticky","sticky_header_stopSticky","components_sticky_header","setHeight","resizeObserver","resizeObserverCallback","el","getElementById","disconnect","ResizeObserver","entry","contentRect","observe","mutationObserver","MutationObserver","body","childList","subtree","shouldPreventBodyScrolling","querySelector","overflowY"],"sourceRoot":""}