@clickview/lite 0.64.0-rc.1 → 0.64.0-rc.2

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 (132) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{7153-lite-0cc5db0db7.chunk.css → 2962-lite-2002c62a24.chunk.css} +0 -1
  3. package/dist/css/{1857-lite-324255d395.chunk.css → 6173-lite-911f35513f.chunk.css} +0 -1
  4. package/dist/css/{2083-lite-6cb1775e12.chunk.css → 7324-lite-238bd550b7.chunk.css} +0 -1
  5. package/dist/css/{9013-lite-620f218839.chunk.css → 9013-lite-3c31b606c5.chunk.css} +2 -2
  6. package/dist/languages/en.json +1 -1
  7. package/dist/scripts/1216-899540dc73-lite.chunk.js +2 -0
  8. package/dist/scripts/1216-899540dc73-lite.chunk.js.map +1 -0
  9. package/dist/scripts/1820-b572681b3a-lite.chunk.js +2 -0
  10. package/dist/scripts/1820-b572681b3a-lite.chunk.js.map +1 -0
  11. package/dist/scripts/229-ac9f12e165-lite.chunk.js +2 -0
  12. package/dist/scripts/229-ac9f12e165-lite.chunk.js.map +1 -0
  13. package/dist/scripts/2712-a851ddc3c3-lite.chunk.js +2 -0
  14. package/dist/scripts/2712-a851ddc3c3-lite.chunk.js.map +1 -0
  15. package/dist/scripts/{2788-eca70707c6-lite.chunk.js → 2788-c8ae3be73f-lite.chunk.js} +1 -1
  16. package/dist/scripts/2788-c8ae3be73f-lite.chunk.js.map +1 -0
  17. package/dist/scripts/{7153-0ed8513e59-lite.chunk.js → 2962-7f2e4412f0-lite.chunk.js} +2 -2
  18. package/dist/scripts/{7153-0ed8513e59-lite.chunk.js.map → 2962-7f2e4412f0-lite.chunk.js.map} +1 -1
  19. package/dist/scripts/2988-b602b64344-lite.chunk.js +2 -0
  20. package/dist/scripts/2988-b602b64344-lite.chunk.js.map +1 -0
  21. package/dist/scripts/3180-c1f065183d-lite.chunk.js +2 -0
  22. package/dist/scripts/3180-c1f065183d-lite.chunk.js.map +1 -0
  23. package/dist/scripts/3549-111225ff0e-lite.chunk.js +2 -0
  24. package/dist/scripts/3549-111225ff0e-lite.chunk.js.map +1 -0
  25. package/dist/scripts/4591-f78fa6c784-lite.chunk.js +2 -0
  26. package/dist/scripts/4591-f78fa6c784-lite.chunk.js.map +1 -0
  27. package/dist/scripts/4667-5101904582-lite.chunk.js +2 -0
  28. package/dist/scripts/4667-5101904582-lite.chunk.js.map +1 -0
  29. package/dist/scripts/{5056-6057435479-lite.chunk.js → 5056-65c739468f-lite.chunk.js} +1 -1
  30. package/dist/scripts/5056-65c739468f-lite.chunk.js.map +1 -0
  31. package/dist/scripts/5201-98ee21febb-lite.chunk.js +2 -0
  32. package/dist/scripts/5201-98ee21febb-lite.chunk.js.map +1 -0
  33. package/dist/scripts/5595-79068997ce-lite.chunk.js +2 -0
  34. package/dist/scripts/5595-79068997ce-lite.chunk.js.map +1 -0
  35. package/dist/scripts/5770-f88f6d9c00-lite.chunk.js +2 -0
  36. package/dist/scripts/5770-f88f6d9c00-lite.chunk.js.map +1 -0
  37. package/dist/scripts/5896-60133bfdad-lite.chunk.js +3 -0
  38. package/dist/scripts/5896-60133bfdad-lite.chunk.js.map +1 -0
  39. package/dist/scripts/6173-7f9939c29e-lite.chunk.js +3 -0
  40. package/dist/scripts/6173-7f9939c29e-lite.chunk.js.map +1 -0
  41. package/dist/scripts/6181-9d7668c9e4-lite.chunk.js +3 -0
  42. package/dist/scripts/6181-9d7668c9e4-lite.chunk.js.map +1 -0
  43. package/dist/scripts/6455-37039eb687-lite.chunk.js +2 -0
  44. package/dist/scripts/6455-37039eb687-lite.chunk.js.map +1 -0
  45. package/dist/scripts/6623-84b33c6856-lite.chunk.js +3 -0
  46. package/dist/scripts/6623-84b33c6856-lite.chunk.js.map +1 -0
  47. package/dist/scripts/6919-0f2cef64e5-lite.chunk.js +2 -0
  48. package/dist/scripts/6919-0f2cef64e5-lite.chunk.js.map +1 -0
  49. package/dist/scripts/7267-1f5006c9c5-lite.chunk.js +2 -0
  50. package/dist/scripts/7267-1f5006c9c5-lite.chunk.js.map +1 -0
  51. package/dist/scripts/{2083-7daacf0112-lite.chunk.js → 7324-ee20e73ac1-lite.chunk.js} +2 -2
  52. package/dist/scripts/{2083-7daacf0112-lite.chunk.js.map → 7324-ee20e73ac1-lite.chunk.js.map} +1 -1
  53. package/dist/scripts/7434-fef3ea4e89-lite.chunk.js +2 -0
  54. package/dist/scripts/7434-fef3ea4e89-lite.chunk.js.map +1 -0
  55. package/dist/scripts/7443-4866d0c9ab-lite.chunk.js +3 -0
  56. package/dist/scripts/7443-4866d0c9ab-lite.chunk.js.map +1 -0
  57. package/dist/scripts/8416-7d71a55a14-lite.chunk.js +2 -0
  58. package/dist/scripts/8416-7d71a55a14-lite.chunk.js.map +1 -0
  59. package/dist/scripts/8465-01b0f72699-lite.chunk.js +2 -0
  60. package/dist/scripts/8465-01b0f72699-lite.chunk.js.map +1 -0
  61. package/dist/scripts/9013-6fcc58f028-lite.chunk.js +2 -0
  62. package/dist/scripts/9013-6fcc58f028-lite.chunk.js.map +1 -0
  63. package/dist/scripts/9264-998d93d1c2-lite.chunk.js +2 -0
  64. package/dist/scripts/9264-998d93d1c2-lite.chunk.js.map +1 -0
  65. package/dist/scripts/9894-0fba5cf702-lite.chunk.js +3 -0
  66. package/dist/scripts/9894-0fba5cf702-lite.chunk.js.map +1 -0
  67. package/dist/scripts/bundle-2e839958ca.min.js +3 -0
  68. package/dist/scripts/bundle-2e839958ca.min.js.map +1 -0
  69. package/package.json +1 -1
  70. package/dist/scripts/1755-462bcd99e9-lite.chunk.js +0 -2
  71. package/dist/scripts/1755-462bcd99e9-lite.chunk.js.map +0 -1
  72. package/dist/scripts/180-6c4779f6ab-lite.chunk.js +0 -2
  73. package/dist/scripts/180-6c4779f6ab-lite.chunk.js.map +0 -1
  74. package/dist/scripts/1820-3b5d0a340d-lite.chunk.js +0 -2
  75. package/dist/scripts/1820-3b5d0a340d-lite.chunk.js.map +0 -1
  76. package/dist/scripts/1857-d3af9d98eb-lite.chunk.js +0 -3
  77. package/dist/scripts/1857-d3af9d98eb-lite.chunk.js.map +0 -1
  78. package/dist/scripts/229-900e650427-lite.chunk.js +0 -2
  79. package/dist/scripts/229-900e650427-lite.chunk.js.map +0 -1
  80. package/dist/scripts/2788-eca70707c6-lite.chunk.js.map +0 -1
  81. package/dist/scripts/3180-22edf4c9fc-lite.chunk.js +0 -2
  82. package/dist/scripts/3180-22edf4c9fc-lite.chunk.js.map +0 -1
  83. package/dist/scripts/3549-30d3b1cd05-lite.chunk.js +0 -2
  84. package/dist/scripts/3549-30d3b1cd05-lite.chunk.js.map +0 -1
  85. package/dist/scripts/3776-0027340c98-lite.chunk.js +0 -2
  86. package/dist/scripts/3776-0027340c98-lite.chunk.js.map +0 -1
  87. package/dist/scripts/4591-3e8dddd0e9-lite.chunk.js +0 -2
  88. package/dist/scripts/4591-3e8dddd0e9-lite.chunk.js.map +0 -1
  89. package/dist/scripts/4667-f3882f2379-lite.chunk.js +0 -2
  90. package/dist/scripts/4667-f3882f2379-lite.chunk.js.map +0 -1
  91. package/dist/scripts/5056-6057435479-lite.chunk.js.map +0 -1
  92. package/dist/scripts/5201-7d3867d027-lite.chunk.js +0 -2
  93. package/dist/scripts/5201-7d3867d027-lite.chunk.js.map +0 -1
  94. package/dist/scripts/5595-10e586779d-lite.chunk.js +0 -2
  95. package/dist/scripts/5595-10e586779d-lite.chunk.js.map +0 -1
  96. package/dist/scripts/5896-5d2f32c59e-lite.chunk.js +0 -3
  97. package/dist/scripts/5896-5d2f32c59e-lite.chunk.js.map +0 -1
  98. package/dist/scripts/6181-50a39979ec-lite.chunk.js +0 -3
  99. package/dist/scripts/6181-50a39979ec-lite.chunk.js.map +0 -1
  100. package/dist/scripts/6455-2f45be17cf-lite.chunk.js +0 -2
  101. package/dist/scripts/6455-2f45be17cf-lite.chunk.js.map +0 -1
  102. package/dist/scripts/6623-ebbffb59b3-lite.chunk.js +0 -3
  103. package/dist/scripts/6623-ebbffb59b3-lite.chunk.js.map +0 -1
  104. package/dist/scripts/6919-cb2de57c2e-lite.chunk.js +0 -2
  105. package/dist/scripts/6919-cb2de57c2e-lite.chunk.js.map +0 -1
  106. package/dist/scripts/7267-c2d30dd339-lite.chunk.js +0 -2
  107. package/dist/scripts/7267-c2d30dd339-lite.chunk.js.map +0 -1
  108. package/dist/scripts/7434-c34ca23a21-lite.chunk.js +0 -2
  109. package/dist/scripts/7434-c34ca23a21-lite.chunk.js.map +0 -1
  110. package/dist/scripts/7443-7c72de0cb9-lite.chunk.js +0 -3
  111. package/dist/scripts/7443-7c72de0cb9-lite.chunk.js.map +0 -1
  112. package/dist/scripts/8022-0656cce655-lite.chunk.js +0 -2
  113. package/dist/scripts/8022-0656cce655-lite.chunk.js.map +0 -1
  114. package/dist/scripts/9013-adc5d3517a-lite.chunk.js +0 -2
  115. package/dist/scripts/9013-adc5d3517a-lite.chunk.js.map +0 -1
  116. package/dist/scripts/9155-87c9030ce9-lite.chunk.js +0 -2
  117. package/dist/scripts/9155-87c9030ce9-lite.chunk.js.map +0 -1
  118. package/dist/scripts/9264-750b3d6ea0-lite.chunk.js +0 -2
  119. package/dist/scripts/9264-750b3d6ea0-lite.chunk.js.map +0 -1
  120. package/dist/scripts/9894-bc34edcd67-lite.chunk.js +0 -3
  121. package/dist/scripts/9894-bc34edcd67-lite.chunk.js.map +0 -1
  122. package/dist/scripts/bundle-e02b7c5d7f.min.js +0 -3
  123. package/dist/scripts/bundle-e02b7c5d7f.min.js.map +0 -1
  124. package/dist/css/{6455-lite-fe0bc6d95f.chunk.css → 6455-lite-c07987d46c.chunk.css} +1 -1
  125. /package/dist/css/{9155-lite-447d345417.chunk.css → 8465-lite-447d345417.chunk.css} +0 -0
  126. /package/dist/scripts/{1857-d3af9d98eb-lite.chunk.js.LICENSE.txt → 5896-60133bfdad-lite.chunk.js.LICENSE.txt} +0 -0
  127. /package/dist/scripts/{5896-5d2f32c59e-lite.chunk.js.LICENSE.txt → 6173-7f9939c29e-lite.chunk.js.LICENSE.txt} +0 -0
  128. /package/dist/scripts/{6181-50a39979ec-lite.chunk.js.LICENSE.txt → 6181-9d7668c9e4-lite.chunk.js.LICENSE.txt} +0 -0
  129. /package/dist/scripts/{6623-ebbffb59b3-lite.chunk.js.LICENSE.txt → 6623-84b33c6856-lite.chunk.js.LICENSE.txt} +0 -0
  130. /package/dist/scripts/{7443-7c72de0cb9-lite.chunk.js.LICENSE.txt → 7443-4866d0c9ab-lite.chunk.js.LICENSE.txt} +0 -0
  131. /package/dist/scripts/{9894-bc34edcd67-lite.chunk.js.LICENSE.txt → 9894-0fba5cf702-lite.chunk.js.LICENSE.txt} +0 -0
  132. /package/dist/scripts/{bundle-e02b7c5d7f.min.js.LICENSE.txt → bundle-2e839958ca.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/2788-eca70707c6-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/utils/AnalyticsFilterUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/AudienceUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/DateRangeUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/views/generate-report/GenerateInteractiveResultsReportView.tsx","file:///app/packages/libs/shared/src/components/percentage-indicator/PercentageIndicator.tsx","file:///app/packages/libs/shared/src/components/percentage-indicator/PercentageIndicatorUtils.ts","file:///app/packages/libs/shared/src/constants/ScoreThresholds.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/utils/AppRouteHelper.ts","file:///app/packages/libs/shared/src/components/percentage-indicator/percentage-indicator.scss"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nexport const AnalyticsFilterHelper = {\n getAudienceAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { users, classrooms, classroomGroups } = params;\n\n const getParam = (key: keyof AudienceQueryParams) => {\n const param = params[key];\n\n if (!param)\n return;\n\n return Array.isArray(param) ? param : [param];\n };\n\n const audienceFilters: AudienceQueryParams = {};\n\n if (users)\n audienceFilters.users = getParam('users');\n\n if (classrooms)\n audienceFilters.classrooms = getParam('classrooms');\n\n if (classroomGroups)\n audienceFilters.classroomGroups = getParam('classroomGroups');\n\n return audienceFilters;\n },\n getDateRangeAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { from, to, rangeName } = params;\n\n const dateRangeFilters: DateRangeQueryParams = {};\n\n if (from)\n dateRangeFilters.from = from;\n\n if (to)\n dateRangeFilters.to = to;\n\n if (rangeName)\n dateRangeFilters.rangeName = rangeName;\n\n return dateRangeFilters;\n }\n};","import { animals, colors, Config as UniqueNamesConfig, uniqueNamesGenerator } from 'unique-names-generator';\n\nimport { User } from 'libs/shared/interfaces';\nimport { PublicInteractiveUser } from 'libs/shared/interfaces/models/interactive-results/PublicInteractiveUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\n\nfunction getUniqueNamesConfig(id: string): UniqueNamesConfig {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n * \n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n * \n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const seed = +`${id}${Math.floor((new Date()).getMinutes() / 5)}`;\n\n return {\n dictionaries: [ colors, animals ],\n separator: ' ',\n length: 2,\n style: 'capital',\n seed\n };\n}\n\nexport function anonymiseUserName(user: User | PublicInteractiveUser, shouldAnonymise: boolean): string {\n if (!user)\n return '';\n\n if (!shouldAnonymise)\n return 'profileId' in user ? user.name : UserHelper.getFullName(user);\n\n return uniqueNamesGenerator(getUniqueNamesConfig('profileId' in user ? user.profileId : user.id));\n}\n","import { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\n\nexport const getAudienceParams = (queryParams: AudienceQueryParams) => {\n const userId: string[] = [];\n const groupId: string[] = [];\n\n if (queryParams.users)\n userId.push(...queryParams.users);\n\n if (queryParams.classrooms)\n groupId.push(...queryParams.classrooms);\n\n if (queryParams.classroomGroups)\n groupId.push(...queryParams.classroomGroups);\n return {\n userId,\n groupId\n };\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\nimport { DateRange } from 'libs/shared/interfaces';\nimport { AppRouteHelper } from 'libs/shared/utils/AppRouteHelper';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function convertDateToUtcDateTimeString(date: Date): string {\n const utc = DateHelper.convertDateToUTC(date);\n return DateHelper.format(utc, 'YYYY-MM-DDTHH:mm:ss');\n}\n\nexport function getMinDate(): Date {\n return new Date(2021, 0, 1);\n}\n\nexport function getMaxDate(): Date {\n return new Date();\n}\n\nexport function getDefaultDateRange(dateRangePresets: DateRange[]): DateRange {\n return dateRangePresets.find(range => !!range.default);\n}\n\nexport function getPresetRangeByName(dateRangePresetss: DateRange[], rangeName: string): DateRange | undefined {\n if (!rangeName)\n return;\n\n const presets = dateRangePresetss;\n \n return presets.find(p => p.name === rangeName);\n}\n\nexport function getGenericDateRangePresets(): DateRange[] {\n const minDate = getMinDate();\n const currentYear = (new Date()).getFullYear();\n\n const isMinDateThisYear = currentYear === minDate.getFullYear();\n\n return [\n {\n name: getPhrase('today'),\n startDate: new Date(),\n endDate: new Date()\n },\n {\n name: getPhrase('thisMonth'),\n startDate: new Date(currentYear, new Date().getMonth(), 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastThreeMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 2, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastSixMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 5, 1),\n endDate: new Date(),\n default: true\n },\n {\n name: getPhrase('thisYear'),\n startDate: new Date(currentYear, 0, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastYear'),\n startDate: new Date(currentYear - 1, 0, 1),\n endDate: new Date(currentYear, 0, 0),\n disabled: isMinDateThisYear,\n tooltip: isMinDateThisYear ? getPhrase('lastYearDisabled') : ''\n }\n ];\n}\n\nexport function getInsightsDateRangePresets(): DateRange[] {\n const minDate = getMinDate();\n const currentYear = (new Date()).getFullYear();\n\n const isMinDateThisYear = currentYear === minDate.getFullYear();\n\n return [\n {\n name: getPhrase('today'),\n startDate: new Date(),\n endDate: new Date()\n },\n {\n name: getPhrase('thisMonth'),\n startDate: new Date(currentYear, new Date().getMonth(), 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastThreeMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 2, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastSixMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 5, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('thisYear'),\n startDate: new Date(currentYear, 0, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastYear'),\n startDate: new Date(currentYear - 1, 0, 1),\n endDate: new Date(currentYear, 0, 0),\n disabled: isMinDateThisYear,\n tooltip: isMinDateThisYear ? getPhrase('lastYearDisabled') : ''\n },\n {\n name: getPhrase('allTime'),\n startDate: DateHelper.subtract(new Date(), 5, 'years'),\n endDate: new Date(),\n default: true\n }\n ];\n}\n\nexport function formatDateQueryParam(date: Date): string {\n return DateHelper.format(date, 'YYYY-MM-DD');\n}\n\nexport function getRouteQueryParams(dateRange: DateRange): DateRangeQueryParams {\n if (dateRange.name)\n return { rangeName: dateRange.name };\n\n return {\n from: formatDateQueryParam(dateRange.startDate),\n to: formatDateQueryParam(dateRange.endDate)\n };\n}\n\nexport function useGetDateRangeFromQueryParams(\n dateRangePresets: DateRange[],\n dateRangeQueryParams: DateRangeQueryParams\n): DateRange | null {\n const { to, from, rangeName } = dateRangeQueryParams;\n \n const presetRange = getPresetRangeByName(dateRangePresets, rangeName);\n\n if (presetRange) {\n if (!from && !to)\n return presetRange;\n\n /**\n * If a rangeName has been set, we don't use to and from so we remove them from the url params.\n */\n AppRouteHelper.updateParams(\n getRouteQueryParams(presetRange),\n { replace: true, merge: true, keysToRemove: [ 'from', 'to' ]}\n );\n return;\n }\n\n const defaultDateRange = getDefaultDateRange(dateRangePresets);\n\n /**\n * If a param is missing, or one of them isn't a valid date, short-circuit the logic below.\n */\n if (!from || !to || !DateHelper.isValid(from) || !DateHelper.isValid(to)) {\n AppRouteHelper.updateParams(\n getRouteQueryParams(defaultDateRange),\n { replace: true, merge: true, keysToRemove: ['rangeName']}\n );\n return;\n }\n\n let initialDateRangeValid = true;\n\n let startDate = DateHelper.convertDateToUTC(new Date(from));\n let endDate = DateHelper.convertDateToUTC(new Date(to));\n\n if (DateHelper.isBefore(startDate, getMinDate(), 'day')) {\n startDate = getMinDate();\n initialDateRangeValid = false;\n }\n\n if (DateHelper.isAfter(endDate, getMaxDate(), 'day')) {\n endDate = getMaxDate();\n initialDateRangeValid = false;\n }\n\n if (DateHelper.isAfter(startDate, endDate)) {\n startDate = defaultDateRange.startDate;\n endDate = defaultDateRange.endDate;\n initialDateRangeValid = false;\n }\n\n const dateRange: DateRange = { startDate, endDate, name: initialDateRangeValid ? rangeName : '' };\n\n if (initialDateRangeValid)\n return dateRange;\n\n /**\n * If one or both of the date params were invalid, we trigger a route update.\n */\n AppRouteHelper.updateParams(getRouteQueryParams(dateRange), { replace: true, merge: true, keysToRemove: ['rangeName']});\n}\n\nexport function getStartEndParams(\n dateRangePresetss: DateRange[],\n filterParams: FilterQueryParams\n): { start: string; end: string } {\n const getStartDate = (date: string) => convertDateToUtcDateTimeString(DateHelper.startOf(date, 'day'));\n const getEndDate = (date: string) => convertDateToUtcDateTimeString(DateHelper.endOf(date, 'day'));\n\n const presetRange = getPresetRangeByName(dateRangePresetss, filterParams.rangeName);\n\n /**\n * If the user has chosen a preset range, lookup the start and end dates as they won't be\n * in the query params.\n */\n if (presetRange)\n return {\n start: getStartDate(formatDateQueryParam(presetRange.startDate)),\n end: getEndDate(formatDateQueryParam(presetRange.endDate))\n };\n\n /**\n * If they have chosen a custom date range, use their chosen start and end dates.\n */\n if (filterParams.from && filterParams.to)\n return {\n start: getStartDate(filterParams.from),\n end: getEndDate(filterParams.to)\n };\n\n /**\n * The below should never be hit\n */\n const defaultRange = getDefaultDateRange(dateRangePresetss);\n\n return {\n start: getStartDate(formatDateQueryParam(defaultRange.startDate)),\n end: getEndDate(formatDateQueryParam(defaultRange.endDate))\n };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { useGetResultsTableData } from 'libs/shared/apps/analytics/components/student-results/student-results-table/StudentResultsTableUtils';\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { useFetchInteractiveResults } from 'libs/shared/apps/analytics/hooks/UseFetchInteractiveResults';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { getAudienceParams } from 'libs/shared/apps/analytics/utils/AudienceUtils';\nimport { getInsightsDateRangePresets, getStartEndParams } from 'libs/shared/apps/analytics/utils/DateRangeUtils';\nimport { getFormattedPercentage, getPercentageToFixed } from 'libs/shared/components/percentage-indicator/PercentageIndicatorUtils';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { CurrentUser, Interactive, InteractiveMetadata, PopupViewProps } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getInteractions, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nconst namespace = 'shared.generateReport';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getReportFriendlyDate(date: string): string {\n const localDate = DateHelper.convertUTCToLocal(date).toString();\n return DateHelper.format(localDate, 'Do MMMM YYYY');\n}\n\ninterface GenerateInteractiveResultsReportViewProps extends PopupViewProps {\n interactiveId: string;\n}\n\nexport function GenerateInteractiveResultsReportView(props: GenerateInteractiveResultsReportViewProps): JSX.Element {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n const alerts = useAlerts();\n const fetchAsync = Flight.useGetFetchAsync();\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n const startEndParams = getStartEndParams(getInsightsDateRangePresets(), dateRangeAppLinkParams);\n\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.interactiveId)\n );\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data?.interactiveId ?\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId) : null);\n const results = useFetchInteractiveResults(props.interactiveId, {\n ...startEndParams,\n ...getAudienceParams(audienceAppLinkParams)\n });\n\n useHandleObjectError([ interactive, interactiveMetadata, results ]);\n\n const interactions = getInteractions(interactive.data);\n\n const answerData = useGetResultsTableData(interactive.data, results.data, false, anonymiseUsers);\n\n function onClickGenerate(): void {\n setShowSpinner(true);\n\n const body: InteractiveResultsReport = {\n interactiveName: interactiveMetadata.data.name,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n questions: interactions.map(i => i.name),\n rows: answerData.map(answer => {\n return {\n name: UserHelper.getFullName(answer.user),\n unanswered: answer.summary.unanswered,\n percentage: getFormattedPercentage(getPercentageToFixed(answer.summary.percentCorrect)),\n correct: answer.summary.correct,\n totalQuestions: answer.summary.answered + answer.summary.unanswered,\n results: interactions.map(interaction => {\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(\n interaction,\n getStudentResult(answer)\n );\n\n switch (correctness) {\n case InteractionCorrectness.Correct:\n return getPhrase('correct');\n\n case InteractionCorrectness.Incorrect:\n return getPhrase('incorrect');\n\n case InteractionCorrectness.NotApplicable:\n return '-';\n\n case InteractionCorrectness.AwaitingMarking:\n return getPhrase('awaitingMarking');\n\n case InteractionCorrectness.UnAnswered:\n case InteractionCorrectness.Answered:\n default:\n return '';\n }\n })\n };\n })\n };\n\n fetchAsync(InteractiveResultsRequests.interactiveResultsReport(body))\n .then(() => {\n alerts.success(getPhrase('success'));\n })\n .catch(() => {\n alerts.error(getPhrase('error'));\n })\n .finally(props.closePopup);\n }\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <Popup\n title={getPhrase('title')}\n showLoadingSpinner={!currentUser.hasCompleted}\n closePopup={props.closePopup}\n >\n <>\n <p>\n <Text phrase='description' />\n </p>\n <p>\n <Text phrase='dateRange' options={({\n dateFrom: getReportFriendlyDate(startEndParams.start),\n dateTo: getReportFriendlyDate(startEndParams.end)\n })} />\n </p>\n <p>\n <Text phrase='emailDescription' options={({ email: currentUser.data?.email })} />\n </p>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n variant='dark'\n onClick={onClickGenerate}\n text={getPhrase('generateReport')}\n showSpinner={showSpinner}\n />\n </PopupButtons>\n </>\n </Popup>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { ScoreThresholds } from 'libs/shared/constants/ScoreThresholds';\n\nimport {\n getCircleClassName,\n getCircleContainerClassName,\n getCircleRadius,\n getColouredLabelClassName,\n getFormattedPercentage,\n getPercentageToFixed,\n isPending,\n ProgressCircleSize\n} from './PercentageIndicatorUtils';\n\nimport styles from './percentage-indicator.scss';\n\ninterface ProgressCircleProps {\n size: ProgressCircleSize;\n scoreThresholds?: ScoreThresholds;\n percentage?: number;\n}\n\nfunction ProgressCircle(props: ProgressCircleProps): JSX.Element {\n const ref = React.useCallback((circle: SVGCircleElement) => {\n if (!circle)\n return;\n\n const radius = circle.r.baseVal.value;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - props.percentage * circumference;\n\n circle.style.strokeDasharray = `${circumference} ${circumference}`;\n circle.style.strokeDashoffset = offset.toString();\n }, [props.percentage]);\n\n return (\n <svg>\n <circle r={getCircleRadius(props.size)} className={styles.backgroundCircle} />\n {!isPending(props.percentage) &&\n <circle\n ref={ref}\n r={getCircleRadius(props.size)}\n className={getCircleClassName(props.percentage, props.scoreThresholds)}\n />\n }\n </svg>\n );\n}\n\nexport enum PercentageIndicatorLayout {\n CircleOnly = 'circle_only',\n LabelOnly = 'label_only',\n LabelBefore = 'label_before',\n LabelInside = 'label_inside'\n}\n\ninterface PercentageIndicatorProps {\n layout: PercentageIndicatorLayout;\n percentage?: number; // Between 0 and 1 or undefined for pending\n className?: string;\n customLabel?: string;\n scoreThresholds?: ScoreThresholds;\n size?: ProgressCircleSize;\n}\n\nPercentageIndicator.defaultProps = {\n layout: PercentageIndicatorLayout.CircleOnly\n};\n\nexport function PercentageIndicator(props: PercentageIndicatorProps): JSX.Element {\n const percentageToFixed = getPercentageToFixed(props.percentage);\n\n const size = props.size ||\n (props.layout === PercentageIndicatorLayout.LabelInside\n ? ProgressCircleSize.Large\n : ProgressCircleSize.Small\n );\n\n const label = props.customLabel || getFormattedPercentage(percentageToFixed);\n\n if (props.layout === PercentageIndicatorLayout.LabelOnly)\n return (\n <span className={getColouredLabelClassName(percentageToFixed)}>\n {label}\n </span>\n );\n\n return (\n <div className={`d-flex align-items-center justify-content-between ${props.className ?? ''}`}>\n {props.layout === PercentageIndicatorLayout.LabelBefore &&\n <span className='me-2'>\n {label}\n </span>\n }\n <div className={getCircleContainerClassName(size, percentageToFixed)}>\n <ProgressCircle percentage={percentageToFixed} size={size} scoreThresholds={props.scoreThresholds} />\n {props.layout === PercentageIndicatorLayout.LabelInside &&\n <span className={styles.centredPercentageText}>\n {label}\n </span>\n }\n </div>\n </div>\n );\n}","import { ScoreThresholdDefaults, ScoreThresholds } from 'libs/shared/constants/ScoreThresholds';\n\nimport styles from './percentage-indicator.scss';\n\n/**\n * Values for width and strokeWidth are taken from progress-circle.scss.\n * If either are changed, they must be updated in both places.\n */\nconst CIRCLE_WIDTH = 2; // rem\nconst CIRCLE_WIDTH_LG = 5.8; // rem\nconst CIRCLE_STROKE_WIDTH = 0.2; // rem\nconst CIRCLE_STROKE_WIDTH_LG = 0.36; // rem\n \nexport enum ProgressCircleSize {\n Small = 'small',\n Large = 'large',\n ExtraSmall = 'extraSmall'\n}\n\nconst ProgressCircleSizeMap = {\n [ProgressCircleSize.ExtraSmall]: {\n size: CIRCLE_WIDTH\n },\n [ProgressCircleSize.Small]: {\n size: CIRCLE_WIDTH\n },\n [ProgressCircleSize.Large]: {\n size: CIRCLE_WIDTH_LG\n }\n};\n\n/**\n * radius = width / 2 - strokeWidth * 2\n */\nexport function getCircleRadius(size: ProgressCircleSize): string {\n const width = ProgressCircleSizeMap[size].size;\n const strokeWidth = size === ProgressCircleSize.Large ? CIRCLE_STROKE_WIDTH_LG : CIRCLE_STROKE_WIDTH;\n return `${width / 2 - strokeWidth * 2}rem`;\n}\n \nexport function getCircleClassName(\n percentage: number,\n scoreThresholds: ScoreThresholds = ScoreThresholdDefaults\n): string {\n if (percentage >= scoreThresholds.HIGH)\n return styles.circleSuccess;\n \n if (percentage >= scoreThresholds.MODERATE)\n return styles.circleWarning;\n \n return styles.circleDanger;\n}\n \nexport function getColouredLabelClassName(\n percentage: number,\n scoreThresholds: ScoreThresholds = ScoreThresholdDefaults\n): string {\n if (percentage >= scoreThresholds.HIGH)\n return 'text-success';\n \n if (percentage >= scoreThresholds.MODERATE)\n return 'text-warning';\n \n return 'text-danger';\n}\n \nexport function getCircleContainerClassName(size: ProgressCircleSize, percentage?: number): string {\n let className = `d-inline-block ${styles.circleContainer}`;\n \n if (size === ProgressCircleSize.Large)\n className += ` ${styles.lgCircleContainer}`;\n\n if (size === ProgressCircleSize.ExtraSmall)\n className += ` ${styles.xsCircleContainer}`;\n\n if (isPending(percentage))\n className += ` ${styles.pendingCircle}`;\n \n return className;\n}\n\nexport function getPercentageToFixed(percentage?: number): number | undefined {\n if (isPending(percentage))\n return;\n \n return +percentage.toFixed(2);\n}\n \nexport function getFormattedPercentage(percentage?: number): string {\n if (isPending(percentage))\n return `--%`;\n\n return `${Math.round(percentage * 100)}%`;\n}\n\nexport function isPending(percentage?: number): boolean {\n return typeof percentage !== 'number';\n}","export interface ScoreThresholds {\n HIGH: number;\n MODERATE: number;\n}\n\nexport const ScoreThresholdDefaults: ScoreThresholds = {\n HIGH: 0.75,\n MODERATE: 0.5\n};\n\nexport const ScoreThresholdInsights: ScoreThresholds = {\n HIGH: 0.7,\n MODERATE: 0.7\n};","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, sharerId?: string): string {\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (sharerId)\n key += `:${sharerId}`;\n\n return key;\n}","import { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface UpdateParamsOptions extends Core.AppLinkOptions {\n merge?: boolean;\n keysToRemove?: string[]\n}\n\nexport const AppRouteHelper = {\n /**\n * Utility to update the params on the current appRoute.\n * \n * This is built on top of ContextService rather than build into AppLink\n * as we will generally only want to update params on appRoutes, not appLinks.\n */\n updateParams(params: HashObject, options?: UpdateParamsOptions): void {\n const { appLink } = ContextService.getCurrentRoute();\n\n let currentParams = typeof(appLink.params) === 'string'\n ? Core.LocationUtils.DeserializeQueryParams(appLink.params)\n : appLink.params as HashObject;\n\n if (options.keysToRemove)\n currentParams = ObjectHelper.omit(currentParams, options.keysToRemove);\n\n const updatedParams = options?.merge\n ? { ...currentParams, ...params }\n : params;\n\n const updatedAppLink = {\n ...appLink,\n params: updatedParams\n };\n\n /**\n * This prevents us pointlessly re-triggering if we're already on the right applink.\n */\n if (ObjectHelper.isEqual(appLink, updatedAppLink))\n return;\n \n Core.AppLinkHelper.trigger(updatedAppLink, ObjectHelper.omit(options, [ 'merge', 'keysToRemove' ]));\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"circleContainer\":\"p8Vgz\",\"backgroundCircle\":\"asGGE\",\"circleSuccess\":\"PXLNj\",\"circleWarning\":\"ZckRN\",\"circleDanger\":\"slBRg\",\"lgCircleContainer\":\"N8KCI\",\"xsCircleContainer\":\"RPqZ2\",\"pendingCircle\":\"DKrcq\",\"centredPercentageText\":\"tpmLR\"};"],"names":["AnalyticsFilterHelper","getAudienceAppLinkParams","appLink","params","users","classrooms","classroomGroups","getParam","key","param","Array","isArray","audienceFilters","getDateRangeAppLinkParams","from","to","rangeName","dateRangeFilters","anonymiseUserName","user","shouldAnonymise","id","profileId","seed","Math","floor","Date","getMinutes","dictionaries","separator","length","style","name","getAudienceParams","queryParams","userId","groupId","push","getPhrase","convertDateToUtcDateTimeString","date","utc","getMinDate","getMaxDate","getDefaultDateRange","dateRangePresets","find","range","getPresetRangeByName","dateRangePresetss","p","getInsightsDateRangePresets","minDate","currentYear","getFullYear","isMinDateThisYear","startDate","endDate","getMonth","disabled","tooltip","default","formatDateQueryParam","getRouteQueryParams","dateRange","useGetDateRangeFromQueryParams","dateRangeQueryParams","presetRange","replace","merge","keysToRemove","defaultDateRange","initialDateRangeValid","getStartEndParams","filterParams","getStartDate","getEndDate","start","end","defaultRange","namespace","getReportFriendlyDate","localDate","toString","GenerateInteractiveResultsReportView","props","anonymiseUsers","alerts","fetchAsync","audienceAppLinkParams","dateRangeAppLinkParams","startEndParams","showSpinner","setShowSpinner","currentUser","interactiveMetadata","interactiveId","interactive","data","results","interactions","answerData","value","title","showLoadingSpinner","hasCompleted","closePopup","phrase","options","dateFrom","dateTo","email","onClick","variant","body","interactiveName","customerId","questions","map","i","rows","answer","unanswered","summary","percentage","percentCorrect","correct","totalQuestions","answered","interaction","I","then","success","error","text","PercentageIndicatorLayout","ProgressCircle","ref","circle","radius","r","baseVal","circumference","PI","offset","strokeDasharray","strokeDashoffset","size","className","scoreThresholds","PercentageIndicator","percentageToFixed","layout","LabelInside","label","customLabel","LabelOnly","LabelBefore","defaultProps","CircleOnly","ProgressCircleSize","CIRCLE_STROKE_WIDTH","CIRCLE_STROKE_WIDTH_LG","ProgressCircleSizeMap","ExtraSmall","Small","Large","getCircleRadius","width","strokeWidth","getCircleClassName","HIGH","MODERATE","getColouredLabelClassName","getCircleContainerClassName","isPending","getPercentageToFixed","toFixed","getFormattedPercentage","round","ScoreThresholdDefaults","ScoreThresholdInsights","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","forEach","getAnalyticsRequestKey","baseKey","filter","sharerId","userIdKey","sort","groupIdKey","AppRouteHelper","updateParams","currentParams","updatedParams","updatedAppLink"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3180],{66122:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(32735);function r(e){return a.createElement("span",{id:"".concat(e.name,"Error"),className:"".concat(e.className," invalid-feedback d-block"),role:"status"},e.children)}},59536:(e,t,n)=>{n.d(t,{o:()=>f});var a=n(32735);function r(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(!t.length)return"";var a=t.filter((function(e){return!!e}));return a.length?a.join(" "):""}var l=n(2786),c=n(4594);const o="s6wnJ",i="UFQ2T",s="Tp9_3";function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,l,c,o=[],i=!0,s=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=l.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function d(e){switch(e){case c.E.Video:case c.E.Interactive:case c.E.Clip:return"y0V3Z";case c.E.Subject:case c.E.Playlist:return"x3h8F";case c.E.Series:return"Wrg5x";default:return""}}function f(e){return a.createElement("div",{className:"d-flex"},e.children)}var b={cover:s,full:"AlF2T"},g={base:"uQ2rm",full:""};f.NarrowContent=function(e){return a.createElement("div",{className:"".concat("INvJ0"," mx-auto w-100 ").concat(e.className?e.className:"")},e.children)},f.Left=function(e){return a.createElement("div",{className:"".concat(o," ").concat(e.className?e.className:"")},e.children)},f.LeftImage=function(e){var t=u(a.useState(!1),2),n=t[0],r=t[1],l=u(a.useState(""),2),c=l[0],m=l[1];return a.useEffect((function(){if(e.imageUrl){var t=new Image;return t.onload=function(){return r(!0)},t.src=e.imageUrl,function(){return t.onload=null}}var n=e.fallbackImages[Math.floor(Math.random()*e.fallbackImages.length)];m(n.bgUrl)}),[e.imageUrl]),a.createElement("div",{className:"".concat(o," ").concat(i," ").concat(s," bg-light"),style:{backgroundImage:"url('".concat(c,"')")}},n&&a.createElement(a.Fragment,null,a.createElement("div",{className:"Mtlg9",style:{backgroundImage:"url('".concat(e.imageUrl,"')")}}),a.createElement("div",{className:"".concat("NxEjh"," ").concat(d(e.objectType))},a.createElement("div",{className:"NN9cV"},a.createElement("img",{className:"PkJ8J",src:e.imageUrl,alt:e.title})))))},f.LeftImageWithBackground=function(e){var t={backgroundImage:'url("'.concat(e.imageUrl,'")')};return e.backgroundColor&&(t.backgroundColor=e.backgroundColor),a.createElement("div",{className:"".concat(o," ").concat(i," ").concat(b[e.imageSize||"cover"]," d-flex align-items-center"),style:t,title:e.title})},f.Right=function(e){return a.createElement("div",{className:"".concat("eoZzJ"," ").concat(e.className?e.className:"")},e.children)},f.Header=function(e){var t=(null==e?void 0:e.logoComponent)||l.$S;return a.createElement("div",{className:"position-relative"},a.createElement("div",{className:"".concat("YHNgA"," position-absolute")},a.createElement(t,null)),e.children)},f.Content=function(e){return a.createElement("div",{className:r("RVyLM","d-flex flex-column justify-content-center h-100",null==e?void 0:e.className)},e.children)},f.ContentBody=function(e){var t=g[e.width||"base"];return a.createElement("div",{className:r("aLd5V",t,"m-auto p-3",e.className)},e.children)},f.Buttons=function(e){return a.createElement("div",{className:r("position-fixed bg-white d-flex align-items-center","ZW85Q",null==e?void 0:e.className)},e.children)}},63180:(e,t,n)=>{n.r(t),n.d(t,{SelectAnonUserView:()=>P});var a=n(32735),r=n(81886),l=n(20354),c=n(75896),o=n(30439),i=n(64249),s=n(11607),u=n(66122),m=n(75163),d=n(59536),f=n(83345),b=n(54610),g=n(67453),h=n(31908),v=n(83421),p=n(13746),E=n(71214),N=n(75608);const y={aviBackground:"oHeDN",aviContainer:"J3O78",aviIcon:"vNvft"};var C=["🐵","🐒","🦍","🦧","🐶","🐕","🦮","🐕‍🦺","🐩","🐺","🦊","🦝","🐱","🐈","🐈‍⬛","🦁","🐯","🐅","🐆","🐴","🐎","🦄","🦓","🦌","🐮","🐂","🐃","🐄","🐷","🐖","🐗","🐽","🐏","🐑","🐐","🦙","🦒","🐘","🦣","🦏","🦛","🦘","🦥","🦦","🦨","🦡","🐇","🐁","🐀","🦔","🐿️","🦇","🐉","🦎","🐍","🐢","🐊","🦖","🦕","🐙","🦑","🦐","🦞","🦀","🦪","🐡","🐠","🐟","🐬","🐳","🐋","🦈","🦭","🐾"],k=["bg-orange","bg-indigo","bg-teal","bg-cyan","bg-purple","bg-pink","bg-red","bg-yellow","bg-green","bg-blue"];function U(e,t){for(var n,a=0,r=0;null!==(n=r<(null==e?void 0:e.length))&&void 0!==n&&n;r++)a+=e.charCodeAt(r);return t[a%t.length]}function I(e){return a.createElement("span",{className:"h1 d-block mb-0 position-relative ".concat(y.aviContainer)},a.createElement("span",{className:"\n ".concat(U(e.recipient.publicName,k),"\n rounded-circle\n position-absolute\n top-0\n start-0\n bottom-0\n end-0\n ").concat(y.aviBackground,"\n ")}),a.createElement("span",{className:"\n ".concat(y.aviIcon,"\n position-absolute\n top-50\n start-50\n ")},U(e.recipient.publicName,C)))}const w={confirmationContainer:"TIEUw"};function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,l,c,o=[],i=!0,s=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=l.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return x(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?x(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var S="launchpad.selectAnonUser";function P(e){var t,n=j(a.useState(E.h.getPublicUser()||""),2),y=n[0],C=n[1],k=j(a.useState(!!E.h.getPublicUser()),2),U=k[0],x=k[1],P=j(a.useState(""),2),A=P[0],L=P[1],B=j(a.useState("enter-name"),2),O=B[0],T=B[1],_=j(a.useState(null),2),W=_[0],F=_[1],R=j(a.useState(null),2),G=R[0],M=R[1],D=(0,N.a)(e.shareId),V=l.a.useBasicFetch(o.o.getShareRecipients(e.shareId));function J(e){e.preventDefault(),(null==y?void 0:y.trim())?(W||F("enter-name"),T("confirm")):L("Please provide a name")}if(a.useLayoutEffect((function(){p.R.remove()}),[]),a.useEffect((function(){var e,t;if(V.hasCompleted)return E.h.getPublicUser()?(T("confirm"),void F((null===(e=V.data)||void 0===e?void 0:e.length)?"select-user":"enter-name")):void((null===(t=V.data)||void 0===t?void 0:t.length)&&T("select-user"))}),[V.hasCompleted]),!D||!V.hasCompleted)return a.createElement(a.Fragment,null);var H=g.j.createUrl(i.I.getImageUrl(D),{size:b.h2.Large});return a.createElement(d.o,null,a.createElement(d.o.LeftImage,{title:D.name,imageUrl:H,objectType:D.typeId,fallbackImages:v.Hq}),a.createElement(d.o.Right,null,a.createElement(d.o.Header,null),a.createElement(d.o.Content,null,a.createElement("div",{className:"mb-auto text-center"},h.M.isInteractive(D)&&a.createElement("div",{className:"mb-3 d-lg-none d-block w-75 mx-auto"},a.createElement(m.Z,{data:h.M.getThumbnail(D),imageType:b.__.Thumbnails,className:"rounded-3 overflow-hidden"})),a.createElement("h1",{className:"h2"},D.name)),"enter-name"===O&&a.createElement(a.Fragment,null,a.createElement(d.o.NarrowContent,{className:"mb-auto"},a.createElement("form",{onSubmit:J},a.createElement("div",{className:"form-group"},a.createElement("label",{className:"h2",htmlFor:"name"},"Enter your name"),a.createElement("input",{className:"form-control form-control-lg ".concat(A?"is-invalid":""),type:"text","aria-label":"Enter your name...",placeholder:"Enter your name...",autoFocus:!0,value:y,onChange:function(e){C(e.target.value),L("")},autoComplete:"off",autoCorrect:"off",autoCapitalize:"none",spellCheck:"false",name:"name",id:"name"}),!!A&&a.createElement(u.A,{name:"name"},A)))),a.createElement(d.o.Buttons,null,!!(null===(t=V.data)||void 0===t?void 0:t.length)&&a.createElement("button",{className:"btn btn-link btn-lg",onClick:function(){return T("select-user")}},a.createElement(f.x,{namespace:S,phrase:"back"})),a.createElement("div",{className:"d-flex justify-content-end w-100"},a.createElement("button",{className:"btn btn-lg btn-dark",onClick:J},a.createElement(f.x,{namespace:S,phrase:"continue"}))))),"select-user"===O&&a.createElement(a.Fragment,null,a.createElement(d.o.NarrowContent,{className:"mb-auto"},a.createElement("h2",null,a.createElement(f.x,{namespace:S,phrase:"selectName"})),a.createElement("ul",{className:"list-unstyled row"},c.m.sortBy(V.data,(function(e){return e.publicName})).map((function(e,t){return a.createElement("li",{key:t,className:"col-3 p-2"},a.createElement(s.L,{className:"text-center rounded border py-2 ".concat((null==G?void 0:G.id)===e.id?"border-info bg-light-blue":""),onClick:function(){return function(e){M(e)}(e)}},a.createElement("div",{className:"px-3"},a.createElement(I,{recipient:e})),a.createElement("p",{className:"mb-0 mt-2 fw-semibold text-truncate"},e.publicName)))})))),a.createElement(d.o.Buttons,null,a.createElement("div",{className:"d-flex justify-content-between w-100"},a.createElement("button",{className:"btn btn-lg btn-link",onClick:function(){M(null),T("enter-name"),F("select-user")}},a.createElement(f.x,{namespace:S,phrase:"cantFindName"})),a.createElement("button",{className:"btn btn-lg btn-dark",onClick:function(){G&&(F("select-user"),T("confirm"))},disabled:!G},a.createElement(f.x,{namespace:S,phrase:"continue"}))))),"confirm"===O&&a.createElement(d.o.NarrowContent,{className:"mb-auto text-center"},G&&a.createElement("div",{className:"".concat(w.confirmationContainer," mx-auto")},a.createElement(I,{recipient:G})),a.createElement("p",{className:"h2"},a.createElement(f.x,{namespace:S,phrase:U?"welcome":"hi",options:{name:(null==G?void 0:G.publicName)||y}})),a.createElement("p",{className:"h2 mb-4"},a.createElement(f.x,{namespace:S,phrase:"ready"})),a.createElement("button",{className:"btn btn-lg btn-dark w-100 mb-3",onClick:function(){var t;E.h.setPublicUser((null==G?void 0:G.publicName)||y.trim());var n=r.Q.C$.getHref(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},null!==(t=e.appLink.params)&&void 0!==t?t:{}),{anonUserSelected:!0})}));r.Q.Ab.PageLoad(n)}},a.createElement(f.x,{namespace:S,phrase:"start"})),a.createElement("button",{className:"btn btn-lg btn-link w-100",onClick:function(){C(""),T(W),x(!1)}},a.createElement(f.x,{namespace:S,phrase:"notMyName"}))))))}},75608:(e,t,n)=>{n.d(t,{a:()=>f});var a=n(20354),r=n(30439),l=n(4594),c=n(21750),o=n(43012),i=n(20768),s=n(5112),u=n(60011),m=n(31949),d=n(1575);function f(e){var t=a.a.useBasicFetch(m.N.currentUser()),n=a.a.useBasicFetch(r.o.getShareObject(e)),f=function(){if(!n.data||!t.data)return null;switch(n.data.objectTypeId){case l.E.Video:return d.R.publicVideo(n.data.objectId,e);case l.E.Clip:return o.e.publicClip(n.data.objectId,e);case l.E.Interactive:return i.b.publicInteractiveMetadata(n.data.objectId,e);case l.E.Playlist:return s.C.getSharedPlaylist(n.data.objectId,e);case l.E.Subject:return c.x.classification(n.data.objectId,t.data.id);case l.E.Series:return u.J.sharedSeries(n.data.objectId,e)}}();return a.a.useBasicFetch(f).data}},83421:(e,t,n)=>{n.d(t,{Hq:()=>m,Zf:()=>b});var a=n(32735),r=n(54610),l=n(4594),c=n(67453),o=n(99742);const i={left:"vIypY",leftTextImage:"YViNj",right:"MkD4u",blur:"X6mCh",imageContainer:"bc7kz",imagePosition:"JOhEj",image:"Ef2QR",thumbnail:"Gdurb",tallposter:"fjVNK",cover:"o3j31",linksContainer:"AT9Dk"};function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,l,c,o=[],i=!0,s=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=l.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m=[{bgUrl:o.W.LaunchPad.BG_1},{bgUrl:o.W.LaunchPad.BG_2},{bgUrl:o.W.LaunchPad.BG_3},{bgUrl:o.W.LaunchPad.BG_4},{bgUrl:o.W.LaunchPad.BG_5}],d=[{bgUrl:o.W.LaunchPad.PRODUCT.BG_1},{bgUrl:o.W.LaunchPad.PRODUCT.BG_2},{bgUrl:o.W.LaunchPad.PRODUCT.BG_3},{bgUrl:o.W.LaunchPad.PRODUCT.BG_4},{bgUrl:o.W.LaunchPad.PRODUCT.BG_5},{bgUrl:o.W.LaunchPad.PRODUCT.BG_6},{bgUrl:o.W.LaunchPad.PRODUCT.BG_7},{bgUrl:o.W.LaunchPad.PRODUCT.BG_8},{bgUrl:o.W.LaunchPad.PRODUCT.BG_9}];function f(e){switch(e){case l.E.Video:case l.E.Interactive:case l.E.Clip:return i.thumbnail;case l.E.Subject:case l.E.Playlist:return i.cover;case l.E.Series:return i.tallposter;default:return""}}function b(e){var t,n=s(a.useState(!1),2),l=n[0],o=n[1],u=s(a.useState(""),2),m=u[0],b=u[1],g=c.j.createUrl(e.imageUrl,{size:r.h2.Large}),h=d;return a.useEffect((function(){if(!g&&h&&0!==h.length){var e,t=(e=h)[Math.floor(Math.random()*e.length)];t.bgUrl&&b(t.bgUrl)}}),[]),a.useEffect((function(){if(g){var e=new Image;return e.onload=function(){return o(!0)},e.src=g,function(){return e.onload=null}}}),[]),a.createElement("div",{className:"d-flex"},e.leftComponent?e.leftComponent():a.createElement("div",{className:"".concat(i.left," ").concat(m?"bg-blue d-flex align-items-center":"bg-light")},m?a.createElement("img",{className:"img-fluid",src:m,draggable:!1}):l&&a.createElement(a.Fragment,null,a.createElement("div",{className:i.blur,style:{backgroundImage:"url('".concat(g,"')")}}),a.createElement("div",{className:"".concat(i.imageContainer," ").concat(f(e.objectType))},a.createElement("div",{className:i.imagePosition},a.createElement("img",{className:i.image,src:g,alt:e.title}))))),a.createElement("div",{className:"".concat(i.right," bg-white d-flex flex-column")},a.createElement("div",{className:"position-absolute d-flex align-items-center ".concat(i.linksContainer)},null===(t=e.links)||void 0===t?void 0:t.map((function(e,t){return e.hide?a.createElement(a.Fragment,{key:t}):a.createElement("a",{key:t,href:e.url,className:"info-link fw-semibold",onClick:e.onClick},e.text)}))),e.children))}}}]);
2
- //# sourceMappingURL=3180-22edf4c9fc-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/3180-22edf4c9fc-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/forms/form-feedback/FormFeedback.tsx","file:///app/packages/libs/common/src/react/utils/ClassNameHelper.ts","file:///app/packages/libs/shared/src/components/launchpad/v2/launchpad-v2.scss","file:///app/packages/libs/shared/src/components/launchpad/v2/LaunchpadV2.tsx","file:///app/packages/projects/lite/src/apps/launchpad/views/select-anon-user/components/emoji-avi.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/select-anon-user/components/EmojiAvi.tsx","file:///app/packages/projects/lite/src/apps/launchpad/views/select-anon-user/select-anon-user.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/select-anon-user/SelectAnonUserView.tsx","file:///app/packages/projects/lite/src/apps/share/hooks/useFetchSharedResource.ts","file:///app/packages/projects/lite/src/shared/components/launchpad/launchpad.scss","file:///app/packages/projects/lite/src/shared/components/launchpad/Launchpad.tsx"],"sourcesContent":["import React from 'react';\n\ninterface FormFeedbackProps extends React.PropsWithChildren {\n name: string;\n className?: string;\n}\n\nexport function FormFeedback(props: FormFeedbackProps) {\n return (\n <span id={`${props.name}Error`} className={`${props.className} invalid-feedback d-block`} role='status'>{props.children}</span>\n );\n}","type ValidParams = string | boolean | undefined | null;\n\n/**\n * Helper to append classNames.\n * Filters any falsy values before returning classNames.\n * \n * @param ...classNames Array<string | boolean | undefined | null>\n * @returns string\n */\nexport function classNames(...classNames: Array<ValidParams>): string {\n if (!classNames.length) return '';\n\n const filteredClassNames = classNames.filter(className => !!className);\n \n if (!filteredClassNames.length) return '';\n \n return filteredClassNames.join(' ');\n}","// extracted by mini-css-extract-plugin\nexport default {\"left\":\"s6wnJ\",\"leftWithImage\":\"UFQ2T\",\"bgCover\":\"Tp9_3\",\"bgFull\":\"AlF2T\",\"right\":\"eoZzJ\",\"rightContent\":\"RVyLM\",\"narrowContent\":\"INvJ0\",\"logo\":\"YHNgA\",\"buttonContainer\":\"ZW85Q\",\"blur\":\"Mtlg9\",\"imageContainer\":\"NxEjh\",\"imagePosition\":\"NN9cV\",\"image\":\"PkJ8J\",\"thumbnail\":\"y0V3Z\",\"tallposter\":\"Wrg5x\",\"cover\":\"x3h8F\",\"contentBody\":\"aLd5V\",\"contentBodyBase\":\"uQ2rm\"};","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { MasterType } from 'libs/shared/enums/MasterType';\n\nimport styles from './launchpad-v2.scss';\n\nfunction mapObjectTypeToImageClass(objectType: MasterType): string {\n switch (objectType) {\n case MasterType.Video:\n case MasterType.Interactive:\n case MasterType.Clip:\n return styles.thumbnail;\n\n case MasterType.Subject:\n case MasterType.Playlist:\n return styles.cover;\n\n case MasterType.Series:\n return styles.tallposter;\n\n default:\n return '';\n }\n}\n\ninterface LaunchpadV2Props {\n}\n\nexport function LaunchpadV2(props: React.PropsWithChildren<LaunchpadV2Props>): JSX.Element {\n return (\n <div className='d-flex'>\n {props.children}\n </div>\n );\n}\n\ninterface LeftPanelProps {\n className?: string;\n}\n\n\nfunction LeftPanel(props: React.PropsWithChildren<LeftPanelProps>): JSX.Element {\n return (\n <div className={`${styles.left} ${props.className ? props.className : ''}`}>\n {props.children}\n </div>\n );\n}\n\ninterface LeftImageProps {\n objectType?: MasterType;\n title?: string;\n imageUrl?: string;\n fallbackImages: LaunchImage[];\n}\n\ninterface LaunchImage {\n bgUrl: string;\n}\n\nfunction LeftImage(props: LeftImageProps): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n const [ image, setImage ] = React.useState<string>('');\n\n React.useEffect(() => {\n if (!props.imageUrl) {\n const image = props.fallbackImages[Math.floor(Math.random() * props.fallbackImages.length)];\n setImage(image.bgUrl);\n return;\n }\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = props.imageUrl;\n return () => img.onload = null;\n }, [props.imageUrl]);\n\n return (\n <div\n className={`${styles.left} ${styles.leftWithImage} ${styles.bgCover} bg-light`}\n style={{ backgroundImage: `url('${image}')` }}\n >\n {showImage &&\n <>\n <div className={styles.blur} style={{ backgroundImage: `url('${props.imageUrl}')` }} />\n <div className={`${styles.imageContainer} ${mapObjectTypeToImageClass(props.objectType)}`}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={props.imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n }\n </div>\n );\n}\n\ntype ImageSizeType = 'cover' | 'full';\n\ninterface LeftImageWithBackgroundProps {\n imageUrl: string;\n imageSize?: ImageSizeType;\n backgroundColor?: string;\n title?: string;\n}\n\nconst imageSizeMap: {[key in ImageSizeType]: string} = {\n cover: styles.bgCover,\n full: styles.bgFull\n};\n\nfunction LeftImageWithBackground(props: LeftImageWithBackgroundProps): JSX.Element {\n const bgStyles: React.CSSProperties = {\n backgroundImage: `url(\"${props.imageUrl}\")`\n };\n\n if (props.backgroundColor)\n bgStyles.backgroundColor = props.backgroundColor;\n \n return (\n <div\n className={`${styles.left} ${styles.leftWithImage} ${imageSizeMap[props.imageSize || 'cover']} d-flex align-items-center`}\n style={bgStyles}\n title={props.title}\n />\n );\n}\n\ninterface RightPanelProps {\n className?: string;\n}\n\nexport function RightPanel(props: React.PropsWithChildren<RightPanelProps>): JSX.Element {\n return (\n <div className={`${styles.right} ${props.className ? props.className : ''}`}>\n {props.children}\n </div>\n );\n}\n\ninterface HeaderProps {\n logoComponent?: () => JSX.Element;\n}\n\n\nfunction Header(props: React.PropsWithChildren<HeaderProps>): JSX.Element {\n const LogoComponent = props?.logoComponent || ClickViewLogo;\n \n return (\n <div className='position-relative'>\n <div className={`${styles.logo} position-absolute`}>\n <LogoComponent />\n </div>\n {props.children}\n </div>\n );\n}\n\ninterface ContentProps {\n className?: string;\n}\n\nfunction Content(props: React.PropsWithChildren<ContentProps>): JSX.Element {\n return (\n <div className={classNames(styles.rightContent, 'd-flex flex-column justify-content-center h-100', props?.className)}>\n {props.children}\n </div>\n );\n}\n\ninterface ContentBodyProps {\n className?: string;\n width?: 'base' | 'full';\n}\n\nconst widthClassNameMap: {[key in ContentBodyProps['width']]: string} = {\n base: styles.contentBodyBase,\n full: ''\n};\n\nfunction ContentBody(props: React.PropsWithChildren<ContentBodyProps>): JSX.Element {\n const widthClassName = widthClassNameMap[props.width || 'base'];\n return (\n <div className={classNames(styles.contentBody, widthClassName, 'm-auto p-3', props.className)}>\n {props.children}\n </div>\n );\n}\n\ninterface NarrowContentProps {\n className?: string;\n}\n\nLaunchpadV2.NarrowContent = NarrowContent;\nfunction NarrowContent(props: React.PropsWithChildren<NarrowContentProps>): JSX.Element {\n return (\n <div className={`${styles.narrowContent} mx-auto w-100 ${props.className ? props.className : ''}`}>\n {props.children}\n </div>\n );\n}\n\ninterface ButtonsProps {\n className?: string;\n}\n\nfunction Buttons(props: React.PropsWithChildren<ButtonsProps>): JSX.Element {\n return (\n <div className={classNames('position-fixed bg-white d-flex align-items-center', styles.buttonContainer, props?.className)}>\n {props.children}\n </div>\n );\n}\n\n/**\n * Intended ussage below:\n * \n * <LaunchpadV2>\n * <LaunchpadV2.Left>\n * // Your LHS content here\n * </LaunchpadV2.Left>\n * <LaunchpadV2.Right>\n * <LaunchpadV2.Header />\n * <LaunchpadV2.Content>\n * // Can omit this if it needs to be full width\n * <LaunchpadV2.ContentBody width=\"...\">\n * // Your main content here\n * </LaunchpadV2.ContentBody>\n * </LaunchpadV2.Content>\n * \n * // Omit this and put your buttons in content\n * // if you want your buttons immediately under your content rather \n * // than at the bottom of the screen\n * <LaunchpadV2.Buttons />\n * \n * </LaunchpadV2.Right>\n * </LaunchpadV2>\n * \n * - Sha\n */\n\nLaunchpadV2.Left = LeftPanel;\nLaunchpadV2.LeftImage = LeftImage;\nLaunchpadV2.LeftImageWithBackground = LeftImageWithBackground;\nLaunchpadV2.Right = RightPanel;\nLaunchpadV2.Header = Header;\nLaunchpadV2.Content = Content;\nLaunchpadV2.ContentBody = ContentBody;\nLaunchpadV2.Buttons = Buttons;\n","// extracted by mini-css-extract-plugin\nexport default {\"aviBackground\":\"oHeDN\",\"aviContainer\":\"J3O78\",\"aviIcon\":\"vNvft\"};","import React from 'react';\n\nimport { AnonymisedUser } from 'libs/shared/apps/share/interfaces/AnonymisedUser';\n\nimport styles from './emoji-avi.scss';\n\nconst AVIS = [\n '🐵', '🐒', '🦍', '🦧', '🐶', '🐕', '🦮', '🐕‍🦺', '🐩', '🐺',\n '🦊', '🦝', '🐱', '🐈', '🐈‍⬛', '🦁', '🐯', '🐅', '🐆', '🐴',\n '🐎', '🦄', '🦓', '🦌', '🐮', '🐂', '🐃', '🐄', '🐷', '🐖',\n '🐗', '🐽', '🐏', '🐑', '🐐', '🦙', '🦒', '🐘', '🦣', '🦏',\n '🦛', '🦘', '🦥', '🦦', '🦨', '🦡', '🐇', '🐁', '🐀', '🦔',\n '🐿️', '🦇', '🐉', '🦎', '🐍', '🐢', '🐊', '🦖', '🦕', '🐙',\n '🦑', '🦐', '🦞', '🦀', '🦪', '🐡', '🐠', '🐟', '🐬', '🐳',\n '🐋', '🦈', '🦭', '🐾'\n];\n\nconst BACKGROUNDS = [\n 'bg-orange',\n 'bg-indigo',\n 'bg-teal',\n 'bg-cyan',\n 'bg-purple',\n 'bg-pink',\n 'bg-red',\n 'bg-yellow',\n 'bg-green',\n 'bg-blue'\n];\n\nfunction getRandom(name: string, collection: string[]): string {\n let charCode = 0;\n\n for (let i = 0; i < name?.length ?? 0; i++) {\n charCode += name.charCodeAt(i);\n }\n \n return collection[charCode % collection.length];\n}\n\ninterface EmojiAviProps {\n recipient: AnonymisedUser;\n}\n\nexport function EmojiAvi(props: EmojiAviProps): JSX.Element {\n return (\n <span className={`h1 d-block mb-0 position-relative ${styles.aviContainer}`}>\n <span\n className={`\n ${getRandom(props.recipient.publicName, BACKGROUNDS)}\n rounded-circle\n position-absolute\n top-0\n start-0\n bottom-0\n end-0\n ${styles.aviBackground}\n `}\n ></span>\n <span\n className={`\n ${styles.aviIcon}\n position-absolute\n top-50\n start-50\n `}\n >\n {getRandom(props.recipient.publicName, AVIS)}\n </span>\n </span>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"confirmationContainer\":\"TIEUw\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { AnonymisedUser } from 'libs/shared/apps/share/interfaces/AnonymisedUser';\nimport { SharableEntity, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { FormFeedback } from 'libs/shared/components/forms/form-feedback/FormFeedback';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { LaunchpadV2 } from 'libs/shared/components/launchpad/v2/LaunchpadV2';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { LAUNCHPAD_FALLBACK_IMAGES } from 'shared/components/launchpad/Launchpad';\n\nimport { EmbedPlaceHolderHelper } from 'apps/embed/utils/EmbedPlaceholderHelper';\nimport { ShareLinkFilterHelpers } from 'apps/share/filters/share-link-filter/ShareLinkFilterHelpers';\nimport { useFetchSharedResource } from 'apps/share/hooks/useFetchSharedResource';\n\nimport { EmojiAvi } from './components/EmojiAvi';\n\nimport styles from './select-anon-user.scss';\n\nconst namespace = 'launchpad.selectAnonUser';\n\ntype Step = 'enter-name' | 'select-user' | 'confirm';\n\ninterface SelectAnonUserViewProps {\n shareId: string;\n appLink: Core.AppLink;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function SelectAnonUserView(props: SelectAnonUserViewProps): JSX.Element {\n const [ name, setName ] = React.useState(ShareLinkFilterHelpers.getPublicUser() || '');\n const [ isReturning, setIsReturning ] = React.useState(!!ShareLinkFilterHelpers.getPublicUser());\n const [ error, setError ] = React.useState('');\n const [ step, setStep ] = React.useState<Step>('enter-name');\n const [ backStep, setBackStep ] = React.useState<Step>(null);\n const [ selectedUser, setSelectedUser ] = React.useState<AnonymisedUser>(null);\n \n const sharedResource = useFetchSharedResource<SharableEntity>(props.shareId);\n const shareRecipients = Flight.useBasicFetch<AnonymisedUser[]>(ShareRequests.getShareRecipients(props.shareId));\n\n function onSetName(e: React.ChangeEvent<HTMLInputElement>): void {\n setName(e.target.value);\n setError('');\n }\n\n React.useLayoutEffect(() => {\n EmbedPlaceHolderHelper.remove();\n }, []);\n \n React.useEffect(() => {\n if (!shareRecipients.hasCompleted)\n return;\n\n if (ShareLinkFilterHelpers.getPublicUser()) {\n setStep('confirm');\n setBackStep(shareRecipients.data?.length ? 'select-user' : 'enter-name');\n return;\n }\n\n if (shareRecipients.data?.length)\n setStep('select-user');\n }, [shareRecipients.hasCompleted]);\n\n function onClickGoToQuiz(): void {\n ShareLinkFilterHelpers.setPublicUser(selectedUser?.publicName || name.trim());\n const href = Core.AppLinkHelper.getHref({\n ...props.appLink,\n params: {\n ...(props.appLink.params as object ?? {}),\n anonUserSelected: true\n }\n });\n Core.LocationUtils.PageLoad(href);\n }\n\n function onSubmit(e: React.FormEvent): void {\n e.preventDefault();\n\n if (!name?.trim()) {\n setError('Please provide a name');\n return;\n }\n\n if (!backStep)\n setBackStep('enter-name');\n setStep('confirm');\n }\n\n function onContinueAvi(): void {\n if (!selectedUser) return;\n\n setBackStep('select-user');\n setStep('confirm');\n }\n\n function onClickRecipient(recipient: AnonymisedUser): void {\n setSelectedUser(recipient);\n }\n\n const hasCompleted = (\n sharedResource &&\n shareRecipients.hasCompleted\n );\n\n if (!hasCompleted)\n return <></>;\n\n const leftImageUrl = ImageHelper.createUrl(ShareViewHelper.getImageUrl(sharedResource), { size: ImageSize.Large });\n\n return (\n <LaunchpadV2>\n <LaunchpadV2.LeftImage\n title={sharedResource.name}\n imageUrl={leftImageUrl}\n objectType={sharedResource.typeId}\n fallbackImages={LAUNCHPAD_FALLBACK_IMAGES}\n />\n <LaunchpadV2.Right>\n <LaunchpadV2.Header />\n <LaunchpadV2.Content>\n <div className='mb-auto text-center'>\n {VideoHelper.isInteractive(sharedResource) && (\n <div className='mb-3 d-lg-none d-block w-75 mx-auto'>\n <BaseImage\n data={VideoHelper.getThumbnail(sharedResource)}\n imageType={ImageType.Thumbnails}\n className='rounded-3 overflow-hidden'\n />\n </div>\n )}\n \n <h1 className='h2'>\n {sharedResource.name}\n </h1>\n </div>\n\n {step === 'enter-name' && (\n <>\n <LaunchpadV2.NarrowContent className='mb-auto'>\n <form onSubmit={onSubmit}>\n <div className='form-group'>\n <label className='h2' htmlFor='name'>Enter your name</label>\n <input\n className={`form-control form-control-lg ${error ? 'is-invalid' : ''}`}\n type='text'\n aria-label='Enter your name...'\n placeholder='Enter your name...'\n autoFocus\n value={name}\n onChange={onSetName}\n autoComplete='off'\n autoCorrect='off'\n autoCapitalize='none'\n spellCheck='false'\n name={'name'}\n id='name'\n />\n {!!error && <FormFeedback name='name'>{error}</FormFeedback>}\n </div>\n </form>\n </LaunchpadV2.NarrowContent>\n <LaunchpadV2.Buttons>\n {!!shareRecipients.data?.length &&\n <button\n className='btn btn-link btn-lg'\n onClick={() => setStep('select-user')}\n >\n <Text namespace={namespace} phrase='back' />\n </button>\n }\n <div className='d-flex justify-content-end w-100'>\n <button\n className='btn btn-lg btn-dark'\n onClick={onSubmit}\n >\n <Text namespace={namespace} phrase='continue' />\n </button>\n </div>\n </LaunchpadV2.Buttons>\n </>\n )}\n\n {step === 'select-user' && (\n <>\n <LaunchpadV2.NarrowContent className='mb-auto'>\n <h2><Text namespace={namespace} phrase='selectName' /></h2>\n <ul className='list-unstyled row'>\n {ArrayHelper.sortBy(shareRecipients.data, a => a.publicName).map((recipient, index) => {\n return (\n <li key={index} className='col-3 p-2'>\n <DivButton\n className={`text-center rounded border py-2 ${selectedUser?.id === recipient.id ? 'border-info bg-light-blue' : ''}`}\n onClick={() => onClickRecipient(recipient)}\n >\n <div className='px-3'>\n <EmojiAvi recipient={recipient} />\n </div>\n \n <p className='mb-0 mt-2 fw-semibold text-truncate'>{recipient.publicName}</p>\n </DivButton>\n </li>\n );\n })}\n </ul>\n </LaunchpadV2.NarrowContent>\n <LaunchpadV2.Buttons>\n <div className='d-flex justify-content-between w-100'>\n <button\n className='btn btn-lg btn-link'\n onClick={() => {\n setSelectedUser(null);\n setStep('enter-name');\n setBackStep('select-user');\n }}\n >\n <Text namespace={namespace} phrase='cantFindName' />\n </button>\n <button\n className='btn btn-lg btn-dark'\n onClick={onContinueAvi}\n disabled={!selectedUser}\n >\n <Text namespace={namespace} phrase='continue' />\n </button>\n </div>\n </LaunchpadV2.Buttons>\n </>\n )}\n\n {step === 'confirm' && (\n <LaunchpadV2.NarrowContent className='mb-auto text-center'>\n {selectedUser &&\n <div className={`${styles.confirmationContainer} mx-auto`}>\n <EmojiAvi recipient={selectedUser} />\n </div>\n }\n <p className='h2'>\n <Text\n namespace={namespace}\n phrase={isReturning ? 'welcome' : 'hi'}\n options={{ name: selectedUser?.publicName || name }}\n />\n </p>\n \n <p className='h2 mb-4'><Text namespace={namespace} phrase='ready' /></p>\n <button\n className='btn btn-lg btn-dark w-100 mb-3'\n onClick={onClickGoToQuiz}\n >\n <Text namespace={namespace} phrase='start' />\n </button>\n <button\n className='btn btn-lg btn-link w-100'\n onClick={() => {\n setName('');\n setStep(backStep);\n setIsReturning(false);\n }}\n >\n <Text namespace={namespace} phrase='notMyName' />\n </button>\n </LaunchpadV2.NarrowContent>\n )}\n </LaunchpadV2.Content>\n </LaunchpadV2.Right>\n </LaunchpadV2>\n );\n}\n\n","import { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { CurrentUser, ShareLink } from 'libs/shared/interfaces';\n\nexport function useFetchSharedResource<T>(shareId: string): T {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareObject(shareId));\n\n function getResourceRequest(): Flight.Request {\n if (!shareLink.data || !currentUser.data)\n return null;\n\n switch (shareLink.data.objectTypeId) {\n case MasterType.Video:\n return VideoRequests.publicVideo(shareLink.data.objectId, shareId);\n case MasterType.Clip:\n return ClipRequests.publicClip(shareLink.data.objectId, shareId);\n case MasterType.Interactive:\n return InteractiveRequests.publicInteractiveMetadata(shareLink.data.objectId, shareId);\n case MasterType.Playlist:\n return PlaylistRequests.getSharedPlaylist(shareLink.data.objectId, shareId);\n case MasterType.Subject:\n return ClassificationRequests.classification(shareLink.data.objectId, currentUser.data.id);\n case MasterType.Series:\n return SeriesRequests.sharedSeries(shareLink.data.objectId, shareId);\n }\n }\n\n const resourceRequest = getResourceRequest();\n const resource = Flight.useBasicFetch<T>(resourceRequest);\n\n return resource.data;\n}","// extracted by mini-css-extract-plugin\nexport default {\"left\":\"vIypY\",\"leftTextImage\":\"YViNj\",\"right\":\"MkD4u\",\"blur\":\"X6mCh\",\"imageContainer\":\"bc7kz\",\"imagePosition\":\"JOhEj\",\"image\":\"Ef2QR\",\"thumbnail\":\"Gdurb\",\"tallposter\":\"fjVNK\",\"cover\":\"o3j31\",\"linksContainer\":\"AT9Dk\"};","import React from 'react';\n\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './launchpad.scss';\n\nexport const LAUNCHPAD_FALLBACK_IMAGES = [\n { bgUrl: ImageUrls.LaunchPad.BG_1 },\n { bgUrl: ImageUrls.LaunchPad.BG_2 },\n { bgUrl: ImageUrls.LaunchPad.BG_3 },\n { bgUrl: ImageUrls.LaunchPad.BG_4 },\n { bgUrl: ImageUrls.LaunchPad.BG_5 }\n];\n\nexport const LAUNCHPAD_PRODUCT_FALLBACK_IMAGES = [\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_1 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_2 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_3 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_4 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_5 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_6 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_7 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_8 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_9 }\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst XMAS_URLS: LaunchImage[] = [\n { bgUrl: '/images/launchpad/xmas/2024-promo1-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo2-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo3-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo4-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo5-bg.png' }\n];\n\nfunction mapObjectTypeToImageClass(objectType: MasterType): string {\n switch (objectType) {\n case MasterType.Video:\n case MasterType.Interactive:\n case MasterType.Clip:\n return styles.thumbnail;\n\n case MasterType.Subject:\n case MasterType.Playlist:\n return styles.cover;\n\n case MasterType.Series:\n return styles.tallposter;\n\n default:\n return '';\n }\n}\n\ninterface LaunchpadLink {\n url: string;\n text: string;\n onClick?: () => void;\n hide?: boolean;\n}\n\ninterface LaunchpadProps {\n objectType?: MasterType;\n title?: string;\n imageUrl?: string;\n links?: LaunchpadLink[];\n leftComponent?: () => JSX.Element;\n}\n\ninterface LaunchImage {\n bgUrl: string;\n}\n\nfunction getRandomImage(urlLists: LaunchImage[]): LaunchImage {\n return urlLists[Math.floor(Math.random() * urlLists.length)];\n}\n\nexport function Launchpad(props: React.PropsWithChildren<LaunchpadProps>): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n const [ image, setImage ] = React.useState<string>('');\n\n const imageUrl = ImageHelper.createUrl(props.imageUrl, { size: ImageSize.Large });\n const IMAGE_URLS = LAUNCHPAD_PRODUCT_FALLBACK_IMAGES;\n\n React.useEffect(() => {\n if (imageUrl || !IMAGE_URLS || IMAGE_URLS.length === 0)\n return;\n\n const image = getRandomImage(IMAGE_URLS);\n\n if (image.bgUrl) {\n setImage(image.bgUrl);\n }\n }, []);\n\n React.useEffect(() => {\n if (!imageUrl)\n return;\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = imageUrl;\n return () => img.onload = null;\n }, []);\n\n return (\n <div className='d-flex'>\n { props.leftComponent ?\n props.leftComponent()\n :\n <div\n className={`${styles.left} ${image ? 'bg-blue d-flex align-items-center' : 'bg-light'}`}\n >\n {image ?\n <img className='img-fluid' src={image} draggable={false} /> :\n (showImage &&\n <>\n <div className={styles.blur} style={{ backgroundImage: `url('${imageUrl}')` }} />\n <div className={`${styles.imageContainer} ${mapObjectTypeToImageClass(props.objectType)}`}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n )\n }\n </div>\n }\n <div className={`${styles.right} bg-white d-flex flex-column`}>\n <div className={`position-absolute d-flex align-items-center ${styles.linksContainer}`}>\n {props.links?.map((link, key) => {\n if (link.hide)\n return <React.Fragment key={key}></React.Fragment>;\n\n return (\n <a key={key} href={link.url} className='info-link fw-semibold' onClick={link.onClick}>\n {link.text}\n </a>\n );\n })}\n </div>\n\n {props.children}\n </div>\n </div>\n );\n}"],"names":["FormFeedback","props","id","name","className","role","children","classNames","length","filteredClassNames","filter","join","mapObjectTypeToImageClass","objectType","MasterType","LaunchpadV2","imageSizeMap","cover","full","widthClassNameMap","base","NarrowContent","Left","LeftImage","showImage","setShowImage","image","setImage","imageUrl","img","Image","onload","src","fallbackImages","Math","floor","random","bgUrl","style","backgroundImage","alt","title","LeftImageWithBackground","bgStyles","backgroundColor","imageSize","Right","Header","LogoComponent","logoComponent","ClickViewLogo","Content","ContentBody","widthClassName","width","Buttons","AVIS","BACKGROUNDS","getRandom","collection","charCode","i","charCodeAt","EmojiAvi","recipient","publicName","namespace","SelectAnonUserView","ShareLinkFilterHelpers","setName","isReturning","setIsReturning","error","setError","step","setStep","backStep","setBackStep","selectedUser","setSelectedUser","sharedResource","useFetchSharedResource","shareId","shareRecipients","ShareRequests","onSubmit","e","preventDefault","trim","hasCompleted","data","leftImageUrl","ImageHelper","ShareViewHelper","size","typeId","VideoHelper","BaseImage","imageType","htmlFor","type","placeholder","autoFocus","value","onChange","target","autoComplete","autoCorrect","autoCapitalize","spellCheck","onClick","Text","phrase","ArrayHelper","a","map","index","key","DivButton","onClickRecipient","disabled","options","href","appLink","params","anonUserSelected","currentUser","shareLink","resourceRequest","objectTypeId","objectId","getResourceRequest","LAUNCHPAD_FALLBACK_IMAGES","ImageUrls","LAUNCHPAD_PRODUCT_FALLBACK_IMAGES","Launchpad","IMAGE_URLS","urlLists","leftComponent","draggable","links","link","hide","url","text"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3549],{71051:(e,a,t)=>{t.r(a),t.d(a,{VideoInsightsOverviewView:()=>$});var n=t(32735),s=t(23481),i=t(2948),r=t(20354),l=t(75896),c=t(42642),d=t(94652),o=t(25216),m=t(461),u=t(35223),g=s.T.encloseNamespace("shared.insightStudentsNotWatched");function v(e){var a,t=(null===(a=e.students)||void 0===a?void 0:a.filter((function(a){var t;return!(null===(t=e.watchedIds)||void 0===t?void 0:t.includes(a.id))})))||[];return n.createElement(o.L,{title:g("title"),svgName:u.vn.Trending,svgClassName:"bg-light-teal text-teal"},n.createElement(m.y,{students:t,imageCdnUrl:e.imageCdnUrl,imageUrl:e.imageUrl,description:g("studentsDisplay"),anonymiseUsers:e.anonymiseUsers}))}var p=s.T.encloseNamespace("shared.insightStudentsWatched");function h(e){return n.createElement(o.L,{title:p("title"),svgName:u.vn.Flag,svgClassName:"bg-light-indigo text-indigo",count:e.students.length},n.createElement(m.y,{students:e.students,imageCdnUrl:e.imageCdnUrl,imageUrl:e.imageUrl,description:p("studentsDisplay"),appLink:e.heatmapAppLink,appLinkText:p("viewAll"),anonymiseUsers:e.anonymiseUsers}))}var E=t(26025),f=t(74901),I=t(40003),b=t(30439),N=t(83345),y=t(38143),A=t(4594),k=t(39151),U=t(31949),w=t(17913),C=t(91286),L=t(93322),S=t(79612),B=t(37802),O=t(31908),F=t(99742),j=t(88630),T=t(49673),x=t(5672),R=t(93116);const V={partialInsights:"ImBB3"};function D(){return n.createElement("div",null,n.createElement("h2",{className:"h4 w-25 partial-loading-background"}," "),n.createElement("div",{className:"row g-3 mb-5"},n.createElement("div",{className:"col-12"},n.createElement("div",{className:"".concat(V.partialInsights," rounded partial-loading-background")}))),n.createElement("h2",{className:"h4 w-25 partial-loading-background"}," "),n.createElement("div",{className:"row g-3 mb-5"},n.createElement("div",{className:"col-6"},n.createElement("div",{className:"".concat(V.partialInsights," rounded partial-loading-background")})),n.createElement("div",{className:"col-6"},n.createElement("div",{className:"".concat(V.partialInsights," rounded partial-loading-background")}))))}var _=t(14070),M=t(97291);function P(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=Array(a);t<a;t++)n[t]=e[t];return n}var W="insights.videoInsightsOverview",H=s.T.encloseNamespace(W);function $(e){var a,t,s,o,m,u,g,p=(u=(0,i.D)(y.g.ANONYMISE_USERS),g=1,function(e){if(Array.isArray(e))return e}(u)||function(e,a){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,s,i,r,l=[],c=!0,d=!1;try{if(i=(t=t.call(e)).next,0===a){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=i.call(t)).done)&&(l.push(n.value),l.length!==a);c=!0);}catch(e){d=!0,s=e}finally{try{if(!c&&null!=t.return&&(r=t.return(),Object(r)!==r))return}finally{if(d)throw s}}return l}}(u,g)||function(e,a){if(e){if("string"==typeof e)return P(e,a);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?P(e,a):void 0}}(u,g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];(0,L.F)();var V=(0,B.r)(null).hasClassrooms,$=r.a.useBasicFetch(U.N.currentUser()),G=r.a.useBasicFetch(k.L.config()),q=O.M.getVideoRequest(e.videoId,e.typeId),K=r.a.useBasicFetch(q),Y=E.B.getAudienceAppLinkParams(),z=E.B.getDateRangeAppLinkParams(),J=Object.assign(Object.assign({},(0,I.wO)((0,I.Hb)(),z)),(0,f.K)(Y));(0,S.M)({title:K.data?H("pageTitle",{video:null===(a=K.data)||void 0===a?void 0:a.name}):null}),(0,C.v)(K);var Q=r.a.useBasicFetch(w.u.aggregateEngagement(e.videoId,J,$.data.id)),X=1===(null===(t=Y.classrooms)||void 0===t?void 0:t.length)&&!(null===(s=Y.classroomGroups)||void 0===s?void 0:s.length),Z=r.a.useBasicFetch(X&&j.F.getClassroomStudents(l.m.first(Y.classrooms))),ee=r.a.useBasicFetch((null===(o=Q.data)||void 0===o?void 0:o.userIds)&&b.o.getRecipientsById(Q.data.userIds,$.data.customerId)),ae=r.a.useBasicFetch($.data&&w.u.views(J,e.videoId,$.data.id)),te=r.a.useBasicFetch(b.o.getShareLinkByObjectId(e.videoId)),ne=r.a.useBasicFetch(b.o.getSentDirectShareByObjectId(e.videoId)),se=!(!te.data&&!ne.data);function ie(){return ee.data?Object.values(ee.data):[]}var re=$.data&&G.data&&K.data&&Q.data&&(!X||Z.data),le=Object.assign(Object.assign({},Y),z),ce=function(e,a){return{heatmapAppLink:{application:M.O.INSIGHTS,action:_.e.Insights.VIDEO_HEATMAP,args:[e],params:a}}}(e.videoId,le);return n.createElement("div",{className:"px-3"},n.createElement(R.m,{video:K.data,audienceAppLinkParams:Y,dateRangeAppLinkParams:z,tabs:function(){var e,a,t;return(null===(e=K.data)||void 0===e?void 0:e.typeId)===A.E.Clip?(0,x.$o)(null===(a=K.data)||void 0===a?void 0:a.id,"insights",le):(0,x.$6)(null===(t=K.data)||void 0===t?void 0:t.id,"insights",le)}()}),!re&&n.createElement(D,null),re&&n.createElement(T.u,{video:K.data,hasShared:se},n.createElement("section",{className:"mb-5"},n.createElement("h2",{className:"h4"},n.createElement(N.x,{namespace:W,phrase:"studentViewing"}),n.createElement("span",null,": ",ie().length,Z.data?"/".concat(Z.data.data.length):"")),n.createElement("div",{className:"row g-3"},X&&n.createElement("div",{className:"col-12 col-md"},n.createElement(v,{students:Z.data.data,watchedIds:Q.data.userIds,imageCdnUrl:G.data.imageCdnUrl,heatmapAppLink:ce.heatmapAppLink,imageUrl:F.W.Insights.AVATAR,anonymiseUsers:p})),n.createElement("div",{className:"col-12 col-md"},n.createElement(h,{students:ie(),imageCdnUrl:G.data.imageCdnUrl,heatmapAppLink:ce.heatmapAppLink,imageUrl:F.W.Insights.AVATAR,anonymiseUsers:p})))),n.createElement("section",{className:"mb-5"},n.createElement("h2",{className:"h4"},n.createElement(N.x,{namespace:W,phrase:V?"classEngagement":"engagement"})),n.createElement("div",{className:"row g-3"},n.createElement("div",{className:"col-12 col-md-6"},n.createElement(c.i,{osCount:null===(m=ae.data)||void 0===m?void 0:m.osCount})),n.createElement("div",{className:"col-12 col-md-6"},n.createElement(d.b,{engagement:Q.data,heatmapAppLink:ce.heatmapAppLink}))))))}}}]);
2
- //# sourceMappingURL=3549-30d3b1cd05-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/3549-30d3b1cd05-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/components/insights/students-not-watched/InsightStudentsNotWatched.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/insights/students-watched/InsightStudentsWatched.tsx","file:///app/packages/projects/lite/src/apps/insights/views/video/overview/partial-loading/partial-video-insights-overview.scss","file:///app/packages/projects/lite/src/apps/insights/views/video/overview/partial-loading/PartialVideoInsightsOverview.tsx","file:///app/packages/projects/lite/src/apps/insights/views/video/overview/VideoInsightsOverviewView.tsx","file:///app/packages/projects/lite/src/apps/insights/views/video/overview/VideoInsightsOverviewUtils.ts"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InsightCard } from 'libs/shared/apps/analytics/components/insight-card/InsightCard';\nimport { InsightStudentList } from 'libs/shared/apps/analytics/components/insight-student-list/InsightStudentList';\nimport { User } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.insightStudentsNotWatched';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightStudentsNotWatchedProps {\n students: User[];\n imageCdnUrl: string;\n imageUrl: string;\n heatmapAppLink: Core.AppLink;\n watchedIds: string[];\n anonymiseUsers: boolean;\n}\n\nexport function InsightStudentsNotWatched(props: InsightStudentsNotWatchedProps) {\n const studentsNotWatched = props.students?.filter(student => !props.watchedIds?.includes(student.id)) || [];\n\n return (\n <InsightCard\n title={getPhrase('title')}\n // TODO: Replace icon\n svgName={cvSvgLibrary.Trending}\n svgClassName='bg-light-teal text-teal'\n >\n <InsightStudentList\n students={studentsNotWatched}\n imageCdnUrl={props.imageCdnUrl}\n imageUrl={props.imageUrl}\n description={getPhrase('studentsDisplay')}\n anonymiseUsers={props.anonymiseUsers}\n />\n </InsightCard>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InsightCard } from 'libs/shared/apps/analytics/components/insight-card/InsightCard';\nimport { InsightStudentList } from 'libs/shared/apps/analytics/components/insight-student-list/InsightStudentList';\nimport { User } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.insightStudentsWatched';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightWatchedProps {\n students: User[];\n imageCdnUrl: string;\n heatmapAppLink: Core.AppLink;\n imageUrl: string;\n anonymiseUsers: boolean;\n}\n\nexport function InsightStudentsWatched(props: InsightWatchedProps) {\n return (\n <InsightCard\n title={getPhrase('title')}\n svgName={cvSvgLibrary.Flag}\n svgClassName='bg-light-indigo text-indigo'\n count={props.students.length}\n >\n <InsightStudentList\n students={props.students}\n imageCdnUrl={props.imageCdnUrl}\n imageUrl={props.imageUrl}\n description={getPhrase('studentsDisplay')}\n appLink={props.heatmapAppLink}\n appLinkText={getPhrase('viewAll')}\n anonymiseUsers={props.anonymiseUsers}\n />\n </InsightCard>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialInsights\":\"ImBB3\"};","import React from 'react';\n\nimport styles from './partial-video-insights-overview.scss';\n\nexport function PartialVideoInsightsOverview() {\n return (\n <div>\n <h2 className='h4 w-25 partial-loading-background'>&nbsp;</h2>\n <div className='row g-3 mb-5'>\n <div className='col-12'>\n <div className={`${styles.partialInsights} rounded partial-loading-background`}></div>\n </div>\n </div>\n\n <h2 className='h4 w-25 partial-loading-background'>&nbsp;</h2>\n <div className='row g-3 mb-5'>\n <div className='col-6'>\n <div className={`${styles.partialInsights} rounded partial-loading-background`}></div>\n </div>\n <div className='col-6'>\n <div className={`${styles.partialInsights} rounded partial-loading-background`}></div>\n </div>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { InsightDevices } from 'libs/shared/apps/analytics/components/insights/devices/InsightDevices';\nimport { InsightHeatmap } from 'libs/shared/apps/analytics/components/insights/heatmap/InsightHeatmap';\nimport { InsightStudentsNotWatched } from 'libs/shared/apps/analytics/components/insights/students-not-watched/InsightStudentsNotWatched';\nimport { InsightStudentsWatched } from 'libs/shared/apps/analytics/components/insights/students-watched/InsightStudentsWatched';\nimport { BaseAnalyticsEventResponse } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { getAudienceParams } from 'libs/shared/apps/analytics/utils/AudienceUtils';\nimport { getInsightsDateRangePresets, getStartEndParams } from 'libs/shared/apps/analytics/utils/DateRangeUtils';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { BasePaginatedCollection, Config, CurrentUser, DirectShare, Engagement, ShareLink, User, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { InsightsShareMask } from 'apps/insights/components/insights-mask/InsightsShareMask';\nimport { getInsightsClipTabs, getInsightsVideoTabs } from 'apps/insights/utils/InsightsAppLinkUtils';\nimport { InsightsHeaderView } from 'apps/insights/views/header/InsightsHeaderView';\nimport { PartialVideoInsightsOverview } from 'apps/insights/views/video/overview/partial-loading/PartialVideoInsightsOverview';\nimport { getVideoInsightsAppLinks } from 'apps/insights/views/video/overview/VideoInsightsOverviewUtils';\n\nconst namespace = 'insights.videoInsightsOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface VideoInsightsViewProps {\n videoId: string;\n typeId: MasterType;\n}\n\nexport function VideoInsightsOverviewView(props: VideoInsightsViewProps) {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\n const { hasClassrooms } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const videoRequest = VideoHelper.getVideoRequest(props.videoId, props.typeId);\n const video = Flight.useBasicFetch<VideoTypes>(videoRequest);\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n const requestFilter = {\n ...getStartEndParams(getInsightsDateRangePresets(), dateRangeAppLinkParams),\n ...getAudienceParams(audienceAppLinkParams)\n };\n\n useSetPageMetadata({ title: video.data ? getPhrase('pageTitle', { video: video.data?.name }) : null });\n useHandleObjectError(video);\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(\n VideoViewRequests.aggregateEngagement(\n props.videoId,\n requestFilter,\n currentUser.data.id\n )\n );\n\n const classroomFilterOnly =\n audienceAppLinkParams.classrooms?.length === 1 && !audienceAppLinkParams.classroomGroups?.length;\n const classroomStudents = Flight.useBasicFetch<BasePaginatedCollection<User>>(classroomFilterOnly &&\n ClassroomRequests.getClassroomStudents(ArrayHelper.first(audienceAppLinkParams.classrooms)));\n\n const shareRecipients = Flight.useBasicFetch<User[]>(aggregateEngagement.data?.userIds &&\n ShareRequests.getRecipientsById(aggregateEngagement.data.userIds, currentUser.data.customerId));\n\n const videoViews = Flight.useBasicFetch<BaseAnalyticsEventResponse>(currentUser.data &&\n VideoViewRequests.views(requestFilter, props.videoId, currentUser.data.id));\n\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareLinkByObjectId(props.videoId));\n const sentDirectShare = Flight.useBasicFetch<DirectShare>(\n ShareRequests.getSentDirectShareByObjectId(props.videoId)\n );\n\n const hasShared = !!(shareLink.data || sentDirectShare.data);\n\n function getStudentsList() {\n if (!shareRecipients.data) return [];\n\n return Object.values(shareRecipients.data);\n }\n\n const hasDataLoaded =\n currentUser.data &&\n config.data &&\n video.data &&\n aggregateEngagement.data &&\n (!classroomFilterOnly || classroomStudents.data);\n\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams\n };\n\n const videoInsightsAppLinks = getVideoInsightsAppLinks(props.videoId, params);\n\n function getInsightsOverviewTabs() {\n if (video.data?.typeId === MasterType.Clip) {\n return getInsightsClipTabs(video.data?.id, 'insights', params);\n }\n\n return getInsightsVideoTabs(video.data?.id, 'insights', params);\n }\n\n return (\n <div className='px-3'>\n <InsightsHeaderView\n video={video.data}\n audienceAppLinkParams={audienceAppLinkParams}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n tabs={getInsightsOverviewTabs()}\n />\n\n {!hasDataLoaded && <PartialVideoInsightsOverview />}\n\n {hasDataLoaded &&\n <InsightsShareMask video={video.data} hasShared={hasShared}>\n <section className='mb-5'>\n <h2 className='h4'>\n <Text namespace={namespace} phrase='studentViewing' />\n <span>: {getStudentsList().length}{classroomStudents.data ? `/${classroomStudents.data.data.length}` : ''}</span>\n </h2>\n <div className='row g-3'>\n {classroomFilterOnly && (\n <div className='col-12 col-md'>\n <InsightStudentsNotWatched\n students={classroomStudents.data.data}\n watchedIds={aggregateEngagement.data.userIds}\n imageCdnUrl={config.data.imageCdnUrl}\n heatmapAppLink={videoInsightsAppLinks.heatmapAppLink}\n imageUrl={ImageUrls.Insights.AVATAR}\n anonymiseUsers={anonymiseUsers}\n />\n </div>\n )}\n <div className='col-12 col-md'>\n <InsightStudentsWatched\n students={getStudentsList()}\n imageCdnUrl={config.data.imageCdnUrl}\n heatmapAppLink={videoInsightsAppLinks.heatmapAppLink}\n imageUrl={ImageUrls.Insights.AVATAR}\n anonymiseUsers={anonymiseUsers}\n />\n </div>\n </div>\n </section>\n <section className='mb-5'>\n <h2 className='h4'>\n <Text\n namespace={namespace}\n phrase={hasClassrooms ? 'classEngagement' : 'engagement'}\n />\n </h2>\n <div className='row g-3'>\n <div className='col-12 col-md-6'>\n <InsightDevices\n osCount={videoViews.data?.osCount}\n />\n </div>\n <div className='col-12 col-md-6'>\n <InsightHeatmap\n engagement={aggregateEngagement.data}\n heatmapAppLink={videoInsightsAppLinks.heatmapAppLink}\n />\n </div>\n </div>\n </section>\n </InsightsShareMask>\n }\n </div>\n );\n}","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getVideoInsightsAppLinks(id: string, params?: HashObject) {\n return {\n heatmapAppLink: {\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.VIDEO_HEATMAP,\n args: [id],\n params\n }\n };\n}"],"names":["getPhrase","LanguageService","InsightStudentsNotWatched","props","studentsNotWatched","students","filter","student","watchedIds","includes","id","InsightCard","title","svgName","svgClassName","InsightStudentList","imageCdnUrl","imageUrl","description","anonymiseUsers","InsightStudentsWatched","count","length","appLink","heatmapAppLink","appLinkText","PartialVideoInsightsOverview","className","VideoInsightsOverviewView","SharedViewModelKeys","useLockContentWidth","hasClassrooms","useSettings","currentUser","UserRequests","config","ConfigRequests","videoRequest","VideoHelper","videoId","typeId","video","audienceAppLinkParams","dateRangeAppLinkParams","requestFilter","useSetPageMetadata","data","name","aggregateEngagement","VideoViewRequests","classroomFilterOnly","classrooms","classroomGroups","classroomStudents","ClassroomRequests","ArrayHelper","shareRecipients","userIds","ShareRequests","customerId","videoViews","shareLink","sentDirectShare","hasShared","getStudentsList","Object","values","hasDataLoaded","params","videoInsightsAppLinks","application","action","args","getVideoInsightsAppLinks","InsightsHeaderView","tabs","MasterType","getInsightsOverviewTabs","InsightsShareMask","Text","namespace","phrase","ImageUrls","InsightDevices","osCount","InsightHeatmap","engagement"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3776],{22988:(e,t,n)=>{n.d(t,{_W:()=>ut});var r=n(32735),a=n(2715),o=n(96256);function l(e){return(0,o.Z)(1,arguments),(0,a.default)(e,{weekStartsOn:1})}var i=n(77866);function s(e){return(0,o.Z)(1,arguments),(0,i.default)(e,{weekStartsOn:1})}var d=n(93177),u=n(907);var c=6048e5;function f(e){(0,o.Z)(1,arguments);var t=(0,u.default)(e),n=l(t).getTime()-function(e){(0,o.Z)(1,arguments);var t=function(e){(0,o.Z)(1,arguments);var t=(0,u.default)(e),n=t.getFullYear(),r=new Date(0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);var a=l(r),i=new Date(0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);var s=l(i);return t.getTime()>=a.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}(e),n=new Date(0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),l(n)}(t).getTime();return Math.round(n/c)+1}var v=n(74843),p=n(81486);function h(e,t){return(0,o.Z)(1,arguments),(0,v.default)(function(e){(0,o.Z)(1,arguments);var t=(0,u.default)(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(0,0,0,0),t}(e),(0,p.default)(e),t)+1}var m=n(73180),y=n(91475),b=n(84602),x=n(82757),_=n(99624),w=n(76904),g=n(5439),j=n(257),M=n(21174),k=n(9377),D=n(11113),N=n(85544),C=n(79526),P=n(96637),O=n(88773),S=n(66818),L=n(72872),W=n(61900),E=n(30537),I=n(44583),F=n(98658),T=n(21024),B=n(86428),Y=function(){return Y=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},Y.apply(this,arguments)};function R(e,t,n){if(n||2===arguments.length)for(var r,a=0,o=t.length;a<o;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var A,Z={exports:{}},H={};Z.exports=function(){if(A)return H;A=1;var e=r,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function i(e,n,r){var i,s={},d=null,u=null;for(i in void 0!==r&&(d=""+r),void 0!==n.key&&(d=""+n.key),void 0!==n.ref&&(u=n.ref),n)a.call(n,i)&&!l.hasOwnProperty(i)&&(s[i]=n[i]);if(e&&e.defaultProps)for(i in n=e.defaultProps)void 0===s[i]&&(s[i]=n[i]);return{$$typeof:t,type:e,key:d,ref:u,props:s,_owner:o.current}}return H.Fragment=n,H.jsx=i,H.jsxs=i,H}();var U=Z.exports;function $(e){return"multiple"===e.mode}function K(e){return"range"===e.mode}function z(e){return"single"===e.mode}var G={root:"rdp",multiple_months:"rdp-multiple_months",with_weeknumber:"rdp-with_weeknumber",vhidden:"rdp-vhidden",button_reset:"rdp-button_reset",button:"rdp-button",caption:"rdp-caption",caption_start:"rdp-caption_start",caption_end:"rdp-caption_end",caption_between:"rdp-caption_between",caption_label:"rdp-caption_label",caption_dropdowns:"rdp-caption_dropdowns",dropdown:"rdp-dropdown",dropdown_month:"rdp-dropdown_month",dropdown_year:"rdp-dropdown_year",dropdown_icon:"rdp-dropdown_icon",months:"rdp-months",month:"rdp-month",table:"rdp-table",tbody:"rdp-tbody",tfoot:"rdp-tfoot",head:"rdp-head",head_row:"rdp-head_row",head_cell:"rdp-head_cell",nav:"rdp-nav",nav_button:"rdp-nav_button",nav_button_previous:"rdp-nav_button_previous",nav_button_next:"rdp-nav_button_next",nav_icon:"rdp-nav_icon",row:"rdp-row",weeknumber:"rdp-weeknumber",cell:"rdp-cell",day:"rdp-day",day_today:"rdp-day_today",day_outside:"rdp-day_outside",day_selected:"rdp-day_selected",day_disabled:"rdp-day_disabled",day_hidden:"rdp-day_hidden",day_range_start:"rdp-day_range_start",day_range_end:"rdp-day_range_end",day_range_middle:"rdp-day_range_middle"},q=Object.freeze({__proto__:null,formatCaption:function(e,t){return(0,m.default)(e,"LLLL y",t)},formatDay:function(e,t){return(0,m.default)(e,"d",t)},formatMonthCaption:function(e,t){return(0,m.default)(e,"LLLL",t)},formatWeekNumber:function(e){return"".concat(e)},formatWeekdayName:function(e,t){return(0,m.default)(e,"cccccc",t)},formatYearCaption:function(e,t){return(0,m.default)(e,"yyyy",t)}}),J=Object.freeze({__proto__:null,labelDay:function(e,t,n){return(0,m.default)(e,"do MMMM (EEEE)",n)},labelMonthDropdown:function(){return"Month: "},labelNext:function(){return"Go to next month"},labelPrevious:function(){return"Go to previous month"},labelWeekNumber:function(e){return"Week n. ".concat(e)},labelWeekday:function(e,t){return(0,m.default)(e,"cccc",t)},labelYearDropdown:function(){return"Year: "}});var Q=(0,r.createContext)(void 0);function V(e){var t,n,r,a,o,l=e.initialProps,i=(n=G,r=B.Z,a=new Date,{captionLayout:"buttons",classNames:n,formatters:q,labels:J,locale:r,modifiersClassNames:{},modifiers:{},numberOfMonths:1,styles:{},today:a,mode:"default"}),s=function(e){var t=e.fromYear,n=e.toYear,r=e.fromMonth,a=e.toMonth,o=e.fromDate,l=e.toDate;return r?o=(0,p.default)(r):t&&(o=new Date(t,0,1)),a?l=(0,y.default)(a):n&&(l=new Date(n,11,31)),{fromDate:o?(0,b.default)(o):void 0,toDate:l?(0,b.default)(l):void 0}}(l),d=s.fromDate,u=s.toDate,c=null!==(t=l.captionLayout)&&void 0!==t?t:i.captionLayout;"buttons"===c||d&&u||(c="buttons"),(z(l)||$(l)||K(l))&&(o=l.onSelect);var f=Y(Y(Y({},i),l),{captionLayout:c,classNames:Y(Y({},i.classNames),l.classNames),components:Y({},l.components),formatters:Y(Y({},i.formatters),l.formatters),fromDate:d,labels:Y(Y({},i.labels),l.labels),mode:l.mode||i.mode,modifiers:Y(Y({},i.modifiers),l.modifiers),modifiersClassNames:Y(Y({},i.modifiersClassNames),l.modifiersClassNames),onSelect:o,styles:Y(Y({},i.styles),l.styles),toDate:u});return U.jsx(Q.Provider,{value:f,children:e.children})}function X(){var e=(0,r.useContext)(Q);if(!e)throw new Error("useDayPicker must be used within a DayPickerProvider.");return e}function ee(e){var t=X(),n=t.locale,r=t.classNames,a=t.styles,o=t.formatters.formatCaption;return U.jsx("div",{className:r.caption_label,style:a.caption_label,"aria-live":"polite",role:"presentation",id:e.id,children:o(e.displayMonth,{locale:n})})}function te(e){return U.jsx("svg",Y({width:"8px",height:"8px",viewBox:"0 0 120 120","data-testid":"iconDropdown"},e,{children:U.jsx("path",{d:"M4.22182541,48.2218254 C8.44222828,44.0014225 15.2388494,43.9273804 19.5496459,47.9996989 L19.7781746,48.2218254 L60,88.443 L100.221825,48.2218254 C104.442228,44.0014225 111.238849,43.9273804 115.549646,47.9996989 L115.778175,48.2218254 C119.998577,52.4422283 120.07262,59.2388494 116.000301,63.5496459 L115.778175,63.7781746 L67.7781746,111.778175 C63.5577717,115.998577 56.7611506,116.07262 52.4503541,112.000301 L52.2218254,111.778175 L4.22182541,63.7781746 C-0.0739418023,59.4824074 -0.0739418023,52.5175926 4.22182541,48.2218254 Z",fill:"currentColor",fillRule:"nonzero"})}))}function ne(e){var t,n,r=e.onChange,a=e.value,o=e.children,l=e.caption,i=e.className,s=e.style,d=X(),u=null!==(n=null===(t=d.components)||void 0===t?void 0:t.IconDropdown)&&void 0!==n?n:te;return U.jsxs("div",{className:i,style:s,children:[U.jsx("span",{className:d.classNames.vhidden,children:e["aria-label"]}),U.jsx("select",{name:e.name,"aria-label":e["aria-label"],className:d.classNames.dropdown,style:d.styles.dropdown,value:a,onChange:r,children:o}),U.jsxs("div",{className:d.classNames.caption_label,style:d.styles.caption_label,"aria-hidden":"true",children:[l,U.jsx(u,{className:d.classNames.dropdown_icon,style:d.styles.dropdown_icon})]})]})}function re(e){var t,n=X(),r=n.fromDate,a=n.toDate,o=n.styles,l=n.locale,i=n.formatters.formatMonthCaption,s=n.classNames,d=n.components,u=n.labels.labelMonthDropdown;if(!r)return U.jsx(U.Fragment,{});if(!a)return U.jsx(U.Fragment,{});var c=[];if((0,x.default)(r,a))for(var f=(0,p.default)(r),v=r.getMonth();v<=a.getMonth();v++)c.push((0,_.default)(f,v));else for(f=(0,p.default)(new Date),v=0;v<=11;v++)c.push((0,_.default)(f,v));var h=null!==(t=null==d?void 0:d.Dropdown)&&void 0!==t?t:ne;return U.jsx(h,{name:"months","aria-label":u(),className:s.dropdown_month,style:o.dropdown_month,onChange:function(t){var n=Number(t.target.value),r=(0,_.default)((0,p.default)(e.displayMonth),n);e.onChange(r)},value:e.displayMonth.getMonth(),caption:i(e.displayMonth,{locale:l}),children:c.map((function(e){return U.jsx("option",{value:e.getMonth(),children:i(e,{locale:l})},e.getMonth())}))})}function ae(e){var t,n=e.displayMonth,r=X(),a=r.fromDate,o=r.toDate,l=r.locale,i=r.styles,s=r.classNames,d=r.components,u=r.formatters.formatYearCaption,c=r.labels.labelYearDropdown,f=[];if(!a)return U.jsx(U.Fragment,{});if(!o)return U.jsx(U.Fragment,{});for(var v=a.getFullYear(),h=o.getFullYear(),m=v;m<=h;m++)f.push((0,w.default)((0,g.default)(new Date),m));var y=null!==(t=null==d?void 0:d.Dropdown)&&void 0!==t?t:ne;return U.jsx(y,{name:"years","aria-label":c(),className:s.dropdown_year,style:i.dropdown_year,onChange:function(t){var r=(0,w.default)((0,p.default)(n),Number(t.target.value));e.onChange(r)},value:n.getFullYear(),caption:u(n,{locale:l}),children:f.map((function(e){return U.jsx("option",{value:e.getFullYear(),children:u(e,{locale:l})},e.getFullYear())}))})}var oe=(0,r.createContext)(void 0);function le(e){var t=X(),n=function(){var e=X(),t=function(e){var t=e.month,n=e.defaultMonth,r=e.today,a=t||n||r||new Date,o=e.toDate,l=e.fromDate,i=e.numberOfMonths,s=void 0===i?1:i;if(o&&(0,j.default)(o,a)<0){var d=-1*(s-1);a=(0,M.default)(o,d)}return l&&(0,j.default)(a,l)<0&&(a=l),(0,p.default)(a)}(e),n=function(e,t){var n=(0,r.useState)(e),a=n[0];return[void 0===t?a:t,n[1]]}(t,e.month),a=n[0],o=n[1];return[a,function(t){var n;if(!e.disableNavigation){var r=(0,p.default)(t);o(r),null===(n=e.onMonthChange)||void 0===n||n.call(e,r)}}]}(),a=n[0],o=n[1],l=function(e,t){for(var n=t.reverseMonths,r=t.numberOfMonths,a=(0,p.default)(e),o=(0,p.default)((0,M.default)(a,r)),l=(0,j.default)(o,a),i=[],s=0;s<l;s++){var d=(0,M.default)(a,s);i.push(d)}return n&&(i=i.reverse()),i}(a,t),i=function(e,t){if(!t.disableNavigation){var n=t.toDate,r=t.pagedNavigation,a=t.numberOfMonths,o=void 0===a?1:a,l=r?o:1,i=(0,p.default)(e);if(!n)return(0,M.default)(i,l);if(!((0,j.default)(n,e)<o))return(0,M.default)(i,l)}}(a,t),s=function(e,t){if(!t.disableNavigation){var n=t.fromDate,r=t.pagedNavigation,a=t.numberOfMonths,o=r?void 0===a?1:a:1,l=(0,p.default)(e);if(!n)return(0,M.default)(l,-o);if(!((0,j.default)(l,n)<=0))return(0,M.default)(l,-o)}}(a,t),d=function(e){return l.some((function(t){return(0,k.default)(e,t)}))},u={currentMonth:a,displayMonths:l,goToMonth:o,goToDate:function(e,n){d(e)||(n&&(0,D.default)(e,n)?o((0,M.default)(e,1+-1*t.numberOfMonths)):o(e))},previousMonth:s,nextMonth:i,isDateDisplayed:d};return U.jsx(oe.Provider,{value:u,children:e.children})}function ie(){var e=(0,r.useContext)(oe);if(!e)throw new Error("useNavigation must be used within a NavigationProvider");return e}function se(e){var t,n=X(),r=n.classNames,a=n.styles,o=n.components,l=ie().goToMonth,i=function(t){l((0,M.default)(t,e.displayIndex?-e.displayIndex:0))},s=null!==(t=null==o?void 0:o.CaptionLabel)&&void 0!==t?t:ee,d=U.jsx(s,{id:e.id,displayMonth:e.displayMonth});return U.jsxs("div",{className:r.caption_dropdowns,style:a.caption_dropdowns,children:[U.jsx("div",{className:r.vhidden,children:d}),U.jsx(re,{onChange:i,displayMonth:e.displayMonth}),U.jsx(ae,{onChange:i,displayMonth:e.displayMonth})]})}function de(e){return U.jsx("svg",Y({width:"16px",height:"16px",viewBox:"0 0 120 120"},e,{children:U.jsx("path",{d:"M69.490332,3.34314575 C72.6145263,0.218951416 77.6798462,0.218951416 80.8040405,3.34314575 C83.8617626,6.40086786 83.9268205,11.3179931 80.9992143,14.4548388 L80.8040405,14.6568542 L35.461,60 L80.8040405,105.343146 C83.8617626,108.400868 83.9268205,113.317993 80.9992143,116.454839 L80.8040405,116.656854 C77.7463184,119.714576 72.8291931,119.779634 69.6923475,116.852028 L69.490332,116.656854 L18.490332,65.6568542 C15.4326099,62.5991321 15.367552,57.6820069 18.2951583,54.5451612 L18.490332,54.3431458 L69.490332,3.34314575 Z",fill:"currentColor",fillRule:"nonzero"})}))}function ue(e){return U.jsx("svg",Y({width:"16px",height:"16px",viewBox:"0 0 120 120"},e,{children:U.jsx("path",{d:"M49.8040405,3.34314575 C46.6798462,0.218951416 41.6145263,0.218951416 38.490332,3.34314575 C35.4326099,6.40086786 35.367552,11.3179931 38.2951583,14.4548388 L38.490332,14.6568542 L83.8333725,60 L38.490332,105.343146 C35.4326099,108.400868 35.367552,113.317993 38.2951583,116.454839 L38.490332,116.656854 C41.5480541,119.714576 46.4651794,119.779634 49.602025,116.852028 L49.8040405,116.656854 L100.804041,65.6568542 C103.861763,62.5991321 103.926821,57.6820069 100.999214,54.5451612 L100.804041,54.3431458 L49.8040405,3.34314575 Z",fill:"currentColor"})}))}var ce=(0,r.forwardRef)((function(e,t){var n=X(),r=n.classNames,a=n.styles,o=[r.button_reset,r.button];e.className&&o.push(e.className);var l=o.join(" "),i=Y(Y({},a.button_reset),a.button);return e.style&&Object.assign(i,e.style),U.jsx("button",Y({},e,{ref:t,type:"button",className:l,style:i}))}));function fe(e){var t,n,r=X(),a=r.dir,o=r.locale,l=r.classNames,i=r.styles,s=r.labels,d=s.labelPrevious,u=s.labelNext,c=r.components;if(!e.nextMonth&&!e.previousMonth)return U.jsx(U.Fragment,{});var f=d(e.previousMonth,{locale:o}),v=[l.nav_button,l.nav_button_previous].join(" "),p=u(e.nextMonth,{locale:o}),h=[l.nav_button,l.nav_button_next].join(" "),m=null!==(t=null==c?void 0:c.IconRight)&&void 0!==t?t:ue,y=null!==(n=null==c?void 0:c.IconLeft)&&void 0!==n?n:de;return U.jsxs("div",{className:l.nav,style:i.nav,children:[!e.hidePrevious&&U.jsx(ce,{name:"previous-month","aria-label":f,className:v,style:i.nav_button_previous,disabled:!e.previousMonth,onClick:e.onPreviousClick,children:"rtl"===a?U.jsx(m,{className:l.nav_icon,style:i.nav_icon}):U.jsx(y,{className:l.nav_icon,style:i.nav_icon})}),!e.hideNext&&U.jsx(ce,{name:"next-month","aria-label":p,className:h,style:i.nav_button_next,disabled:!e.nextMonth,onClick:e.onNextClick,children:"rtl"===a?U.jsx(y,{className:l.nav_icon,style:i.nav_icon}):U.jsx(m,{className:l.nav_icon,style:i.nav_icon})})]})}function ve(e){var t=X().numberOfMonths,n=ie(),r=n.previousMonth,a=n.nextMonth,o=n.goToMonth,l=n.displayMonths,i=l.findIndex((function(t){return(0,k.default)(e.displayMonth,t)})),s=0===i,d=i===l.length-1,u=t>1&&(s||!d),c=t>1&&(d||!s);return U.jsx(fe,{displayMonth:e.displayMonth,hideNext:u,hidePrevious:c,nextMonth:a,previousMonth:r,onPreviousClick:function(){r&&o(r)},onNextClick:function(){a&&o(a)}})}function pe(e){var t,n,r=X(),a=r.classNames,o=r.disableNavigation,l=r.styles,i=r.captionLayout,s=r.components,d=null!==(t=null==s?void 0:s.CaptionLabel)&&void 0!==t?t:ee;return n=o?U.jsx(d,{id:e.id,displayMonth:e.displayMonth}):"dropdown"===i?U.jsx(se,{displayMonth:e.displayMonth,id:e.id}):"dropdown-buttons"===i?U.jsxs(U.Fragment,{children:[U.jsx(se,{displayMonth:e.displayMonth,displayIndex:e.displayIndex,id:e.id}),U.jsx(ve,{displayMonth:e.displayMonth,displayIndex:e.displayIndex,id:e.id})]}):U.jsxs(U.Fragment,{children:[U.jsx(d,{id:e.id,displayMonth:e.displayMonth,displayIndex:e.displayIndex}),U.jsx(ve,{displayMonth:e.displayMonth,id:e.id})]}),U.jsx("div",{className:a.caption,style:l.caption,children:n})}function he(e){var t=X(),n=t.footer,r=t.styles,a=t.classNames.tfoot;return n?U.jsx("tfoot",{className:a,style:r.tfoot,children:U.jsx("tr",{children:U.jsx("td",{colSpan:8,children:n})})}):U.jsx(U.Fragment,{})}function me(){var e=X(),t=e.classNames,n=e.styles,r=e.showWeekNumber,o=e.locale,i=e.weekStartsOn,s=e.ISOWeek,d=e.formatters.formatWeekdayName,u=e.labels.labelWeekday,c=function(e,t,n){for(var r=n?l(new Date):(0,a.default)(new Date,{locale:e,weekStartsOn:t}),o=[],i=0;i<7;i++){var s=(0,N.default)(r,i);o.push(s)}return o}(o,i,s);return U.jsxs("tr",{style:n.head_row,className:t.head_row,children:[r&&U.jsx("td",{style:n.head_cell,className:t.head_cell}),c.map((function(e,r){return U.jsx("th",{scope:"col",className:t.head_cell,style:n.head_cell,"aria-label":u(e,{locale:o}),children:d(e,{locale:o})},r)}))]})}function ye(){var e,t=X(),n=t.classNames,r=t.styles,a=t.components,o=null!==(e=null==a?void 0:a.HeadRow)&&void 0!==e?e:me;return U.jsx("thead",{style:r.head,className:n.head,children:U.jsx(o,{})})}function be(e){var t=X(),n=t.locale,r=t.formatters.formatDay;return U.jsx(U.Fragment,{children:r(e.date,{locale:n})})}var xe=(0,r.createContext)(void 0);function _e(e){if(!$(e.initialProps)){return U.jsx(xe.Provider,{value:{selected:void 0,modifiers:{disabled:[]}},children:e.children})}return U.jsx(we,{initialProps:e.initialProps,children:e.children})}function we(e){var t=e.initialProps,n=e.children,r=t.selected,a=t.min,o=t.max,l={disabled:[]};r&&l.disabled.push((function(e){var t=o&&r.length>o-1,n=r.some((function(t){return(0,C.default)(t,e)}));return Boolean(t&&!n)}));var i={selected:r,onDayClick:function(e,n,l){var i,s;if(!(null===(i=t.onDayClick)||void 0===i||i.call(t,e,n,l),Boolean(n.selected&&a&&(null==r?void 0:r.length)===a)||Boolean(!n.selected&&o&&(null==r?void 0:r.length)===o))){var d=r?R([],r,!0):[];if(n.selected){var u=d.findIndex((function(t){return(0,C.default)(e,t)}));d.splice(u,1)}else d.push(e);null===(s=t.onSelect)||void 0===s||s.call(t,d,e,n,l)}},modifiers:l};return U.jsx(xe.Provider,{value:i,children:n})}function ge(){var e=(0,r.useContext)(xe);if(!e)throw new Error("useSelectMultiple must be used within a SelectMultipleProvider");return e}var je,Me=(0,r.createContext)(void 0);function ke(e){if(!K(e.initialProps)){return U.jsx(Me.Provider,{value:{selected:void 0,modifiers:{range_start:[],range_end:[],range_middle:[],disabled:[]}},children:e.children})}return U.jsx(De,{initialProps:e.initialProps,children:e.children})}function De(e){var t=e.initialProps,n=e.children,r=t.selected,a=r||{},o=a.from,l=a.to,i=t.min,s=t.max,d={range_start:[],range_end:[],range_middle:[],disabled:[]};if(o?(d.range_start=[o],l?(d.range_end=[l],(0,C.default)(o,l)||(d.range_middle=[{after:o,before:l}])):d.range_end=[o]):l&&(d.range_start=[l],d.range_end=[l]),i&&(o&&!l&&d.disabled.push({after:(0,O.default)(o,i-1),before:(0,N.default)(o,i-1)}),o&&l&&d.disabled.push({after:o,before:(0,N.default)(o,i-1)}),!o&&l&&d.disabled.push({after:(0,O.default)(l,i-1),before:(0,N.default)(l,i-1)})),s){if(o&&!l&&(d.disabled.push({before:(0,N.default)(o,1-s)}),d.disabled.push({after:(0,N.default)(o,s-1)})),o&&l){var u=s-((0,S.default)(l,o)+1);d.disabled.push({before:(0,O.default)(o,u)}),d.disabled.push({after:(0,N.default)(l,u)})}!o&&l&&(d.disabled.push({before:(0,N.default)(l,1-s)}),d.disabled.push({after:(0,N.default)(l,s-1)}))}return U.jsx(Me.Provider,{value:{selected:r,onDayClick:function(e,n,a){var o,l;null===(o=t.onDayClick)||void 0===o||o.call(t,e,n,a);var i=function(e,t){var n=t||{},r=n.from,a=n.to;if(r&&a){if((0,C.default)(a,e)&&(0,C.default)(r,e))return;if((0,C.default)(a,e))return{from:a,to:void 0};if((0,C.default)(r,e))return;return(0,P.default)(r,e)?{from:e,to:a}:{from:r,to:e}}return a?(0,P.default)(e,a)?{from:a,to:e}:{from:e,to:a}:r?(0,D.default)(e,r)?{from:e,to:r}:{from:r,to:e}:{from:e,to:void 0}}(e,r);null===(l=t.onSelect)||void 0===l||l.call(t,i,e,n,a)},modifiers:d},children:n})}function Ne(){var e=(0,r.useContext)(Me);if(!e)throw new Error("useSelectRange must be used within a SelectRangeProvider");return e}function Ce(e){return Array.isArray(e)?R([],e,!0):void 0!==e?[e]:[]}!function(e){e.Outside="outside",e.Disabled="disabled",e.Selected="selected",e.Hidden="hidden",e.Today="today",e.RangeStart="range_start",e.RangeEnd="range_end",e.RangeMiddle="range_middle"}(je||(je={}));var Pe=je.Selected,Oe=je.Disabled,Se=je.Hidden,Le=je.Today,We=je.RangeEnd,Ee=je.RangeMiddle,Ie=je.RangeStart,Fe=je.Outside,Te=(0,r.createContext)(void 0);function Be(e){var t=X(),n=function(e,t,n){var r,a=((r={})[Pe]=Ce(e.selected),r[Oe]=Ce(e.disabled),r[Se]=Ce(e.hidden),r[Le]=[e.today],r[We]=[],r[Ee]=[],r[Ie]=[],r[Fe]=[],r);return e.fromDate&&a[Oe].push({before:e.fromDate}),e.toDate&&a[Oe].push({after:e.toDate}),$(e)?a[Oe]=a[Oe].concat(t.modifiers[Oe]):K(e)&&(a[Oe]=a[Oe].concat(n.modifiers[Oe]),a[Ie]=n.modifiers[Ie],a[Ee]=n.modifiers[Ee],a[We]=n.modifiers[We]),a}(t,ge(),Ne()),r=function(e){var t={};return Object.entries(e).forEach((function(e){var n=e[0],r=e[1];t[n]=Ce(r)})),t}(t.modifiers),a=Y(Y({},n),r);return U.jsx(Te.Provider,{value:a,children:e.children})}function Ye(){var e=(0,r.useContext)(Te);if(!e)throw new Error("useModifiers must be used within a ModifiersProvider");return e}function Re(e,t,n){var r=Object.keys(t).reduce((function(n,r){var a=t[r];return function(e,t){return t.some((function(t){if("boolean"==typeof t)return t;if(n=t,(0,L.default)(n))return(0,C.default)(e,t);var n,r,a,o,l,i;if(function(e){return Array.isArray(e)&&e.every(L.default)}(t))return t.includes(e);if(function(e){return Boolean(e&&"object"==typeof e&&"from"in e)}(t))return r=e,l=(a=t).from,i=a.to,l&&i?((0,S.default)(i,l)<0&&(l=(o=[i,l])[0],i=o[1]),(0,S.default)(r,l)>=0&&(0,S.default)(i,r)>=0):i?(0,C.default)(i,r):!!l&&(0,C.default)(l,r);if(function(e){return Boolean(e&&"object"==typeof e&&"dayOfWeek"in e)}(t))return t.dayOfWeek.includes(e.getDay());if(function(e){return Boolean(e&&"object"==typeof e&&"before"in e&&"after"in e)}(t)){var s=(0,S.default)(t.before,e)>0,d=(0,S.default)(t.after,e)<0;return(0,P.default)(t.before,t.after)?d&&s:s||d}return function(e){return Boolean(e&&"object"==typeof e&&"after"in e)}(t)?(0,S.default)(e,t.after)>0:function(e){return Boolean(e&&"object"==typeof e&&"before"in e)}(t)?(0,S.default)(t.before,e)>0:"function"==typeof t&&t(e)}))}(e,a)&&n.push(r),n}),[]),a={};return r.forEach((function(e){return a[e]=!0})),n&&!(0,k.default)(e,n)&&(a.outside=!0),a}var Ae=365;function Ze(e,t){var n=t.moveBy,r=t.direction,o=t.context,d=t.modifiers,u=t.retry,c=void 0===u?{count:0,lastFocused:e}:u,f=o.weekStartsOn,v=o.fromDate,p=o.toDate,h=o.locale,m={day:N.default,week:W.default,month:M.default,year:E.default,startOfWeek:function(e){return o.ISOWeek?l(e):(0,a.default)(e,{locale:h,weekStartsOn:f})},endOfWeek:function(e){return o.ISOWeek?s(e):(0,i.default)(e,{locale:h,weekStartsOn:f})}}[n](e,"after"===r?1:-1);"before"===r&&v?m=(0,I.default)([v,m]):"after"===r&&p&&(m=(0,F.default)([p,m]));var y=!0;if(d){var b=Re(m,d);y=!b.disabled&&!b.hidden}return y?m:c.count>Ae?c.lastFocused:Ze(m,{moveBy:n,direction:r,context:o,modifiers:d,retry:Y(Y({},c),{count:c.count+1})})}var He=(0,r.createContext)(void 0);function Ue(e){var t=ie(),n=Ye(),a=(0,r.useState)(),o=a[0],l=a[1],i=(0,r.useState)(),s=i[0],d=i[1],u=function(e,t){for(var n,r,a=(0,p.default)(e[0]),o=(0,y.default)(e[e.length-1]),l=a;l<=o;){var i=Re(l,t);if(i.disabled||i.hidden)l=(0,N.default)(l,1);else{if(i.selected)return l;i.today&&!r&&(r=l),n||(n=l),l=(0,N.default)(l,1)}}return r||n}(t.displayMonths,n),c=(null!=o?o:s&&t.isDateDisplayed(s))?s:u,f=function(e){l(e)},v=X(),h=function(e,r){if(o){var a=Ze(o,{moveBy:e,direction:r,context:v,modifiers:n});(0,C.default)(o,a)||(t.goToDate(a,o),f(a))}},m={focusedDay:o,focusTarget:c,blur:function(){d(o),l(void 0)},focus:f,focusDayAfter:function(){return h("day","after")},focusDayBefore:function(){return h("day","before")},focusWeekAfter:function(){return h("week","after")},focusWeekBefore:function(){return h("week","before")},focusMonthBefore:function(){return h("month","before")},focusMonthAfter:function(){return h("month","after")},focusYearBefore:function(){return h("year","before")},focusYearAfter:function(){return h("year","after")},focusStartOfWeek:function(){return h("startOfWeek","before")},focusEndOfWeek:function(){return h("endOfWeek","after")}};return U.jsx(He.Provider,{value:m,children:e.children})}function $e(){var e=(0,r.useContext)(He);if(!e)throw new Error("useFocusContext must be used within a FocusProvider");return e}var Ke=(0,r.createContext)(void 0);function ze(e){if(!z(e.initialProps)){return U.jsx(Ke.Provider,{value:{selected:void 0},children:e.children})}return U.jsx(Ge,{initialProps:e.initialProps,children:e.children})}function Ge(e){var t=e.initialProps,n=e.children,r={selected:t.selected,onDayClick:function(e,n,r){var a,o,l;null===(a=t.onDayClick)||void 0===a||a.call(t,e,n,r),!n.selected||t.required?null===(l=t.onSelect)||void 0===l||l.call(t,e,e,n,r):null===(o=t.onSelect)||void 0===o||o.call(t,void 0,e,n,r)}};return U.jsx(Ke.Provider,{value:r,children:n})}function qe(){var e=(0,r.useContext)(Ke);if(!e)throw new Error("useSelectSingle must be used within a SelectSingleProvider");return e}function Je(e,t,n){var a,o,l,i=X(),s=$e(),d=function(e,t){return Re(e,Ye(),t)}(e,t),u=function(e,t){var n=X(),r=qe(),a=ge(),o=Ne(),l=$e(),i=l.focusDayAfter,s=l.focusDayBefore,d=l.focusWeekAfter,u=l.focusWeekBefore,c=l.blur,f=l.focus,v=l.focusMonthBefore,p=l.focusMonthAfter,h=l.focusYearBefore,m=l.focusYearAfter,y=l.focusStartOfWeek,b=l.focusEndOfWeek,x={onClick:function(l){var i,s,d,u;z(n)?null===(i=r.onDayClick)||void 0===i||i.call(r,e,t,l):$(n)?null===(s=a.onDayClick)||void 0===s||s.call(a,e,t,l):K(n)?null===(d=o.onDayClick)||void 0===d||d.call(o,e,t,l):null===(u=n.onDayClick)||void 0===u||u.call(n,e,t,l)},onFocus:function(r){var a;f(e),null===(a=n.onDayFocus)||void 0===a||a.call(n,e,t,r)},onBlur:function(r){var a;c(),null===(a=n.onDayBlur)||void 0===a||a.call(n,e,t,r)},onKeyDown:function(r){var a;switch(r.key){case"ArrowLeft":r.preventDefault(),r.stopPropagation(),"rtl"===n.dir?i():s();break;case"ArrowRight":r.preventDefault(),r.stopPropagation(),"rtl"===n.dir?s():i();break;case"ArrowDown":r.preventDefault(),r.stopPropagation(),d();break;case"ArrowUp":r.preventDefault(),r.stopPropagation(),u();break;case"PageUp":r.preventDefault(),r.stopPropagation(),r.shiftKey?h():v();break;case"PageDown":r.preventDefault(),r.stopPropagation(),r.shiftKey?m():p();break;case"Home":r.preventDefault(),r.stopPropagation(),y();break;case"End":r.preventDefault(),r.stopPropagation(),b()}null===(a=n.onDayKeyDown)||void 0===a||a.call(n,e,t,r)},onKeyUp:function(r){var a;null===(a=n.onDayKeyUp)||void 0===a||a.call(n,e,t,r)},onMouseEnter:function(r){var a;null===(a=n.onDayMouseEnter)||void 0===a||a.call(n,e,t,r)},onMouseLeave:function(r){var a;null===(a=n.onDayMouseLeave)||void 0===a||a.call(n,e,t,r)},onPointerEnter:function(r){var a;null===(a=n.onDayPointerEnter)||void 0===a||a.call(n,e,t,r)},onPointerLeave:function(r){var a;null===(a=n.onDayPointerLeave)||void 0===a||a.call(n,e,t,r)},onTouchCancel:function(r){var a;null===(a=n.onDayTouchCancel)||void 0===a||a.call(n,e,t,r)},onTouchEnd:function(r){var a;null===(a=n.onDayTouchEnd)||void 0===a||a.call(n,e,t,r)},onTouchMove:function(r){var a;null===(a=n.onDayTouchMove)||void 0===a||a.call(n,e,t,r)},onTouchStart:function(r){var a;null===(a=n.onDayTouchStart)||void 0===a||a.call(n,e,t,r)}};return x}(e,d),c=function(){var e=X(),t=qe(),n=ge(),r=Ne();return z(e)?t.selected:$(e)?n.selected:K(e)?r.selected:void 0}(),f=Boolean(i.onDayClick||"default"!==i.mode);(0,r.useEffect)((function(){var t;d.outside||s.focusedDay&&f&&(0,C.default)(s.focusedDay,e)&&(null===(t=n.current)||void 0===t||t.focus())}),[s.focusedDay,e,n,f,d.outside]);var v=function(e,t){var n=[e.classNames.day];return Object.keys(t).forEach((function(t){var r=e.modifiersClassNames[t];if(r)n.push(r);else if(function(e){return Object.values(je).includes(e)}(t)){var a=e.classNames["day_".concat(t)];a&&n.push(a)}})),n}(i,d).join(" "),p=function(e,t){var n=Y({},e.styles.day);return Object.keys(t).forEach((function(t){var r;n=Y(Y({},n),null===(r=e.modifiersStyles)||void 0===r?void 0:r[t])})),n}(i,d),h=Boolean(d.outside&&!i.showOutsideDays||d.hidden),m=null!==(l=null===(o=i.components)||void 0===o?void 0:o.DayContent)&&void 0!==l?l:be,y={style:p,className:v,children:U.jsx(m,{date:e,displayMonth:t,activeModifiers:d}),role:"gridcell"},b=s.focusTarget&&(0,C.default)(s.focusTarget,e)&&!d.outside,x=s.focusedDay&&(0,C.default)(s.focusedDay,e),_=Y(Y(Y({},y),((a={disabled:d.disabled,role:"gridcell"})["aria-selected"]=d.selected,a.tabIndex=x||b?0:-1,a)),u);return{isButton:f,isHidden:h,activeModifiers:d,selectedDays:c,buttonProps:_,divProps:y}}function Qe(e){var t=(0,r.useRef)(null),n=Je(e.date,e.displayMonth,t);return n.isHidden?U.jsx("div",{role:"gridcell"}):n.isButton?U.jsx(ce,Y({name:"day",ref:t},n.buttonProps)):U.jsx("div",Y({},n.divProps))}function Ve(e){var t=e.number,n=e.dates,r=X(),a=r.onWeekNumberClick,o=r.styles,l=r.classNames,i=r.locale,s=r.labels.labelWeekNumber,d=(0,r.formatters.formatWeekNumber)(Number(t),{locale:i});if(!a)return U.jsx("span",{className:l.weeknumber,style:o.weeknumber,children:d});var u=s(Number(t),{locale:i});return U.jsx(ce,{name:"week-number","aria-label":u,className:l.weeknumber,style:o.weeknumber,onClick:function(e){a(t,n,e)},children:d})}function Xe(e){var t,n,r,a=X(),l=a.styles,i=a.classNames,s=a.showWeekNumber,u=a.components,c=null!==(t=null==u?void 0:u.Day)&&void 0!==t?t:Qe,f=null!==(n=null==u?void 0:u.WeekNumber)&&void 0!==n?n:Ve;return s&&(r=U.jsx("td",{className:i.cell,style:l.cell,children:U.jsx(f,{number:e.weekNumber,dates:e.dates})})),U.jsxs("tr",{className:i.row,style:l.row,children:[r,e.dates.map((function(t){return U.jsx("td",{className:i.cell,style:l.cell,role:"presentation",children:U.jsx(c,{displayMonth:e.displayMonth,date:t})},function(e){return(0,o.Z)(1,arguments),Math.floor((0,d.default)(e)/1e3)}(t))}))]})}function et(e,t,n){for(var r=(null==n?void 0:n.ISOWeek)?s(t):(0,i.default)(t,n),o=(null==n?void 0:n.ISOWeek)?l(e):(0,a.default)(e,n),d=(0,S.default)(r,o),u=[],c=0;c<=d;c++)u.push((0,N.default)(o,c));return u.reduce((function(e,t){var r=(null==n?void 0:n.ISOWeek)?f(t):(0,T.default)(t,n),a=e.find((function(e){return e.weekNumber===r}));return a?(a.dates.push(t),e):(e.push({weekNumber:r,dates:[t]}),e)}),[])}function tt(e){var t,n,r,a=X(),o=a.locale,l=a.classNames,i=a.styles,s=a.hideHead,d=a.fixedWeeks,u=a.components,c=a.weekStartsOn,f=a.firstWeekContainsDate,v=a.ISOWeek,m=function(e,t){var n=et((0,p.default)(e),(0,y.default)(e),t);if(null==t?void 0:t.useFixedWeeks){var r=h(e,t);if(r<6){var a=n[n.length-1],o=a.dates[a.dates.length-1],l=(0,W.default)(o,6-r),i=et((0,W.default)(o,1),l,t);n.push.apply(n,i)}}return n}(e.displayMonth,{useFixedWeeks:Boolean(d),ISOWeek:v,locale:o,weekStartsOn:c,firstWeekContainsDate:f}),b=null!==(t=null==u?void 0:u.Head)&&void 0!==t?t:ye,x=null!==(n=null==u?void 0:u.Row)&&void 0!==n?n:Xe,_=null!==(r=null==u?void 0:u.Footer)&&void 0!==r?r:he;return U.jsxs("table",{id:e.id,className:l.table,style:i.table,role:"grid","aria-labelledby":e["aria-labelledby"],children:[!s&&U.jsx(b,{}),U.jsx("tbody",{className:l.tbody,style:i.tbody,children:m.map((function(t){return U.jsx(x,{displayMonth:e.displayMonth,dates:t.dates,weekNumber:t.weekNumber},t.weekNumber)}))}),U.jsx(_,{displayMonth:e.displayMonth})]})}var nt="undefined"!=typeof window&&window.document&&window.document.createElement?r.useLayoutEffect:r.useEffect,rt=!1,at=0;function ot(){return"react-day-picker-".concat(++at)}function lt(e){var t,n,a=X(),o=a.dir,l=a.classNames,i=a.styles,s=a.components,d=ie().displayMonths,u=function(e){var t,n=null!=e?e:rt?ot():null,a=(0,r.useState)(n),o=a[0],l=a[1];return nt((function(){null===o&&l(ot())}),[]),(0,r.useEffect)((function(){!1===rt&&(rt=!0)}),[]),null!==(t=null!=e?e:o)&&void 0!==t?t:void 0}(a.id?"".concat(a.id,"-").concat(e.displayIndex):void 0),c=a.id?"".concat(a.id,"-grid-").concat(e.displayIndex):void 0,f=[l.month],v=i.month,p=0===e.displayIndex,h=e.displayIndex===d.length-1,m=!p&&!h;"rtl"===o&&(h=(t=[p,h])[0],p=t[1]),p&&(f.push(l.caption_start),v=Y(Y({},v),i.caption_start)),h&&(f.push(l.caption_end),v=Y(Y({},v),i.caption_end)),m&&(f.push(l.caption_between),v=Y(Y({},v),i.caption_between));var y=null!==(n=null==s?void 0:s.Caption)&&void 0!==n?n:pe;return U.jsxs("div",{className:f.join(" "),style:v,children:[U.jsx(y,{id:u,displayMonth:e.displayMonth,displayIndex:e.displayIndex}),U.jsx(tt,{id:c,"aria-labelledby":u,displayMonth:e.displayMonth})]},e.displayIndex)}function it(e){var t=X(),n=t.classNames,r=t.styles;return U.jsx("div",{className:n.months,style:r.months,children:e.children})}function st(e){var t,n,a=e.initialProps,o=X(),l=$e(),i=ie(),s=(0,r.useState)(!1),d=s[0],u=s[1];(0,r.useEffect)((function(){o.initialFocus&&l.focusTarget&&(d||(l.focus(l.focusTarget),u(!0)))}),[o.initialFocus,d,l.focus,l.focusTarget,l]);var c=[o.classNames.root,o.className];o.numberOfMonths>1&&c.push(o.classNames.multiple_months),o.showWeekNumber&&c.push(o.classNames.with_weeknumber);var f=Y(Y({},o.styles.root),o.style),v=Object.keys(a).filter((function(e){return e.startsWith("data-")})).reduce((function(e,t){var n;return Y(Y({},e),((n={})[t]=a[t],n))}),{}),p=null!==(n=null===(t=a.components)||void 0===t?void 0:t.Months)&&void 0!==n?n:it;return U.jsx("div",Y({className:c.join(" "),style:f,dir:o.dir,id:o.id,nonce:a.nonce,title:a.title,lang:a.lang},v,{children:U.jsx(p,{children:i.displayMonths.map((function(e,t){return U.jsx(lt,{displayIndex:t,displayMonth:e},t)}))})}))}function dt(e){var t=e.children,n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["children"]);return U.jsx(V,{initialProps:n,children:U.jsx(le,{children:U.jsx(ze,{initialProps:n,children:U.jsx(_e,{initialProps:n,children:U.jsx(ke,{initialProps:n,children:U.jsx(Be,{children:U.jsx(Ue,{children:t})})})})})})})}function ut(e){return U.jsx(dt,Y({},e,{children:U.jsx(st,{initialProps:e})}))}},82602:(e,t,n)=>{n.d(t,{WU:()=>d});var r=["second","minute","hour","day","week","month","year"],a=["秒","分钟","小时","天","周","个月","年"],o={},l=function(e,t){o[e]=t},i=[60,60,24,7,365/7/12,12];function s(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var d=function(e,t,n){var r=function(e,t){return(+(t?s(t):new Date)-+s(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,r=e=Math.abs(e),a=0;e>=i[a]&&a<i.length;a++)e/=i[a];return(e=Math.floor(e))>(0==(a*=2)?9:1)&&(a+=1),t(e,a,r)[n].replace("%s",e.toString())}(r,function(e){return o[e]||o.en_US}(t))};l("en_US",(function(e,t){if(0===t)return["just now","right now"];var n=r[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]})),l("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var n=a[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]}))}}]);
2
- //# sourceMappingURL=3776-0027340c98-lite.chunk.js.map