@cuemath/leap 3.4.3 → 3.4.4-akm-1

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 (175) hide show
  1. package/dist/assets/illustrations/illustrations.js +7 -0
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/features/auth/pla-signup/pla-analytics-events.js +1 -1
  4. package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -1
  5. package/dist/features/auth/pla-signup/signup-options/signup-options.js +46 -37
  6. package/dist/features/auth/pla-signup/signup-options/signup-options.js.map +1 -1
  7. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/constants.js +2 -9
  8. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/constants.js.map +1 -1
  9. package/dist/features/circle-games/game-launcher/game-launcher-analytics-events.js +6 -8
  10. package/dist/features/circle-games/game-launcher/game-launcher-analytics-events.js.map +1 -1
  11. package/dist/features/circle-games/{game-launcher → game-launcher-v2}/api/get-content-for-today/constants.js +1 -1
  12. package/dist/features/circle-games/game-launcher-v2/api/get-content-for-today/constants.js.map +1 -0
  13. package/dist/features/circle-games/game-launcher-v2/api/get-content-for-today/get-circle-home-api.js +10 -0
  14. package/dist/features/circle-games/game-launcher-v2/api/get-content-for-today/get-circle-home-api.js.map +1 -0
  15. package/dist/features/circle-games/game-launcher-v2/comps/card-container/card-container-styled.js.map +1 -0
  16. package/dist/features/circle-games/game-launcher-v2/comps/card-container/card-container.js.map +1 -0
  17. package/dist/features/circle-games/game-launcher-v2/comps/card-container/constants.js.map +1 -0
  18. package/dist/features/circle-games/game-launcher-v2/comps/carousel/carousel-styled.js +120 -0
  19. package/dist/features/circle-games/game-launcher-v2/comps/carousel/carousel-styled.js.map +1 -0
  20. package/dist/features/circle-games/game-launcher-v2/comps/carousel/carousel.js +57 -0
  21. package/dist/features/circle-games/game-launcher-v2/comps/carousel/carousel.js.map +1 -0
  22. package/dist/features/circle-games/game-launcher-v2/comps/carousel-badge/carousel-badge-style.js +20 -0
  23. package/dist/features/circle-games/game-launcher-v2/comps/carousel-badge/carousel-badge-style.js.map +1 -0
  24. package/dist/features/circle-games/game-launcher-v2/comps/carousel-badge/carousel-badge.js +17 -0
  25. package/dist/features/circle-games/game-launcher-v2/comps/carousel-badge/carousel-badge.js.map +1 -0
  26. package/dist/features/circle-games/game-launcher-v2/comps/carousel-badge/carousel-single-badge.js +20 -0
  27. package/dist/features/circle-games/game-launcher-v2/comps/carousel-badge/carousel-single-badge.js.map +1 -0
  28. package/dist/features/circle-games/game-launcher-v2/comps/circular-game-card/circular-game-card-styled.js +48 -0
  29. package/dist/features/circle-games/game-launcher-v2/comps/circular-game-card/circular-game-card-styled.js.map +1 -0
  30. package/dist/features/circle-games/game-launcher-v2/comps/circular-game-card/circular-game-card.js +66 -0
  31. package/dist/features/circle-games/game-launcher-v2/comps/circular-game-card/circular-game-card.js.map +1 -0
  32. package/dist/features/circle-games/game-launcher-v2/comps/circular-game-card/constants.js +7 -0
  33. package/dist/features/circle-games/game-launcher-v2/comps/circular-game-card/constants.js.map +1 -0
  34. package/dist/features/circle-games/game-launcher-v2/comps/game-card-content/constants.js +6 -0
  35. package/dist/features/circle-games/game-launcher-v2/comps/game-card-content/constants.js.map +1 -0
  36. package/dist/features/circle-games/game-launcher-v2/comps/game-card-content/game-card-content-styled.js +62 -0
  37. package/dist/features/circle-games/game-launcher-v2/comps/game-card-content/game-card-content-styled.js.map +1 -0
  38. package/dist/features/circle-games/game-launcher-v2/comps/game-card-content/game-card-content.js +13 -0
  39. package/dist/features/circle-games/game-launcher-v2/comps/game-card-content/game-card-content.js.map +1 -0
  40. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/constants.js.map +1 -0
  41. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/infinite-button/infinite-mode-launcher-button.js.map +1 -0
  42. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/spl-events-text/constants.js.map +1 -0
  43. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/spl-events-text/spl-events-text-style.js.map +1 -0
  44. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/spl-events-text/spl-events-text-types.js.map +1 -0
  45. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/spl-events-text/spl-events-text.js.map +1 -0
  46. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/table-mode/table-mode-styled.js.map +1 -0
  47. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/table-mode/table-mode.js.map +1 -0
  48. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/table-mode-star/constants.js.map +1 -0
  49. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/table-mode-star/table-mode-star-styled.js.map +1 -0
  50. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/table-mode-star/table-mode-star.js.map +1 -0
  51. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/table-segment-star/table-segment-star-styled.js.map +1 -0
  52. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/table-segment-star/table-segment-star.js.map +1 -0
  53. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/tables-card-styled.js.map +1 -0
  54. package/dist/features/circle-games/game-launcher-v2/comps/tables-card/tables-card.js.map +1 -0
  55. package/dist/features/circle-games/game-launcher-v2/dal/use-get-circle-home-details-dal/helper.js +94 -0
  56. package/dist/features/circle-games/game-launcher-v2/dal/use-get-circle-home-details-dal/helper.js.map +1 -0
  57. package/dist/features/circle-games/game-launcher-v2/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +37 -0
  58. package/dist/features/circle-games/game-launcher-v2/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -0
  59. package/dist/features/circle-games/game-launcher-v2/game-launcher-analytics-events.js +7 -0
  60. package/dist/features/circle-games/game-launcher-v2/game-launcher-analytics-events.js.map +1 -0
  61. package/dist/features/circle-games/game-launcher-v2/game-launcher-v2.js +242 -0
  62. package/dist/features/circle-games/game-launcher-v2/game-launcher-v2.js.map +1 -0
  63. package/dist/features/circle-games/game-launcher-v2/helpers.js +8 -0
  64. package/dist/features/circle-games/game-launcher-v2/helpers.js.map +1 -0
  65. package/dist/features/milestone/create/milestone-create-helpers.js +6 -2
  66. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  67. package/dist/features/post-game-stats/accuracy/accuracy-comps.js.map +1 -1
  68. package/dist/features/post-game-stats/accuracy/accuracy-styled.js +2 -2
  69. package/dist/features/post-game-stats/accuracy/accuracy-styled.js.map +1 -1
  70. package/dist/features/post-game-stats/clock/clock-styled.js +2 -2
  71. package/dist/features/post-game-stats/clock/clock-styled.js.map +1 -1
  72. package/dist/features/post-game-stats/digital-meter/constants.js +1 -1
  73. package/dist/features/post-game-stats/digital-meter/constants.js.map +1 -1
  74. package/dist/features/post-game-stats/digital-meter/digital-meter-styled.js +1 -1
  75. package/dist/features/post-game-stats/digital-meter/digital-meter-styled.js.map +1 -1
  76. package/dist/features/post-game-stats/digital-meter/digital-meter.js +1 -1
  77. package/dist/features/post-game-stats/digital-meter/digital-meter.js.map +1 -1
  78. package/dist/features/post-game-stats/points/points.js +5 -4
  79. package/dist/features/post-game-stats/points/points.js.map +1 -1
  80. package/dist/features/post-game-stats/post-game-stats-styled.js +9 -8
  81. package/dist/features/post-game-stats/post-game-stats-styled.js.map +1 -1
  82. package/dist/features/post-game-stats/post-game-stats.js +107 -105
  83. package/dist/features/post-game-stats/post-game-stats.js.map +1 -1
  84. package/dist/features/post-game-stats/score/score-styled.js +2 -2
  85. package/dist/features/post-game-stats/score/score-styled.js.map +1 -1
  86. package/dist/features/post-game-stats/streak/constants.js +1 -1
  87. package/dist/features/post-game-stats/streak/constants.js.map +1 -1
  88. package/dist/features/post-game-stats/streak/streak-styled.js +2 -2
  89. package/dist/features/post-game-stats/streak/streak-styled.js.map +1 -1
  90. package/dist/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.js +37 -20
  91. package/dist/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.js.map +1 -1
  92. package/dist/index.d.ts +91 -9
  93. package/dist/index.js +274 -267
  94. package/dist/index.js.map +1 -1
  95. package/dist/static/accuracy-badge.2e161f00.svg +1 -0
  96. package/dist/static/clock-badge.0adb4ba6.svg +1 -0
  97. package/dist/static/down-arrow-badge.f462f615.svg +1 -0
  98. package/dist/static/green-tick.43b94c3a.svg +1 -0
  99. package/dist/static/points-badge.96bdecc9.svg +1 -0
  100. package/dist/static/star-badge.5450c267.svg +1 -0
  101. package/dist/static/up-arrow-badge.71fe7ad1.svg +1 -0
  102. package/package.json +1 -1
  103. package/dist/assets/line-icons/icons/carat-left.js +0 -26
  104. package/dist/assets/line-icons/icons/carat-left.js.map +0 -1
  105. package/dist/assets/line-icons/icons/carat-right.js +0 -26
  106. package/dist/assets/line-icons/icons/carat-right.js.map +0 -1
  107. package/dist/features/circle-games/game-launcher/api/get-content-for-today/constants.js.map +0 -1
  108. package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js +0 -10
  109. package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js.map +0 -1
  110. package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.js.map +0 -1
  111. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js.map +0 -1
  112. package/dist/features/circle-games/game-launcher/comps/card-container/constants.js.map +0 -1
  113. package/dist/features/circle-games/game-launcher/comps/carousel/carousel-styled.js +0 -39
  114. package/dist/features/circle-games/game-launcher/comps/carousel/carousel-styled.js.map +0 -1
  115. package/dist/features/circle-games/game-launcher/comps/carousel/carousel.js +0 -85
  116. package/dist/features/circle-games/game-launcher/comps/carousel/carousel.js.map +0 -1
  117. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js +0 -138
  118. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js.map +0 -1
  119. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +0 -105
  120. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +0 -1
  121. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js.map +0 -1
  122. package/dist/features/circle-games/game-launcher/comps/tables-card/infinite-button/infinite-mode-launcher-button.js.map +0 -1
  123. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/constants.js.map +0 -1
  124. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text-style.js.map +0 -1
  125. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text-types.js.map +0 -1
  126. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text.js.map +0 -1
  127. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js.map +0 -1
  128. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +0 -1
  129. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/constants.js.map +0 -1
  130. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star-styled.js.map +0 -1
  131. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star.js.map +0 -1
  132. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star-styled.js.map +0 -1
  133. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js.map +0 -1
  134. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +0 -1
  135. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +0 -1
  136. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/helper.js +0 -73
  137. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/helper.js.map +0 -1
  138. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +0 -36
  139. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +0 -1
  140. package/dist/features/circle-games/game-launcher/game-launcher.js +0 -219
  141. package/dist/features/circle-games/game-launcher/game-launcher.js.map +0 -1
  142. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/constants.js +0 -8
  143. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/constants.js.map +0 -1
  144. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js +0 -286
  145. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js.map +0 -1
  146. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/constants.js +0 -10
  147. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/constants.js.map +0 -1
  148. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey-styled.js +0 -13
  149. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey-styled.js.map +0 -1
  150. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js +0 -137
  151. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js.map +0 -1
  152. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/constants.js +0 -14
  153. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/constants.js.map +0 -1
  154. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey-styled.js +0 -13
  155. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey-styled.js.map +0 -1
  156. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js +0 -230
  157. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +0 -1
  158. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/card-container/card-container-styled.js +0 -0
  159. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/card-container/card-container.js +0 -0
  160. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/card-container/constants.js +0 -0
  161. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/constants.js +0 -0
  162. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/infinite-button/infinite-mode-launcher-button.js +0 -0
  163. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/spl-events-text/constants.js +0 -0
  164. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/spl-events-text/spl-events-text-style.js +0 -0
  165. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/spl-events-text/spl-events-text-types.js +0 -0
  166. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/spl-events-text/spl-events-text.js +0 -0
  167. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/table-mode/table-mode-styled.js +0 -0
  168. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/table-mode/table-mode.js +0 -0
  169. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/table-mode-star/constants.js +0 -0
  170. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/table-mode-star/table-mode-star-styled.js +0 -0
  171. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/table-mode-star/table-mode-star.js +0 -0
  172. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/table-segment-star/table-segment-star-styled.js +0 -0
  173. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/table-segment-star/table-segment-star.js +0 -0
  174. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/tables-card-styled.js +0 -0
  175. /package/dist/features/circle-games/{game-launcher → game-launcher-v2}/comps/tables-card/tables-card.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables-card.js","sources":["../../../../../../src/features/circle-games/game-launcher-v2/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 { 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 {\n INFINITE_MODE_TEXT,\n NORMAL_TABLE_MODES,\n TABLE_MODE_LABEL_COLOR,\n TABLE_REVEAL_ANIMATION,\n} from './constants';\nimport InfiniteButtonCard from './infinite-button/infinite-mode-launcher-button';\nimport { SplEventsText } from './spl-events-text/spl-events-text';\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 modeRevealAnimationSettings = {\n loop: false,\n renderer: '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 [highlightedInfiniteModeText, setHighlightedInfiniteModeText] = useState<boolean>(false);\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 const infiniteButtonRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\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) as React.RefObject<HTMLDivElement>;\n const cardRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n\n const [rewardStar, setRewardStar] = useState(openModesOfTable?.rewardStar ?? []);\n const [showSplEventsText, setShowSplEventsText] = useState(false);\n const revealAnimationRef = useRef<ILottieAnimationRef | null>(null);\n const disappearAnimationTimer = useRef<ReturnType<typeof setTimeout>>(\n undefined,\n ) as React.RefObject<ReturnType<typeof setTimeout> | undefined>;\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 handleInfiniteModeSegmentMouseOver = useCallback(() => {\n setHighlightedInfiniteModeText(true);\n }, []);\n\n const handleTableSegmentMouseLeave = useCallback(() => {\n setLabelColor('WHITE_T_60');\n !revealTableModes.tableNumber && setHighlightedTable(null);\n setHighlightedInfiniteModeText(false);\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 // Calculate completed normal modes and special events status\n const { completedModes, isSpecialEventsActive } = useMemo<{\n completedModes: TTableMode[];\n isSpecialEventsActive: boolean;\n }>(() => {\n const calculatedcompletedModes = NORMAL_TABLE_MODES.filter(star =>\n data.tableList.every(table => table.stars.includes(star)),\n );\n\n const isAllRewardStarsInCompletedModes =\n rewardStar.length > 0 &&\n calculatedcompletedModes.length > 0 &&\n rewardStar.every(star =>\n calculatedcompletedModes.includes(star as Exclude<TTableMode, 'infinite'>),\n );\n\n return {\n completedModes: calculatedcompletedModes,\n isSpecialEventsActive: isAllRewardStarsInCompletedModes,\n };\n }, [data.tableList, rewardStar]);\n\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 if (highlightedInfiniteModeText) {\n return INFINITE_MODE_TEXT;\n }\n\n return highlightedTable ? `${highlightedTable}× Table` : label;\n }, [highlightedLevel, highlightedTable, highlightedInfiniteModeText, 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 infiniteButtonRef: infiniteButtonRef,\n startLabelAnimation,\n stopLabelAnimation,\n setLabelVisiblity,\n handleTableSegmentClick,\n goBackFromTableLevel: goBack,\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 useEffect(() => {\n if (revealTableModes.tableNumber === 0 && isSpecialEventsActive && !showSplEventsText) {\n setShowSplEventsText(true);\n }\n\n if (revealTableModes.tableNumber > 0) {\n setShowSplEventsText(false);\n }\n }, [revealTableModes.tableNumber, isSpecialEventsActive, showSplEventsText]);\n\n return (\n <>\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 <InfiniteButtonCard\n onClick={handleInfiniteModeClick}\n buttonRef={infiniteButtonRef}\n onMouseLeave={handleTableSegmentMouseLeave}\n onMouseOver={handleInfiniteModeSegmentMouseOver}\n />\n {/* card shadow */}\n <Styled.TableSegmentCardShadowContainer />\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={table.tableNumber ?? 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 {NORMAL_TABLE_MODES.map(star => (\n <TableSegmentStar\n key={star}\n isStarAchieved={table.stars.includes(star as TTableMode)}\n rewardStar={\n !fadeIn &&\n !isSpecialEventsActive &&\n openModesOfTable?.tableNumber === table.tableNumber\n ? rewardStar.includes(star as TTableMode)\n : undefined\n }\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 (\n {revealTableModes.tableNumber === 0 && isSpecialEventsActive && (\n <>\n {NORMAL_TABLE_MODES.map((starType, index) => {\n if (!completedModes.includes(starType)) return null;\n\n return (\n <Styled.AllStarAbsoluteView key={starType} $level={index + 1}>\n <LottieAnimation\n src={LOTTIE.LEVEL_1_ALLSTAR}\n settings={modeRevealAnimationSettings}\n animateOnIntersect\n />\n </Styled.AllStarAbsoluteView>\n );\n })}\n </>\n )}\n )\n </Styled.TableSegmentsWrapper>\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={tableMode.type ?? 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={\n tableMode.isStarAchieved || rewardStar.includes(tableMode.type)\n }\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={modeRevealAnimationSettings}\n onRender={showTableModes}\n animateOnIntersect\n />\n </Styled.TableModeWrapper>\n </Styled.TableModeContainer>\n )}\n </Styled.CardWrapper>\n </CardContainer>\n {showSplEventsText && <SplEventsText completedModes={completedModes} />}\n </>\n );\n },\n);\n\nexport const TablesCard = memo(TablesCardComponent);\n"],"names":["modeRevealAnimationSettings","TablesCardComponent","forwardRef","data","label","onPress","openModesOfTable","defaultTable","onGoBackFromTableLevel","onPressTableSegment","ref","trackEvent","useUIContext","playButtonSound","useCircleSounds","fadeIn","setFadeIn","useState","highlightedTable","setHighlightedTable","highlightedLevel","setHighlightedLevel","highlightedInfiniteModeText","setHighlightedInfiniteModeText","labelColor","setLabelColor","revealTableModes","setRevealTableModes","_a","table","infiniteButtonRef","useRef","showLabel","setShowLabel","isLabelAnimated","setIsLabelAnimated","animatedColor","setAniimatedColor","labelRef","cardRef","rewardStar","setRewardStar","showSplEventsText","setShowSplEventsText","revealAnimationRef","disappearAnimationTimer","handleTableSegmentClick","useCallback","GAME_LAUNCHER_ANALYTICS_EVENTS","handleTableSegmentMouseOver","handleInfiniteModeSegmentMouseOver","handleTableSegmentMouseLeave","goBack","time","TABLE_REVEAL_ANIMATION","showTableModes","handleModeMouseOver","type","level","TABLE_MODE_LABEL_COLOR","handleModeMouseLeave","revealTableModesMemo","useMemo","tableModes","completedModes","isSpecialEventsActive","calculatedcompletedModes","NORMAL_TABLE_MODES","star","isAllRewardStarsInCompletedModes","handleInfiniteModeClick","handleNormalModeClick","mode","isStarRewarded","getHighlightedText","INFINITE_MODE_TEXT","startLabelAnimation","color","stopLabelAnimation","setLabelVisiblity","visible","useImperativeHandle","useEffect","jsxs","Fragment","jsx","CardContainer","Styled.CardWrapper","Styled.TableSegmentsWrapper","InfiniteButtonCard","Styled.TableSegmentCardShadowContainer","index","segmentAngle","currentAngle","Styled.TableSegment","FlexView","TableSegmentStar","Separator","GAME_LAUNCHER_SIZE","Styled.TableNumber","Text","GAME_LAUNCHER_SIZE_LARGE","starType","Styled.AllStarAbsoluteView","LottieAnimation","LOTTIE","Styled.TableModeContainer","Styled.TableModeWrapper","Styled.AnimatedView","tableMode","React","Styled.ModeOverlay","Styled.AbsoluteView","TableMode","Styled.IconWrapper","Back2Icon","SplEventsText","TablesCard","memo"],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import { ProjectType as r } from "../../../games/web-view/enums/project-type-enum.js";
2
+ const m = (e) => {
3
+ if (!e) return null;
4
+ const s = {
5
+ points: e.points,
6
+ streakDays: e.streak_days,
7
+ streakReduction: e.streak_reduction,
8
+ streakDaysBeforeReduction: e.streak_days_before_reduction,
9
+ streakStatus: e.streak_status,
10
+ tournamentRank: e.tournament_rank,
11
+ projects: {},
12
+ timestamps: {
13
+ startTimestamp: e.timestamps.start_timestamp,
14
+ endTimestamp: e.timestamps.end_timestamp,
15
+ current: e.timestamps.current
16
+ }
17
+ };
18
+ return e.projects.games && (s.projects.games = {
19
+ label: e.projects.games.label,
20
+ type: r.GAME,
21
+ initialProgressValue: 0,
22
+ data: e.projects.games.data.map((t) => ({
23
+ id: t.id,
24
+ name: t.name,
25
+ cardLottie: t.card,
26
+ tutorial: t.tutorial,
27
+ variant: t.variant,
28
+ isPlayed: t.played,
29
+ wonToday: t.won_today,
30
+ lostToday: t.lost_today,
31
+ displayNameImage: t.display_name_image || ""
32
+ }))
33
+ }), e.projects.puzzles && (s.projects.puzzles = {
34
+ label: e.projects.puzzles.label,
35
+ type: r.PUZZLE,
36
+ initialProgressValue: 0,
37
+ data: e.projects.puzzles.data.map((t) => {
38
+ var i, a;
39
+ return {
40
+ id: t.id,
41
+ name: t.name,
42
+ cardLottie: t.card,
43
+ tutorial: t.tutorial,
44
+ variant: t.variant,
45
+ question: t.question,
46
+ isHintSeen: t.is_hint_seen,
47
+ solved: t.solved,
48
+ firstAttempt: {
49
+ solvedWithHint: ((i = t.first_attempt) == null ? void 0 : i.solved_with_hint) ?? !1,
50
+ pointsScored: ((a = t.first_attempt) == null ? void 0 : a.points_scored) ?? 0
51
+ },
52
+ displayNameImage: t.display_name_image || ""
53
+ };
54
+ })
55
+ }), e.projects.lessons && (s.projects.lessons = {
56
+ label: e.projects.lessons.label,
57
+ type: r.LESSON,
58
+ initialProgressValue: 0,
59
+ data: e.projects.lessons.data.map((t) => {
60
+ var i, a, o;
61
+ return {
62
+ id: t.id,
63
+ name: t.name,
64
+ cardLottie: t.card,
65
+ tutorial: t.tutorial,
66
+ variant: t.variant,
67
+ sessionId: t.session_id,
68
+ miniGameIdentifier: t.mini_game_identifier,
69
+ targetQuestions: t.target_questions,
70
+ status: t.status,
71
+ firstAttempt: {
72
+ pointsScored: ((i = t.first_attempt) == null ? void 0 : i.points_scored) ?? 0,
73
+ accuracy: ((a = t.first_attempt) == null ? void 0 : a.accuracy) ?? 0,
74
+ grossTimeTaken: ((o = t.first_attempt) == null ? void 0 : o.gross_time_taken) ?? 0
75
+ },
76
+ displayNameImage: t.display_name_image || ""
77
+ };
78
+ })
79
+ }), e.projects.tables && (s.projects.tables = {
80
+ label: e.projects.tables.label,
81
+ type: r.TABLE,
82
+ data: {
83
+ infiniteModeHighScore: e.projects.tables.data.infinite_mode_high_score,
84
+ tableList: e.projects.tables.data.table_wise_details.map((t) => ({
85
+ tableNumber: t.table_number,
86
+ stars: t.stars
87
+ }))
88
+ }
89
+ }), s;
90
+ };
91
+ export {
92
+ m as transformCircleHomeData
93
+ };
94
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sources":["../../../../../../src/features/circle-games/game-launcher-v2/dal/use-get-circle-home-details-dal/helper.ts"],"sourcesContent":["import type { IGetCircleHomeResponseModel } from '../../api/get-content-for-today/get-circle-home-api-types';\nimport type {\n ICircleHomeDetails,\n TSkillStatus,\n TStreakStatus,\n TTableMode,\n} from './use-get-circle-home-dal-types';\n\nimport { ProjectType } from '../../../games/web-view/enums';\n\nexport const transformCircleHomeData = (\n data: IGetCircleHomeResponseModel | null,\n): ICircleHomeDetails | null => {\n if (!data) return null;\n\n const circleHomeDetails: ICircleHomeDetails = {\n points: data.points,\n streakDays: data.streak_days,\n streakReduction: data.streak_reduction,\n streakDaysBeforeReduction: data.streak_days_before_reduction,\n streakStatus: data.streak_status as TStreakStatus,\n tournamentRank: data.tournament_rank,\n projects: {},\n timestamps: {\n startTimestamp: data.timestamps.start_timestamp,\n endTimestamp: data.timestamps.end_timestamp,\n current: data.timestamps.current,\n },\n };\n\n if (data.projects.games) {\n circleHomeDetails.projects.games = {\n label: data.projects.games.label,\n type: ProjectType.GAME,\n initialProgressValue: 0,\n data: data.projects.games.data.map(game => ({\n id: game.id,\n name: game.name,\n cardLottie: game.card,\n tutorial: game.tutorial,\n variant: game.variant,\n isPlayed: game.played,\n wonToday: game.won_today,\n lostToday: game.lost_today,\n displayNameImage: game.display_name_image || '',\n })),\n };\n }\n\n if (data.projects.puzzles) {\n circleHomeDetails.projects.puzzles = {\n label: data.projects.puzzles.label,\n type: ProjectType.PUZZLE,\n initialProgressValue: 0,\n data: data.projects.puzzles.data.map(puzzle => ({\n id: puzzle.id,\n name: puzzle.name,\n cardLottie: puzzle.card,\n tutorial: puzzle.tutorial,\n variant: puzzle.variant,\n question: puzzle.question,\n isHintSeen: puzzle.is_hint_seen,\n solved: puzzle.solved,\n firstAttempt: {\n solvedWithHint: puzzle.first_attempt?.solved_with_hint ?? false,\n pointsScored: puzzle.first_attempt?.points_scored ?? 0,\n },\n displayNameImage: puzzle.display_name_image || '',\n })),\n };\n }\n\n if (data.projects.lessons) {\n circleHomeDetails.projects.lessons = {\n label: data.projects.lessons.label,\n type: ProjectType.LESSON,\n initialProgressValue: 0,\n data: data.projects.lessons.data.map(lesson => ({\n id: lesson.id,\n name: lesson.name,\n cardLottie: lesson.card,\n tutorial: lesson.tutorial,\n variant: lesson.variant,\n sessionId: lesson.session_id,\n miniGameIdentifier: lesson.mini_game_identifier,\n targetQuestions: lesson.target_questions,\n status: lesson.status as TSkillStatus,\n firstAttempt: {\n pointsScored: lesson.first_attempt?.points_scored ?? 0,\n accuracy: lesson.first_attempt?.accuracy ?? 0,\n grossTimeTaken: lesson.first_attempt?.gross_time_taken ?? 0,\n },\n displayNameImage: lesson.display_name_image || '',\n })),\n };\n }\n\n if (data.projects.tables) {\n circleHomeDetails.projects.tables = {\n label: data.projects.tables.label,\n type: ProjectType.TABLE,\n data: {\n infiniteModeHighScore: data.projects.tables.data.infinite_mode_high_score,\n tableList: data.projects.tables.data.table_wise_details.map(table => ({\n tableNumber: table.table_number,\n stars: table.stars as TTableMode[],\n })),\n },\n };\n }\n\n return circleHomeDetails;\n};\n"],"names":["transformCircleHomeData","data","circleHomeDetails","ProjectType","game","puzzle","_a","_b","lesson","_c","table"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { useMemo as D, useState as p, useCallback as s, useEffect as u } from "react";
2
+ import { useGetCircleHomeAPI as y, invalidateCircleHomeAPI as P } from "../../api/get-content-for-today/get-circle-home-api.js";
3
+ import { transformCircleHomeData as n } from "./helper.js";
4
+ const F = (e, a, l) => {
5
+ const t = D(
6
+ () => ({
7
+ user_id: e,
8
+ grade: a,
9
+ country_code: l
10
+ }),
11
+ [e, a, l]
12
+ ), {
13
+ data: o = null,
14
+ get: c,
15
+ isProcessed: i,
16
+ ...r
17
+ } = y(e, t), [m, f] = p(
18
+ n(o)
19
+ ), C = s(() => {
20
+ c(e, t);
21
+ }, [c, t, e]), H = s(() => {
22
+ P(e, t);
23
+ }, [t, e]);
24
+ return u(() => {
25
+ i && o && f(n(o));
26
+ }, [o, i]), {
27
+ data: m,
28
+ isProcessed: i,
29
+ getCircleHomeDetails: C,
30
+ invalidateCircleHomeDetails: H,
31
+ ...r
32
+ };
33
+ };
34
+ export {
35
+ F as useGetCircleHomeDetailsDal
36
+ };
37
+ //# sourceMappingURL=use-get-circle-home-details-dal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-get-circle-home-details-dal.js","sources":["../../../../../../src/features/circle-games/game-launcher-v2/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.ts"],"sourcesContent":["import type { ICircleHomeDetails } from './use-get-circle-home-dal-types';\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n invalidateCircleHomeAPI,\n useGetCircleHomeAPI,\n} from '../../api/get-content-for-today/get-circle-home-api';\nimport { transformCircleHomeData } from './helper';\n\nexport const useGetCircleHomeDetailsDal = (\n userId: string,\n grade: string,\n countryCode: string,\n): Omit<ReturnType<typeof useGetCircleHomeAPI>, 'data' | 'get'> & {\n data: ICircleHomeDetails | null;\n getCircleHomeDetails: () => void;\n invalidateCircleHomeDetails: () => void;\n} => {\n const initialQuery = useMemo(\n () => ({\n user_id: userId,\n grade,\n country_code: countryCode,\n }),\n [userId, grade, countryCode],\n );\n\n const {\n data = null,\n get: getHomeDetails,\n isProcessed,\n ...rest\n } = useGetCircleHomeAPI(userId, initialQuery);\n const [contentForToday, setContentForToday] = useState<ICircleHomeDetails | null>(\n transformCircleHomeData(data),\n );\n\n const getCircleHomeDetails = useCallback(() => {\n getHomeDetails(userId, initialQuery);\n }, [getHomeDetails, initialQuery, userId]);\n\n const invalidateCircleHomeDetails = useCallback(() => {\n invalidateCircleHomeAPI(userId, initialQuery);\n }, [initialQuery, userId]);\n\n useEffect(() => {\n if (isProcessed && data) {\n setContentForToday(transformCircleHomeData(data));\n }\n }, [data, isProcessed]);\n\n return {\n data: contentForToday,\n isProcessed,\n getCircleHomeDetails,\n invalidateCircleHomeDetails,\n ...rest,\n };\n};\n"],"names":["useGetCircleHomeDetailsDal","userId","grade","countryCode","initialQuery","useMemo","data","getHomeDetails","isProcessed","rest","useGetCircleHomeAPI","contentForToday","setContentForToday","useState","transformCircleHomeData","getCircleHomeDetails","useCallback","invalidateCircleHomeDetails","invalidateCircleHomeAPI","useEffect"],"mappings":";;;AAUO,MAAMA,IAA6B,CACxCC,GACAC,GACAC,MAKG;AACH,QAAMC,IAAeC;AAAA,IACnB,OAAO;AAAA,MACL,SAASJ;AAAA,MACT,OAAAC;AAAA,MACA,cAAcC;AAAA,IAAA;AAAA,IAEhB,CAACF,GAAQC,GAAOC,CAAW;AAAA,EAAA,GAGvB;AAAA,IACJ,MAAAG,IAAO;AAAA,IACP,KAAKC;AAAA,IACL,aAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDC,EAAoBT,GAAQG,CAAY,GACtC,CAACO,GAAiBC,CAAkB,IAAIC;AAAA,IAC5CC,EAAwBR,CAAI;AAAA,EAAA,GAGxBS,IAAuBC,EAAY,MAAM;AAC7C,IAAAT,EAAeN,GAAQG,CAAY;AAAA,EAClC,GAAA,CAACG,GAAgBH,GAAcH,CAAM,CAAC,GAEnCgB,IAA8BD,EAAY,MAAM;AACpD,IAAAE,EAAwBjB,GAAQG,CAAY;AAAA,EAAA,GAC3C,CAACA,GAAcH,CAAM,CAAC;AAEzB,SAAAkB,EAAU,MAAM;AACd,IAAIX,KAAeF,KACEM,EAAAE,EAAwBR,CAAI,CAAC;AAAA,EAClD,GACC,CAACA,GAAME,CAAW,CAAC,GAEf;AAAA,IACL,MAAMG;AAAA,IACN,aAAAH;AAAA,IACA,sBAAAO;AAAA,IACA,6BAAAE;AAAA,IACA,GAAGR;AAAA,EAAA;AAEP;"}
@@ -0,0 +1,7 @@
1
+ import { PLUGINS as e } from "../../../node_modules/@cuemath/analytics-v2/dist/constants.js";
2
+ var i = /* @__PURE__ */ ((t) => (t.NEXT_ACTIVITY = "next_activity", t.PREV_ACTIVITY = "prev_activity", t.JOURNEY_NEXT_ACTIVITY = "journey_next_activity", t.TABLE_SELECTED = "table_selected", t))(i || {});
3
+ e.MIXPANEL, e.MIXPANEL, e.MIXPANEL;
4
+ export {
5
+ i as GAME_LAUNCHER_ANALYTICS_EVENTS
6
+ };
7
+ //# sourceMappingURL=game-launcher-analytics-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-launcher-analytics-events.js","sources":["../../../../src/features/circle-games/game-launcher-v2/game-launcher-analytics-events.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum GAME_LAUNCHER_ANALYTICS_EVENTS {\n NEXT_ACTIVITY = 'next_activity',\n PREV_ACTIVITY = 'prev_activity',\n JOURNEY_NEXT_ACTIVITY = 'journey_next_activity',\n TABLE_SELECTED = 'table_selected',\n}\n\nexport const GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS = {\n [GAME_LAUNCHER_ANALYTICS_EVENTS.NEXT_ACTIVITY]: [PLUGINS.MIXPANEL],\n [GAME_LAUNCHER_ANALYTICS_EVENTS.PREV_ACTIVITY]: [PLUGINS.MIXPANEL],\n [GAME_LAUNCHER_ANALYTICS_EVENTS.TABLE_SELECTED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["GAME_LAUNCHER_ANALYTICS_EVENTS","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,gBAAgB,iBAChBA,EAAA,gBAAgB,iBAChBA,EAAA,wBAAwB,yBACxBA,EAAA,iBAAiB,kBAJPA,IAAAA,KAAA,CAAA,CAAA;AAQuCC,EAAQ,UACRA,EAAQ,UACPA,EAAQ;"}
@@ -0,0 +1,242 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { memo as v, useRef as D, useCallback as c, useMemo as f } from "react";
3
+ import { ILLUSTRATIONS as i } from "../../../assets/illustrations/illustrations.js";
4
+ import { LOTTIE as B } from "../../../assets/lottie/lottie.js";
5
+ import { CircularLoader as M } from "../../ui/loader/circular-loader/circular-loader.js";
6
+ import W from "../../ui/lottie-animation/lottie-animation.js";
7
+ import { useCircleSounds as Y } from "../hooks/use-circle-sounds/use-circle-sounds.js";
8
+ import { CircleSoundKey as u } from "../hooks/use-circle-sounds/use-circle-sounds-enums.js";
9
+ import { GAME_LAUNCHER_SIZE as g } from "./comps/card-container/constants.js";
10
+ import { BadgesGroup as A } from "./comps/carousel-badge/carousel-badge.js";
11
+ import { Carousel as T } from "./comps/carousel/carousel.js";
12
+ import { CircularGameCard as d } from "./comps/circular-game-card/circular-game-card.js";
13
+ import { GAME_LAUNCHER_ASSET_PADDING as x } from "./comps/circular-game-card/constants.js";
14
+ import { TablesCard as V } from "./comps/tables-card/tables-card.js";
15
+ import { GAME_LAUNCHER_ANALYTICS_EVENTS as I } from "./game-launcher-analytics-events.js";
16
+ import { formatDuration as U } from "./helpers.js";
17
+ import { ProjectType as p } from "../games/web-view/enums/project-type-enum.js";
18
+ const y = g + x, se = v(
19
+ ({ onSegmentClick: s, data: o, isLoading: N, defaultIndex: G = 0, showTables: S = !1 }) => {
20
+ const O = D(null), { playSwipeSound: E, play: r } = Y(), L = c(
21
+ (t) => {
22
+ t.status !== "completed" && (r(u.GAME_CARD_CLICK), s(t, p.LESSON));
23
+ },
24
+ [s, r]
25
+ ), _ = c(
26
+ (t) => {
27
+ r(u.GAME_CARD_CLICK), s(t, p.TABLE);
28
+ },
29
+ [s, r]
30
+ ), b = c(
31
+ (t) => {
32
+ r(u.GAME_CARD_CLICK), s(t, p.GAME);
33
+ },
34
+ [s, r]
35
+ ), C = c(
36
+ (t) => {
37
+ r(u.GAME_CARD_CLICK), s(t, p.PUZZLE);
38
+ },
39
+ [s, r]
40
+ ), h = f(() => {
41
+ const t = [];
42
+ if (!o) return t;
43
+ if (o.games) {
44
+ const m = o.games.label;
45
+ o.games.data.forEach((e, n) => {
46
+ t.push({
47
+ ...e.isPlayed && {
48
+ isCompleted: !0,
49
+ carouselBadge: /* @__PURE__ */ l(
50
+ A,
51
+ {
52
+ badges: [
53
+ {
54
+ label: "Won",
55
+ color: "YELLOW_4",
56
+ illustration: i.UP_ARROW_BADGE,
57
+ value: e.wonToday
58
+ },
59
+ {
60
+ label: "Loss",
61
+ color: "ORANGE_4",
62
+ illustration: i.DOWN_ARROW_BADGE,
63
+ value: e.lostToday
64
+ }
65
+ ]
66
+ }
67
+ )
68
+ },
69
+ element: /* @__PURE__ */ l(
70
+ d,
71
+ {
72
+ data: {
73
+ card: e.cardLottie,
74
+ name: e.name,
75
+ isCompleted: !1,
76
+ displayNameImage: e.displayNameImage,
77
+ onPress: () => b(e)
78
+ },
79
+ label: m,
80
+ value: e.isPlayed ? 1 : 0,
81
+ maxValue: 1
82
+ },
83
+ `game-${n}`
84
+ )
85
+ });
86
+ });
87
+ }
88
+ if (o.lessons) {
89
+ const m = o.lessons.label;
90
+ o.lessons.data.forEach((e, n) => {
91
+ const a = e.status === "completed";
92
+ t.push({
93
+ ...a && {
94
+ isCompleted: a,
95
+ carouselBadge: /* @__PURE__ */ l(
96
+ A,
97
+ {
98
+ badges: [
99
+ {
100
+ label: "%",
101
+ color: "YELLOW_4",
102
+ illustration: i.ACCURACY_BADGE,
103
+ value: e.firstAttempt.accuracy
104
+ },
105
+ {
106
+ label: "",
107
+ color: "YELLOW_4",
108
+ illustration: i.CLOCK_BADGE,
109
+ value: U(e.firstAttempt.grossTimeTaken)
110
+ },
111
+ {
112
+ label: "",
113
+ color: "YELLOW_4",
114
+ illustration: i.POINTS_BADGE,
115
+ value: e.firstAttempt.pointsScored
116
+ }
117
+ ]
118
+ }
119
+ )
120
+ },
121
+ element: /* @__PURE__ */ l(
122
+ d,
123
+ {
124
+ data: {
125
+ card: e.cardLottie,
126
+ name: e.name,
127
+ isCompleted: a,
128
+ displayNameImage: e.displayNameImage,
129
+ onPress: () => L(e)
130
+ },
131
+ label: m,
132
+ value: a ? 1 : 0,
133
+ maxValue: 1
134
+ },
135
+ `lesson-${n}`
136
+ )
137
+ });
138
+ });
139
+ }
140
+ if (o.puzzles) {
141
+ const m = o.puzzles.label;
142
+ o.puzzles.data.forEach((e, n) => {
143
+ const a = e.solved;
144
+ t.push({
145
+ ...a && {
146
+ isCompleted: a,
147
+ carouselBadge: /* @__PURE__ */ l(
148
+ A,
149
+ {
150
+ badges: [
151
+ {
152
+ label: "",
153
+ color: "YELLOW_4",
154
+ illustration: i.STAR_BADGE,
155
+ value: e.firstAttempt.solvedWithHint ? "Solved with hint" : "Solved"
156
+ },
157
+ {
158
+ label: "",
159
+ color: "YELLOW_4",
160
+ illustration: i.POINTS_BADGE,
161
+ value: e.firstAttempt.pointsScored
162
+ }
163
+ ]
164
+ }
165
+ )
166
+ },
167
+ element: /* @__PURE__ */ l(
168
+ d,
169
+ {
170
+ data: {
171
+ card: e.cardLottie,
172
+ name: e.name,
173
+ isCompleted: a,
174
+ displayNameImage: e.displayNameImage,
175
+ onPress: () => C(e)
176
+ },
177
+ label: m,
178
+ value: a ? 1 : 0,
179
+ maxValue: 1
180
+ },
181
+ `puzzle-${n}`
182
+ )
183
+ });
184
+ });
185
+ }
186
+ return t;
187
+ }, [o, b, L, C]), P = f(() => !o || !o.tables ? [] : [
188
+ {
189
+ isCompleted: !1,
190
+ element: /* @__PURE__ */ l(
191
+ V,
192
+ {
193
+ label: o.tables.label,
194
+ data: o.tables.data,
195
+ onPress: _,
196
+ openModesOfTable: o.tables.openModesOfTable
197
+ },
198
+ "tables-card"
199
+ )
200
+ }
201
+ ], [o, _]), R = f(
202
+ () => [
203
+ /* @__PURE__ */ l(
204
+ W,
205
+ {
206
+ src: B.SLEEPY_BOI,
207
+ width: y,
208
+ height: y
209
+ }
210
+ )
211
+ ],
212
+ []
213
+ );
214
+ return N ? /* @__PURE__ */ l(M, {}) : o ? /* @__PURE__ */ l(
215
+ T,
216
+ {
217
+ ref: O,
218
+ items: S ? P : h,
219
+ defaultIndex: G,
220
+ onNext: E,
221
+ onPrev: E,
222
+ analyticsNext: {
223
+ analyticsLabel: I.NEXT_ACTIVITY
224
+ },
225
+ analyticsPrev: {
226
+ analyticsLabel: I.PREV_ACTIVITY
227
+ }
228
+ }
229
+ ) : /* @__PURE__ */ l(
230
+ T,
231
+ {
232
+ items: [{ element: R }],
233
+ analyticsNext: { analyticsLabel: "" },
234
+ analyticsPrev: { analyticsLabel: "" }
235
+ }
236
+ );
237
+ }
238
+ );
239
+ export {
240
+ se as GameLauncherV2
241
+ };
242
+ //# sourceMappingURL=game-launcher-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-launcher-v2.js","sources":["../../../../src/features/circle-games/game-launcher-v2/game-launcher-v2.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useCallback, useMemo, useRef } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport { CircularLoader } from '../../ui/loader/circular-loader/circular-loader';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport { ProjectType } from '../games/web-view/enums';\nimport { useCircleSounds } from '../hooks/use-circle-sounds/use-circle-sounds';\nimport { CircleSoundKey } from '../hooks/use-circle-sounds/use-circle-sounds-enums';\nimport { GAME_LAUNCHER_SIZE } from './comps/card-container/constants';\nimport { BadgesGroup } from './comps/carousel-badge/carousel-badge';\nimport { Carousel } from './comps/carousel/carousel';\nimport type { ICarouselItemWithMeta, ICarouselRefs } from './comps/carousel/carousel-types';\nimport { CircularGameCard } from './comps/circular-game-card/circular-game-card';\nimport { GAME_LAUNCHER_ASSET_PADDING } from './comps/circular-game-card/constants';\nimport { TablesCard } from './comps/tables-card/tables-card';\nimport type { ITableDetails } from './comps/tables-card/tables-card-types';\nimport type {\n Game,\n Lesson,\n Puzzle,\n} from './dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from './game-launcher-analytics-events';\nimport type { IGameLauncherProps } from './game-launcher-types';\nimport { formatDuration } from './helpers';\n\nconst sleepyBoiDimension = GAME_LAUNCHER_SIZE + GAME_LAUNCHER_ASSET_PADDING;\n\nexport const GameLauncherV2: FC<IGameLauncherProps> = memo(\n ({ onSegmentClick, data, isLoading, defaultIndex = 0, showTables = false }) => {\n const carouselRefs = useRef<ICarouselRefs>(null) as React.RefObject<ICarouselRefs>;\n\n const { playSwipeSound, play } = useCircleSounds();\n\n const handleLessonSegmentClick = useCallback(\n (lesson: Lesson) => {\n if (lesson.status !== 'completed') {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(lesson, ProjectType.LESSON);\n }\n },\n [onSegmentClick, play],\n );\n\n const onTableSegmentClick = useCallback(\n (table: ITableDetails) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(table, ProjectType.TABLE);\n },\n [onSegmentClick, play],\n );\n\n const handleGameSegmentClick = useCallback(\n (game: Game) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(game, ProjectType.GAME);\n },\n [onSegmentClick, play],\n );\n\n const handlePuzzleSegmentClick = useCallback(\n (puzzle: Puzzle) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(puzzle, ProjectType.PUZZLE);\n },\n [onSegmentClick, play],\n );\n\n const nonTableItems = useMemo(() => {\n const items: ICarouselItemWithMeta[] = [];\n\n if (!data) return items;\n\n if (data.games) {\n const label = data.games.label;\n\n data.games.data.forEach((game, index) => {\n items.push({\n ...(game.isPlayed && {\n isCompleted: true,\n carouselBadge: (\n <BadgesGroup\n badges={[\n {\n label: 'Won',\n color: 'YELLOW_4',\n illustration: ILLUSTRATIONS.UP_ARROW_BADGE,\n value: game.wonToday,\n },\n {\n label: 'Loss',\n color: 'ORANGE_4',\n illustration: ILLUSTRATIONS.DOWN_ARROW_BADGE,\n value: game.lostToday,\n },\n ]}\n />\n ),\n }),\n element: (\n <CircularGameCard\n key={`game-${index}`}\n data={{\n card: game.cardLottie,\n name: game.name,\n isCompleted: false,\n displayNameImage: game.displayNameImage,\n onPress: () => handleGameSegmentClick(game),\n }}\n label={label}\n value={game.isPlayed ? 1 : 0}\n maxValue={1}\n />\n ),\n });\n });\n }\n\n if (data.lessons) {\n const label = data.lessons.label;\n\n data.lessons.data.forEach((lesson, index) => {\n const isCompleted = lesson.status === 'completed';\n\n items.push({\n ...(isCompleted && {\n isCompleted,\n carouselBadge: (\n <BadgesGroup\n badges={[\n {\n label: '%',\n color: 'YELLOW_4',\n illustration: ILLUSTRATIONS.ACCURACY_BADGE,\n value: lesson.firstAttempt.accuracy,\n },\n {\n label: '',\n color: 'YELLOW_4',\n illustration: ILLUSTRATIONS.CLOCK_BADGE,\n value: formatDuration(lesson.firstAttempt.grossTimeTaken),\n },\n {\n label: '',\n color: 'YELLOW_4',\n illustration: ILLUSTRATIONS.POINTS_BADGE,\n value: lesson.firstAttempt.pointsScored,\n },\n ]}\n />\n ),\n }),\n element: (\n <CircularGameCard\n key={`lesson-${index}`}\n data={{\n card: lesson.cardLottie,\n name: lesson.name,\n isCompleted,\n displayNameImage: lesson.displayNameImage,\n onPress: () => handleLessonSegmentClick(lesson),\n }}\n label={label}\n value={isCompleted ? 1 : 0}\n maxValue={1}\n />\n ),\n });\n });\n }\n\n if (data.puzzles) {\n const label = data.puzzles.label;\n\n data.puzzles.data.forEach((puzzle, index) => {\n const isCompleted = puzzle.solved;\n\n items.push({\n ...(isCompleted && {\n isCompleted,\n carouselBadge: (\n <BadgesGroup\n badges={[\n {\n label: '',\n color: 'YELLOW_4',\n illustration: ILLUSTRATIONS.STAR_BADGE,\n value: puzzle.firstAttempt.solvedWithHint ? 'Solved with hint' : 'Solved',\n },\n {\n label: '',\n color: 'YELLOW_4',\n illustration: ILLUSTRATIONS.POINTS_BADGE,\n value: puzzle.firstAttempt.pointsScored,\n },\n ]}\n />\n ),\n }),\n element: (\n <CircularGameCard\n key={`puzzle-${index}`}\n data={{\n card: puzzle.cardLottie,\n name: puzzle.name,\n isCompleted,\n displayNameImage: puzzle.displayNameImage,\n onPress: () => handlePuzzleSegmentClick(puzzle),\n }}\n label={label}\n value={isCompleted ? 1 : 0}\n maxValue={1}\n />\n ),\n });\n });\n }\n\n return items;\n }, [data, handleGameSegmentClick, handleLessonSegmentClick, handlePuzzleSegmentClick]);\n\n const tableItems = useMemo<ICarouselItemWithMeta[]>(() => {\n if (!data || !data.tables) return [];\n\n return [\n {\n isCompleted: false,\n element: (\n <TablesCard\n key=\"tables-card\"\n label={data.tables.label}\n data={data.tables.data}\n onPress={onTableSegmentClick}\n openModesOfTable={data.tables.openModesOfTable}\n />\n ),\n },\n ];\n }, [data, onTableSegmentClick]);\n\n const sleepyBoiItem = useMemo(\n () => [\n <LottieAnimation\n src={LOTTIE.SLEEPY_BOI}\n width={sleepyBoiDimension}\n height={sleepyBoiDimension}\n />,\n ],\n [],\n );\n\n if (isLoading) return <CircularLoader />;\n\n if (!data) {\n return (\n <Carousel\n items={[{ element: sleepyBoiItem }]}\n analyticsNext={{ analyticsLabel: '' }}\n analyticsPrev={{ analyticsLabel: '' }}\n />\n );\n }\n\n const itemsToShow = showTables ? tableItems : nonTableItems;\n\n return (\n <Carousel\n ref={carouselRefs}\n items={itemsToShow}\n defaultIndex={defaultIndex}\n onNext={playSwipeSound}\n onPrev={playSwipeSound}\n analyticsNext={{\n analyticsLabel: GAME_LAUNCHER_ANALYTICS_EVENTS.NEXT_ACTIVITY,\n }}\n analyticsPrev={{\n analyticsLabel: GAME_LAUNCHER_ANALYTICS_EVENTS.PREV_ACTIVITY,\n }}\n />\n );\n },\n);\n"],"names":["sleepyBoiDimension","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_ASSET_PADDING","GameLauncherV2","memo","onSegmentClick","data","isLoading","defaultIndex","showTables","carouselRefs","useRef","playSwipeSound","play","useCircleSounds","handleLessonSegmentClick","useCallback","lesson","CircleSoundKey","ProjectType","onTableSegmentClick","table","handleGameSegmentClick","game","handlePuzzleSegmentClick","puzzle","nonTableItems","useMemo","items","label","index","jsx","BadgesGroup","ILLUSTRATIONS","CircularGameCard","isCompleted","formatDuration","tableItems","TablesCard","sleepyBoiItem","LottieAnimation","LOTTIE","CircularLoader","Carousel","GAME_LAUNCHER_ANALYTICS_EVENTS"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ function a(n) {
2
+ const t = Math.floor(n / 1e3), o = Math.floor(t / 60), s = t % 60, r = o > 0 ? `${o}m ` : "", c = `${s}s`;
3
+ return `${r}${c}`.trim();
4
+ }
5
+ export {
6
+ a as formatDuration
7
+ };
8
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../src/features/circle-games/game-launcher-v2/helpers.ts"],"sourcesContent":["export function formatDuration(ms: number): string {\n const totalSeconds = Math.floor(ms / 1000);\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n\n const minPart = minutes > 0 ? `${minutes}m ` : '';\n const secPart = `${seconds}s`;\n\n return `${minPart}${secPart}`.trim();\n}\n"],"names":["formatDuration","ms","totalSeconds","minutes","seconds","minPart","secPart"],"mappings":"AAAO,SAASA,EAAeC,GAAoB;AACjD,QAAMC,IAAe,KAAK,MAAMD,IAAK,GAAI,GACnCE,IAAU,KAAK,MAAMD,IAAe,EAAE,GACtCE,IAAUF,IAAe,IAEzBG,IAAUF,IAAU,IAAI,GAAGA,CAAO,OAAO,IACzCG,IAAU,GAAGF,CAAO;AAE1B,SAAO,GAAGC,CAAO,GAAGC,CAAO,GAAG,KAAK;AACrC;"}
@@ -136,12 +136,16 @@ const F = (t, r) => {
136
136
  preference_code: n,
137
137
  preference_name: s,
138
138
  preference_description: i,
139
- lottie_key: u
139
+ preference_description_2: u,
140
+ lottie_key: c,
141
+ preference_category: d
140
142
  }) => ({
141
143
  id: n,
142
144
  label: s,
143
145
  description: i,
144
- lottie: u
146
+ lottie: c,
147
+ extendedDescription: u,
148
+ category: d
145
149
  })
146
150
  );
147
151
  }, W = (t, r, e, l, n) => {