@cuemath/leap 2.8.60-beta-0.1 → 2.8.60-gs1

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.
Files changed (44) hide show
  1. package/dist/assets/line-icons/icons/bin2.js +7 -8
  2. package/dist/assets/line-icons/icons/bin2.js.map +1 -1
  3. package/dist/assets/line-icons/icons/skip-colored.js +43 -0
  4. package/dist/assets/line-icons/icons/skip-colored.js.map +1 -0
  5. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +1 -1
  6. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  7. package/dist/features/chapters-v2/chapter-details/chapter-details.js +24 -24
  8. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  9. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +76 -72
  10. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  11. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +62 -75
  12. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  13. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +127 -110
  14. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
  15. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +12 -4
  16. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
  17. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +128 -105
  18. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  19. package/dist/features/milestone/create/milestone-create.js +49 -43
  20. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  21. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
  22. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
  23. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +42 -40
  24. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  25. package/dist/features/milestone/edit/goal-edit-container.js +64 -62
  26. package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
  27. package/dist/features/milestone/edit/milestone-edit-container.js +54 -52
  28. package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
  29. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +61 -52
  30. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  31. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +28 -28
  32. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  33. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +120 -111
  34. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  35. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +16 -18
  36. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  37. package/dist/features/ui/lottie-animation/lottie-animation.js +39 -24
  38. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  39. package/dist/features/ui/theme/button.js +5 -5
  40. package/dist/features/ui/theme/button.js.map +1 -1
  41. package/dist/index.d.ts +6 -2
  42. package/dist/index.js +369 -367
  43. package/dist/index.js.map +1 -1
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tables-card.js","sources":["../../../../../../src/features/circle-games/game-launcher/comps/tables-card/tables-card.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../../ui/lottie-animation/types';\nimport type { TColorNames } from '../../../../ui/types';\nimport type {\n ITableInfo,\n TTableMode,\n} from '../../dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { ITableCardRef, ITablesCardProps } from './tables-card-types';\n\nimport React, {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport Back2Icon from '../../../../../assets/line-icons/icons/back2';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { useCircleSounds } from '../../../hooks/use-circle-sounds/use-circle-sounds';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from '../../game-launcher-analytics-events';\nimport { CardContainer } from '../card-container/card-container';\nimport { GAME_LAUNCHER_SIZE, GAME_LAUNCHER_SIZE_LARGE } from '../card-container/constants';\nimport { TABLE_MODE_LABEL_COLOR, TABLE_REVEAL_ANIMATION } from './constants';\nimport TableMode from './table-mode/table-mode';\nimport TableSegmentStar from './table-segment-star/table-segment-star';\nimport * as Styled from './tables-card-styled';\n\nconst animationSettings = {\n loop: false,\n autoplay: false,\n render: 'svg',\n};\n\nconst TablesCardComponent = forwardRef<ITableCardRef, ITablesCardProps>(\n (\n {\n data,\n label,\n onPress,\n openModesOfTable,\n defaultTable,\n onGoBackFromTableLevel,\n onPressTableSegment,\n },\n ref,\n ) => {\n const { onEvent: trackEvent } = useUIContext();\n const { playButtonSound } = useCircleSounds();\n const [fadeIn, setFadeIn] = useState(true);\n const [highlightedTable, setHighlightedTable] = useState<number | null>(\n openModesOfTable?.tableNumber ?? null,\n );\n const [highlightedLevel, setHighlightedLevel] = useState<number | null>(null);\n const [labelColor, setLabelColor] = useState<TColorNames>('WHITE_T_60');\n const [revealTableModes, setRevealTableModes] = useState<ITableInfo>({\n stars:\n data.tableList.find(table => table.tableNumber === openModesOfTable?.tableNumber)?.stars ??\n [],\n tableNumber: openModesOfTable?.tableNumber ?? 0,\n });\n\n const [showLabel, setShowLabel] = useState(true);\n const [isLabelAnimated, setIsLabelAnimated] = useState(false);\n const [animatedColor, setAniimatedColor] = useState<TColorNames>('WHITE_T_60');\n\n const labelRef = useRef<HTMLDivElement>(null);\n const cardRef = useRef<HTMLDivElement>(null);\n\n const [rewardStar, setRewardStar] = useState(openModesOfTable?.rewardStar ?? []);\n const [enableInfiniteMode] = useState(false);\n\n const revealAnimationRef = useRef<ILottieAnimationRef | null>(null);\n const disappearAnimationTimer = useRef<ReturnType<typeof setTimeout>>();\n\n const handleTableSegmentClick = useCallback(\n (table: ITableInfo) => {\n if (onPressTableSegment) {\n onPressTableSegment(table);\n\n return;\n }\n playButtonSound();\n setFadeIn(true);\n setHighlightedTable(table.tableNumber);\n setRevealTableModes({ ...table });\n setRewardStar([]);\n trackEvent(GAME_LAUNCHER_ANALYTICS_EVENTS.TABLE_SELECTED, {\n meta: {\n table_of: table.tableNumber,\n },\n });\n },\n [onPressTableSegment, playButtonSound, trackEvent],\n );\n\n const handleTableSegmentMouseOver = useCallback(\n (table: ITableInfo) => {\n setLabelColor(isLabelAnimated ? animatedColor : 'WHITE_T_60');\n setHighlightedTable(table.tableNumber);\n },\n [animatedColor, isLabelAnimated],\n );\n\n const handleTableSegmentMouseLeave = useCallback(() => {\n setLabelColor('WHITE_T_60');\n !revealTableModes.tableNumber && setHighlightedTable(null);\n }, [revealTableModes.tableNumber]);\n\n const goBack = useCallback(() => {\n onGoBackFromTableLevel?.();\n playButtonSound();\n setFadeIn(false);\n setHighlightedTable(null);\n const time = (TABLE_REVEAL_ANIMATION.DISAPPEAR[1] - TABLE_REVEAL_ANIMATION.DISAPPEAR[0]) / 30;\n\n revealAnimationRef.current?.playSegments(TABLE_REVEAL_ANIMATION.DISAPPEAR, true);\n disappearAnimationTimer.current = setTimeout(() => {\n setRevealTableModes({ stars: [], tableNumber: 0 });\n }, time * 1000);\n }, [onGoBackFromTableLevel, playButtonSound]);\n\n const showTableModes = useCallback(() => {\n revealAnimationRef.current?.playSegments(TABLE_REVEAL_ANIMATION.REVEAL, true);\n }, []);\n\n const handleModeMouseOver = useCallback((type: TTableMode) => {\n const level: Partial<Record<TTableMode, number>> = {\n sequence: 1,\n random: 2,\n advance: 3,\n };\n\n setLabelColor(TABLE_MODE_LABEL_COLOR[type] ?? 'WHITE_T_60');\n setHighlightedLevel(level[type] ?? 0);\n }, []);\n\n const handleModeMouseLeave = useCallback(() => {\n setHighlightedLevel(null);\n setLabelColor('WHITE_T_60');\n }, []);\n\n const revealTableModesMemo = useMemo(() => revealTableModes, [revealTableModes]);\n\n const tableModes = useMemo(() => {\n return [\n {\n top: 20,\n left: 10.5,\n type: 'sequence' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('sequence'),\n semicirclePosiiionTop: '-19%',\n semicirclePosiiionLeft: '-43%',\n semicircleHoverColor: '#B259004D',\n },\n {\n top: 20,\n left: 65.5,\n type: 'random' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('random'),\n semicirclePosiiionTop: '-19%',\n semicirclePosiiionLeft: '65%',\n semicircleHoverColor: '#0055CC4D',\n },\n {\n top: 66,\n left: 38,\n type: 'advance' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('advance'),\n semicirclePosiiionTop: '74%',\n semicirclePosiiionLeft: '11%',\n semicircleHoverColor: '#A9099C4D',\n },\n ];\n }, [revealTableModesMemo.tableNumber, revealTableModesMemo.stars]);\n\n // Disabled infinite mode\n const handleInfiniteModeClick = useCallback(() => {\n onPress({\n mode: 'infinite',\n infiniteModeHighScore: data.infiniteModeHighScore,\n });\n }, [onPress, data.infiniteModeHighScore]);\n\n const handleNormalModeClick = useCallback(\n (mode: TTableMode, isStarRewarded: boolean) => {\n onPress({\n mode,\n tableNumber: revealTableModes.tableNumber,\n isStarRewarded,\n });\n },\n [onPress, revealTableModes.tableNumber],\n );\n\n const getHighlightedText = useCallback(() => {\n if (highlightedLevel) {\n return `${highlightedTable}× LEVEL${highlightedLevel}`;\n }\n\n return highlightedTable ? `${highlightedTable}× Table` : label;\n }, [highlightedLevel, highlightedTable, label]);\n\n const startLabelAnimation = useCallback((color: TColorNames) => {\n setLabelColor(color);\n setAniimatedColor(color);\n setIsLabelAnimated(true);\n }, []);\n\n const stopLabelAnimation = useCallback(() => setIsLabelAnimated(false), []);\n const setLabelVisiblity = useCallback((visible: boolean) => setShowLabel(visible), []);\n\n useImperativeHandle(ref, () => ({\n labelRef: labelRef,\n segmentedCardWrapperRef: cardRef,\n startLabelAnimation,\n stopLabelAnimation,\n setLabelVisiblity,\n handleTableSegmentClick,\n }));\n\n useEffect(() => {\n return () => {\n disappearAnimationTimer.current && clearTimeout(disappearAnimationTimer.current);\n };\n }, []);\n\n // Used in trial journey, to open table levels by default if given in props\n useEffect(() => {\n if (defaultTable) {\n playButtonSound();\n setFadeIn(true);\n setHighlightedTable(defaultTable.tableNumber);\n setRevealTableModes({ ...defaultTable });\n }\n }, [defaultTable, playButtonSound]);\n\n return (\n <CardContainer\n labelRef={labelRef}\n ref={cardRef}\n strokeColor=\"WHITE\"\n label={getHighlightedText()}\n labelColor={labelColor}\n isAnimated={isLabelAnimated}\n showLabel={showLabel}\n >\n <Styled.CardWrapper>\n {/* table selection */}\n <Styled.TableSegmentsWrapper>\n {/* infinite button */}\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n hidden={enableInfiniteMode}\n tooltipItem={\n <Text $renderAs=\"ab3\" $color=\"WHITE\">\n Coming Soon\n </Text>\n }\n >\n <Styled.InfiniteButtonWrapper\n onClick={enableInfiniteMode ? handleInfiniteModeClick : undefined}\n >\n <Styled.AbsoluteView>\n <LottieAnimation src={LOTTIE.INFINITE_BUTTON_BG} />\n </Styled.AbsoluteView>\n <Styled.AbsoluteView>\n <LottieAnimation src={LOTTIE.INFINITE_BUTTON_SYMBOL} />\n </Styled.AbsoluteView>\n </Styled.InfiniteButtonWrapper>\n </ArrowTooltip>\n\n {/* card shadow */}\n <Styled.TableSegmentCardShadowContainer />\n\n {/* table segments */}\n {data.tableList.map((table, index) => {\n const segmentAngle = 360 / data.tableList.length;\n const startAngle = -(90 + 360 / (2 * data.tableList.length));\n const currentAngle = startAngle + segmentAngle * (index + 1);\n\n return (\n <Styled.TableSegment\n key={index}\n $angle={currentAngle}\n $totalSegments={data.tableList.length}\n $zIndex={index + 1}\n onClick={() => handleTableSegmentClick(table)}\n onMouseOver={() => handleTableSegmentMouseOver(table)}\n onMouseLeave={handleTableSegmentMouseLeave}\n >\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\">\n {['sequence', 'random', 'advance'].map(star => (\n <TableSegmentStar\n key={star}\n isStarAchieved={table.stars.includes(star as TTableMode)}\n rewardStar={\n !fadeIn && openModesOfTable?.tableNumber === table.tableNumber\n ? rewardStar.includes(star as TTableMode)\n : undefined\n }\n />\n ))}\n <Separator width={GAME_LAUNCHER_SIZE * 0.055} />\n\n <Styled.TableNumber $angle={-currentAngle}>\n <Text\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $color={highlightedTable === table.tableNumber ? 'BLACK_1' : 'WHITE'}\n >\n {table.tableNumber}\n </Text>\n </Styled.TableNumber>\n </FlexView>\n </Styled.TableSegment>\n );\n })}\n </Styled.TableSegmentsWrapper>\n\n {/* table modes */}\n {revealTableModes.tableNumber > 0 && (\n <Styled.TableModeContainer>\n <Styled.TableModeWrapper>\n {/* tables modes with back button */}\n <Styled.AnimatedView animation={fadeIn ? 'fade-in' : 'fade-out'}>\n {tableModes.map((tableMode, index) => (\n <React.Fragment key={index}>\n <Styled.ModeOverlay\n $top={tableMode.semicirclePosiiionTop}\n $left={tableMode.semicirclePosiiionLeft}\n $hoverColor={tableMode.semicircleHoverColor}\n onClick={() =>\n fadeIn\n ? handleNormalModeClick(tableMode.type, tableMode.isStarAchieved)\n : undefined\n }\n onMouseOver={() =>\n fadeIn ? handleModeMouseOver(tableMode.type as TTableMode) : undefined\n }\n onMouseLeave={fadeIn ? handleModeMouseLeave : undefined}\n />\n <Styled.AbsoluteView\n $top={tableMode.top}\n $left={tableMode.left}\n $isPointerEventsNone={true}\n >\n <TableMode\n tableNumber={tableMode.tableNumber}\n isStarAchieved={tableMode.isStarAchieved}\n type={tableMode.type as TTableMode}\n rewardStar={rewardStar.includes(tableMode.type as TTableMode)}\n />\n </Styled.AbsoluteView>\n </React.Fragment>\n ))}\n {/* back button */}\n <Styled.AbsoluteView $top={50} $left={50} $alignCenter={true}>\n <Styled.IconWrapper>\n <Back2Icon\n onClick={goBack}\n height={GAME_LAUNCHER_SIZE * 0.1}\n width={GAME_LAUNCHER_SIZE * 0.1}\n />\n </Styled.IconWrapper>\n </Styled.AbsoluteView>\n </Styled.AnimatedView>\n\n {/* overlay lottie for modes */}\n <LottieAnimation\n src={LOTTIE.TABLE_MODE_REVEAL}\n ref={revealAnimationRef}\n settings={animationSettings}\n onRender={showTableModes}\n />\n </Styled.TableModeWrapper>\n </Styled.TableModeContainer>\n )}\n </Styled.CardWrapper>\n </CardContainer>\n );\n },\n);\n\nexport const TablesCard = memo(TablesCardComponent);\n"],"names":["animationSettings","TablesCardComponent","forwardRef","data","label","onPress","openModesOfTable","defaultTable","onGoBackFromTableLevel","onPressTableSegment","ref","trackEvent","useUIContext","playButtonSound","useCircleSounds","fadeIn","setFadeIn","useState","highlightedTable","setHighlightedTable","highlightedLevel","setHighlightedLevel","labelColor","setLabelColor","revealTableModes","setRevealTableModes","_a","table","showLabel","setShowLabel","isLabelAnimated","setIsLabelAnimated","animatedColor","setAniimatedColor","labelRef","useRef","cardRef","rewardStar","setRewardStar","enableInfiniteMode","revealAnimationRef","disappearAnimationTimer","handleTableSegmentClick","useCallback","GAME_LAUNCHER_ANALYTICS_EVENTS","handleTableSegmentMouseOver","handleTableSegmentMouseLeave","goBack","time","TABLE_REVEAL_ANIMATION","showTableModes","handleModeMouseOver","type","level","TABLE_MODE_LABEL_COLOR","handleModeMouseLeave","revealTableModesMemo","useMemo","tableModes","handleInfiniteModeClick","handleNormalModeClick","mode","isStarRewarded","getHighlightedText","startLabelAnimation","color","stopLabelAnimation","setLabelVisiblity","visible","useImperativeHandle","useEffect","jsx","CardContainer","jsxs","Styled.CardWrapper","Styled.TableSegmentsWrapper","ArrowTooltip","Text","Styled.InfiniteButtonWrapper","Styled.AbsoluteView","LottieAnimation","LOTTIE","Styled.TableSegmentCardShadowContainer","index","segmentAngle","currentAngle","Styled.TableSegment","FlexView","star","TableSegmentStar","Separator","GAME_LAUNCHER_SIZE","Styled.TableNumber","GAME_LAUNCHER_SIZE_LARGE","Styled.TableModeContainer","Styled.TableModeWrapper","Styled.AnimatedView","tableMode","React","Styled.ModeOverlay","TableMode","Styled.IconWrapper","Back2Icon","TablesCard","memo"],"mappings":"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"}
1
+ {"version":3,"file":"tables-card.js","sources":["../../../../../../src/features/circle-games/game-launcher/comps/tables-card/tables-card.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../../ui/lottie-animation/types';\nimport type { TColorNames } from '../../../../ui/types';\nimport type {\n ITableInfo,\n TTableMode,\n} from '../../dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { ITableCardRef, ITablesCardProps } from './tables-card-types';\n\nimport React, {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport Back2Icon from '../../../../../assets/line-icons/icons/back2';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { useCircleSounds } from '../../../hooks/use-circle-sounds/use-circle-sounds';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from '../../game-launcher-analytics-events';\nimport { CardContainer } from '../card-container/card-container';\nimport { GAME_LAUNCHER_SIZE, GAME_LAUNCHER_SIZE_LARGE } from '../card-container/constants';\nimport { TABLE_MODE_LABEL_COLOR, TABLE_REVEAL_ANIMATION } from './constants';\nimport TableMode from './table-mode/table-mode';\nimport TableSegmentStar from './table-segment-star/table-segment-star';\nimport * as Styled from './tables-card-styled';\n\nconst rendererSettings = {\n renderer: 'svg',\n};\n\nconst animationSettings = {\n loop: false,\n autoplay: false,\n ...rendererSettings,\n};\n\nconst TablesCardComponent = forwardRef<ITableCardRef, ITablesCardProps>(\n (\n {\n data,\n label,\n onPress,\n openModesOfTable,\n defaultTable,\n onGoBackFromTableLevel,\n onPressTableSegment,\n },\n ref,\n ) => {\n const { onEvent: trackEvent } = useUIContext();\n const { playButtonSound } = useCircleSounds();\n const [fadeIn, setFadeIn] = useState(true);\n const [highlightedTable, setHighlightedTable] = useState<number | null>(\n openModesOfTable?.tableNumber ?? null,\n );\n const [highlightedLevel, setHighlightedLevel] = useState<number | null>(null);\n const [labelColor, setLabelColor] = useState<TColorNames>('WHITE_T_60');\n const [revealTableModes, setRevealTableModes] = useState<ITableInfo>({\n stars:\n data.tableList.find(table => table.tableNumber === openModesOfTable?.tableNumber)?.stars ??\n [],\n tableNumber: openModesOfTable?.tableNumber ?? 0,\n });\n\n const [showLabel, setShowLabel] = useState(true);\n const [isLabelAnimated, setIsLabelAnimated] = useState(false);\n const [animatedColor, setAniimatedColor] = useState<TColorNames>('WHITE_T_60');\n\n const labelRef = useRef<HTMLDivElement>(null);\n const cardRef = useRef<HTMLDivElement>(null);\n\n const [rewardStar, setRewardStar] = useState(openModesOfTable?.rewardStar ?? []);\n const [enableInfiniteMode] = useState(false);\n\n const revealAnimationRef = useRef<ILottieAnimationRef | null>(null);\n const disappearAnimationTimer = useRef<ReturnType<typeof setTimeout>>();\n\n const handleTableSegmentClick = useCallback(\n (table: ITableInfo) => {\n if (onPressTableSegment) {\n onPressTableSegment(table);\n\n return;\n }\n playButtonSound();\n setFadeIn(true);\n setHighlightedTable(table.tableNumber);\n setRevealTableModes({ ...table });\n setRewardStar([]);\n trackEvent(GAME_LAUNCHER_ANALYTICS_EVENTS.TABLE_SELECTED, {\n meta: {\n table_of: table.tableNumber,\n },\n });\n },\n [onPressTableSegment, playButtonSound, trackEvent],\n );\n\n const handleTableSegmentMouseOver = useCallback(\n (table: ITableInfo) => {\n setLabelColor(isLabelAnimated ? animatedColor : 'WHITE_T_60');\n setHighlightedTable(table.tableNumber);\n },\n [animatedColor, isLabelAnimated],\n );\n\n const handleTableSegmentMouseLeave = useCallback(() => {\n setLabelColor('WHITE_T_60');\n !revealTableModes.tableNumber && setHighlightedTable(null);\n }, [revealTableModes.tableNumber]);\n\n const goBack = useCallback(() => {\n onGoBackFromTableLevel?.();\n playButtonSound();\n setFadeIn(false);\n setHighlightedTable(null);\n const time = (TABLE_REVEAL_ANIMATION.DISAPPEAR[1] - TABLE_REVEAL_ANIMATION.DISAPPEAR[0]) / 30;\n\n revealAnimationRef.current?.playSegments(TABLE_REVEAL_ANIMATION.DISAPPEAR, true);\n disappearAnimationTimer.current = setTimeout(() => {\n setRevealTableModes({ stars: [], tableNumber: 0 });\n }, time * 1000);\n }, [onGoBackFromTableLevel, playButtonSound]);\n\n const showTableModes = useCallback(() => {\n revealAnimationRef.current?.playSegments(TABLE_REVEAL_ANIMATION.REVEAL, true);\n }, []);\n\n const handleModeMouseOver = useCallback((type: TTableMode) => {\n const level: Partial<Record<TTableMode, number>> = {\n sequence: 1,\n random: 2,\n advance: 3,\n };\n\n setLabelColor(TABLE_MODE_LABEL_COLOR[type] ?? 'WHITE_T_60');\n setHighlightedLevel(level[type] ?? 0);\n }, []);\n\n const handleModeMouseLeave = useCallback(() => {\n setHighlightedLevel(null);\n setLabelColor('WHITE_T_60');\n }, []);\n\n const revealTableModesMemo = useMemo(() => revealTableModes, [revealTableModes]);\n\n const tableModes = useMemo(() => {\n return [\n {\n top: 20,\n left: 10.5,\n type: 'sequence' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('sequence'),\n semicirclePosiiionTop: '-19%',\n semicirclePosiiionLeft: '-43%',\n semicircleHoverColor: '#B259004D',\n },\n {\n top: 20,\n left: 65.5,\n type: 'random' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('random'),\n semicirclePosiiionTop: '-19%',\n semicirclePosiiionLeft: '65%',\n semicircleHoverColor: '#0055CC4D',\n },\n {\n top: 66,\n left: 38,\n type: 'advance' as TTableMode,\n tableNumber: revealTableModesMemo.tableNumber,\n isStarAchieved: revealTableModesMemo.stars.includes('advance'),\n semicirclePosiiionTop: '74%',\n semicirclePosiiionLeft: '11%',\n semicircleHoverColor: '#A9099C4D',\n },\n ];\n }, [revealTableModesMemo.tableNumber, revealTableModesMemo.stars]);\n\n // Disabled infinite mode\n const handleInfiniteModeClick = useCallback(() => {\n onPress({\n mode: 'infinite',\n infiniteModeHighScore: data.infiniteModeHighScore,\n });\n }, [onPress, data.infiniteModeHighScore]);\n\n const handleNormalModeClick = useCallback(\n (mode: TTableMode, isStarRewarded: boolean) => {\n onPress({\n mode,\n tableNumber: revealTableModes.tableNumber,\n isStarRewarded,\n });\n },\n [onPress, revealTableModes.tableNumber],\n );\n\n const getHighlightedText = useCallback(() => {\n if (highlightedLevel) {\n return `${highlightedTable}× LEVEL${highlightedLevel}`;\n }\n\n return highlightedTable ? `${highlightedTable}× Table` : label;\n }, [highlightedLevel, highlightedTable, label]);\n\n const startLabelAnimation = useCallback((color: TColorNames) => {\n setLabelColor(color);\n setAniimatedColor(color);\n setIsLabelAnimated(true);\n }, []);\n\n const stopLabelAnimation = useCallback(() => setIsLabelAnimated(false), []);\n const setLabelVisiblity = useCallback((visible: boolean) => setShowLabel(visible), []);\n\n useImperativeHandle(ref, () => ({\n labelRef: labelRef,\n segmentedCardWrapperRef: cardRef,\n startLabelAnimation,\n stopLabelAnimation,\n setLabelVisiblity,\n handleTableSegmentClick,\n }));\n\n useEffect(() => {\n return () => {\n disappearAnimationTimer.current && clearTimeout(disappearAnimationTimer.current);\n };\n }, []);\n\n // Used in trial journey, to open table levels by default if given in props\n useEffect(() => {\n if (defaultTable) {\n playButtonSound();\n setFadeIn(true);\n setHighlightedTable(defaultTable.tableNumber);\n setRevealTableModes({ ...defaultTable });\n }\n }, [defaultTable, playButtonSound]);\n\n return (\n <CardContainer\n labelRef={labelRef}\n ref={cardRef}\n strokeColor=\"WHITE\"\n label={getHighlightedText()}\n labelColor={labelColor}\n isAnimated={isLabelAnimated}\n showLabel={showLabel}\n >\n <Styled.CardWrapper>\n {/* table selection */}\n <Styled.TableSegmentsWrapper>\n {/* infinite button */}\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n hidden={enableInfiniteMode}\n tooltipItem={\n <Text $renderAs=\"ab3\" $color=\"WHITE\">\n Coming Soon\n </Text>\n }\n >\n <Styled.InfiniteButtonWrapper\n onClick={enableInfiniteMode ? handleInfiniteModeClick : undefined}\n >\n <Styled.AbsoluteView>\n <LottieAnimation\n src={LOTTIE.INFINITE_BUTTON_BG}\n settings={rendererSettings}\n animateOnIntersect\n />\n </Styled.AbsoluteView>\n <Styled.AbsoluteView>\n <LottieAnimation\n src={LOTTIE.INFINITE_BUTTON_SYMBOL}\n settings={rendererSettings}\n animateOnIntersect\n />\n </Styled.AbsoluteView>\n </Styled.InfiniteButtonWrapper>\n </ArrowTooltip>\n\n {/* card shadow */}\n <Styled.TableSegmentCardShadowContainer />\n\n {/* table segments */}\n {data.tableList.map((table, index) => {\n const segmentAngle = 360 / data.tableList.length;\n const startAngle = -(90 + 360 / (2 * data.tableList.length));\n const currentAngle = startAngle + segmentAngle * (index + 1);\n\n return (\n <Styled.TableSegment\n key={index}\n $angle={currentAngle}\n $totalSegments={data.tableList.length}\n $zIndex={index + 1}\n onClick={() => handleTableSegmentClick(table)}\n onMouseOver={() => handleTableSegmentMouseOver(table)}\n onMouseLeave={handleTableSegmentMouseLeave}\n >\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\">\n {['sequence', 'random', 'advance'].map(star => (\n <TableSegmentStar\n key={star}\n isStarAchieved={table.stars.includes(star as TTableMode)}\n rewardStar={\n !fadeIn && openModesOfTable?.tableNumber === table.tableNumber\n ? rewardStar.includes(star as TTableMode)\n : undefined\n }\n />\n ))}\n <Separator width={GAME_LAUNCHER_SIZE * 0.055} />\n\n <Styled.TableNumber $angle={-currentAngle}>\n <Text\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $color={highlightedTable === table.tableNumber ? 'BLACK_1' : 'WHITE'}\n >\n {table.tableNumber}\n </Text>\n </Styled.TableNumber>\n </FlexView>\n </Styled.TableSegment>\n );\n })}\n </Styled.TableSegmentsWrapper>\n\n {/* table modes */}\n {revealTableModes.tableNumber > 0 && (\n <Styled.TableModeContainer>\n <Styled.TableModeWrapper>\n {/* tables modes with back button */}\n <Styled.AnimatedView animation={fadeIn ? 'fade-in' : 'fade-out'}>\n {tableModes.map((tableMode, index) => (\n <React.Fragment key={index}>\n <Styled.ModeOverlay\n $top={tableMode.semicirclePosiiionTop}\n $left={tableMode.semicirclePosiiionLeft}\n $hoverColor={tableMode.semicircleHoverColor}\n onClick={() =>\n fadeIn\n ? handleNormalModeClick(tableMode.type, tableMode.isStarAchieved)\n : undefined\n }\n onMouseOver={() =>\n fadeIn ? handleModeMouseOver(tableMode.type as TTableMode) : undefined\n }\n onMouseLeave={fadeIn ? handleModeMouseLeave : undefined}\n />\n <Styled.AbsoluteView\n $top={tableMode.top}\n $left={tableMode.left}\n $isPointerEventsNone={true}\n >\n <TableMode\n tableNumber={tableMode.tableNumber}\n isStarAchieved={tableMode.isStarAchieved}\n type={tableMode.type as TTableMode}\n rewardStar={rewardStar.includes(tableMode.type as TTableMode)}\n />\n </Styled.AbsoluteView>\n </React.Fragment>\n ))}\n {/* back button */}\n <Styled.AbsoluteView $top={50} $left={50} $alignCenter={true}>\n <Styled.IconWrapper>\n <Back2Icon\n onClick={goBack}\n height={GAME_LAUNCHER_SIZE * 0.1}\n width={GAME_LAUNCHER_SIZE * 0.1}\n />\n </Styled.IconWrapper>\n </Styled.AbsoluteView>\n </Styled.AnimatedView>\n\n {/* overlay lottie for modes */}\n <LottieAnimation\n src={LOTTIE.TABLE_MODE_REVEAL}\n ref={revealAnimationRef}\n settings={animationSettings}\n onRender={showTableModes}\n animateOnIntersect\n />\n </Styled.TableModeWrapper>\n </Styled.TableModeContainer>\n )}\n </Styled.CardWrapper>\n </CardContainer>\n );\n },\n);\n\nexport const TablesCard = memo(TablesCardComponent);\n"],"names":["rendererSettings","animationSettings","TablesCardComponent","forwardRef","data","label","onPress","openModesOfTable","defaultTable","onGoBackFromTableLevel","onPressTableSegment","ref","trackEvent","useUIContext","playButtonSound","useCircleSounds","fadeIn","setFadeIn","useState","highlightedTable","setHighlightedTable","highlightedLevel","setHighlightedLevel","labelColor","setLabelColor","revealTableModes","setRevealTableModes","_a","table","showLabel","setShowLabel","isLabelAnimated","setIsLabelAnimated","animatedColor","setAniimatedColor","labelRef","useRef","cardRef","rewardStar","setRewardStar","enableInfiniteMode","revealAnimationRef","disappearAnimationTimer","handleTableSegmentClick","useCallback","GAME_LAUNCHER_ANALYTICS_EVENTS","handleTableSegmentMouseOver","handleTableSegmentMouseLeave","goBack","time","TABLE_REVEAL_ANIMATION","showTableModes","handleModeMouseOver","type","level","TABLE_MODE_LABEL_COLOR","handleModeMouseLeave","revealTableModesMemo","useMemo","tableModes","handleInfiniteModeClick","handleNormalModeClick","mode","isStarRewarded","getHighlightedText","startLabelAnimation","color","stopLabelAnimation","setLabelVisiblity","visible","useImperativeHandle","useEffect","jsx","CardContainer","jsxs","Styled.CardWrapper","Styled.TableSegmentsWrapper","ArrowTooltip","Text","Styled.InfiniteButtonWrapper","Styled.AbsoluteView","LottieAnimation","LOTTIE","Styled.TableSegmentCardShadowContainer","index","segmentAngle","currentAngle","Styled.TableSegment","FlexView","star","TableSegmentStar","Separator","GAME_LAUNCHER_SIZE","Styled.TableNumber","GAME_LAUNCHER_SIZE_LARGE","Styled.TableModeContainer","Styled.TableModeWrapper","Styled.AnimatedView","tableMode","React","Styled.ModeOverlay","TableMode","Styled.IconWrapper","Back2Icon","TablesCard","memo"],"mappings":";;;;;;;;;;;;;;;;;;AAoCA,MAAMA,IAAmB;AAAA,EACvB,UAAU;AACZ,GAEMC,KAAoB;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,GAAGD;AACL,GAEME,KAAsBC;AAAA,EAC1B,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,qBAAAC;AAAA,KAEFC,MACG;;AACH,UAAM,EAAE,SAASC,EAAW,IAAIC,GAAa,GACvC,EAAE,iBAAAC,MAAoBC,MACtB,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAI,GACnC,CAACC,GAAkBC,CAAmB,IAAIF;AAAA,OAC9CX,KAAA,gBAAAA,EAAkB,gBAAe;AAAA,IAAA,GAE7B,CAACc,GAAkBC,CAAmB,IAAIJ,EAAwB,IAAI,GACtE,CAACK,GAAYC,CAAa,IAAIN,EAAsB,YAAY,GAChE,CAACO,GAAkBC,CAAmB,IAAIR,EAAqB;AAAA,MACnE,SACES,IAAAvB,EAAK,UAAU,KAAK,CAAAwB,MAASA,EAAM,iBAAgBrB,KAAA,gBAAAA,EAAkB,YAAW,MAAhF,gBAAAoB,EAAmF,UACnF,CAAC;AAAA,MACH,cAAapB,KAAA,gBAAAA,EAAkB,gBAAe;AAAA,IAAA,CAC/C,GAEK,CAACsB,GAAWC,CAAY,IAAIZ,EAAS,EAAI,GACzC,CAACa,GAAiBC,CAAkB,IAAId,EAAS,EAAK,GACtD,CAACe,GAAeC,CAAiB,IAAIhB,EAAsB,YAAY,GAEvEiB,IAAWC,EAAuB,IAAI,GACtCC,IAAUD,EAAuB,IAAI,GAErC,CAACE,GAAYC,CAAa,IAAIrB,GAASX,KAAA,gBAAAA,EAAkB,eAAc,CAAA,CAAE,GACzE,CAACiC,CAAkB,IAAItB,EAAS,EAAK,GAErCuB,IAAqBL,EAAmC,IAAI,GAC5DM,IAA0BN,KAE1BO,IAA0BC;AAAA,MAC9B,CAAChB,MAAsB;AACrB,YAAIlB,GAAqB;AACvB,UAAAA,EAAoBkB,CAAK;AAEzB;AAAA,QACF;AACgB,QAAAd,KAChBG,EAAU,EAAI,GACdG,EAAoBQ,EAAM,WAAW,GACjBF,EAAA,EAAE,GAAGE,EAAA,CAAO,GAChCW,EAAc,CAAE,CAAA,GAChB3B,EAAWiC,GAA+B,gBAAgB;AAAA,UACxD,MAAM;AAAA,YACJ,UAAUjB,EAAM;AAAA,UAClB;AAAA,QAAA,CACD;AAAA,MACH;AAAA,MACA,CAAClB,GAAqBI,GAAiBF,CAAU;AAAA,IAAA,GAG7CkC,KAA8BF;AAAA,MAClC,CAAChB,MAAsB;AACP,QAAAJ,EAAAO,IAAkBE,IAAgB,YAAY,GAC5Db,EAAoBQ,EAAM,WAAW;AAAA,MACvC;AAAA,MACA,CAACK,GAAeF,CAAe;AAAA,IAAA,GAG3BgB,KAA+BH,EAAY,MAAM;AACrD,MAAApB,EAAc,YAAY,GACzB,CAAAC,EAAiB,eAAeL,EAAoB,IAAI;AAAA,IAAA,GACxD,CAACK,EAAiB,WAAW,CAAC,GAE3BuB,KAASJ,EAAY,MAAM;;AACN,MAAAnC,KAAA,QAAAA,KACTK,KAChBG,EAAU,EAAK,GACfG,EAAoB,IAAI;AAClB,YAAA6B,KAAQC,EAAuB,UAAU,CAAC,IAAIA,EAAuB,UAAU,CAAC,KAAK;AAE3F,OAAAvB,IAAAc,EAAmB,YAAnB,QAAAd,EAA4B,aAAauB,EAAuB,WAAW,KACnDR,EAAA,UAAU,WAAW,MAAM;AACjD,QAAAhB,EAAoB,EAAE,OAAO,CAAA,GAAI,aAAa,EAAG,CAAA;AAAA,MAAA,GAChDuB,IAAO,GAAI;AAAA,IAAA,GACb,CAACxC,GAAwBK,CAAe,CAAC,GAEtCqC,KAAiBP,EAAY,MAAM;;AACvC,OAAAjB,IAAAc,EAAmB,YAAnB,QAAAd,EAA4B,aAAauB,EAAuB,QAAQ;AAAA,IAC1E,GAAG,CAAE,CAAA,GAECE,KAAsBR,EAAY,CAACS,MAAqB;AAC5D,YAAMC,IAA6C;AAAA,QACjD,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,SAAS;AAAA,MAAA;AAGG,MAAA9B,EAAA+B,GAAuBF,CAAI,KAAK,YAAY,GACtC/B,EAAAgC,EAAMD,CAAI,KAAK,CAAC;AAAA,IACtC,GAAG,CAAE,CAAA,GAECG,KAAuBZ,EAAY,MAAM;AAC7C,MAAAtB,EAAoB,IAAI,GACxBE,EAAc,YAAY;AAAA,IAC5B,GAAG,CAAE,CAAA,GAECiC,IAAuBC,EAAQ,MAAMjC,GAAkB,CAACA,CAAgB,CAAC,GAEzEkC,KAAaD,EAAQ,MAClB;AAAA,MACL;AAAA,QACE,KAAK;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAaD,EAAqB;AAAA,QAClC,gBAAgBA,EAAqB,MAAM,SAAS,UAAU;AAAA,QAC9D,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,QACxB,sBAAsB;AAAA,MACxB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAaA,EAAqB;AAAA,QAClC,gBAAgBA,EAAqB,MAAM,SAAS,QAAQ;AAAA,QAC5D,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,QACxB,sBAAsB;AAAA,MACxB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAaA,EAAqB;AAAA,QAClC,gBAAgBA,EAAqB,MAAM,SAAS,SAAS;AAAA,QAC7D,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,QACxB,sBAAsB;AAAA,MACxB;AAAA,IAAA,GAED,CAACA,EAAqB,aAAaA,EAAqB,KAAK,CAAC,GAG3DG,KAA0BhB,EAAY,MAAM;AACxC,MAAAtC,EAAA;AAAA,QACN,MAAM;AAAA,QACN,uBAAuBF,EAAK;AAAA,MAAA,CAC7B;AAAA,IACA,GAAA,CAACE,GAASF,EAAK,qBAAqB,CAAC,GAElCyD,KAAwBjB;AAAA,MAC5B,CAACkB,GAAkBC,MAA4B;AACrC,QAAAzD,EAAA;AAAA,UACN,MAAAwD;AAAA,UACA,aAAarC,EAAiB;AAAA,UAC9B,gBAAAsC;AAAA,QAAA,CACD;AAAA,MACH;AAAA,MACA,CAACzD,GAASmB,EAAiB,WAAW;AAAA,IAAA,GAGlCuC,KAAqBpB,EAAY,MACjCvB,IACK,GAAGF,CAAgB,UAAUE,CAAgB,KAG/CF,IAAmB,GAAGA,CAAgB,YAAYd,GACxD,CAACgB,GAAkBF,GAAkBd,CAAK,CAAC,GAExC4D,KAAsBrB,EAAY,CAACsB,MAAuB;AAC9D,MAAA1C,EAAc0C,CAAK,GACnBhC,EAAkBgC,CAAK,GACvBlC,EAAmB,EAAI;AAAA,IACzB,GAAG,CAAE,CAAA,GAECmC,KAAqBvB,EAAY,MAAMZ,EAAmB,EAAK,GAAG,CAAA,CAAE,GACpEoC,KAAoBxB,EAAY,CAACyB,MAAqBvC,EAAauC,CAAO,GAAG,CAAA,CAAE;AAErF,WAAAC,GAAoB3D,GAAK,OAAO;AAAA,MAC9B,UAAAwB;AAAA,MACA,yBAAyBE;AAAA,MACzB,qBAAA4B;AAAA,MACA,oBAAAE;AAAA,MACA,mBAAAC;AAAA,MACA,yBAAAzB;AAAA,IACA,EAAA,GAEF4B,EAAU,MACD,MAAM;AACa,MAAA7B,EAAA,WAAW,aAAaA,EAAwB,OAAO;AAAA,IAAA,GAEhF,CAAE,CAAA,GAGL6B,EAAU,MAAM;AACd,MAAI/D,MACcM,KAChBG,EAAU,EAAI,GACdG,EAAoBZ,EAAa,WAAW,GACxBkB,EAAA,EAAE,GAAGlB,EAAA,CAAc;AAAA,IACzC,GACC,CAACA,GAAcM,CAAe,CAAC,GAGhC,gBAAA0D;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAAtC;AAAA,QACA,KAAKE;AAAA,QACL,aAAY;AAAA,QACZ,OAAO2B,GAAmB;AAAA,QAC1B,YAAAzC;AAAA,QACA,YAAYQ;AAAA,QACZ,WAAAF;AAAA,QAEA,UAAA,gBAAA6C,EAACC,IAAA,EAEC,UAAA;AAAA,UAAC,gBAAAD,EAAAE,IAAA,EAEC,UAAA;AAAA,YAAA,gBAAAJ;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,UAAS;AAAA,gBACT,QAAQrC;AAAA,gBACR,aACG,gBAAAgC,EAAAM,GAAA,EAAK,WAAU,OAAM,QAAO,SAAQ,UAErC,eAAA;AAAA,gBAGF,UAAA,gBAAAJ;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,SAASvC,IAAqBoB,KAA0B;AAAA,oBAExD,UAAA;AAAA,sBAAC,gBAAAY,EAAAQ,GAAA,EACC,UAAA,gBAAAR;AAAA,wBAACS;AAAA,wBAAA;AAAA,0BACC,KAAKC,EAAO;AAAA,0BACZ,UAAUlF;AAAA,0BACV,oBAAkB;AAAA,wBAAA;AAAA,sBAAA,GAEtB;AAAA,sBACA,gBAAAwE,EAACQ,GAAA,EACC,UAAA,gBAAAR;AAAA,wBAACS;AAAA,wBAAA;AAAA,0BACC,KAAKC,EAAO;AAAA,0BACZ,UAAUlF;AAAA,0BACV,oBAAkB;AAAA,wBAAA;AAAA,sBAAA,GAEtB;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF;AAAA,YAGA,gBAAAwE,EAACW,IAAA,EAAuC;AAAA,YAGvC/E,EAAK,UAAU,IAAI,CAACwB,GAAOwD,MAAU;AAC9B,oBAAAC,KAAe,MAAMjF,EAAK,UAAU,QAEpCkF,IADa,EAAE,KAAK,OAAO,IAAIlF,EAAK,UAAU,WAClBiF,MAAgBD,IAAQ;AAGxD,qBAAA,gBAAAZ;AAAA,gBAACe;AAAAA,gBAAA;AAAA,kBAEC,QAAQD;AAAA,kBACR,gBAAgBlF,EAAK,UAAU;AAAA,kBAC/B,SAASgF,IAAQ;AAAA,kBACjB,SAAS,MAAMzC,EAAwBf,CAAK;AAAA,kBAC5C,aAAa,MAAMkB,GAA4BlB,CAAK;AAAA,kBACpD,cAAcmB;AAAA,kBAEd,4BAACyC,IAAS,EAAA,gBAAe,OAAM,iBAAgB,UAAS,aAAY,UACjE,UAAA;AAAA,oBAAA,CAAC,YAAY,UAAU,SAAS,EAAE,IAAI,CACrCC,MAAA,gBAAAjB;AAAA,sBAACkB;AAAA,sBAAA;AAAA,wBAEC,gBAAgB9D,EAAM,MAAM,SAAS6D,CAAkB;AAAA,wBACvD,YACE,CAACzE,MAAUT,KAAA,gBAAAA,EAAkB,iBAAgBqB,EAAM,cAC/CU,EAAW,SAASmD,CAAkB,IACtC;AAAA,sBAAA;AAAA,sBALDA;AAAA,oBAAA,CAQR;AAAA,oBACA,gBAAAjB,EAAAmB,IAAA,EAAU,OAAOC,IAAqB,MAAO,CAAA;AAAA,sCAE7CC,IAAA,EAAmB,QAAQ,CAACP,GAC3B,UAAA,gBAAAd;AAAA,sBAACM;AAAA,sBAAA;AAAA,wBACC,WACEc,MAAuBE,KACnB,cACA;AAAA,wBAEN,QAAQ3E,MAAqBS,EAAM,cAAc,YAAY;AAAA,wBAE5D,UAAMA,EAAA;AAAA,sBAAA;AAAA,oBAAA,GAEX;AAAA,kBAAA,GACF;AAAA,gBAAA;AAAA,gBAlCKwD;AAAA,cAAA;AAAA,YAmCP,CAEH;AAAA,UAAA,GACH;AAAA,UAGC3D,EAAiB,cAAc,KAC7B,gBAAA+C,EAAAuB,IAAA,EACC,UAAA,gBAAArB,EAACsB,IAAA,EAEC,UAAA;AAAA,YAAA,gBAAAtB,EAACuB,IAAA,EAAoB,WAAWjF,IAAS,YAAY,YAClD,UAAA;AAAA,cAAA2C,GAAW,IAAI,CAACuC,GAAWd,MACzB,gBAAAV,EAAAyB,GAAM,UAAN,EACC,UAAA;AAAA,gBAAA,gBAAA3B;AAAA,kBAAC4B;AAAAA,kBAAA;AAAA,oBACC,MAAMF,EAAU;AAAA,oBAChB,OAAOA,EAAU;AAAA,oBACjB,aAAaA,EAAU;AAAA,oBACvB,SAAS,MACPlF,IACI6C,GAAsBqC,EAAU,MAAMA,EAAU,cAAc,IAC9D;AAAA,oBAEN,aAAa,MACXlF,IAASoC,GAAoB8C,EAAU,IAAkB,IAAI;AAAA,oBAE/D,cAAclF,IAASwC,KAAuB;AAAA,kBAAA;AAAA,gBAChD;AAAA,gBACA,gBAAAgB;AAAA,kBAACQ;AAAAA,kBAAA;AAAA,oBACC,MAAMkB,EAAU;AAAA,oBAChB,OAAOA,EAAU;AAAA,oBACjB,sBAAsB;AAAA,oBAEtB,UAAA,gBAAA1B;AAAA,sBAAC6B;AAAA,sBAAA;AAAA,wBACC,aAAaH,EAAU;AAAA,wBACvB,gBAAgBA,EAAU;AAAA,wBAC1B,MAAMA,EAAU;AAAA,wBAChB,YAAY5D,EAAW,SAAS4D,EAAU,IAAkB;AAAA,sBAAA;AAAA,oBAC9D;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA,EAAA,GA1BmBd,CA2BrB,CACD;AAAA,cAEA,gBAAAZ,EAAAQ,GAAA,EAAoB,MAAM,IAAI,OAAO,IAAI,cAAc,IACtD,UAAC,gBAAAR,EAAA8B,IAAA,EACC,UAAA,gBAAA9B;AAAA,gBAAC+B;AAAA,gBAAA;AAAA,kBACC,SAASvD;AAAA,kBACT,QAAQ4C,IAAqB;AAAA,kBAC7B,OAAOA,IAAqB;AAAA,gBAAA;AAAA,iBAEhC,EACF,CAAA;AAAA,YAAA,GACF;AAAA,YAGA,gBAAApB;AAAA,cAACS;AAAA,cAAA;AAAA,gBACC,KAAKC,EAAO;AAAA,gBACZ,KAAKzC;AAAA,gBACL,UAAUxC;AAAA,gBACV,UAAUkD;AAAA,gBACV,oBAAkB;AAAA,cAAA;AAAA,YACpB;AAAA,UAAA,EAAA,CACF,EACF,CAAA;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF,GAEaqD,KAAaC,GAAKvG,EAAmB;"}
@@ -1,9 +1,17 @@
1
1
  import r from "styled-components";
2
- import p from "../../../../ui/layout/flex-view.js";
3
- const e = r(p)(({ theme: o }) => `
4
- box-shadow: 0px 10px 20px 0px ${o.colors.BLACK_T_20};
2
+ import o from "../../../../ui/layout/flex-view.js";
3
+ const x = r(o)(({ theme: t }) => `
4
+ box-shadow: 0px 10px 20px 0px ${t.colors.BLACK_T_20};
5
+ `), n = r(o)(() => `
6
+ margin-left: auto;
7
+
8
+ svg {
9
+ width: 24px;
10
+ height: 24px;
11
+ }
5
12
  `);
6
13
  export {
7
- e as ButtonWrapper
14
+ n as BinIconWrapper,
15
+ x as ButtonWrapper
8
16
  };
9
17
  //# sourceMappingURL=chapters-selection-step-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chapters-selection-step-styled.js","sources":["../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\n\nconst ButtonWrapper = styled(FlexView)(({ theme }) => {\n return `\n box-shadow: 0px 10px 20px 0px ${theme.colors.BLACK_T_20};\n `;\n});\n\nexport { ButtonWrapper };\n"],"names":["ButtonWrapper","styled","FlexView","theme"],"mappings":";;AAIA,MAAMA,IAAgBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QACjC;AAAA,oCAC2BA,EAAM,OAAO,UAAU;AAAA,GAE1D;"}
1
+ {"version":3,"file":"chapters-selection-step-styled.js","sources":["../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\n\nconst ButtonWrapper = styled(FlexView)(({ theme }) => {\n return `\n box-shadow: 0px 10px 20px 0px ${theme.colors.BLACK_T_20};\n `;\n});\n\nconst BinIconWrapper = styled(FlexView)(() => {\n return `\n margin-left: auto;\n \n svg {\n width: 24px;\n height: 24px;\n }\n `;\n});\n\nexport { ButtonWrapper, BinIconWrapper };\n"],"names":["ButtonWrapper","styled","FlexView","theme","BinIconWrapper"],"mappings":";;AAIA,MAAMA,IAAgBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QACjC;AAAA,oCAC2BA,EAAM,OAAO,UAAU;AAAA,GAE1D,GAEKC,IAAiBH,EAAOC,CAAQ,EAAE,MAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQR;"}
@@ -1,81 +1,84 @@
1
- import { jsx as t, jsxs as w } from "react/jsx-runtime";
2
- import { memo as H, useContext as W, useMemo as U, useCallback as u } from "react";
3
- import q from "../../../../../assets/line-icons/icons/plus.js";
4
- import P from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
5
- import y from "../../../../ui/buttons/button/button.js";
6
- import V from "../../../../ui/buttons/icon-button/icon-button.js";
7
- import { useUIContext as J } from "../../../../ui/context/context.js";
8
- import $ from "../../../../ui/layout/flex-view.js";
9
- import K from "../../../../ui/text/text.js";
10
- import { WARNING_MESSAGES as Q } from "../../../constants.js";
11
- import { GOAL_EDIT_FLOWS as Y } from "../../milestone-create-constants.js";
12
- import Z from "../../milestone-create-context.js";
13
- import ee from "../body-layout/body-layout.js";
14
- import te from "../class-details-step/class-details-step.js";
15
- import oe from "./chapter-selection-step-v2/chapter-selection.js";
16
- import { ButtonWrapper as k } from "./chapters-selection-step-styled.js";
17
- import { useChapterListUpdate as re } from "./use-chapter-list-update.js";
18
- import { computeChangeDetection as ne } from "./utils.js";
19
- const xe = H((N) => {
1
+ import { jsx as t, jsxs as $ } from "react/jsx-runtime";
2
+ import { memo as q, useContext as V, useMemo as J, useCallback as u } from "react";
3
+ import K from "../../../../../assets/line-icons/icons/bin2.js";
4
+ import Q from "../../../../../assets/line-icons/icons/plus.js";
5
+ import f from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
6
+ import Y from "../../../../ui/buttons/button/button.js";
7
+ import k from "../../../../ui/buttons/icon-button/icon-button.js";
8
+ import { useUIContext as Z } from "../../../../ui/context/context.js";
9
+ import P from "../../../../ui/layout/flex-view.js";
10
+ import ee from "../../../../ui/text/text.js";
11
+ import { WARNING_MESSAGES as te } from "../../../constants.js";
12
+ import { GOAL_EDIT_FLOWS as oe } from "../../milestone-create-constants.js";
13
+ import re from "../../milestone-create-context.js";
14
+ import ne from "../body-layout/body-layout.js";
15
+ import se from "../class-details-step/class-details-step.js";
16
+ import ae from "./chapter-selection-step-v2/chapter-selection.js";
17
+ import { BinIconWrapper as de, ButtonWrapper as R } from "./chapters-selection-step-styled.js";
18
+ import { useChapterListUpdate as ie } from "./use-chapter-list-update.js";
19
+ import { computeChangeDetection as le } from "./utils.js";
20
+ const $e = q((G) => {
20
21
  const {
21
- currentStep: f,
22
- onFormDataChange: n,
23
- onChapterExitWarning: a,
24
- formData: c,
25
- studentName: g,
26
- studentId: A,
22
+ currentStep: g,
23
+ onFormDataChange: s,
24
+ onChapterExitWarning: d,
25
+ formData: l,
26
+ studentName: A,
27
+ studentId: I,
27
28
  config: m,
28
- isGoalCreation: d,
29
- onPreSubmit: l,
29
+ isGoalCreation: a,
30
+ onPreSubmit: c,
30
31
  courseStream: _,
31
- classRatio: C,
32
- enrollmentType: S
33
- } = N, { flow: s } = W(Z), { onEvent: b } = J(), {
32
+ classRatio: b,
33
+ enrollmentType: C,
34
+ canDeleteGoal: N,
35
+ onDeleteGoal: L
36
+ } = G, { flow: o } = V(re), { onEvent: D } = Z(), {
34
37
  action_plan: {
35
- green: { share_message_template: I }
38
+ green: { share_message_template: S }
36
39
  }
37
- } = m, { buttonLabel: R, name: x, title: G } = f, L = {
38
- step: x
39
- }, { testType: O, primaryChaptersList: e, board: E, major: D, region: T, chapterGoalCategory: X } = c, { primaryGoalCategory: o } = X || {}, { isProcessing: p, isProcessed: j } = re({
40
- formData: c,
41
- onFormDataChange: n,
42
- studentId: A
43
- }), B = U(() => e ? e.some((r) => r.added) : !1, [e]), M = u(() => {
44
- const r = e == null ? void 0 : e.filter((i) => !!i.added), h = (e == null ? void 0 : e.filter(
45
- (i) => i.program_id !== (o == null ? void 0 : o.program_code) && i.added
46
- ).length) ?? 0, F = (e == null ? void 0 : e.filter((i) => i.program_id === (o == null ? void 0 : o.program_id)).length) ?? 0;
47
- b("CHAPTER_DETAILS_ADDED", {
48
- total_chapter_added: (r == null ? void 0 : r.length) ?? 0,
40
+ } = m, { buttonLabel: X, name: E, title: z } = g, F = {
41
+ step: E
42
+ }, { testType: O, primaryChaptersList: e, board: x, major: T, region: w, chapterGoalCategory: j } = l, { primaryGoalCategory: r } = j || {}, y = N && (o === "DRAFT_EDIT" || o === "EDIT"), { isProcessing: p, isProcessed: M } = ie({
43
+ formData: l,
44
+ onFormDataChange: s,
45
+ studentId: I
46
+ }), B = J(() => e ? e.some((n) => n.added) : !1, [e]), W = u(() => {
47
+ const n = e == null ? void 0 : e.filter((i) => !!i.added), h = (e == null ? void 0 : e.filter(
48
+ (i) => i.program_id !== (r == null ? void 0 : r.program_code) && i.added
49
+ ).length) ?? 0, U = (e == null ? void 0 : e.filter((i) => i.program_id === (r == null ? void 0 : r.program_id)).length) ?? 0;
50
+ D("CHAPTER_DETAILS_ADDED", {
51
+ total_chapter_added: (n == null ? void 0 : n.length) ?? 0,
49
52
  searched_chapter_added: h,
50
- suggested_chapter_added: F
51
- }), d ? n({
53
+ suggested_chapter_added: U
54
+ }), a ? s({
52
55
  primaryChaptersList: e,
53
- selectedChaptersList: r,
56
+ selectedChaptersList: n,
54
57
  searchedChaptersList: [],
55
58
  chapterSubStages: "date-selection",
56
59
  committed: {
57
60
  selectedChaptersList: !0,
58
61
  chapterSubStages: !0,
59
62
  grade: !0,
60
- board: !!E,
61
- major: !!D,
62
- region: !!T
63
+ board: !!x,
64
+ major: !!T,
65
+ region: !!w
63
66
  }
64
- }) : s && (l == null || l({ isDraftPlan: !1, flow: s, submitBaseMessage: I }));
67
+ }) : o && (c == null || c({ isDraftPlan: !1, flow: o, submitBaseMessage: S }));
65
68
  }, [
66
69
  e,
67
- E,
68
- D,
70
+ x,
69
71
  T,
70
- b,
71
- n,
72
- l,
72
+ w,
73
+ D,
73
74
  s,
74
- d,
75
- I,
76
- o
75
+ c,
76
+ o,
77
+ a,
78
+ S,
79
+ r
77
80
  ]), v = u(() => {
78
- n({
81
+ s({
79
82
  chapterSubStages: "custom-chapters",
80
83
  selectedChaptersList: void 0,
81
84
  committed: {
@@ -83,72 +86,92 @@ const xe = H((N) => {
83
86
  selectedChaptersList: !1
84
87
  }
85
88
  });
86
- }, [n]), z = u(
87
- (r) => {
88
- if (!s) return null;
89
- const h = ne(e, o);
90
- Y.includes(s) || !(e != null && e.length) || !h ? r() : a == null || a({
91
- onSuccess: r,
92
- description: Q.CHAPTER_EXIT_WARNING
89
+ }, [s]), H = u(
90
+ (n) => {
91
+ if (!o) return null;
92
+ const h = le(e, r);
93
+ oe.includes(o) || !(e != null && e.length) || !h ? n() : d == null || d({
94
+ onSuccess: n,
95
+ description: te.CHAPTER_EXIT_WARNING
93
96
  });
94
97
  },
95
- [a, s, e, o]
98
+ [d, o, e, r]
96
99
  );
97
100
  return /* @__PURE__ */ t(
98
- ee,
101
+ ne,
99
102
  {
100
- stepName: x,
101
- headerElement: /* @__PURE__ */ w($, { $flexDirection: "row", $alignItems: "center", $flexGapX: 1, children: [
102
- /* @__PURE__ */ t(K, { $renderAs: "ab2", children: d ? G : "Chapters" }),
103
- d && s === "CREATE" && /* @__PURE__ */ t(
104
- te,
103
+ stepName: E,
104
+ headerElement: /* @__PURE__ */ $(P, { $flexDirection: "row", $alignItems: "center", $flexGapX: 1, $width: "100%", children: [
105
+ /* @__PURE__ */ t(ee, { $renderAs: "ab2", children: a ? z : "Chapters" }),
106
+ a && o === "CREATE" && /* @__PURE__ */ t(
107
+ se,
105
108
  {
106
- studentName: g,
107
- studentId: A,
108
- currentStep: f,
109
+ studentName: A,
110
+ studentId: I,
111
+ currentStep: g,
109
112
  config: m,
110
- formData: c,
113
+ formData: l,
111
114
  courseStream: _,
112
- classRatio: C,
113
- onFormDataChange: n,
114
- onChapterExitWarning: a,
115
- enrollmentType: S
115
+ classRatio: b,
116
+ onFormDataChange: s,
117
+ onChapterExitWarning: d,
118
+ enrollmentType: C
116
119
  }
117
- )
120
+ ),
121
+ a && y && /* @__PURE__ */ t(de, { children: /* @__PURE__ */ t(
122
+ f,
123
+ {
124
+ renderAs: "primary",
125
+ position: "bottom",
126
+ tooltipItem: "Delete goal",
127
+ zIndex: 10,
128
+ widthX: 6,
129
+ children: /* @__PURE__ */ t(
130
+ k,
131
+ {
132
+ size: "xsmall",
133
+ renderAs: "tertiary",
134
+ Icon: K,
135
+ analyticsLabel: "delete_goal_plan",
136
+ onClick: L
137
+ }
138
+ )
139
+ }
140
+ ) })
118
141
  ] }),
119
142
  bodyHeight: "100%",
120
- onBackButtonClick: z,
143
+ onBackButtonClick: H,
121
144
  bodyElement: /* @__PURE__ */ t(
122
- oe,
145
+ ae,
123
146
  {
124
147
  config: m,
125
- classRatio: C,
126
- isGoalCreation: d,
127
- formData: c,
128
- studentName: g,
129
- isProcessed: j,
148
+ classRatio: b,
149
+ isGoalCreation: a,
150
+ formData: l,
151
+ studentName: A,
152
+ isProcessed: M,
130
153
  isProcessing: p,
131
154
  courseStream: _,
132
- onFormDataChange: n,
133
- onChapterExitWarning: a,
134
- enrollmentType: S
155
+ onFormDataChange: s,
156
+ onChapterExitWarning: d,
157
+ enrollmentType: C
135
158
  }
136
159
  ),
137
- footerElement: /* @__PURE__ */ w($, { $flexDirection: "row", $flexGap: 12, $alignItems: "center", children: [
138
- (!d || O === "no-test") && /* @__PURE__ */ t(
139
- P,
160
+ footerElement: /* @__PURE__ */ $(P, { $flexDirection: "row", $flexGap: 12, $alignItems: "center", children: [
161
+ (!a || O === "no-test") && /* @__PURE__ */ t(
162
+ f,
140
163
  {
141
164
  renderAs: "primary",
142
165
  position: "top",
143
166
  widthX: 6.5,
144
167
  zIndex: 20,
145
168
  tooltipItem: "Add a chapter",
146
- children: /* @__PURE__ */ t(k, { $borderRadius: 50, children: /* @__PURE__ */ t(
147
- V,
169
+ children: /* @__PURE__ */ t(R, { $borderRadius: 50, children: /* @__PURE__ */ t(
170
+ k,
148
171
  {
149
172
  renderAs: "secondary",
150
173
  analyticsLabel: "Add custom chapters",
151
- Icon: q,
174
+ Icon: Q,
152
175
  disabled: p,
153
176
  onClick: v
154
177
  }
@@ -156,7 +179,7 @@ const xe = H((N) => {
156
179
  }
157
180
  ),
158
181
  /* @__PURE__ */ t(
159
- P,
182
+ f,
160
183
  {
161
184
  renderAs: "primary",
162
185
  position: "top",
@@ -164,19 +187,19 @@ const xe = H((N) => {
164
187
  zIndex: 20,
165
188
  tooltipItem: "Please select atleast one chapter",
166
189
  hidden: B,
167
- children: /* @__PURE__ */ t(k, { children: /* @__PURE__ */ t(
168
- y,
190
+ children: /* @__PURE__ */ t(R, { children: /* @__PURE__ */ t(
191
+ Y,
169
192
  {
170
193
  renderAs: "primary",
171
194
  size: "small",
172
195
  shape: "square",
173
196
  widthX: 9,
174
- label: R,
175
- onClick: M,
197
+ label: X,
198
+ onClick: W,
176
199
  iconPosition: "right",
177
200
  busy: p,
178
201
  disabled: !B,
179
- analyticsProps: L
202
+ analyticsProps: F
180
203
  }
181
204
  ) })
182
205
  }
@@ -186,6 +209,6 @@ const xe = H((N) => {
186
209
  );
187
210
  });
188
211
  export {
189
- xe as default
212
+ $e as default
190
213
  };
191
214
  //# sourceMappingURL=chapters-selection-step.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chapters-selection-step.js","sources":["../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.tsx"],"sourcesContent":["import type { IFormStepProps } from '../../milestone-create-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useContext, useMemo } from 'react';\n\nimport PlusIcon from '../../../../../assets/line-icons/icons/plus';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { WARNING_MESSAGES } from '../../../constants';\nimport { GOAL_EDIT_FLOWS } from '../../milestone-create-constants';\nimport MilestoneCreateContext from '../../milestone-create-context';\nimport BodyLayout from '../body-layout/body-layout';\nimport ClassDetailsStep from '../class-details-step/class-details-step';\nimport ChapterSelection from './chapter-selection-step-v2/chapter-selection';\nimport * as Styled from './chapters-selection-step-styled';\nimport { useChapterListUpdate } from './use-chapter-list-update';\nimport { computeChangeDetection } from './utils';\n\nconst ChaptersSelectionStep: FC<IFormStepProps> = memo(props => {\n const {\n currentStep,\n onFormDataChange,\n onChapterExitWarning,\n formData,\n studentName,\n studentId,\n config,\n isGoalCreation,\n onPreSubmit,\n courseStream,\n classRatio,\n enrollmentType,\n } = props;\n const { flow } = useContext(MilestoneCreateContext);\n const { onEvent: trackEvent } = useUIContext();\n\n const {\n action_plan: {\n green: { share_message_template: submitBaseMessage },\n },\n } = config;\n const { buttonLabel, name, title } = currentStep;\n const analyticsProps = {\n step: name,\n };\n const { testType, primaryChaptersList, board, major, region, chapterGoalCategory } = formData;\n\n const { primaryGoalCategory } = chapterGoalCategory || {};\n\n //* Hook that handles making api call for cue_chapters updating primaryChapterList.\n const { isProcessing, isProcessed } = useChapterListUpdate({\n formData,\n onFormDataChange,\n studentId,\n });\n\n const isAtleastOneChapterAdded = useMemo(() => {\n if (primaryChaptersList) {\n return primaryChaptersList.some(chapter => chapter.added);\n }\n\n return false;\n }, [primaryChaptersList]);\n\n const handleNext = useCallback(() => {\n const selectedChaptersList = primaryChaptersList?.filter(chapter => {\n return Boolean(chapter.added);\n });\n\n const searchedAndAddedChapterLength =\n primaryChaptersList?.filter(\n chapter => chapter.program_id !== primaryGoalCategory?.program_code && chapter.added,\n ).length ?? 0;\n\n const suggestedChaptersLength =\n primaryChaptersList?.filter(chapter => chapter.program_id === primaryGoalCategory?.program_id)\n .length ?? 0;\n\n trackEvent('CHAPTER_DETAILS_ADDED', {\n total_chapter_added: selectedChaptersList?.length ?? 0,\n searched_chapter_added: searchedAndAddedChapterLength,\n suggested_chapter_added: suggestedChaptersLength,\n });\n\n if (isGoalCreation) {\n onFormDataChange({\n primaryChaptersList: primaryChaptersList,\n selectedChaptersList: selectedChaptersList,\n searchedChaptersList: [],\n chapterSubStages: 'date-selection',\n committed: {\n selectedChaptersList: true,\n chapterSubStages: true,\n grade: true,\n board: !!board,\n major: !!major,\n region: !!region,\n },\n });\n } else if (flow) {\n onPreSubmit?.({ isDraftPlan: false, flow, submitBaseMessage });\n }\n }, [\n primaryChaptersList,\n board,\n major,\n region,\n trackEvent,\n onFormDataChange,\n onPreSubmit,\n flow,\n isGoalCreation,\n submitBaseMessage,\n primaryGoalCategory,\n ]);\n\n const handleOnAddCustomChapter = useCallback(() => {\n onFormDataChange({\n chapterSubStages: 'custom-chapters',\n selectedChaptersList: undefined,\n committed: {\n chapterSubStages: true,\n selectedChaptersList: false,\n },\n });\n }, [onFormDataChange]);\n\n const handleOnBackButtonClick = useCallback(\n (handleBack: () => void) => {\n if (!flow) return null;\n\n const isChangeDetected = computeChangeDetection(primaryChaptersList, primaryGoalCategory);\n\n if (GOAL_EDIT_FLOWS.includes(flow) || !primaryChaptersList?.length || !isChangeDetected) {\n handleBack();\n } else {\n onChapterExitWarning?.({\n onSuccess: handleBack,\n description: WARNING_MESSAGES.CHAPTER_EXIT_WARNING,\n });\n }\n },\n [onChapterExitWarning, flow, primaryChaptersList, primaryGoalCategory],\n );\n\n return (\n <BodyLayout\n stepName={name}\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1}>\n <Text $renderAs=\"ab2\">{isGoalCreation ? title : 'Chapters'}</Text>\n\n {isGoalCreation && flow === 'CREATE' && (\n <ClassDetailsStep\n studentName={studentName}\n studentId={studentId}\n currentStep={currentStep}\n config={config}\n formData={formData}\n courseStream={courseStream}\n classRatio={classRatio}\n onFormDataChange={onFormDataChange}\n onChapterExitWarning={onChapterExitWarning}\n enrollmentType={enrollmentType}\n />\n )}\n </FlexView>\n }\n bodyHeight=\"100%\"\n onBackButtonClick={handleOnBackButtonClick}\n bodyElement={\n <ChapterSelection\n config={config}\n classRatio={classRatio}\n isGoalCreation={isGoalCreation}\n formData={formData}\n studentName={studentName}\n isProcessed={isProcessed}\n isProcessing={isProcessing}\n courseStream={courseStream}\n onFormDataChange={onFormDataChange}\n onChapterExitWarning={onChapterExitWarning}\n enrollmentType={enrollmentType}\n />\n }\n footerElement={\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n {(!isGoalCreation || testType === 'no-test') && (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n widthX={6.5}\n zIndex={20}\n tooltipItem=\"Add a chapter\"\n >\n <Styled.ButtonWrapper $borderRadius={50}>\n <IconButton\n renderAs=\"secondary\"\n analyticsLabel=\"Add custom chapters\"\n Icon={PlusIcon}\n disabled={isProcessing}\n onClick={handleOnAddCustomChapter}\n />\n </Styled.ButtonWrapper>\n </ArrowTooltip>\n )}\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n widthX={11}\n zIndex={20}\n tooltipItem=\"Please select atleast one chapter\"\n hidden={isAtleastOneChapterAdded}\n >\n <Styled.ButtonWrapper>\n <Button\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={9}\n label={buttonLabel}\n onClick={handleNext}\n iconPosition=\"right\"\n busy={isProcessing}\n disabled={!isAtleastOneChapterAdded}\n analyticsProps={analyticsProps}\n />\n </Styled.ButtonWrapper>\n </ArrowTooltip>\n </FlexView>\n }\n />\n );\n});\n\nexport default ChaptersSelectionStep;\n"],"names":["ChaptersSelectionStep","memo","props","currentStep","onFormDataChange","onChapterExitWarning","formData","studentName","studentId","config","isGoalCreation","onPreSubmit","courseStream","classRatio","enrollmentType","flow","useContext","MilestoneCreateContext","trackEvent","useUIContext","submitBaseMessage","buttonLabel","name","title","analyticsProps","testType","primaryChaptersList","board","major","region","chapterGoalCategory","primaryGoalCategory","isProcessing","isProcessed","useChapterListUpdate","isAtleastOneChapterAdded","useMemo","chapter","handleNext","useCallback","selectedChaptersList","searchedAndAddedChapterLength","suggestedChaptersLength","handleOnAddCustomChapter","handleOnBackButtonClick","handleBack","isChangeDetected","computeChangeDetection","GOAL_EDIT_FLOWS","WARNING_MESSAGES","jsx","BodyLayout","FlexView","Text","ClassDetailsStep","ChapterSelection","ArrowTooltip","Styled.ButtonWrapper","IconButton","PlusIcon","Button"],"mappings":"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"}
1
+ {"version":3,"file":"chapters-selection-step.js","sources":["../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.tsx"],"sourcesContent":["import type { IFormStepProps } from '../../milestone-create-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useContext, useMemo } from 'react';\n\nimport Bin2Icon from '../../../../../assets/line-icons/icons/bin2';\nimport PlusIcon from '../../../../../assets/line-icons/icons/plus';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { WARNING_MESSAGES } from '../../../constants';\nimport { GOAL_EDIT_FLOWS } from '../../milestone-create-constants';\nimport MilestoneCreateContext from '../../milestone-create-context';\nimport BodyLayout from '../body-layout/body-layout';\nimport ClassDetailsStep from '../class-details-step/class-details-step';\nimport ChapterSelection from './chapter-selection-step-v2/chapter-selection';\nimport * as Styled from './chapters-selection-step-styled';\nimport { useChapterListUpdate } from './use-chapter-list-update';\nimport { computeChangeDetection } from './utils';\n\nconst ChaptersSelectionStep: FC<IFormStepProps> = memo(props => {\n const {\n currentStep,\n onFormDataChange,\n onChapterExitWarning,\n formData,\n studentName,\n studentId,\n config,\n isGoalCreation,\n onPreSubmit,\n courseStream,\n classRatio,\n enrollmentType,\n canDeleteGoal,\n onDeleteGoal,\n } = props;\n const { flow } = useContext(MilestoneCreateContext);\n const { onEvent: trackEvent } = useUIContext();\n\n const {\n action_plan: {\n green: { share_message_template: submitBaseMessage },\n },\n } = config;\n const { buttonLabel, name, title } = currentStep;\n const analyticsProps = {\n step: name,\n };\n const { testType, primaryChaptersList, board, major, region, chapterGoalCategory } = formData;\n\n const { primaryGoalCategory } = chapterGoalCategory || {};\n\n const goalEditFlow = canDeleteGoal && (flow === 'DRAFT_EDIT' || flow === 'EDIT');\n\n //* Hook that handles making api call for cue_chapters updating primaryChapterList.\n const { isProcessing, isProcessed } = useChapterListUpdate({\n formData,\n onFormDataChange,\n studentId,\n });\n\n const isAtleastOneChapterAdded = useMemo(() => {\n if (primaryChaptersList) {\n return primaryChaptersList.some(chapter => chapter.added);\n }\n\n return false;\n }, [primaryChaptersList]);\n\n const handleNext = useCallback(() => {\n const selectedChaptersList = primaryChaptersList?.filter(chapter => {\n return Boolean(chapter.added);\n });\n\n const searchedAndAddedChapterLength =\n primaryChaptersList?.filter(\n chapter => chapter.program_id !== primaryGoalCategory?.program_code && chapter.added,\n ).length ?? 0;\n\n const suggestedChaptersLength =\n primaryChaptersList?.filter(chapter => chapter.program_id === primaryGoalCategory?.program_id)\n .length ?? 0;\n\n trackEvent('CHAPTER_DETAILS_ADDED', {\n total_chapter_added: selectedChaptersList?.length ?? 0,\n searched_chapter_added: searchedAndAddedChapterLength,\n suggested_chapter_added: suggestedChaptersLength,\n });\n\n if (isGoalCreation) {\n onFormDataChange({\n primaryChaptersList: primaryChaptersList,\n selectedChaptersList: selectedChaptersList,\n searchedChaptersList: [],\n chapterSubStages: 'date-selection',\n committed: {\n selectedChaptersList: true,\n chapterSubStages: true,\n grade: true,\n board: !!board,\n major: !!major,\n region: !!region,\n },\n });\n } else if (flow) {\n onPreSubmit?.({ isDraftPlan: false, flow, submitBaseMessage });\n }\n }, [\n primaryChaptersList,\n board,\n major,\n region,\n trackEvent,\n onFormDataChange,\n onPreSubmit,\n flow,\n isGoalCreation,\n submitBaseMessage,\n primaryGoalCategory,\n ]);\n\n const handleOnAddCustomChapter = useCallback(() => {\n onFormDataChange({\n chapterSubStages: 'custom-chapters',\n selectedChaptersList: undefined,\n committed: {\n chapterSubStages: true,\n selectedChaptersList: false,\n },\n });\n }, [onFormDataChange]);\n\n const handleOnBackButtonClick = useCallback(\n (handleBack: () => void) => {\n if (!flow) return null;\n\n const isChangeDetected = computeChangeDetection(primaryChaptersList, primaryGoalCategory);\n\n if (GOAL_EDIT_FLOWS.includes(flow) || !primaryChaptersList?.length || !isChangeDetected) {\n handleBack();\n } else {\n onChapterExitWarning?.({\n onSuccess: handleBack,\n description: WARNING_MESSAGES.CHAPTER_EXIT_WARNING,\n });\n }\n },\n [onChapterExitWarning, flow, primaryChaptersList, primaryGoalCategory],\n );\n\n return (\n <BodyLayout\n stepName={name}\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1} $width=\"100%\">\n <Text $renderAs=\"ab2\">{isGoalCreation ? title : 'Chapters'}</Text>\n\n {isGoalCreation && flow === 'CREATE' && (\n <ClassDetailsStep\n studentName={studentName}\n studentId={studentId}\n currentStep={currentStep}\n config={config}\n formData={formData}\n courseStream={courseStream}\n classRatio={classRatio}\n onFormDataChange={onFormDataChange}\n onChapterExitWarning={onChapterExitWarning}\n enrollmentType={enrollmentType}\n />\n )}\n\n {isGoalCreation && goalEditFlow && (\n <Styled.BinIconWrapper>\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Delete goal\"\n zIndex={10}\n widthX={6}\n >\n <IconButton\n size=\"xsmall\"\n renderAs=\"tertiary\"\n Icon={Bin2Icon}\n analyticsLabel=\"delete_goal_plan\"\n onClick={onDeleteGoal}\n />\n </ArrowTooltip>\n </Styled.BinIconWrapper>\n )}\n </FlexView>\n }\n bodyHeight=\"100%\"\n onBackButtonClick={handleOnBackButtonClick}\n bodyElement={\n <ChapterSelection\n config={config}\n classRatio={classRatio}\n isGoalCreation={isGoalCreation}\n formData={formData}\n studentName={studentName}\n isProcessed={isProcessed}\n isProcessing={isProcessing}\n courseStream={courseStream}\n onFormDataChange={onFormDataChange}\n onChapterExitWarning={onChapterExitWarning}\n enrollmentType={enrollmentType}\n />\n }\n footerElement={\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n {(!isGoalCreation || testType === 'no-test') && (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n widthX={6.5}\n zIndex={20}\n tooltipItem=\"Add a chapter\"\n >\n <Styled.ButtonWrapper $borderRadius={50}>\n <IconButton\n renderAs=\"secondary\"\n analyticsLabel=\"Add custom chapters\"\n Icon={PlusIcon}\n disabled={isProcessing}\n onClick={handleOnAddCustomChapter}\n />\n </Styled.ButtonWrapper>\n </ArrowTooltip>\n )}\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n widthX={11}\n zIndex={20}\n tooltipItem=\"Please select atleast one chapter\"\n hidden={isAtleastOneChapterAdded}\n >\n <Styled.ButtonWrapper>\n <Button\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={9}\n label={buttonLabel}\n onClick={handleNext}\n iconPosition=\"right\"\n busy={isProcessing}\n disabled={!isAtleastOneChapterAdded}\n analyticsProps={analyticsProps}\n />\n </Styled.ButtonWrapper>\n </ArrowTooltip>\n </FlexView>\n }\n />\n );\n});\n\nexport default ChaptersSelectionStep;\n"],"names":["ChaptersSelectionStep","memo","props","currentStep","onFormDataChange","onChapterExitWarning","formData","studentName","studentId","config","isGoalCreation","onPreSubmit","courseStream","classRatio","enrollmentType","canDeleteGoal","onDeleteGoal","flow","useContext","MilestoneCreateContext","trackEvent","useUIContext","submitBaseMessage","buttonLabel","name","title","analyticsProps","testType","primaryChaptersList","board","major","region","chapterGoalCategory","primaryGoalCategory","goalEditFlow","isProcessing","isProcessed","useChapterListUpdate","isAtleastOneChapterAdded","useMemo","chapter","handleNext","useCallback","selectedChaptersList","searchedAndAddedChapterLength","suggestedChaptersLength","handleOnAddCustomChapter","handleOnBackButtonClick","handleBack","isChangeDetected","computeChangeDetection","GOAL_EDIT_FLOWS","WARNING_MESSAGES","jsx","BodyLayout","jsxs","FlexView","Text","ClassDetailsStep","Styled.BinIconWrapper","ArrowTooltip","IconButton","Bin2Icon","ChapterSelection","Styled.ButtonWrapper","PlusIcon","Button"],"mappings":"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"}