@bikdotai/bik-component-library 0.0.852-beta.9 → 0.0.852
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js +2 -2
- package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js.map +1 -1
- package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js +2 -2
- package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js.map +1 -1
- package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js +1 -1
- package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/constants.js +1 -1
- package/dist/cjs/components/product-picker-v2/constants.js.map +1 -1
- package/dist/cjs/icons/Informational/Identity/PuzzlePiece.js +2 -0
- package/dist/cjs/icons/Informational/Identity/PuzzlePiece.js.map +1 -0
- package/dist/cjs/icons/index.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js +342 -419
- package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js.map +1 -1
- package/dist/esm/components/feature-announcements/MajorUpdatePopup.js +35 -33
- package/dist/esm/components/feature-announcements/MajorUpdatePopup.js.map +1 -1
- package/dist/esm/components/feature-announcements/MinorUpdatePopup.js +48 -47
- package/dist/esm/components/feature-announcements/MinorUpdatePopup.js.map +1 -1
- package/dist/esm/components/feature-announcements/types/props.types.d.ts +1 -1
- package/dist/esm/components/product-picker-v2/constants.d.ts +32 -0
- package/dist/esm/components/product-picker-v2/constants.js +33 -1
- package/dist/esm/components/product-picker-v2/constants.js.map +1 -1
- package/dist/esm/components/product-picker-v2/index.d.ts +1 -0
- package/dist/esm/icons/Informational/Identity/PuzzlePiece.d.ts +7 -0
- package/dist/esm/icons/Informational/Identity/PuzzlePiece.js +36 -0
- package/dist/esm/icons/Informational/Identity/PuzzlePiece.js.map +1 -0
- package/dist/esm/icons/Informational/Identity/index.d.ts +1 -0
- package/dist/esm/icons/index.d.ts +1 -1
- package/dist/esm/icons/index.js +202 -200
- package/dist/esm/icons/index.js.map +1 -1
- package/dist/esm/index.js +386 -384
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MajorUpdatePopup.js","sources":["../../../../src/components/feature-announcements/MajorUpdatePopup.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport Arrow from '../../assets/icons/chevronRight2.svg';\nimport PlayIcon from '../../assets/icons/play.svg';\nimport { TEXT } from './constants';\nimport { getMajorPopupStyles } from './styles';\nimport { MajorUpdatePopupProps } from './types';\nimport {\n\tcalculateCloseTransform,\n\tdecodeHTMLEntities,\n\texecuteAfterAnimation,\n\tfindWhatsNewButton,\n\thideJoyrideArrow,\n} from './utils';\n\nconst MajorUpdatePopup: React.FC<MajorUpdatePopupProps> = ({\n\tfeature,\n\tcurrentIndex,\n\ttotalFeatures,\n\tonSkip,\n\tonExplore,\n\tonPrevious,\n\tonNext,\n\tsetIsClosing: setIsClosingParent,\n\tonSecondaryAction,\n\tratio = '16:9',\n\tpadding,\n}) => {\n\tconst [isClosing, setIsClosing] = useState(false);\n\tconst [startAnimation, setStartAnimation] = useState(false);\n\tconst [transform, setTransform] = useState('');\n\tconst popupRef = useRef<HTMLDivElement>(null);\n\tconst [isVideoPaused, setIsVideoPaused] = useState(false);\n\tconst [showPlayIcon, setShowPlayIcon] = useState(true);\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst [imageAspectRatio, setImageAspectRatio] = useState<\n\t\t'16:9' | '1:1' | '4:3'\n\t>(ratio);\n\n\tconst imageRef = useRef<HTMLImageElement>(null);\n\n\tuseEffect(() => {\n\t\tif (isClosing) {\n\t\t\t// Start the shrink animation immediately\n\t\t\tsetStartAnimation(true);\n\t\t}\n\t}, [isClosing]);\n\n\tconst handleClose = (callback: () => Promise<void> | void): void => {\n\t\thideJoyrideArrow(popupRef.current);\n\n\t\tconst targetButton = findWhatsNewButton();\n\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(callback);\n\t};\n\n\tconst handleImageLoad = (e: React.SyntheticEvent<HTMLImageElement>) => {\n\t\tconst img = e.currentTarget;\n\t\tconst width = img.naturalWidth;\n\t\tconst height = img.naturalHeight;\n\n\t\tif (width && height) {\n\t\t\tconst aspectRatio = width / height;\n\n\t\t\t// Determine closest predefined ratio\n\t\t\tif (Math.abs(aspectRatio - 16 / 9) < 0.1) {\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (Math.abs(aspectRatio - 1) < 0.1) {\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t} else if (Math.abs(aspectRatio - 4 / 3) < 0.1) {\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else if (aspectRatio > 1.5) {\n\t\t\t\t// Wide images default to 16:9\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (aspectRatio < 0.9) {\n\t\t\t\t// Tall images default to 4:3\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else {\n\t\t\t\t// Close to square, use 1:1\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleVideoLoadedMetadata = (\n\t\te: React.SyntheticEvent<HTMLVideoElement>,\n\t) => {\n\t\tconst video = e.currentTarget;\n\t\tconst width = video.videoWidth;\n\t\tconst height = video.videoHeight;\n\n\t\tif (width && height) {\n\t\t\tconst aspectRatio = width / height;\n\n\t\t\tif (Math.abs(aspectRatio - 16 / 9) < 0.1) {\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (Math.abs(aspectRatio - 1) < 0.1) {\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t} else if (Math.abs(aspectRatio - 4 / 3) < 0.1) {\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else if (aspectRatio > 1.5) {\n\t\t\t\t// Wide videos default to 16:9\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (aspectRatio < 0.9) {\n\t\t\t\t// Tall videos default to 4:3\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else {\n\t\t\t\t// Close to square, use 1:1\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleExplore = (): void => {\n\t\tconst action = feature.primaryButton?.action;\n\n\t\tif (action === 'Open link') {\n\t\t\tconst url = feature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tonExplore(action);\n\n\t\t// Run closing animation in background\n\t\thideJoyrideArrow(popupRef.current);\n\t\tconst targetButton = findWhatsNewButton();\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t};\n\n\tconst handleSkipClick = (e: React.MouseEvent<HTMLButtonElement>): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\thandleClose(onSkip);\n\t};\n\n\tconst handlePreviousClick = (\n\t\te: React.MouseEvent<HTMLButtonElement>,\n\t): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tonPrevious();\n\t};\n\n\tconst handleNextClick = (e: React.MouseEvent<HTMLButtonElement>): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tonNext();\n\t};\n\n\tconst handleSecondaryAction = (e: React.MouseEvent): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tconst action = feature.secondaryButton?.action;\n\t\tconst closeCallback: (triggeredAction?: string) => Promise<void> | void =\n\t\t\tonSecondaryAction || onSkip;\n\t\tlet internalUrl: string | null = null;\n\n\t\t// Handle based on action type. 'Play Video' is opened by closeCallback so the\n\t\t// click is not attributed to the primary button via onExplore.\n\t\tif (action === 'Open link') {\n\t\t\tconst url = feature.secondaryButton?.redirectionUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t} else {\n\t\t\t\t\tinternalUrl = url;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (action === 'Close popup' || action === '') {\n\t\t\t// Just close the popup (empty action also closes)\n\t\t\t// callback is executed after closing animation completes\n\t\t}\n\n\t\t// Always close popup after secondary action\n\t\thideJoyrideArrow(popupRef.current);\n\t\tconst targetButton = findWhatsNewButton();\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(async () => {\n\t\t\tawait closeCallback(action);\n\t\t\tif (internalUrl) {\n\t\t\t\twindow.location.href = internalUrl;\n\t\t\t}\n\t\t});\n\t};\n\n\tconst styles = getMajorPopupStyles(\n\t\tstartAnimation,\n\t\ttransform,\n\t\timageAspectRatio,\n\t\tpadding || feature.padding,\n\t\tfeature.primaryButton?.style,\n\t\tfeature.secondaryButton?.style,\n\t);\n\n\tconst handleVideoClick = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (videoRef.current) {\n\t\t\tif (videoRef.current.paused) {\n\t\t\t\tvideoRef.current.play();\n\t\t\t\tsetIsVideoPaused(false);\n\t\t\t\tsetShowPlayIcon(false);\n\t\t\t} else {\n\t\t\t\tvideoRef.current.pause();\n\t\t\t\tsetIsVideoPaused(true);\n\t\t\t\tsetShowPlayIcon(true);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleVideoKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tif (videoRef.current) {\n\t\t\t\tif (videoRef.current.paused) {\n\t\t\t\t\tvideoRef.current.play();\n\t\t\t\t\tsetIsVideoPaused(false);\n\t\t\t\t\tsetShowPlayIcon(false);\n\t\t\t\t} else {\n\t\t\t\t\tvideoRef.current.pause();\n\t\t\t\t\tsetIsVideoPaused(true);\n\t\t\t\t\tsetShowPlayIcon(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t<div style={styles.outerWrapper}>\n\t\t\t<div\n\t\t\t\tref={popupRef}\n\t\t\t\tstyle={{\n\t\t\t\t\t...styles.container,\n\t\t\t\t\topacity: startAnimation ? 0 : 1,\n\t\t\t\t\ttransition: 'opacity 0.2s ease-in-out, transform 0.3s ease',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<style>{`\n\t\t\t\t[data-popup-content] ul {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding-left: 20px;\n\t\t\t\t\tlist-style-type: disc;\n\t\t\t\t}\n\t\t\t\t[data-popup-content] ul li {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\tcolor: rgba(255, 255, 255, 0.8);\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tline-height: 16px;\n\t\t\t\t\tfont-family: Inter, sans-serif;\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t\t\t{/* Content Wrapper - contains image and text side by side */}\n\t\t\t\t<div style={styles.contentWrapper}>\n\t\t\t\t\t{/* Image/Video section */}\n\t\t\t\t\t<div style={styles.imageContainer}>\n\t\t\t\t\t\t{feature.productVideo ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<video\n\t\t\t\t\t\t\t\t\tref={videoRef}\n\t\t\t\t\t\t\t\t\tsrc={feature.productVideo}\n\t\t\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\t\t\t\tcontrols\n\t\t\t\t\t\t\t\t\taria-label={`Product video for ${feature.title}`}\n\t\t\t\t\t\t\t\t\tonLoadedMetadata={handleVideoLoadedMetadata}\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t{(isVideoPaused || showPlayIcon) && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={styles.videoOverlay}\n\t\t\t\t\t\t\t\t\t\tonClick={handleVideoClick}\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t\t\t\taria-label={isVideoPaused ? 'Play video' : 'Pause video'}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleVideoKeyDown}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlayIcon width={20} height={20} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : feature.displayImage ? (\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tref={imageRef}\n\t\t\t\t\t\t\t\tsrc={feature.displayImage}\n\t\t\t\t\t\t\t\talt={feature.title}\n\t\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\t\tonLoad={handleImageLoad}\n\t\t\t\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\t\t\t\tif (feature.image) {\n\t\t\t\t\t\t\t\t\t\t(e.target as HTMLImageElement).src = feature.image;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div style={styles.imagePlaceholder}>\n\t\t\t\t\t\t\t\t{TEXT.FEATURE_PREVIEW_PLACEHOLDER}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Content section */}\n\t\t\t\t\t<div style={styles.contentContainer}>\n\t\t\t\t\t\t{/* Skip Button at top-right */}\n\t\t\t\t\t\t<div style={styles.skipButtonContainer}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={handleSkipClick}\n\t\t\t\t\t\t\t\tstyle={styles.skipButton.base}\n\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\tObject.assign(e.currentTarget.style, styles.skipButton.hover)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\tObject.assign(e.currentTarget.style, styles.skipButton.base)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-label=\"Skip feature announcement\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSkip\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Title */}\n\t\t\t\t\t\t<h3 style={styles.title}>{feature.title}</h3>\n\n\t\t\t\t\t\t{/* Content/Description */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-popup-content\n\t\t\t\t\t\t\tstyle={styles.content}\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t__html: decodeHTMLEntities(\n\t\t\t\t\t\t\t\t\tfeature.content || feature.body || '',\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\n\t\t\t\t\t\t{/* Actions - Buttons and Navigation */}\n\t\t\t\t\t\t<div style={styles.actionsWrapper}>\n\t\t\t\t\t\t\t<div style={styles.buttonsGroup}>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tonClick={handleExplore}\n\t\t\t\t\t\t\t\t\tstyle={styles.exploreButton.base}\n\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\tstyles.exploreButton.hover,\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\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\tstyles.exploreButton.base,\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\t\t{feature.primaryButton?.text ||\n\t\t\t\t\t\t\t\t\t\tfeature.buttonText ||\n\t\t\t\t\t\t\t\t\t\tTEXT.DEFAULT_BUTTON_TEXT}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t{/* Secondary Button (Optional) */}\n\t\t\t\t\t\t\t\t{feature.secondaryButton?.text &&\n\t\t\t\t\t\t\t\t\t(feature.secondaryButton?.redirectionUrl &&\n\t\t\t\t\t\t\t\t\tfeature.secondaryButton?.action !== 'Play Video' ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={feature.secondaryButton.redirectionUrl}\n\t\t\t\t\t\t\t\t\t\t\ttarget={\n\t\t\t\t\t\t\t\t\t\t\t\tfeature.secondaryButton.redirectionUrl.startsWith(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'http',\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '_blank'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: '_self'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\t\t\t\t\tfeature.secondaryButton.redirectionUrl.startsWith(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'http',\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'noopener noreferrer'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleSecondaryAction}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.secondaryButton.base}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.hover,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.base,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleSecondaryAction}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.secondaryButton.base}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.hover,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.base,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Navigation arrows */}\n\t\t\t\t\t\t\t{totalFeatures > 1 && (\n\t\t\t\t\t\t\t\t<div style={styles.navigationContainer}>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tonClick={handlePreviousClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={currentIndex === 0}\n\t\t\t\t\t\t\t\t\t\tstyle={styles.navigationButton(currentIndex === 0).base}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).hover,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).base,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Previous feature\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Arrow style={{ transform: 'rotate(180deg)' }} />\n\t\t\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tonClick={handleNextClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={currentIndex === totalFeatures - 1}\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === totalFeatures - 1,\n\t\t\t\t\t\t\t\t\t\t\t).base\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== totalFeatures - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).hover,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== totalFeatures - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === totalFeatures - 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t).base,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Next feature\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Arrow />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t{/* Close contentWrapper */}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MajorUpdatePopup;\n"],"names":["MajorUpdatePopup","feature","currentIndex","totalFeatures","onSkip","onExplore","onPrevious","onNext","setIsClosingParent","onSecondaryAction","ratio","padding","isClosing","setIsClosing","useState","startAnimation","setStartAnimation","transform","setTransform","popupRef","useRef","isVideoPaused","setIsVideoPaused","showPlayIcon","setShowPlayIcon","videoRef","imageAspectRatio","setImageAspectRatio","imageRef","useEffect","handleClose","callback","hideJoyrideArrow","targetButton","findWhatsNewButton","transformValue","calculateCloseTransform","executeAfterAnimation","handleImageLoad","e","img","width","height","aspectRatio","handleVideoLoadedMetadata","video","handleExplore","action","url","handleSkipClick","handlePreviousClick","handleNextClick","handleSecondaryAction","closeCallback","internalUrl","styles","getMajorPopupStyles","handleVideoClick","handleVideoKeyDown","jsx","jsxs","Fragment","PlayIcon","TEXT","decodeHTMLEntities","Arrow"],"mappings":";;;;;;;;;AAcA,MAAMA,KAAoD,CAAC;AAAA,EAC1D,SAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,cAAcC;AAAA,EACd,mBAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,SAAAC;AACD,MAAM;AACL,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAgBC,CAAiB,IAAIF,EAAS,EAAK,GACpD,CAACG,GAAWC,CAAY,IAAIJ,EAAS,EAAE,GACvCK,IAAWC,EAAuB,IAAI,GACtC,CAACC,GAAeC,CAAgB,IAAIR,EAAS,EAAK,GAClD,CAACS,GAAcC,CAAe,IAAIV,EAAS,EAAI,GAC/CW,IAAWL,EAAyB,IAAI,GACxC,CAACM,GAAkBC,CAAmB,IAAIb,EAE9CJ,CAAK,GAEDkB,IAAWR,EAAyB,IAAI;AAE9C,EAAAS,GAAU,MAAM;AACf,IAAIjB,KAEHI,EAAkB,EAAI;AAAA,EAExB,GAAG,CAACJ,CAAS,CAAC;AAEd,QAAMkB,IAAc,CAACC,MAA+C;AACnE,IAAAC,EAAiBb,EAAS,OAAO;AAEjC,UAAMc,IAAeC,EAAA;AAErB,QAAID,KAAgBd,EAAS,SAAS;AACrC,YAAMgB,IAAiBC;AAAA,QACtBjB,EAAS;AAAA,QACTc;AAAA,MAAA;AAED,MAAAf,EAAaiB,CAAc;AAAA,IAC5B;AACC,MAAAjB,EAAa,UAAU;AAGxB,IAAAV,IAAqB,EAAI,GACzBK,EAAa,EAAI,GACjBwB,EAAsBN,CAAQ;AAAA,EAC/B,GAEMO,IAAkB,CAACC,MAA8C;AACtE,UAAMC,IAAMD,EAAE,eACRE,IAAQD,EAAI,cACZE,IAASF,EAAI;AAEnB,QAAIC,KAASC,GAAQ;AACpB,YAAMC,IAAcF,IAAQC;AAG5B,MAAI,KAAK,IAAIC,IAAc,KAAK,CAAC,IAAI,MACpChB,EAAoB,MAAM,IAChB,KAAK,IAAIgB,IAAc,CAAC,IAAI,MACtChB,EAAoB,KAAK,IACf,KAAK,IAAIgB,IAAc,IAAI,CAAC,IAAI,MAC1ChB,EAAoB,KAAK,IACfgB,IAAc,MAExBhB,EAAoB,MAAM,IAChBgB,IAAc,MAExBhB,EAAoB,KAAK,IAGzBA,EAAoB,KAAK;AAAA,IAE3B;AAAA,EACD,GAEMiB,IAA4B,CACjCL,MACI;AACJ,UAAMM,IAAQN,EAAE,eACVE,IAAQI,EAAM,YACdH,IAASG,EAAM;AAErB,QAAIJ,KAASC,GAAQ;AACpB,YAAMC,IAAcF,IAAQC;AAE5B,MAAI,KAAK,IAAIC,IAAc,KAAK,CAAC,IAAI,MACpChB,EAAoB,MAAM,IAChB,KAAK,IAAIgB,IAAc,CAAC,IAAI,MACtChB,EAAoB,KAAK,IACf,KAAK,IAAIgB,IAAc,IAAI,CAAC,IAAI,MAC1ChB,EAAoB,KAAK,IACfgB,IAAc,MAExBhB,EAAoB,MAAM,IAChBgB,IAAc,MAExBhB,EAAoB,KAAK,IAGzBA,EAAoB,KAAK;AAAA,IAE3B;AAAA,EACD,GAEMmB,IAAgB,MAAY;AACjC,UAAMC,IAAS9C,EAAQ,eAAe;AAEtC,QAAI8C,MAAW,aAAa;AAC3B,YAAMC,IAAM/C,EAAQ,eAAe,kBAAkBA,EAAQ;AAC7D,MAAI+C,KACgBA,EAAI,WAAW,MAAM,KAEvC,OAAO,KAAKA,GAAK,UAAU,qBAAqB;AAAA,IAGnD;AACA,IAAA3C,EAAU0C,CAAM,GAGhBf,EAAiBb,EAAS,OAAO;AACjC,UAAMc,IAAeC,EAAA;AACrB,QAAID,KAAgBd,EAAS,SAAS;AACrC,YAAMgB,IAAiBC;AAAA,QACtBjB,EAAS;AAAA,QACTc;AAAA,MAAA;AAED,MAAAf,EAAaiB,CAAc;AAAA,IAC5B;AACC,MAAAjB,EAAa,UAAU;AAExB,IAAAV,IAAqB,EAAI,GACzBK,EAAa,EAAI;AAAA,EAClB,GAEMoC,IAAkB,CAACV,MAAiD;AACzE,IAAAA,EAAE,eAAA,GACFA,EAAE,gBAAA,GACFT,EAAY1B,CAAM;AAAA,EACnB,GAEM8C,IAAsB,CAC3BX,MACU;AACV,IAAAA,EAAE,eAAA,GACFA,EAAE,gBAAA,GACFjC,EAAA;AAAA,EACD,GAEM6C,IAAkB,CAACZ,MAAiD;AACzE,IAAAA,EAAE,eAAA,GACFA,EAAE,gBAAA,GACFhC,EAAA;AAAA,EACD,GAEM6C,IAAwB,CAACb,MAA8B;AAC5D,IAAAA,EAAE,eAAA,GACFA,EAAE,gBAAA;AAEF,UAAMQ,IAAS9C,EAAQ,iBAAiB,QAClCoD,IACL5C,KAAqBL;AACtB,QAAIkD,IAA6B;AAIjC,QAAIP,MAAW,aAAa;AAC3B,YAAMC,IAAM/C,EAAQ,iBAAiB;AACrC,MAAI+C,MACgBA,EAAI,WAAW,MAAM,IAEvC,OAAO,KAAKA,GAAK,UAAU,qBAAqB,IAEhDM,IAAcN;AAAA,IAGjB;AAMA,IAAAhB,EAAiBb,EAAS,OAAO;AACjC,UAAMc,IAAeC,EAAA;AACrB,QAAID,KAAgBd,EAAS,SAAS;AACrC,YAAMgB,IAAiBC;AAAA,QACtBjB,EAAS;AAAA,QACTc;AAAA,MAAA;AAED,MAAAf,EAAaiB,CAAc;AAAA,IAC5B;AACC,MAAAjB,EAAa,UAAU;AAExB,IAAAV,IAAqB,EAAI,GACzBK,EAAa,EAAI,GACjBwB,EAAsB,YAAY;AACjC,YAAMgB,EAAcN,CAAM,GACtBO,MACH,OAAO,SAAS,OAAOA;AAAA,IAEzB,CAAC;AAAA,EACF,GAEMC,IAASC;AAAA,IACdzC;AAAA,IACAE;AAAA,IACAS;AAAA,IACAf,KAAWV,EAAQ;AAAA,IACnBA,EAAQ,eAAe;AAAA,IACvBA,EAAQ,iBAAiB;AAAA,EAAA,GAGpBwD,IAAmB,CAAClB,MAAwB;AACjD,IAAAA,EAAE,gBAAA,GACEd,EAAS,YACRA,EAAS,QAAQ,UACpBA,EAAS,QAAQ,KAAA,GACjBH,EAAiB,EAAK,GACtBE,EAAgB,EAAK,MAErBC,EAAS,QAAQ,MAAA,GACjBH,EAAiB,EAAI,GACrBE,EAAgB,EAAI;AAAA,EAGvB,GAEMkC,IAAqB,CAACnB,MAA2B;AACtD,KAAIA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SAClCA,EAAE,eAAA,GACFA,EAAE,gBAAA,GACEd,EAAS,YACRA,EAAS,QAAQ,UACpBA,EAAS,QAAQ,KAAA,GACjBH,EAAiB,EAAK,GACtBE,EAAgB,EAAK,MAErBC,EAAS,QAAQ,MAAA,GACjBH,EAAiB,EAAI,GACrBE,EAAgB,EAAI;AAAA,EAIxB;AAEA,SACC,gBAAAmC,EAAC,OAAA,EAAI,OAAOJ,EAAO,cAClB,UAAA,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,KAAKzC;AAAA,MACL,OAAO;AAAA,QACN,GAAGoC,EAAO;AAAA,QACV,SAASxC,IAAiB,IAAI;AAAA,QAC9B,YAAY;AAAA,MAAA;AAAA,MAGb,UAAA;AAAA,QAAA,gBAAA4C,EAAC,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaP;AAAA,QAED,gBAAAC,EAAC,OAAA,EAAI,OAAOL,EAAO,gBAElB,UAAA;AAAA,UAAA,gBAAAI,EAAC,SAAI,OAAOJ,EAAO,gBACjB,UAAAtD,EAAQ,eACR,gBAAA2D,EAAAC,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACA,KAAKlC;AAAA,gBACL,KAAKxB,EAAQ;AAAA,gBACb,OAAOsD,EAAO;AAAA,gBACd,UAAQ;AAAA,gBACR,OAAK;AAAA,gBACL,MAAI;AAAA,gBACJ,aAAW;AAAA,gBACX,UAAQ;AAAA,gBACR,cAAY,qBAAqBtD,EAAQ,KAAK;AAAA,gBAC9C,kBAAkB2C;AAAA,cAAA;AAAA,YAAA;AAAA,aAGjBvB,KAAiBE,MAClB,gBAAAoC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACA,OAAOJ,EAAO;AAAA,gBACd,SAASE;AAAA,gBACT,MAAK;AAAA,gBACL,UAAU;AAAA,gBACV,cAAYpC,IAAgB,eAAe;AAAA,gBAC3C,WAAWqC;AAAA,gBAEX,UAAA,gBAAAC,EAACG,IAAA,EAAS,OAAO,IAAI,QAAQ,GAAA,CAAI;AAAA,cAAA;AAAA,YAAA;AAAA,UAClC,GAEF,IACG7D,EAAQ,eACX,gBAAA0D;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAK/B;AAAA,cACL,KAAK3B,EAAQ;AAAA,cACb,KAAKA,EAAQ;AAAA,cACb,OAAOsD,EAAO;AAAA,cACd,QAAQjB;AAAA,cACR,SAAS,CAACC,MAAM;AACf,gBAAItC,EAAQ,UACVsC,EAAE,OAA4B,MAAMtC,EAAQ;AAAA,cAE/C;AAAA,YAAA;AAAA,UAAA,sBAGA,OAAA,EAAI,OAAOsD,EAAO,kBACjB,UAAAQ,EAAK,6BACP,GAEF;AAAA,UAGA,gBAAAH,EAAC,OAAA,EAAI,OAAOL,EAAO,kBAElB,UAAA;AAAA,YAAA,gBAAAI,EAAC,OAAA,EAAI,OAAOJ,EAAO,qBAClB,UAAA,gBAAAI;AAAA,cAAC;AAAA,cAAA;AAAA,gBACA,SAASV;AAAA,gBACT,OAAOM,EAAO,WAAW;AAAA,gBACzB,cAAc,CAAChB,MACd,OAAO,OAAOA,EAAE,cAAc,OAAOgB,EAAO,WAAW,KAAK;AAAA,gBAE7D,cAAc,CAAChB,MACd,OAAO,OAAOA,EAAE,cAAc,OAAOgB,EAAO,WAAW,IAAI;AAAA,gBAE5D,cAAW;AAAA,gBACX,UAAA;AAAA,cAAA;AAAA,YAAA,GAGF;AAAA,8BAGC,MAAA,EAAG,OAAOA,EAAO,OAAQ,YAAQ,OAAM;AAAA,YAGxC,gBAAAI;AAAA,cAAC;AAAA,cAAA;AAAA,gBACA,sBAAkB;AAAA,gBAClB,OAAOJ,EAAO;AAAA,gBACd,yBAAyB;AAAA,kBACxB,QAAQS;AAAA,oBACP/D,EAAQ,WAAWA,EAAQ,QAAQ;AAAA,kBAAA;AAAA,gBACpC;AAAA,cACD;AAAA,YAAA;AAAA,YAID,gBAAA2D,EAAC,OAAA,EAAI,OAAOL,EAAO,gBAClB,UAAA;AAAA,cAAA,gBAAAK,EAAC,OAAA,EAAI,OAAOL,EAAO,cAClB,UAAA;AAAA,gBAAA,gBAAAI;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACA,SAASb;AAAA,oBACT,OAAOS,EAAO,cAAc;AAAA,oBAC5B,cAAc,CAAChB,MACd,OAAO;AAAA,sBACNA,EAAE,cAAc;AAAA,sBAChBgB,EAAO,cAAc;AAAA,oBAAA;AAAA,oBAGvB,cAAc,CAAChB,MACd,OAAO;AAAA,sBACNA,EAAE,cAAc;AAAA,sBAChBgB,EAAO,cAAc;AAAA,oBAAA;AAAA,oBAItB,UAAAtD,EAAQ,eAAe,QACvBA,EAAQ,cACR8D,EAAK;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGN9D,EAAQ,iBAAiB,SACxBA,EAAQ,iBAAiB,kBAC1BA,EAAQ,iBAAiB,WAAW,eACnC,gBAAA0D;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACA,MAAM1D,EAAQ,gBAAgB;AAAA,oBAC9B,QACCA,EAAQ,gBAAgB,eAAe;AAAA,sBACtC;AAAA,oBAAA,IAEE,WACA;AAAA,oBAEJ,KACCA,EAAQ,gBAAgB,eAAe;AAAA,sBACtC;AAAA,oBAAA,IAEE,wBACA;AAAA,oBAEJ,SAASmD;AAAA,oBACT,OAAOG,EAAO,gBAAgB;AAAA,oBAC9B,cAAc,CAAChB,MACd,OAAO;AAAA,sBACNA,EAAE,cAAc;AAAA,sBAChBgB,EAAO,gBAAgB;AAAA,oBAAA;AAAA,oBAGzB,cAAc,CAAChB,MACd,OAAO;AAAA,sBACNA,EAAE,cAAc;AAAA,sBAChBgB,EAAO,gBAAgB;AAAA,oBAAA;AAAA,oBAIxB,YAAQ,gBAAgB;AAAA,kBAAA;AAAA,gBAAA,IAG1B,gBAAAI;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACA,SAASP;AAAA,oBACT,OAAOG,EAAO,gBAAgB;AAAA,oBAC9B,cAAc,CAAChB,MACd,OAAO;AAAA,sBACNA,EAAE,cAAc;AAAA,sBAChBgB,EAAO,gBAAgB;AAAA,oBAAA;AAAA,oBAGzB,cAAc,CAAChB,MACd,OAAO;AAAA,sBACNA,EAAE,cAAc;AAAA,sBAChBgB,EAAO,gBAAgB;AAAA,oBAAA;AAAA,oBAIxB,YAAQ,gBAAgB;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAC1B,GAEH;AAAA,cAGCpD,IAAgB,KAChB,gBAAAyD,EAAC,OAAA,EAAI,OAAOL,EAAO,qBAClB,UAAA;AAAA,gBAAA,gBAAAI;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACA,SAAST;AAAA,oBACT,UAAUhD,MAAiB;AAAA,oBAC3B,OAAOqD,EAAO,iBAAiBrD,MAAiB,CAAC,EAAE;AAAA,oBACnD,cAAc,CAACqC,MAAM;AACpB,sBAAIrC,MAAiB,KACpB,OAAO;AAAA,wBACNqC,EAAE,cAAc;AAAA,wBAChBgB,EAAO,iBAAiB,EAAK,EAAE;AAAA,sBAAA;AAAA,oBAGlC;AAAA,oBACA,cAAc,CAAChB,MAAM;AACpB,sBAAIrC,MAAiB,KACpB,OAAO;AAAA,wBACNqC,EAAE,cAAc;AAAA,wBAChBgB,EAAO,iBAAiB,EAAK,EAAE;AAAA,sBAAA;AAAA,oBAGlC;AAAA,oBACA,cAAW;AAAA,oBAEX,4BAACU,GAAA,EAAM,OAAO,EAAE,WAAW,mBAAiB,CAAG;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGhD,gBAAAN;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACA,SAASR;AAAA,oBACT,UAAUjD,MAAiBC,IAAgB;AAAA,oBAC3C,OACCoD,EAAO;AAAA,sBACNrD,MAAiBC,IAAgB;AAAA,oBAAA,EAChC;AAAA,oBAEH,cAAc,CAACoC,MAAM;AACpB,sBAAIrC,MAAiBC,IAAgB,KACpC,OAAO;AAAA,wBACNoC,EAAE,cAAc;AAAA,wBAChBgB,EAAO,iBAAiB,EAAK,EAAE;AAAA,sBAAA;AAAA,oBAGlC;AAAA,oBACA,cAAc,CAAChB,MAAM;AACpB,sBAAIrC,MAAiBC,IAAgB,KACpC,OAAO;AAAA,wBACNoC,EAAE,cAAc;AAAA,wBAChBgB,EAAO;AAAA,0BACNrD,MAAiBC,IAAgB;AAAA,wBAAA,EAChC;AAAA,sBAAA;AAAA,oBAGL;AAAA,oBACA,cAAW;AAAA,oBAEX,4BAAC8D,GAAA,CAAA,CAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACR,EAAA,CACD;AAAA,YAAA,EAAA,CAEF;AAAA,UAAA,EAAA,CACD;AAAA,QAAA,EAAA,CAED;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEF;AAEF;"}
|
|
1
|
+
{"version":3,"file":"MajorUpdatePopup.js","sources":["../../../../src/components/feature-announcements/MajorUpdatePopup.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport Arrow from '../../assets/icons/chevronRight2.svg';\nimport PlayIcon from '../../assets/icons/play.svg';\nimport { TEXT } from './constants';\nimport { getMajorPopupStyles } from './styles';\nimport { MajorUpdatePopupProps } from './types';\nimport {\n\tcalculateCloseTransform,\n\tdecodeHTMLEntities,\n\texecuteAfterAnimation,\n\tfindWhatsNewButton,\n\thideJoyrideArrow,\n} from './utils';\n\nconst MajorUpdatePopup: React.FC<MajorUpdatePopupProps> = ({\n\tfeature,\n\tcurrentIndex,\n\ttotalFeatures,\n\tonSkip,\n\tonExplore,\n\tonPrevious,\n\tonNext,\n\tsetIsClosing: setIsClosingParent,\n\tonSecondaryAction,\n\tratio = '16:9',\n\tpadding,\n}) => {\n\tconst [isClosing, setIsClosing] = useState(false);\n\tconst [startAnimation, setStartAnimation] = useState(false);\n\tconst [transform, setTransform] = useState('');\n\tconst popupRef = useRef<HTMLDivElement>(null);\n\tconst [isVideoPaused, setIsVideoPaused] = useState(false);\n\tconst [showPlayIcon, setShowPlayIcon] = useState(true);\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst [imageAspectRatio, setImageAspectRatio] = useState<\n\t\t'16:9' | '1:1' | '4:3'\n\t>(ratio);\n\n\tconst imageRef = useRef<HTMLImageElement>(null);\n\n\tuseEffect(() => {\n\t\tif (isClosing) {\n\t\t\t// Start the shrink animation immediately\n\t\t\tsetStartAnimation(true);\n\t\t}\n\t}, [isClosing]);\n\n\tconst handleClose = (callback: () => Promise<void> | void): void => {\n\t\thideJoyrideArrow(popupRef.current);\n\n\t\tconst targetButton = findWhatsNewButton();\n\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(callback);\n\t};\n\n\tconst handleImageLoad = (e: React.SyntheticEvent<HTMLImageElement>) => {\n\t\tconst img = e.currentTarget;\n\t\tconst width = img.naturalWidth;\n\t\tconst height = img.naturalHeight;\n\n\t\tif (width && height) {\n\t\t\tconst aspectRatio = width / height;\n\n\t\t\t// Determine closest predefined ratio\n\t\t\tif (Math.abs(aspectRatio - 16 / 9) < 0.1) {\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (Math.abs(aspectRatio - 1) < 0.1) {\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t} else if (Math.abs(aspectRatio - 4 / 3) < 0.1) {\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else if (aspectRatio > 1.5) {\n\t\t\t\t// Wide images default to 16:9\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (aspectRatio < 0.9) {\n\t\t\t\t// Tall images default to 4:3\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else {\n\t\t\t\t// Close to square, use 1:1\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleVideoLoadedMetadata = (\n\t\te: React.SyntheticEvent<HTMLVideoElement>,\n\t) => {\n\t\tconst video = e.currentTarget;\n\t\tconst width = video.videoWidth;\n\t\tconst height = video.videoHeight;\n\n\t\tif (width && height) {\n\t\t\tconst aspectRatio = width / height;\n\n\t\t\tif (Math.abs(aspectRatio - 16 / 9) < 0.1) {\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (Math.abs(aspectRatio - 1) < 0.1) {\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t} else if (Math.abs(aspectRatio - 4 / 3) < 0.1) {\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else if (aspectRatio > 1.5) {\n\t\t\t\t// Wide videos default to 16:9\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (aspectRatio < 0.9) {\n\t\t\t\t// Tall videos default to 4:3\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else {\n\t\t\t\t// Close to square, use 1:1\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleExplore = (): void => {\n\t\tconst action = feature.primaryButton?.action;\n\n\t\tif (action === 'Open link') {\n\t\t\tconst url = feature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tonExplore(action);\n\n\t\t// Run closing animation in background\n\t\thideJoyrideArrow(popupRef.current);\n\t\tconst targetButton = findWhatsNewButton();\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t};\n\n\tconst handleSkipClick = (e: React.MouseEvent<HTMLButtonElement>): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\thandleClose(onSkip);\n\t};\n\n\tconst handlePreviousClick = (\n\t\te: React.MouseEvent<HTMLButtonElement>,\n\t): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tonPrevious();\n\t};\n\n\tconst handleNextClick = (e: React.MouseEvent<HTMLButtonElement>): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tonNext();\n\t};\n\n\tconst handleSecondaryAction = (e: React.MouseEvent): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tconst action = feature.secondaryButton?.action;\n\t\tconst closeCallback = onSecondaryAction || onSkip;\n\t\tlet internalUrl: string | null = null;\n\n\t\t// Handle based on action type\n\t\tif (action === 'Play Video') {\n\t\t\tonExplore('Play Video');\n\t\t} else if (action === 'Open link') {\n\t\t\tconst url = feature.secondaryButton?.redirectionUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t} else {\n\t\t\t\t\tinternalUrl = url;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (action === 'Close popup' || action === '') {\n\t\t\t// Just close the popup (empty action also closes)\n\t\t\t// callback is executed after closing animation completes\n\t\t}\n\n\t\t// Always close popup after secondary action\n\t\thideJoyrideArrow(popupRef.current);\n\t\tconst targetButton = findWhatsNewButton();\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(async () => {\n\t\t\tawait closeCallback();\n\t\t\tif (internalUrl) {\n\t\t\t\twindow.location.href = internalUrl;\n\t\t\t}\n\t\t});\n\t};\n\n\tconst styles = getMajorPopupStyles(\n\t\tstartAnimation,\n\t\ttransform,\n\t\timageAspectRatio,\n\t\tpadding || feature.padding,\n\t\tfeature.primaryButton?.style,\n\t\tfeature.secondaryButton?.style,\n\t);\n\n\tconst handleVideoClick = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (videoRef.current) {\n\t\t\tif (videoRef.current.paused) {\n\t\t\t\tvideoRef.current.play();\n\t\t\t\tsetIsVideoPaused(false);\n\t\t\t\tsetShowPlayIcon(false);\n\t\t\t} else {\n\t\t\t\tvideoRef.current.pause();\n\t\t\t\tsetIsVideoPaused(true);\n\t\t\t\tsetShowPlayIcon(true);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleVideoKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tif (videoRef.current) {\n\t\t\t\tif (videoRef.current.paused) {\n\t\t\t\t\tvideoRef.current.play();\n\t\t\t\t\tsetIsVideoPaused(false);\n\t\t\t\t\tsetShowPlayIcon(false);\n\t\t\t\t} else {\n\t\t\t\t\tvideoRef.current.pause();\n\t\t\t\t\tsetIsVideoPaused(true);\n\t\t\t\t\tsetShowPlayIcon(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t<div style={styles.outerWrapper}>\n\t\t\t<div\n\t\t\t\tref={popupRef}\n\t\t\t\tstyle={{\n\t\t\t\t\t...styles.container,\n\t\t\t\t\topacity: startAnimation ? 0 : 1,\n\t\t\t\t\ttransition: 'opacity 0.2s ease-in-out, transform 0.3s ease',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<style>{`\n\t\t\t\t[data-popup-content] ul {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding-left: 20px;\n\t\t\t\t\tlist-style-type: disc;\n\t\t\t\t}\n\t\t\t\t[data-popup-content] ul li {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\tcolor: rgba(255, 255, 255, 0.8);\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tline-height: 16px;\n\t\t\t\t\tfont-family: Inter, sans-serif;\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t\t\t{/* Content Wrapper - contains image and text side by side */}\n\t\t\t\t<div style={styles.contentWrapper}>\n\t\t\t\t\t{/* Image/Video section */}\n\t\t\t\t\t<div style={styles.imageContainer}>\n\t\t\t\t\t\t{feature.productVideo ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<video\n\t\t\t\t\t\t\t\t\tref={videoRef}\n\t\t\t\t\t\t\t\t\tsrc={feature.productVideo}\n\t\t\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\t\t\t\tcontrols\n\t\t\t\t\t\t\t\t\taria-label={`Product video for ${feature.title}`}\n\t\t\t\t\t\t\t\t\tonLoadedMetadata={handleVideoLoadedMetadata}\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t{(isVideoPaused || showPlayIcon) && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={styles.videoOverlay}\n\t\t\t\t\t\t\t\t\t\tonClick={handleVideoClick}\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t\t\t\taria-label={isVideoPaused ? 'Play video' : 'Pause video'}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleVideoKeyDown}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlayIcon width={20} height={20} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : feature.displayImage ? (\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tref={imageRef}\n\t\t\t\t\t\t\t\tsrc={feature.displayImage}\n\t\t\t\t\t\t\t\talt={feature.title}\n\t\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\t\tonLoad={handleImageLoad}\n\t\t\t\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\t\t\t\tif (feature.image) {\n\t\t\t\t\t\t\t\t\t\t(e.target as HTMLImageElement).src = feature.image;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div style={styles.imagePlaceholder}>\n\t\t\t\t\t\t\t\t{TEXT.FEATURE_PREVIEW_PLACEHOLDER}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Content section */}\n\t\t\t\t\t<div style={styles.contentContainer}>\n\t\t\t\t\t\t{/* Skip Button at top-right */}\n\t\t\t\t\t\t<div style={styles.skipButtonContainer}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={handleSkipClick}\n\t\t\t\t\t\t\t\tstyle={styles.skipButton.base}\n\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\tObject.assign(e.currentTarget.style, styles.skipButton.hover)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\tObject.assign(e.currentTarget.style, styles.skipButton.base)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-label=\"Skip feature announcement\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSkip\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Title */}\n\t\t\t\t\t\t<h3 style={styles.title}>{feature.title}</h3>\n\n\t\t\t\t\t\t{/* Content/Description */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-popup-content\n\t\t\t\t\t\t\tstyle={styles.content}\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t__html: decodeHTMLEntities(\n\t\t\t\t\t\t\t\t\tfeature.content || feature.body || '',\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\n\t\t\t\t\t\t{/* Actions - Buttons and Navigation */}\n\t\t\t\t\t\t<div style={styles.actionsWrapper}>\n\t\t\t\t\t\t\t<div style={styles.buttonsGroup}>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tonClick={handleExplore}\n\t\t\t\t\t\t\t\t\tstyle={styles.exploreButton.base}\n\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\tstyles.exploreButton.hover,\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\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\tstyles.exploreButton.base,\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\t\t{feature.primaryButton?.text ||\n\t\t\t\t\t\t\t\t\t\tfeature.buttonText ||\n\t\t\t\t\t\t\t\t\t\tTEXT.DEFAULT_BUTTON_TEXT}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t{/* Secondary Button (Optional) */}\n\t\t\t\t\t\t\t\t{feature.secondaryButton?.text &&\n\t\t\t\t\t\t\t\t\t(feature.secondaryButton?.redirectionUrl &&\n\t\t\t\t\t\t\t\t\tfeature.secondaryButton?.action !== 'Play Video' ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={feature.secondaryButton.redirectionUrl}\n\t\t\t\t\t\t\t\t\t\t\ttarget={\n\t\t\t\t\t\t\t\t\t\t\t\tfeature.secondaryButton.redirectionUrl.startsWith(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'http',\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '_blank'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: '_self'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\t\t\t\t\tfeature.secondaryButton.redirectionUrl.startsWith(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'http',\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'noopener noreferrer'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleSecondaryAction}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.secondaryButton.base}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.hover,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.base,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleSecondaryAction}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.secondaryButton.base}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.hover,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.base,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Navigation arrows */}\n\t\t\t\t\t\t\t{totalFeatures > 1 && (\n\t\t\t\t\t\t\t\t<div style={styles.navigationContainer}>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tonClick={handlePreviousClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={currentIndex === 0}\n\t\t\t\t\t\t\t\t\t\tstyle={styles.navigationButton(currentIndex === 0).base}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).hover,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).base,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Previous feature\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Arrow style={{ transform: 'rotate(180deg)' }} />\n\t\t\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tonClick={handleNextClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={currentIndex === totalFeatures - 1}\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === totalFeatures - 1,\n\t\t\t\t\t\t\t\t\t\t\t).base\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== totalFeatures - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).hover,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== totalFeatures - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === totalFeatures - 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t).base,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Next feature\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Arrow />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t{/* Close contentWrapper */}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MajorUpdatePopup;\n"],"names":["MajorUpdatePopup","feature","currentIndex","totalFeatures","onSkip","onExplore","onPrevious","onNext","setIsClosingParent","onSecondaryAction","ratio","padding","isClosing","setIsClosing","useState","startAnimation","setStartAnimation","transform","setTransform","popupRef","useRef","isVideoPaused","setIsVideoPaused","showPlayIcon","setShowPlayIcon","videoRef","imageAspectRatio","setImageAspectRatio","imageRef","useEffect","handleClose","callback","hideJoyrideArrow","targetButton","findWhatsNewButton","transformValue","calculateCloseTransform","executeAfterAnimation","handleImageLoad","e","img","width","height","aspectRatio","handleVideoLoadedMetadata","video","handleExplore","action","url","handleSkipClick","handlePreviousClick","handleNextClick","handleSecondaryAction","closeCallback","internalUrl","styles","getMajorPopupStyles","handleVideoClick","handleVideoKeyDown","jsx","jsxs","Fragment","PlayIcon","TEXT","decodeHTMLEntities","Arrow"],"mappings":"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"}
|
|
@@ -1,68 +1,69 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useState as d, useRef as
|
|
3
|
-
import { TEXT as
|
|
4
|
-
import { getMinorPopupStyles as
|
|
5
|
-
import { decodeHTMLEntities as
|
|
6
|
-
import { hideJoyrideArrow as
|
|
7
|
-
import { findFeatureTagElement as
|
|
8
|
-
const
|
|
1
|
+
import { jsxs as c, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useState as d, useRef as w, useEffect as U } from "react";
|
|
3
|
+
import { TEXT as h } from "./constants/index.js";
|
|
4
|
+
import { getMinorPopupStyles as _ } from "./styles/minorPopup.styles.js";
|
|
5
|
+
import { decodeHTMLEntities as k } from "./utils/htmlHelpers.js";
|
|
6
|
+
import { hideJoyrideArrow as f, calculateCloseTransform as T, executeAfterAnimation as P } from "./utils/animationHelpers.js";
|
|
7
|
+
import { findFeatureTagElement as S } from "./utils/elementHelpers.js";
|
|
8
|
+
const D = ({
|
|
9
9
|
feature: t,
|
|
10
|
-
currentIndex:
|
|
11
|
-
totalFeatures:
|
|
12
|
-
onSkip:
|
|
13
|
-
onExplore:
|
|
14
|
-
onPrevious:
|
|
15
|
-
onNext:
|
|
16
|
-
setIsClosing:
|
|
17
|
-
onSecondaryAction: x
|
|
10
|
+
currentIndex: W,
|
|
11
|
+
totalFeatures: b,
|
|
12
|
+
onSkip: E,
|
|
13
|
+
onExplore: m,
|
|
14
|
+
onPrevious: I,
|
|
15
|
+
onNext: L,
|
|
16
|
+
setIsClosing: p
|
|
18
17
|
}) => {
|
|
19
|
-
const [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}, [
|
|
23
|
-
const
|
|
18
|
+
const [y, u] = d(!1), [x, C] = d(!1), [v, a] = d(""), o = w(null);
|
|
19
|
+
U(() => {
|
|
20
|
+
y && C(!0);
|
|
21
|
+
}, [y]);
|
|
22
|
+
const A = () => {
|
|
24
23
|
const i = t.primaryButton?.action;
|
|
25
24
|
if (i === "Open link") {
|
|
26
25
|
const s = t.primaryButton?.redirectionUrl || t.redirectUrl;
|
|
27
26
|
s && s.startsWith("http") && window.open(s, "_blank", "noopener,noreferrer");
|
|
28
27
|
}
|
|
29
|
-
if (
|
|
28
|
+
if (m(i), f(o.current), o.current && t.featureTag) {
|
|
30
29
|
const s = t.featureTag.startsWith("#") || t.featureTag.startsWith(".") || t.featureTag.startsWith("[") ? t.featureTag : `#${t.featureTag}`, l = document.querySelector(s);
|
|
31
30
|
if (l) {
|
|
32
31
|
const n = T(
|
|
33
32
|
o.current,
|
|
34
33
|
l
|
|
35
34
|
);
|
|
36
|
-
|
|
35
|
+
a(n);
|
|
37
36
|
} else
|
|
38
|
-
|
|
37
|
+
a("scale(0)");
|
|
39
38
|
} else
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
},
|
|
43
|
-
const i = t.secondaryButton?.action, s =
|
|
39
|
+
a("scale(0)");
|
|
40
|
+
p?.(!0), u(!0);
|
|
41
|
+
}, B = () => {
|
|
42
|
+
const i = t.secondaryButton?.action, s = E;
|
|
44
43
|
let l = null;
|
|
45
|
-
if (i === "
|
|
44
|
+
if (i === "Play Video")
|
|
45
|
+
m("Play Video");
|
|
46
|
+
else if (i === "Open link") {
|
|
46
47
|
const n = t.secondaryButton?.redirectionUrl;
|
|
47
48
|
n && (n.startsWith("http") ? window.open(n, "_blank", "noopener,noreferrer") : l = n);
|
|
48
49
|
}
|
|
49
|
-
if (
|
|
50
|
-
const n =
|
|
50
|
+
if (f(o.current), o.current && t.featureTag) {
|
|
51
|
+
const n = S(t.featureTag);
|
|
51
52
|
if (n) {
|
|
52
|
-
const
|
|
53
|
+
const g = T(
|
|
53
54
|
o.current,
|
|
54
55
|
n
|
|
55
56
|
);
|
|
56
|
-
|
|
57
|
+
a(g);
|
|
57
58
|
} else
|
|
58
|
-
|
|
59
|
+
a("scale(0)");
|
|
59
60
|
} else
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
await s(
|
|
61
|
+
a("scale(0)");
|
|
62
|
+
p?.(!0), u(!0), P(async () => {
|
|
63
|
+
await s(), l && (window.location.href = l);
|
|
63
64
|
});
|
|
64
|
-
}, e =
|
|
65
|
-
return /* @__PURE__ */
|
|
65
|
+
}, e = _(x, v);
|
|
66
|
+
return /* @__PURE__ */ c("div", { ref: o, style: e.container, children: [
|
|
66
67
|
/* @__PURE__ */ r("div", { style: e.imageContainer, children: t.displayImage ? /* @__PURE__ */ r("div", { style: e.imageWrapper, children: /* @__PURE__ */ r(
|
|
67
68
|
"img",
|
|
68
69
|
{
|
|
@@ -73,28 +74,28 @@ const N = ({
|
|
|
73
74
|
t.image && (i.target.src = t.image);
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
|
-
) }) : /* @__PURE__ */ r("div", { style: e.imagePlaceholder, children:
|
|
77
|
-
/* @__PURE__ */
|
|
78
|
-
/* @__PURE__ */
|
|
77
|
+
) }) : /* @__PURE__ */ r("div", { style: e.imagePlaceholder, children: h.FEATURE_PREVIEW_PLACEHOLDER }) }),
|
|
78
|
+
/* @__PURE__ */ c("div", { style: e.contentContainer, children: [
|
|
79
|
+
/* @__PURE__ */ c("div", { children: [
|
|
79
80
|
/* @__PURE__ */ r("h3", { style: e.title, children: t.title }),
|
|
80
81
|
/* @__PURE__ */ r(
|
|
81
82
|
"div",
|
|
82
83
|
{
|
|
83
84
|
style: e.content,
|
|
84
85
|
dangerouslySetInnerHTML: {
|
|
85
|
-
__html:
|
|
86
|
+
__html: k(t.content || t.body || "")
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
)
|
|
89
90
|
] }),
|
|
90
|
-
/* @__PURE__ */
|
|
91
|
-
t.secondaryButton?.text && /* @__PURE__ */ r("span", { onClick:
|
|
92
|
-
/* @__PURE__ */ r("button", { onClick:
|
|
91
|
+
/* @__PURE__ */ c("div", { style: e.actionsContainer, children: [
|
|
92
|
+
t.secondaryButton?.text && /* @__PURE__ */ r("span", { onClick: B, style: e.understoodText, children: t.secondaryButton.text }),
|
|
93
|
+
/* @__PURE__ */ r("button", { onClick: A, style: e.exploreButton, children: t.primaryButton?.text || t.buttonText || h.DEFAULT_BUTTON_TEXT })
|
|
93
94
|
] })
|
|
94
95
|
] })
|
|
95
96
|
] });
|
|
96
97
|
};
|
|
97
98
|
export {
|
|
98
|
-
|
|
99
|
+
D as default
|
|
99
100
|
};
|
|
100
101
|
//# sourceMappingURL=MinorUpdatePopup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinorUpdatePopup.js","sources":["../../../../src/components/feature-announcements/MinorUpdatePopup.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { TEXT } from './constants';\nimport { getMinorPopupStyles } from './styles';\nimport { MinorUpdatePopupProps } from './types';\nimport {\n\tcalculateCloseTransform,\n\tdecodeHTMLEntities,\n\texecuteAfterAnimation,\n\tfindFeatureTagElement,\n\thideJoyrideArrow,\n} from './utils';\n\nconst MinorUpdatePopup: React.FC<MinorUpdatePopupProps> = ({\n\tfeature,\n\tcurrentIndex,\n\ttotalFeatures,\n\tonSkip,\n\tonExplore,\n\tonPrevious,\n\tonNext,\n\tsetIsClosing: setIsClosingParent,\n
|
|
1
|
+
{"version":3,"file":"MinorUpdatePopup.js","sources":["../../../../src/components/feature-announcements/MinorUpdatePopup.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { TEXT } from './constants';\nimport { getMinorPopupStyles } from './styles';\nimport { MinorUpdatePopupProps } from './types';\nimport {\n\tcalculateCloseTransform,\n\tdecodeHTMLEntities,\n\texecuteAfterAnimation,\n\tfindFeatureTagElement,\n\thideJoyrideArrow,\n} from './utils';\n\nconst MinorUpdatePopup: React.FC<MinorUpdatePopupProps> = ({\n\tfeature,\n\tcurrentIndex,\n\ttotalFeatures,\n\tonSkip,\n\tonExplore,\n\tonPrevious,\n\tonNext,\n\tsetIsClosing: setIsClosingParent,\n}) => {\n\tconst [isClosing, setIsClosing] = useState(false);\n\tconst [startAnimation, setStartAnimation] = useState(false);\n\tconst [transform, setTransform] = useState('');\n\tconst popupRef = useRef<HTMLDivElement>(null);\n\n\t// Hide Joyride arrow when closing starts, then trigger animation immediately\n\tuseEffect(() => {\n\t\tif (isClosing) {\n\t\t\t// Start the shrink animation immediately\n\t\t\tsetStartAnimation(true);\n\t\t}\n\t}, [isClosing]);\n\n\tconst handleExplore = (): void => {\n\t\tconst action = feature.primaryButton?.action;\n\n\t\tif (action === 'Open link') {\n\t\t\tconst url = feature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tonExplore(action);\n\n\t\t// Run closing animation in background\n\t\thideJoyrideArrow(popupRef.current);\n\t\tif (popupRef.current && feature.featureTag) {\n\t\t\tconst targetSelector =\n\t\t\t\tfeature.featureTag.startsWith('#') ||\n\t\t\t\tfeature.featureTag.startsWith('.') ||\n\t\t\t\tfeature.featureTag.startsWith('[')\n\t\t\t\t\t? feature.featureTag\n\t\t\t\t\t: `#${feature.featureTag}`;\n\t\t\tconst targetElement = document.querySelector(targetSelector);\n\t\t\tif (targetElement) {\n\t\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\t\tpopupRef.current,\n\t\t\t\t\ttargetElement,\n\t\t\t\t);\n\t\t\t\tsetTransform(transformValue);\n\t\t\t} else {\n\t\t\t\tsetTransform('scale(0)');\n\t\t\t}\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t};\n\n\tconst handleSecondaryAction = (): void => {\n\t\tconst action = feature.secondaryButton?.action;\n\t\tconst closeCallback = onSkip;\n\t\tlet internalUrl: string | null = null;\n\n\t\t// Handle based on action type\n\t\tif (action === 'Play Video') {\n\t\t\tonExplore('Play Video');\n\t\t} else if (action === 'Open link') {\n\t\t\tconst url = feature.secondaryButton?.redirectionUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t} else {\n\t\t\t\t\tinternalUrl = url;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (action === 'Close popup' || action === '') {\n\t\t\t// Just close the popup\n\t\t}\n\n\t\t// Always close popup after secondary action\n\t\thideJoyrideArrow(popupRef.current);\n\t\tif (popupRef.current && feature.featureTag) {\n\t\t\tconst targetElement = findFeatureTagElement(feature.featureTag);\n\t\t\tif (targetElement) {\n\t\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\t\tpopupRef.current,\n\t\t\t\t\ttargetElement,\n\t\t\t\t);\n\t\t\t\tsetTransform(transformValue);\n\t\t\t} else {\n\t\t\t\tsetTransform('scale(0)');\n\t\t\t}\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(async () => {\n\t\t\tawait closeCallback();\n\t\t\tif (internalUrl) {\n\t\t\t\twindow.location.href = internalUrl;\n\t\t\t}\n\t\t});\n\t};\n\n\tconst styles = getMinorPopupStyles(startAnimation, transform);\n\n\treturn (\n\t\t<div ref={popupRef} style={styles.container}>\n\t\t\t{/* Image section */}\n\t\t\t<div style={styles.imageContainer}>\n\t\t\t\t{feature.displayImage ? (\n\t\t\t\t\t<div style={styles.imageWrapper}>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={feature.displayImage}\n\t\t\t\t\t\t\talt={feature.title}\n\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\t\t\tif (feature.image) {\n\t\t\t\t\t\t\t\t\t(e.target as HTMLImageElement).src = feature.image;\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\t<div style={styles.imagePlaceholder}>\n\t\t\t\t\t\t{TEXT.FEATURE_PREVIEW_PLACEHOLDER}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Content section */}\n\t\t\t<div style={styles.contentContainer}>\n\t\t\t\t<div>\n\t\t\t\t\t<h3 style={styles.title}>{feature.title}</h3>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={styles.content}\n\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t__html: decodeHTMLEntities(feature.content || feature.body || ''),\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Action buttons */}\n\t\t\t\t<div style={styles.actionsContainer}>\n\t\t\t\t\t{/* Secondary Button (if configured, shows as text link on left) */}\n\t\t\t\t\t{feature.secondaryButton?.text && (\n\t\t\t\t\t\t<span onClick={handleSecondaryAction} style={styles.understoodText}>\n\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Primary Button (always shows) */}\n\t\t\t\t\t<button onClick={handleExplore} style={styles.exploreButton}>\n\t\t\t\t\t\t{feature.primaryButton?.text ||\n\t\t\t\t\t\t\tfeature.buttonText ||\n\t\t\t\t\t\t\tTEXT.DEFAULT_BUTTON_TEXT}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MinorUpdatePopup;\n"],"names":["MinorUpdatePopup","feature","currentIndex","totalFeatures","onSkip","onExplore","onPrevious","onNext","setIsClosingParent","isClosing","setIsClosing","useState","startAnimation","setStartAnimation","transform","setTransform","popupRef","useRef","useEffect","handleExplore","action","url","hideJoyrideArrow","targetSelector","targetElement","transformValue","calculateCloseTransform","handleSecondaryAction","closeCallback","internalUrl","findFeatureTagElement","executeAfterAnimation","styles","getMinorPopupStyles","jsx","e","TEXT","jsxs","decodeHTMLEntities"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export interface PopupBaseProps {
|
|
|
13
13
|
onPrevious: () => void;
|
|
14
14
|
onNext: () => void;
|
|
15
15
|
setIsClosing?: (isClosing: boolean) => void;
|
|
16
|
-
onSecondaryAction?: (
|
|
16
|
+
onSecondaryAction?: () => Promise<void> | void;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Major update popup props
|
|
@@ -24,4 +24,36 @@ export declare const CurrencySymbols: {
|
|
|
24
24
|
SGD: string;
|
|
25
25
|
PKR: string;
|
|
26
26
|
RO: string;
|
|
27
|
+
KES: string;
|
|
28
|
+
NGN: string;
|
|
29
|
+
HKD: string;
|
|
30
|
+
TWD: string;
|
|
31
|
+
THB: string;
|
|
32
|
+
MYR: string;
|
|
33
|
+
IDR: string;
|
|
34
|
+
PHP: string;
|
|
35
|
+
VND: string;
|
|
36
|
+
BDT: string;
|
|
37
|
+
LKR: string;
|
|
38
|
+
NPR: string;
|
|
39
|
+
NOK: string;
|
|
40
|
+
PLN: string;
|
|
41
|
+
CZK: string;
|
|
42
|
+
HUF: string;
|
|
43
|
+
RON: string;
|
|
44
|
+
BGN: string;
|
|
45
|
+
UAH: string;
|
|
46
|
+
ILS: string;
|
|
47
|
+
QAR: string;
|
|
48
|
+
KWD: string;
|
|
49
|
+
BHD: string;
|
|
50
|
+
OMR: string;
|
|
51
|
+
JOD: string;
|
|
52
|
+
GHS: string;
|
|
53
|
+
TZS: string;
|
|
54
|
+
UGX: string;
|
|
55
|
+
ARS: string;
|
|
56
|
+
CLP: string;
|
|
57
|
+
COP: string;
|
|
58
|
+
PEN: string;
|
|
27
59
|
};
|
|
@@ -23,7 +23,39 @@ const R = {
|
|
|
23
23
|
KRW: "₩",
|
|
24
24
|
SGD: "S$",
|
|
25
25
|
PKR: "Rs",
|
|
26
|
-
RO: "lei"
|
|
26
|
+
RO: "lei",
|
|
27
|
+
KES: "KSh",
|
|
28
|
+
NGN: "₦",
|
|
29
|
+
HKD: "HK$",
|
|
30
|
+
TWD: "NT$",
|
|
31
|
+
THB: "฿",
|
|
32
|
+
MYR: "RM",
|
|
33
|
+
IDR: "Rp",
|
|
34
|
+
PHP: "₱",
|
|
35
|
+
VND: "₫",
|
|
36
|
+
BDT: "৳",
|
|
37
|
+
LKR: "Rs",
|
|
38
|
+
NPR: "Rs",
|
|
39
|
+
NOK: "kr",
|
|
40
|
+
PLN: "zł",
|
|
41
|
+
CZK: "Kč",
|
|
42
|
+
HUF: "Ft",
|
|
43
|
+
RON: "lei",
|
|
44
|
+
BGN: "лв",
|
|
45
|
+
UAH: "₴",
|
|
46
|
+
ILS: "₪",
|
|
47
|
+
QAR: "ر.ق",
|
|
48
|
+
KWD: "د.ك",
|
|
49
|
+
BHD: "د.ب",
|
|
50
|
+
OMR: "ر.ع.",
|
|
51
|
+
JOD: "د.ا",
|
|
52
|
+
GHS: "₵",
|
|
53
|
+
TZS: "TSh",
|
|
54
|
+
UGX: "USh",
|
|
55
|
+
ARS: "$",
|
|
56
|
+
CLP: "$",
|
|
57
|
+
COP: "$",
|
|
58
|
+
PEN: "S/"
|
|
27
59
|
};
|
|
28
60
|
export {
|
|
29
61
|
R as CurrencySymbols
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/components/product-picker-v2/constants.ts"],"sourcesContent":["export const CurrencySymbols = {\n\tUSD: '$',\n\tGBP: '£',\n\tCAD: 'C$',\n\tAUD: 'A$',\n\tDKK: 'DKK',\n\tSEK: 'SEK',\n\tEUR: '€',\n\tBRL: 'R$',\n\tTRY: '₺',\n\tJPY: '¥',\n\tSAR: 'ر.س',\n\tAED: 'د.إ',\n\tEGP: 'E£',\n\tMAD: 'د.م.',\n\tINR: '₹',\n\tCHF: 'Fr',\n\tCNY: '¥',\n\tNZD: 'NZ$',\n\tMXN: 'Mex$',\n\tZAR: 'R',\n\tRUB: '₽',\n\tKRW: '₩',\n\tSGD: 'S$',\n\tPKR: 'Rs',\n\tRO: 'lei',\n};\n"],"names":["CurrencySymbols"],"mappings":"AAAO,MAAMA,IAAkB;AAAA,EAC9B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,IAAI;
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/components/product-picker-v2/constants.ts"],"sourcesContent":["export const CurrencySymbols = {\n\tUSD: '$',\n\tGBP: '£',\n\tCAD: 'C$',\n\tAUD: 'A$',\n\tDKK: 'DKK',\n\tSEK: 'SEK',\n\tEUR: '€',\n\tBRL: 'R$',\n\tTRY: '₺',\n\tJPY: '¥',\n\tSAR: 'ر.س',\n\tAED: 'د.إ',\n\tEGP: 'E£',\n\tMAD: 'د.م.',\n\tINR: '₹',\n\tCHF: 'Fr',\n\tCNY: '¥',\n\tNZD: 'NZ$',\n\tMXN: 'Mex$',\n\tZAR: 'R',\n\tRUB: '₽',\n\tKRW: '₩',\n\tSGD: 'S$',\n\tPKR: 'Rs',\n\tRO: 'lei',\n\tKES: 'KSh',\n\tNGN: '₦',\n\tHKD: 'HK$',\n\tTWD: 'NT$',\n\tTHB: '฿',\n\tMYR: 'RM',\n\tIDR: 'Rp',\n\tPHP: '₱',\n\tVND: '₫',\n\tBDT: '৳',\n\tLKR: 'Rs',\n\tNPR: 'Rs',\n\tNOK: 'kr',\n\tPLN: 'zł',\n\tCZK: 'Kč',\n\tHUF: 'Ft',\n\tRON: 'lei',\n\tBGN: 'лв',\n\tUAH: '₴',\n\tILS: '₪',\n\tQAR: 'ر.ق',\n\tKWD: 'د.ك',\n\tBHD: 'د.ب',\n\tOMR: 'ر.ع.',\n\tJOD: 'د.ا',\n\tGHS: '₵',\n\tTZS: 'TSh',\n\tUGX: 'USh',\n\tARS: '$',\n\tCLP: '$',\n\tCOP: '$',\n\tPEN: 'S/',\n};\n"],"names":["CurrencySymbols"],"mappings":"AAAO,MAAMA,IAAkB;AAAA,EAC9B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACN;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgPuzzlePiece: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgPuzzlePiece;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
const s = ({
|
|
3
|
+
size: C = 24,
|
|
4
|
+
color: r = "currentColor",
|
|
5
|
+
...t
|
|
6
|
+
}) => {
|
|
7
|
+
const e = {
|
|
8
|
+
width: C,
|
|
9
|
+
height: C,
|
|
10
|
+
color: r,
|
|
11
|
+
...t
|
|
12
|
+
};
|
|
13
|
+
return /* @__PURE__ */ o(
|
|
14
|
+
"svg",
|
|
15
|
+
{
|
|
16
|
+
viewBox: "0 0 20 20",
|
|
17
|
+
fill: "none",
|
|
18
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
19
|
+
...e,
|
|
20
|
+
children: /* @__PURE__ */ o(
|
|
21
|
+
"path",
|
|
22
|
+
{
|
|
23
|
+
d: "M5.75377 17.0038C5.58801 17.0038 5.42904 16.9379 5.31183 16.8207C5.19462 16.7035 5.12877 16.5445 5.12877 16.3788V13.0428C4.78589 13.2064 4.40588 13.2765 4.02721 13.246C3.70658 13.2224 3.39508 13.1285 3.11489 12.9708C2.8347 12.8132 2.59269 12.5957 2.40611 12.3339C2.21952 12.0721 2.09294 11.7724 2.03536 11.4561C1.97779 11.1398 1.99064 10.8147 2.07301 10.5039C2.15537 10.1932 2.30522 9.90436 2.51189 9.6581C2.71857 9.41184 2.97698 9.21416 3.26874 9.07913C3.56051 8.9441 3.87845 8.87505 4.19994 8.87687C4.52143 8.8787 4.83856 8.95137 5.12877 9.08971V5.75377C5.12877 5.58801 5.19462 5.42904 5.31183 5.31183C5.42904 5.19462 5.58801 5.12877 5.75377 5.12877H9.40221C9.23864 4.78589 9.16857 4.40588 9.19908 4.02721C9.22264 3.70658 9.31658 3.39508 9.47422 3.11489C9.63186 2.8347 9.84933 2.59269 10.1111 2.40611C10.3729 2.21952 10.6727 2.09294 10.989 2.03536C11.3053 1.97779 11.6304 1.99064 11.9411 2.07301C12.2519 2.15537 12.5407 2.30522 12.7869 2.51189C13.0332 2.71857 13.2309 2.97698 13.3659 3.26874C13.5009 3.56051 13.57 3.87845 13.5682 4.19994C13.5663 4.52143 13.4937 4.83856 13.3553 5.12877H17.0038C17.1695 5.12877 17.3285 5.19462 17.4457 5.31183C17.5629 5.42904 17.6288 5.58801 17.6288 5.75377V9.08971C17.2859 8.92614 16.9059 8.85607 16.5272 8.88658C16.2066 8.91014 15.8951 9.00408 15.6149 9.16172C15.3347 9.31936 15.0927 9.53683 14.9061 9.79864C14.7195 10.0604 14.5929 10.3602 14.5354 10.6765C14.4778 10.9928 14.4906 11.3179 14.573 11.6286C14.6554 11.9394 14.8052 12.2282 15.0119 12.4744C15.2186 12.7207 15.477 12.9184 15.7687 13.0534C16.0605 13.1884 16.3784 13.2575 16.6999 13.2557C17.0214 13.2538 17.3386 13.1812 17.6288 13.0428V16.3788C17.6288 16.5445 17.5629 16.7035 17.4457 16.8207C17.3285 16.9379 17.1695 17.0038 17.0038 17.0038H5.75377Z",
|
|
24
|
+
stroke: "#212121",
|
|
25
|
+
strokeWidth: 1.5,
|
|
26
|
+
strokeLinecap: "round",
|
|
27
|
+
strokeLinejoin: "round"
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
export {
|
|
34
|
+
s as default
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=PuzzlePiece.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PuzzlePiece.js","sources":["../../../../../src/icons/Informational/Identity/PuzzlePiece.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\ninterface Props extends SVGProps<SVGSVGElement> {\n\tsize?: number | string;\n\tcolor?: string;\n}\nconst SvgPuzzlePiece = ({\n\tsize = 24,\n\tcolor = 'currentColor',\n\t...rest\n}: Props) => {\n\tconst props = {\n\t\twidth: size,\n\t\theight: size,\n\t\tcolor,\n\t\t...rest,\n\t};\n\treturn (\n\t\t<svg\n\t\t\tviewBox=\"0 0 20 20\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M5.75377 17.0038C5.58801 17.0038 5.42904 16.9379 5.31183 16.8207C5.19462 16.7035 5.12877 16.5445 5.12877 16.3788V13.0428C4.78589 13.2064 4.40588 13.2765 4.02721 13.246C3.70658 13.2224 3.39508 13.1285 3.11489 12.9708C2.8347 12.8132 2.59269 12.5957 2.40611 12.3339C2.21952 12.0721 2.09294 11.7724 2.03536 11.4561C1.97779 11.1398 1.99064 10.8147 2.07301 10.5039C2.15537 10.1932 2.30522 9.90436 2.51189 9.6581C2.71857 9.41184 2.97698 9.21416 3.26874 9.07913C3.56051 8.9441 3.87845 8.87505 4.19994 8.87687C4.52143 8.8787 4.83856 8.95137 5.12877 9.08971V5.75377C5.12877 5.58801 5.19462 5.42904 5.31183 5.31183C5.42904 5.19462 5.58801 5.12877 5.75377 5.12877H9.40221C9.23864 4.78589 9.16857 4.40588 9.19908 4.02721C9.22264 3.70658 9.31658 3.39508 9.47422 3.11489C9.63186 2.8347 9.84933 2.59269 10.1111 2.40611C10.3729 2.21952 10.6727 2.09294 10.989 2.03536C11.3053 1.97779 11.6304 1.99064 11.9411 2.07301C12.2519 2.15537 12.5407 2.30522 12.7869 2.51189C13.0332 2.71857 13.2309 2.97698 13.3659 3.26874C13.5009 3.56051 13.57 3.87845 13.5682 4.19994C13.5663 4.52143 13.4937 4.83856 13.3553 5.12877H17.0038C17.1695 5.12877 17.3285 5.19462 17.4457 5.31183C17.5629 5.42904 17.6288 5.58801 17.6288 5.75377V9.08971C17.2859 8.92614 16.9059 8.85607 16.5272 8.88658C16.2066 8.91014 15.8951 9.00408 15.6149 9.16172C15.3347 9.31936 15.0927 9.53683 14.9061 9.79864C14.7195 10.0604 14.5929 10.3602 14.5354 10.6765C14.4778 10.9928 14.4906 11.3179 14.573 11.6286C14.6554 11.9394 14.8052 12.2282 15.0119 12.4744C15.2186 12.7207 15.477 12.9184 15.7687 13.0534C16.0605 13.1884 16.3784 13.2575 16.6999 13.2557C17.0214 13.2538 17.3386 13.1812 17.6288 13.0428V16.3788C17.6288 16.5445 17.5629 16.7035 17.4457 16.8207C17.3285 16.9379 17.1695 17.0038 17.0038 17.0038H5.75377Z\"\n\t\t\t\tstroke=\"#212121\"\n\t\t\t\tstrokeWidth={1.5}\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t/>\n\t\t</svg>\n\t);\n};\nexport default SvgPuzzlePiece;\n"],"names":["SvgPuzzlePiece","size","color","rest","props","jsx"],"mappings":";AAMA,MAAMA,IAAiB,CAAC;AAAA,EACvB,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,GAAGC;AACJ,MAAa;AACZ,QAAMC,IAAQ;AAAA,IACb,OAAOH;AAAA,IACP,QAAQA;AAAA,IACR,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA;AAEJ,SACC,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACL,GAAGD;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAa;AAAA,UACb,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AAGH;"}
|
|
@@ -20,7 +20,7 @@ export { Bank, CashOnDelivery, ChartLine, CreditCard, Growth, Money1, NoCredits,
|
|
|
20
20
|
export { Percent as Percent2 } from './Informational/Finance';
|
|
21
21
|
export { BookOpenText, TicketV2, AlertTriangle, Check, CheckDouble, CloseTicket1, Error, FailDoc, HourglassFilled, IcList, Info, Merge, NewTicket, RoundCheck, Slash } from './Informational/General';
|
|
22
22
|
export { Help as Help2 } from './Informational/General';
|
|
23
|
-
export { User, Chatbot, Contacts, Group, IdCard, Person, Robot, Union, Union1, UserMinus1, UserPlus } from './Informational/Identity';
|
|
23
|
+
export { PuzzlePiece, User, Chatbot, Contacts, Group, IdCard, Person, Robot, Union, Union1, UserMinus1, UserPlus } from './Informational/Identity';
|
|
24
24
|
export { Address, LanguageChange, MapPin, Truck } from './Informational/Location';
|
|
25
25
|
export { AllProduct, Clipboard, CustomerReport, Head112, InventoryReport, LegalBalance, OrderReport, PaymentReport, Store, StoreSync, TicketForm } from './Informational/Store related';
|
|
26
26
|
export { ClipboardCheck as ClipboardCheck2 } from './Informational/Store related';
|