@clickview/lite 0.75.0-rc.2 → 0.75.0-rc.3

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 (160) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{119-lite-a1f592f602.chunk.css → 1243-lite-13eda8f6a0.chunk.css} +2 -4
  3. package/dist/css/{7230-lite-36ff6e6d53.chunk.css → 1867-lite-8baa8af02b.chunk.css} +3 -5
  4. package/dist/css/{5241-lite-baab687563.chunk.css → 4203-lite-9ffab89741.chunk.css} +3 -5
  5. package/dist/css/{8364-lite-99938dea56.chunk.css → 5193-lite-d434056013.chunk.css} +1 -0
  6. package/dist/css/{7339-lite-05c396fed3.chunk.css → 6756-lite-839687d3d7.chunk.css} +1 -0
  7. package/dist/css/{9527-lite-1d2221b6a8.chunk.css → 7103-lite-fef3024f61.chunk.css} +2 -4
  8. package/dist/css/{8856-lite-827b34aed7.chunk.css → 8856-lite-c114ab5c89.chunk.css} +1 -1
  9. package/dist/languages/en.json +1 -1
  10. package/dist/scripts/104-7abe2b09dd-lite.chunk.js +2 -0
  11. package/dist/scripts/104-7abe2b09dd-lite.chunk.js.map +1 -0
  12. package/dist/scripts/1074-2ab8b03e30-lite.chunk.js +2 -0
  13. package/dist/scripts/1074-2ab8b03e30-lite.chunk.js.map +1 -0
  14. package/dist/scripts/1087-861be5211f-lite.chunk.js +2 -0
  15. package/dist/scripts/1087-861be5211f-lite.chunk.js.map +1 -0
  16. package/dist/scripts/1199-6522b1d291-lite.chunk.js +2 -0
  17. package/dist/scripts/1199-6522b1d291-lite.chunk.js.map +1 -0
  18. package/dist/scripts/121-1b744469ee-lite.chunk.js +2 -0
  19. package/dist/scripts/121-1b744469ee-lite.chunk.js.map +1 -0
  20. package/dist/scripts/{1221-502395e693-lite.chunk.js → 1221-894d8474d5-lite.chunk.js} +3 -3
  21. package/dist/scripts/1221-894d8474d5-lite.chunk.js.map +1 -0
  22. package/dist/scripts/1243-ede924125c-lite.chunk.js +2 -0
  23. package/dist/scripts/1243-ede924125c-lite.chunk.js.map +1 -0
  24. package/dist/scripts/147-44ee7e9a78-lite.chunk.js +2 -0
  25. package/dist/scripts/147-44ee7e9a78-lite.chunk.js.map +1 -0
  26. package/dist/scripts/{1610-7f58bb25a9-lite.chunk.js → 1610-bf848cce4d-lite.chunk.js} +2 -2
  27. package/dist/scripts/{1610-7f58bb25a9-lite.chunk.js.map → 1610-bf848cce4d-lite.chunk.js.map} +1 -1
  28. package/dist/scripts/{7230-71f8d6d1bd-lite.chunk.js → 1867-3b447a1b85-lite.chunk.js} +2 -2
  29. package/dist/scripts/{7230-71f8d6d1bd-lite.chunk.js.map → 1867-3b447a1b85-lite.chunk.js.map} +1 -1
  30. package/dist/scripts/2258-ed7383502f-lite.chunk.js +3 -0
  31. package/dist/scripts/2258-ed7383502f-lite.chunk.js.map +1 -0
  32. package/dist/scripts/3268-2736356687-lite.chunk.js +2 -0
  33. package/dist/scripts/{3268-faca1bf46e-lite.chunk.js.map → 3268-2736356687-lite.chunk.js.map} +1 -1
  34. package/dist/scripts/3836-425334ab13-lite.chunk.js +2 -0
  35. package/dist/scripts/{3836-f2a0c9f713-lite.chunk.js.map → 3836-425334ab13-lite.chunk.js.map} +1 -1
  36. package/dist/scripts/3837-e4c5bb738b-lite.chunk.js +2 -0
  37. package/dist/scripts/3837-e4c5bb738b-lite.chunk.js.map +1 -0
  38. package/dist/scripts/4185-1f65c7adc9-lite.chunk.js +2 -0
  39. package/dist/scripts/4185-1f65c7adc9-lite.chunk.js.map +1 -0
  40. package/dist/scripts/4203-ee50e89841-lite.chunk.js +3 -0
  41. package/dist/scripts/4203-ee50e89841-lite.chunk.js.map +1 -0
  42. package/dist/scripts/4598-bcd3f6f8a7-lite.chunk.js +2 -0
  43. package/dist/scripts/{4598-2b1daca7ae-lite.chunk.js.map → 4598-bcd3f6f8a7-lite.chunk.js.map} +1 -1
  44. package/dist/scripts/4948-f21dad2ca1-lite.chunk.js +2 -0
  45. package/dist/scripts/4948-f21dad2ca1-lite.chunk.js.map +1 -0
  46. package/dist/scripts/{5153-079b4125ae-lite.chunk.js → 5153-acc6c13153-lite.chunk.js} +3 -3
  47. package/dist/scripts/5153-acc6c13153-lite.chunk.js.map +1 -0
  48. package/dist/scripts/6137-bc8b193237-lite.chunk.js +2 -0
  49. package/dist/scripts/6137-bc8b193237-lite.chunk.js.map +1 -0
  50. package/dist/scripts/6756-e90680dfcd-lite.chunk.js +3 -0
  51. package/dist/scripts/6756-e90680dfcd-lite.chunk.js.map +1 -0
  52. package/dist/scripts/6790-c8a9efba50-lite.chunk.js +2 -0
  53. package/dist/scripts/6790-c8a9efba50-lite.chunk.js.map +1 -0
  54. package/dist/scripts/705-10a85bae7a-lite.chunk.js +2 -0
  55. package/dist/scripts/705-10a85bae7a-lite.chunk.js.map +1 -0
  56. package/dist/scripts/7103-14bd3771d2-lite.chunk.js +2 -0
  57. package/dist/scripts/7103-14bd3771d2-lite.chunk.js.map +1 -0
  58. package/dist/scripts/7205-12a6b2ac55-lite.chunk.js +2 -0
  59. package/dist/scripts/7205-12a6b2ac55-lite.chunk.js.map +1 -0
  60. package/dist/scripts/7438-88d11bb89a-lite.chunk.js +2 -0
  61. package/dist/scripts/7438-88d11bb89a-lite.chunk.js.map +1 -0
  62. package/dist/scripts/7480-e0749592fc-lite.chunk.js +2 -0
  63. package/dist/scripts/7480-e0749592fc-lite.chunk.js.map +1 -0
  64. package/dist/scripts/8010-e9163f5bee-lite.chunk.js +2 -0
  65. package/dist/scripts/8010-e9163f5bee-lite.chunk.js.map +1 -0
  66. package/dist/scripts/8410-1f1fd5ccf0-lite.chunk.js +3 -0
  67. package/dist/scripts/8410-1f1fd5ccf0-lite.chunk.js.map +1 -0
  68. package/dist/scripts/8705-ecd20ef6cb-lite.chunk.js +2 -0
  69. package/dist/scripts/8705-ecd20ef6cb-lite.chunk.js.map +1 -0
  70. package/dist/scripts/8856-02dd2e486c-lite.chunk.js +2 -0
  71. package/dist/scripts/8856-02dd2e486c-lite.chunk.js.map +1 -0
  72. package/dist/scripts/9003-1db925f5ec-lite.chunk.js +2 -0
  73. package/dist/scripts/9003-1db925f5ec-lite.chunk.js.map +1 -0
  74. package/dist/scripts/9042-1a42fcbba2-lite.chunk.js +2 -0
  75. package/dist/scripts/9042-1a42fcbba2-lite.chunk.js.map +1 -0
  76. package/dist/scripts/9103-4eec16d73b-lite.chunk.js +2 -0
  77. package/dist/scripts/9103-4eec16d73b-lite.chunk.js.map +1 -0
  78. package/dist/scripts/9134-19912ca3ee-lite.chunk.js +2 -0
  79. package/dist/scripts/9134-19912ca3ee-lite.chunk.js.map +1 -0
  80. package/dist/scripts/9266-f0ad8d5cb3-lite.chunk.js +2 -0
  81. package/dist/scripts/9266-f0ad8d5cb3-lite.chunk.js.map +1 -0
  82. package/dist/scripts/9740-9d50d31b72-lite.chunk.js +2 -0
  83. package/dist/scripts/9740-9d50d31b72-lite.chunk.js.map +1 -0
  84. package/dist/scripts/{bundle-95a6fc2722.min.js → bundle-828ca65de8.min.js} +3 -3
  85. package/dist/scripts/{bundle-95a6fc2722.min.js.map → bundle-828ca65de8.min.js.map} +1 -1
  86. package/package.json +1 -1
  87. package/dist/scripts/104-b62a8447f0-lite.chunk.js +0 -2
  88. package/dist/scripts/104-b62a8447f0-lite.chunk.js.map +0 -1
  89. package/dist/scripts/107-989ac2dc47-lite.chunk.js +0 -2
  90. package/dist/scripts/107-989ac2dc47-lite.chunk.js.map +0 -1
  91. package/dist/scripts/119-e3a8bd94dd-lite.chunk.js +0 -2
  92. package/dist/scripts/119-e3a8bd94dd-lite.chunk.js.map +0 -1
  93. package/dist/scripts/1199-a2ac2338d0-lite.chunk.js +0 -2
  94. package/dist/scripts/1199-a2ac2338d0-lite.chunk.js.map +0 -1
  95. package/dist/scripts/121-bf7a153eb8-lite.chunk.js +0 -2
  96. package/dist/scripts/121-bf7a153eb8-lite.chunk.js.map +0 -1
  97. package/dist/scripts/1221-502395e693-lite.chunk.js.map +0 -1
  98. package/dist/scripts/2258-4d0639c9fe-lite.chunk.js +0 -3
  99. package/dist/scripts/2258-4d0639c9fe-lite.chunk.js.map +0 -1
  100. package/dist/scripts/3268-faca1bf46e-lite.chunk.js +0 -2
  101. package/dist/scripts/3836-f2a0c9f713-lite.chunk.js +0 -2
  102. package/dist/scripts/3837-fe321e8deb-lite.chunk.js +0 -2
  103. package/dist/scripts/3837-fe321e8deb-lite.chunk.js.map +0 -1
  104. package/dist/scripts/4025-306e0fbdd5-lite.chunk.js +0 -2
  105. package/dist/scripts/4025-306e0fbdd5-lite.chunk.js.map +0 -1
  106. package/dist/scripts/4164-5d3af57b67-lite.chunk.js +0 -2
  107. package/dist/scripts/4164-5d3af57b67-lite.chunk.js.map +0 -1
  108. package/dist/scripts/4185-e8e40dab72-lite.chunk.js +0 -2
  109. package/dist/scripts/4185-e8e40dab72-lite.chunk.js.map +0 -1
  110. package/dist/scripts/4562-545f04c53f-lite.chunk.js +0 -2
  111. package/dist/scripts/4562-545f04c53f-lite.chunk.js.map +0 -1
  112. package/dist/scripts/4598-2b1daca7ae-lite.chunk.js +0 -2
  113. package/dist/scripts/4948-66ba60c8e3-lite.chunk.js +0 -2
  114. package/dist/scripts/4948-66ba60c8e3-lite.chunk.js.map +0 -1
  115. package/dist/scripts/5153-079b4125ae-lite.chunk.js.map +0 -1
  116. package/dist/scripts/5241-163f5ac64c-lite.chunk.js +0 -3
  117. package/dist/scripts/5241-163f5ac64c-lite.chunk.js.map +0 -1
  118. package/dist/scripts/5349-bc0fcb4083-lite.chunk.js +0 -2
  119. package/dist/scripts/5349-bc0fcb4083-lite.chunk.js.map +0 -1
  120. package/dist/scripts/6135-a878a9cff0-lite.chunk.js +0 -3
  121. package/dist/scripts/6135-a878a9cff0-lite.chunk.js.map +0 -1
  122. package/dist/scripts/6509-23fdb20a4b-lite.chunk.js +0 -2
  123. package/dist/scripts/6509-23fdb20a4b-lite.chunk.js.map +0 -1
  124. package/dist/scripts/6790-5086b72662-lite.chunk.js +0 -2
  125. package/dist/scripts/6790-5086b72662-lite.chunk.js.map +0 -1
  126. package/dist/scripts/7205-2428f775a5-lite.chunk.js +0 -2
  127. package/dist/scripts/7205-2428f775a5-lite.chunk.js.map +0 -1
  128. package/dist/scripts/7339-5793c921bb-lite.chunk.js +0 -3
  129. package/dist/scripts/7339-5793c921bb-lite.chunk.js.map +0 -1
  130. package/dist/scripts/7438-a5f96e58fc-lite.chunk.js +0 -2
  131. package/dist/scripts/7438-a5f96e58fc-lite.chunk.js.map +0 -1
  132. package/dist/scripts/7926-6b040931aa-lite.chunk.js +0 -2
  133. package/dist/scripts/7926-6b040931aa-lite.chunk.js.map +0 -1
  134. package/dist/scripts/8536-f75009dd87-lite.chunk.js +0 -2
  135. package/dist/scripts/8536-f75009dd87-lite.chunk.js.map +0 -1
  136. package/dist/scripts/8856-df102acdff-lite.chunk.js +0 -2
  137. package/dist/scripts/8856-df102acdff-lite.chunk.js.map +0 -1
  138. package/dist/scripts/9134-42dc2390ce-lite.chunk.js +0 -2
  139. package/dist/scripts/9134-42dc2390ce-lite.chunk.js.map +0 -1
  140. package/dist/scripts/9266-c5d6705147-lite.chunk.js +0 -2
  141. package/dist/scripts/9266-c5d6705147-lite.chunk.js.map +0 -1
  142. package/dist/scripts/9284-402a14d41c-lite.chunk.js +0 -2
  143. package/dist/scripts/9284-402a14d41c-lite.chunk.js.map +0 -1
  144. package/dist/scripts/9470-11c8c2ca71-lite.chunk.js +0 -2
  145. package/dist/scripts/9470-11c8c2ca71-lite.chunk.js.map +0 -1
  146. package/dist/scripts/9527-111c8586a7-lite.chunk.js +0 -2
  147. package/dist/scripts/9527-111c8586a7-lite.chunk.js.map +0 -1
  148. package/dist/scripts/9591-230bcf0935-lite.chunk.js +0 -2
  149. package/dist/scripts/9591-230bcf0935-lite.chunk.js.map +0 -1
  150. /package/dist/css/{5349-lite-829df3b4e7.chunk.css → 6137-lite-829df3b4e7.chunk.css} +0 -0
  151. /package/dist/css/{9470-lite-edb2d29928.chunk.css → 8010-lite-edb2d29928.chunk.css} +0 -0
  152. /package/dist/css/{6135-lite-41bdd1c5a3.chunk.css → 8410-lite-41bdd1c5a3.chunk.css} +0 -0
  153. /package/dist/css/{121-lite-1337d9acf0.chunk.css → 9042-lite-1337d9acf0.chunk.css} +0 -0
  154. /package/dist/scripts/{1221-502395e693-lite.chunk.js.LICENSE.txt → 1221-894d8474d5-lite.chunk.js.LICENSE.txt} +0 -0
  155. /package/dist/scripts/{2258-4d0639c9fe-lite.chunk.js.LICENSE.txt → 2258-ed7383502f-lite.chunk.js.LICENSE.txt} +0 -0
  156. /package/dist/scripts/{5153-079b4125ae-lite.chunk.js.LICENSE.txt → 4203-ee50e89841-lite.chunk.js.LICENSE.txt} +0 -0
  157. /package/dist/scripts/{5241-163f5ac64c-lite.chunk.js.LICENSE.txt → 5153-acc6c13153-lite.chunk.js.LICENSE.txt} +0 -0
  158. /package/dist/scripts/{6135-a878a9cff0-lite.chunk.js.LICENSE.txt → 6756-e90680dfcd-lite.chunk.js.LICENSE.txt} +0 -0
  159. /package/dist/scripts/{7339-5793c921bb-lite.chunk.js.LICENSE.txt → 8410-1f1fd5ccf0-lite.chunk.js.LICENSE.txt} +0 -0
  160. /package/dist/scripts/{bundle-95a6fc2722.min.js.LICENSE.txt → bundle-828ca65de8.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/6135-a878a9cff0-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/search/components/scoped-search-bar/scoped-search-bar.scss","file:///app/packages/libs/shared/src/apps/search/components/scoped-search-bar/ScopedSearchBar.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/components/rostering/rostering-alert/RosteringAlert.tsx","file:///app/packages/libs/shared/src/enums/BatchJobStatus.ts","file:///app/packages/libs/shared/src/flight-requests/RosteringRequests.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/classrooms/components/classrooms-header/classrooms-header.scss","file:///app/packages/projects/lite/src/apps/classrooms/components/classrooms-header/ClassroomsHeader.tsx","file:///app/packages/projects/lite/src/apps/classrooms/hooks/useFetchClassrooms.ts","file:///app/packages/projects/lite/src/apps/classrooms/views/classrooms/empty-state/ClassroomsEmptySearchState.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/classrooms/empty-state/ClassroomsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/classrooms/ClassroomsView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"searchSvg\":\"NXv7I\",\"searchInput\":\"ntGKR\"};","import React from 'react';\n\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { useDebounce } from 'libs/shared/hooks/UseDebounce';\nimport { useSearchEventLogger } from 'libs/shared/hooks/UseSearchEventLogger';\nimport { ContextService } from 'libs/shared/services/ContextService';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './scoped-search-bar.scss';\n\ninterface ScopedSearchBarProps {\n id: string;\n searchAppLink: Core.AppLink;\n searchIndices: SearchIndices[];\n analyticsOptions?: AnalyticsOptions;\n name?: string;\n placeholder?: string;\n className?: string;\n queryParamName?: string;\n debounceTime?: number;\n size?: FormSize;\n}\n\nScopedSearchBar.defaultProps = {\n debounceTime: 300,\n queryParamName: 'query'\n};\n\nexport function ScopedSearchBar(props: ScopedSearchBarProps): JSX.Element {\n const currentQueryParams = ContextService.getCurrentRoute().appLink.params as HashObject;\n\n const [ searchQuery, setSearchQuery ] = React.useState(currentQueryParams?.[props.queryParamName] ?? '');\n\n /**\n * Update the value in the search bar to match an existing query param on first load\n */\n React.useEffect(() => {\n if (!currentQueryParams)\n return;\n\n if (currentQueryParams[props.queryParamName]) {\n setSearchQuery(currentQueryParams[props.queryParamName]?.trim() ?? '');\n return;\n }\n\n if (searchQuery.length && !currentQueryParams[props.queryParamName]?.length)\n setSearchQuery('');\n }, [props.id]);\n\n React.useEffect(() => {\n if (currentQueryParams?.[props.queryParamName] && currentQueryParams?.[props.queryParamName] !== searchQuery) {\n setSearchQuery(currentQueryParams?.[props.queryParamName]);\n }\n }, [currentQueryParams?.[props.queryParamName]]);\n\n const debouncedQuery = useDebounce(searchQuery, props.debounceTime);\n\n React.useEffect(() => {\n search(debouncedQuery);\n }, [debouncedQuery]);\n\n function onChange(event: React.ChangeEvent<HTMLInputElement>): void {\n setSearchQuery(event.target.value);\n }\n\n function search(query: string = ''): void {\n if (query === currentQueryParams[props.queryParamName] || (!query && !currentQueryParams[props.queryParamName]))\n return;\n\n const currentFilters = ObjectHelper.omit(currentQueryParams, [ props.queryParamName, 'cursor' ]);\n\n const nextParams = {\n [props.queryParamName]: query.trim() ? query.trimLeft() : '',\n ...currentFilters\n };\n\n if (!nextParams[props.queryParamName]) {\n delete nextParams[props.queryParamName];\n delete nextParams.cursor;\n }\n\n ScrollHelper.preventScrollTop();\n\n if (props.analyticsOptions) {\n AnalyticsHelper.logUserAction({\n query,\n indices: props.searchIndices\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\n actionType: UserAction.InstantSearch,\n workflowPhase: WorkflowPhase.Complete\n }));\n }\n\n Core.AppLinkHelper.trigger({\n ...props.searchAppLink,\n params: nextParams\n });\n }\n\n const { log } = useSearchEventLogger({\n query: searchQuery,\n indices: props.searchIndices,\n analyticsOptions: props.analyticsOptions,\n shouldLog: !!props.analyticsOptions\n });\n\n return (\n <div className='position-relative w-100'>\n <input\n name={props.name}\n type='text'\n className={classNames(\n `form-control pe-2 w-100 border-dark ${styles.searchInput}`,\n props.size === 'lg' && 'form-control-lg',\n props.className\n )}\n id={props.id}\n autoComplete='off'\n placeholder={props.placeholder}\n aria-label='Search'\n onChange={onChange}\n onBlur={e => log(e.target.value ?? '')}\n value={searchQuery}\n />\n <SvgContainer\n svgName={cvSvgLibrary.Search}\n className={`${styles.searchSvg} svg-container cursor-pointer text-dark`}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'rostering.alert';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RosteringAlertProps {\n type?: 'classroom' | 'general';\n}\n\nexport function RosteringAlert(props: RosteringAlertProps) {\n const text = props.type === 'classroom' ? getPhrase('classroom') : getPhrase('hasRostering');\n\n return (\n <div className='alert text-info bg-light-blue px-2 rounded-3 fw-semibold py-2 d-flex flex-wrap'>\n {text}&nbsp;\n {/* todo add it back when KB article link is ready */}\n {/* <ExternalLink\n className='text-info text-underline'\n href={''}\n newTab\n >\n {LanguageService.getPhrase(namespace, 'learnMore')}\n </ExternalLink> */}\n </div>\n );\n}","export enum BatchJobStatus {\n Submitted = 0,\n Queued = 1,\n Pending = 2,\n InProgress = 3,\n Completed = 4,\n CompletedWithError = 5,\n Failed = 6\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { BulkJobsQueryParams } from 'libs/shared/components/bulk-jobs-filters/BulkJobsFilters';\nimport { BatchJobStatus } from 'libs/shared/enums/BatchJobStatus';\nimport { BatchJobType } from 'libs/shared/enums/BatchJobType';\nimport { BatchJob, ScheduleSettingRequest } from 'libs/shared/interfaces';\nimport { CreateBatchJobRequest } from 'libs/shared/interfaces';\n\nexport const RosteringRequests = {\n getRostering(): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/rostering`,\n key: `rostering`\n };\n },\n\n getSyncList(queryParams: BulkJobsQueryParams): Flight.Request {\n const params: HashObject = {};\n if (queryParams.cursor)\n params.cursor = queryParams.cursor;\n\n if (queryParams.sort) {\n if (queryParams.sort === 'oldest')\n params.order = 'ASC';\n else\n params.order = 'DESC';\n }\n\n if (queryParams.jobStatus) {\n const statuses = [];\n if (queryParams.jobStatus.includes('completed')) {\n statuses.push(...[ BatchJobStatus.Completed, BatchJobStatus.CompletedWithError ]);\n }\n if (queryParams.jobStatus.includes('failed')) {\n statuses.push(BatchJobStatus.Failed);\n }\n if (queryParams.jobStatus.includes('inProgress')) {\n statuses.push(...[\n BatchJobStatus.Submitted,\n BatchJobStatus.Queued,\n BatchJobStatus.Pending,\n BatchJobStatus.InProgress ]);\n }\n params.status = statuses;\n }\n\n params.type = BatchJobType.Rostering;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/batch/jobs', params),\n key: `rostering:sync:${queryParams.cursor}:${queryParams.sort}:${queryParams.jobStatus}`\n };\n },\n\n createJob(\n data: CreateBatchJobRequest,\n success?: (job: BatchJob) => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/batch/jobs',\n key: 'rostering:sync',\n type: HttpVerbs.POST,\n invalidationKeys: ['rostering:sync'],\n data,\n success,\n error\n };\n },\n\n getJobSummary(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}/summary`,\n key: `job:summary:${id}`\n };\n },\n\n getSyncScheduleSettings(integrationId: string): Flight.SimulatedRequest {\n return {\n url: `{gateway}/v1/rostering/${integrationId}/schedule`,\n key: `sync-settings:${integrationId}`\n };\n },\n\n updateScheduleSetting(\n data: ScheduleSettingRequest,\n integrationId: string,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n type: HttpVerbs.PUT,\n url: `{gateway}/v1/rostering/${integrationId}/schedule`,\n key: `update:sync-settings:${data.customerId}:${integrationId}`,\n invalidationKeys: [`sync-settings:${integrationId}`],\n data,\n success,\n error,\n always\n };\n }\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}","// extracted by mini-css-extract-plugin\nexport default {\"searchContainer\":\"rwTB7\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ActionOptions, Actions as ActionButton } from 'libs/shared/components/actions/Actions';\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { RosteringAlert } from 'libs/shared/components/rostering/rostering-alert/RosteringAlert';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport styles from './classrooms-header.scss';\n\nconst namespace = 'classrooms.classroomsHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomsHeaderProps {\n activeTab: 'classrooms' | 'open-classrooms';\n actions?: ActionOptions[];\n searchBar?: React.ReactNode;\n hasRostering: boolean;\n hasShareFlowV2: boolean;\n}\n\nexport function ClassroomsHeader(props: ClassroomsHeaderProps): JSX.Element {\n const breakpoints = useBreakpoints();\n const isMobile = breakpoints.xs || breakpoints.sm;\n \n const tabs: PillTab[] = [{\n name: getPhrase('classroomsTab'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n },\n active: props.activeTab === 'classrooms'\n }];\n\n if (props.hasShareFlowV2) {\n tabs.push({\n name: getPhrase('openClassroomsTab'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS\n },\n active: props.activeTab === 'open-classrooms'\n });\n }\n\n return (\n <div>\n {!!props.hasRostering && (\n <div className='my-3'>\n <RosteringAlert type='general' />\n </div>\n )}\n\n <div className='d-flex align-items-center mb-3'>\n <h1 className='flex-fill h2 me-3 my-1'><Text namespace={namespace} phrase='heading' /></h1>\n\n {props.searchBar && (\n <div className='d-flex'>\n {!isMobile && (\n <div className={`${styles.searchContainer} d-flex mb-2 mb-sm-0 me-2`}>\n {props.searchBar}\n </div>\n )}\n\n <ActionButton\n actions={props.actions ?? []}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n </div>\n )}\n </div>\n\n {tabs.length > 1 && (\n <div className='mb-3'>\n <PillTabSelector tabs={tabs} />\n </div>\n )}\n\n {isMobile && props.searchBar ? (\n <div className='mb-3'>\n {props.searchBar}\n </div>\n ) : null}\n </div>\n );\n}","import { useDispatch } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { SearchResults } from 'libs/shared/apps/search/interfaces';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList, UseInfiniteListResult } from 'libs/shared/hooks/UseInfiniteList';\nimport { BasePaginatedCollection, Classroom, CurrentUser } from 'libs/shared/interfaces';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { SearchRequests } from 'apps/search/flight-requests/SearchRequests';\n\nconst namespace = 'classrooms.hooks';\n\nexport type GetClassroomsResponse = UseInfiniteListResult<Classroom> & {\n fetchNext: (cursor?: string) => void;\n};\n\ninterface UseFetchClassroomOptions {\n withStudentsCount?: boolean;\n}\n\nexport const useFetchClassrooms = (query?: string, options?: UseFetchClassroomOptions): GetClassroomsResponse => {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const alerts = useAlerts();\n const dispatch = useDispatch();\n\n const getClassroomsRequest = (cursor?: string) => {\n if (!query) {\n if (options?.withStudentsCount) {\n return ClassroomRequests.getPublishedWithStudents(currentUser.data.id, cursor);\n }\n\n return ClassroomRequests.getPublished(currentUser.data.id, cursor);\n }\n \n if (options?.withStudentsCount) {\n return SearchRequests.searchClassroomsV4(query, cursor);\n }\n \n return SearchRequests.searchClassrooms(query, currentUser.data.customerId, cursor);\n };\n\n const fetchNextPage = (cursor?: string) => Flight.getFetch(dispatch)(getClassroomsRequest(cursor));\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n const response = useInfiniteList<Classroom, SearchResults<Classroom> | BasePaginatedCollection<Classroom>>(\n currentUser.data ? getClassroomsRequest : false,\n fetchNextPage,\n onError,\n response => {\n if (query)\n return (response as SearchResults<Classroom>).results;\n\n return (response as BasePaginatedCollection<Classroom>).data;\n }\n );\n\n return {\n ...response,\n fetchNext: fetchNextPage\n };\n};","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'classrooms.classroomsEmptyState';\n\ninterface ClassroomsEmptySearchStateProps {\n query: string;\n}\n\nexport function ClassroomsEmptySearchState({ query }: ClassroomsEmptySearchStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Classrooms.CLASSROOMS} />\n\n <EmptyState.Heading><Text phrase='empty' options={{ query }} /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'classrooms.classroomsEmptyState';\n\nexport function ClassroomsEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Classrooms.CLASSROOMS} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n icon={cvSvgLibrary.Plus}\n appLink={{\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.NEW_CLASSROOM\n }}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ScopedSearchBar } from 'libs/shared/apps/search/components/scoped-search-bar/ScopedSearchBar';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { LanguageNamespaceContext } from 'libs/shared/components/text/Text';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { RosteringRequests } from 'libs/shared/flight-requests/RosteringRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Classroom, ClassroomCollection, Config, CurrentUser, RosteringResponse } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomsHeader } from 'apps/classrooms/components/classrooms-header/ClassroomsHeader';\nimport { ClassroomsTable } from 'apps/classrooms/components/classrooms-table/ClassroomsTable';\nimport { PartialClassroomsTable } from 'apps/classrooms/components/classrooms-table/partial-classrooms-table/PartialClassroomsTable';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { useFetchClassrooms } from 'apps/classrooms/hooks/useFetchClassrooms';\nimport { ActiveClassroomsTableApplinks } from 'apps/classrooms/interfaces/ClassroomsTableApplinks';\nimport { ClassroomsEmptySearchState } from 'apps/classrooms/views/classrooms/empty-state/ClassroomsEmptySearchState';\n\nimport { ClassroomsEmptyState } from './empty-state/ClassroomsEmptyState';\n\nconst namespace = 'classrooms.classrooms';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst CLASSROOM_APPLICATION = AppChannels.CLASSROOMS;\n\nconst newClassroomAppLink = {\n application: CLASSROOM_APPLICATION,\n action: Actions.Classrooms.NEW_CLASSROOM\n};\n\nconst classroomsTableApplinks: ActiveClassroomsTableApplinks = {\n link: {\n application: CLASSROOM_APPLICATION,\n action: Actions.Classrooms.GENERATE_JOIN_LINK\n },\n archive: {\n application: CLASSROOM_APPLICATION,\n action: Actions.Classrooms.ARCHIVE_CLASSROOM\n },\n edit: {\n application: CLASSROOM_APPLICATION,\n action: Actions.Classrooms.EDIT_CLASSROOM\n },\n classroom: {\n application: CLASSROOM_APPLICATION,\n action: Actions.Classrooms.CLASSROOM_HOME\n }\n};\n\nfunction ClassroomSearchBar() {\n return (\n <ScopedSearchBar\n id='classroom-search'\n searchAppLink={{\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }}\n searchIndices={['classroom']}\n analyticsOptions={{ entity: EntityType.Classroom, location: LocationContext.ClassroomsList }}\n placeholder={getPhrase('searchBarPlaceholder')}\n />\n );\n}\n\ninterface ClassroomsViewProps {\n query: string;\n}\n\nexport function ClassroomsView(props: ClassroomsViewProps): JSX.Element {\n const { hasShareFlowV2 } = useSettings(null);\n const { hasPermissions } = usePermissions();\n const breakpoints = useBreakpoints();\n\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n const fetchAsync = Flight.useGetFetchAsync();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const rostering = Flight.useBasicFetch<RosteringResponse>(RosteringRequests.getRostering());\n const hasRostering = rostering.data?.status && rostering.data.status !== 'None';\n\n const pinnedClassrooms = Flight.useBasicFetch<ClassroomCollection>(\n ClassroomRequests.getPinnedClassrooms(currentUser.data?.id, currentUser.data?.customerId)\n );\n\n const classroomsResponse = useFetchClassrooms(props.query);\n\n useHandleObjectError(pinnedClassrooms);\n\n async function onTogglePin(\n classroom: Classroom,\n shouldPin: boolean,\n onSuccess: () => void,\n onError: () => void\n ): Promise<void> {\n const request = shouldPin\n ? ClassroomRequests.pinClassroom\n : ClassroomRequests.unpinClassroom;\n\n try {\n await fetchAsync(request(classroom));\n \n onSuccess();\n } catch (ex) {\n onError();\n }\n }\n\n if (!hasPermissions(PermissionName.ViewClassrooms)) {\n Core.ErrorHelper.throw(new NotFoundError());\n return <></>;\n }\n\n function getActions(): ActionOptions[] {\n return [{\n label: LanguageService.getPhrase(namespace, 'newClassroom'),\n appLink: newClassroomAppLink,\n svgName: cvSvgLibrary.Plus,\n className: 'btn btn-outline-dark',\n disabled: hasRostering,\n tooltip: hasRostering ? getPhrase('disabledByRostering') : '',\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Classroom,\n workflowPhase: WorkflowPhase.Start,\n location: LocationContext.ClassroomsList\n },\n button: !breakpoints.xs\n }];\n }\n\n const hasClassrooms = !!classroomsResponse?.items?.length;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='px-3'>\n <ClassroomsHeader\n searchBar={hasClassrooms || props.query ? <ClassroomSearchBar /> : null}\n actions={getActions()}\n activeTab='classrooms'\n hasRostering={hasRostering}\n hasShareFlowV2={hasShareFlowV2}\n />\n\n {(() => {\n const isFetchingClassrooms = !classroomsResponse.items\n || !pinnedClassrooms.hasCompleted\n || !rostering.hasCompleted;\n\n if (isFetchingClassrooms)\n return <PartialClassroomsTable />;\n\n if (!hasClassrooms && !props.query)\n return <ClassroomsEmptyState />;\n\n if (!hasClassrooms && props.query)\n return <ClassroomsEmptySearchState query={props.query} />;\n\n return (\n <>\n <ClassroomsTable\n pinnedClassrooms={pinnedClassrooms.data?.data ?? []}\n allClassrooms={classroomsResponse.items}\n query={props.query}\n imageCdnUrl={config.data.imageCdnUrl}\n appLinks={classroomsTableApplinks}\n onTogglePin={onTogglePin}\n refreshTable={classroomsResponse.isFetching}\n currentUser={currentUser.data}\n hasRostering={hasRostering}\n />\n {(classroomsResponse.isFetching || classroomsResponse.nextCursor) && (\n <InfiniteScrollFooter\n isFetching={classroomsResponse.isFetching}\n fetchNext={classroomsResponse.fetchNext}\n nextCursor={classroomsResponse.nextCursor}\n />\n )}\n </>\n );\n })()}\n\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["ScopedSearchBar","props","currentQueryParams","ContextService","appLink","params","queryParamName","searchQuery","setSearchQuery","trim","length","id","debouncedQuery","debounceTime","query","currentFilters","ObjectHelper","nextParams","trimLeft","cursor","ScrollHelper","analyticsOptions","AnalyticsHelper","indices","searchIndices","actionType","workflowPhase","searchAppLink","search","log","shouldLog","className","name","type","size","autoComplete","placeholder","onChange","event","target","value","onBlur","e","SvgContainer","svgName","defaultProps","TabContents","tab","count","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","map","index","active","key","analyticsData","onClick","onSelect","onSelectTab","getPhrase","RosteringAlert","text","BatchJobStatus","RosteringRequests","getRostering","url","getSyncList","queryParams","sort","order","jobStatus","statuses","includes","push","status","createJob","success","error","invalidationKeys","getJobSummary","getSyncScheduleSettings","integrationId","updateScheduleSetting","always","customerId","generateCacheKey","flightObjs","obj","statusCode","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","namespace","LanguageService","ClassroomsHeader","breakpoints","useBreakpoints","isMobile","xs","sm","application","action","activeTab","hasShareFlowV2","hasRostering","Text","phrase","searchBar","actions","actionsDropdownClassName","useFetchClassrooms","options","currentUser","alerts","dispatch","getClassroomsRequest","withStudentsCount","fetchNextPage","response","pageNumber","httpStatus","results","fetchNext","ClassroomsEmptySearchState","EmptyState","src","ImageUrls","ClassroomsEmptyState","icon","CLASSROOM_APPLICATION","newClassroomAppLink","classroomsTableApplinks","link","archive","edit","classroom","ClassroomSearchBar","entity","location","ClassroomsView","useSettings","hasPermissions","usePermissions","useSetPageMetadata","title","fetchAsync","UserRequests","config","ConfigRequests","rostering","pinnedClassrooms","ClassroomRequests","classroomsResponse","onTogglePin","shouldPin","onSuccess","onError","request","PermissionName","NotFoundError","hasClassrooms","items","label","disabled","tooltip","button","hasCompleted","ClassroomsTable","allClassrooms","imageCdnUrl","appLinks","refreshTable","isFetching","nextCursor","InfiniteScrollFooter","PartialClassroomsTable"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6509],{51182:(e,t,n)=>{n.d(t,{l:()=>a.l});var a=n(72632)},9806:(e,t,n)=>{n.d(t,{k:()=>x});var a=n(32735),i=n(65858),r=n(64249),o=n(15611),l=n(7432),c=n(11834),s=n(83345),m=n(56754),u=n(86348),d=n(7733),p=n(54610),g=n(4594),f=n(68626),v=n(9085),y=n(67453),h=n(31908);const b={thumbnailFallbackSvg:"D4JFs",posterFallbackSvg:"bjUWl",coverFallbackSvg:"kdLpt",thumbnailContainer:"d3CKN",insightsMask:"KM76U",requireMarking:"peLH7",badge:"mVu0E",bar:"zO3MS",a:"K1jW5",expandBar:"YITJl",b:"tCpLF",c:"lC0cq"};var E="shared.sharedObjectImage",w="rounded overflow-hidden";function k(){return a.createElement("div",{className:"d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center"},a.createElement("div",{className:"position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3"}),a.createElement("div",{className:"d-flex align-items-end gap-2 h-50 z-1"},a.createElement("div",{className:"d-flex align-items-end h-50"},a.createElement("div",{className:"".concat(b.bar," ").concat(b.a," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-75"},a.createElement("div",{className:"".concat(b.bar," ").concat(b.b," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-100"},a.createElement("div",{className:"".concat(b.bar," ").concat(b.c," rounded shadow")}))))}function x(e){var t=a.useCallback((function(t){var n;t&&e.fixedHeight&&(t.style.width="".concat(t.offsetHeight*(n=e.object,h.M.isVideoType(n)?16/9:n.typeId===g.E.Playlist?1:n.typeId===g.E.Series?9/16:void 0),"px"))}),[]),n=h.M.isVideoType(e.object),x=function(e){var t=y.j.getDisplayImageFromObject(e);if(h.M.isVideoType(e))return{image:t,imageType:p.__.Thumbnails,imageClassName:w,imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Video})};switch(e.typeId){case g.E.Series:return{image:t,imageType:p.__.TallPosters,imageClassName:w,imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Series,svgContainerClassName:b.posterFallbackSvg})};case g.E.Playlist:return{image:t,imageType:p.__.Covers,imageClassName:(null==t?void 0:t.url)?w:"".concat(w," ").concat((0,v.x)(e.name,d.o)),imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Playlist,svgContainerClassName:(null==t?void 0:t.url)?b.coverFallbackSvg:"d-none",extraClasses:!(null==t?void 0:t.url)&&"bg-transparent"})}}}(e.object),C=x.image,S=x.imageType,A=x.imageClassName,N=x.imageFallbackComponent,T=e.showVideoMetadata?{hideBottomBar:e.hideBottomBar}:{hideDuration:!0,hideMask:!0,hideRating:!0,hideVideoBadgeType:!0,hideBottomBar:!0};return a.createElement("div",{className:"d-flex align-items-center justify-content-center w-100 h-100"},a.createElement("div",{ref:t,className:e.fixedHeight?"h-100":"w-100"},n&&a.createElement("div",{className:"".concat(b.thumbnailContainer," position-relative")},e.showInsightsMask&&a.createElement(k,null),a.createElement(o.F,{appLink:e.appLink},a.createElement(u.u,Object.assign({video:e.object,size:e.thumbnailSize,imageOptions:e.imageOptions,textPosition:f.z.Independent,type:"cosmetic",imageClassName:e.imageClassName},T))),!!e.requireMarking&&a.createElement("div",{className:"".concat(e.showInsightsMask&&b.requireMarking," position-absolute bottom-0 end-0 z-1 m-2")},a.createElement("div",{className:"".concat(b.badge," d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2")},a.createElement(s.x,{namespace:E,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))),!n&&a.createElement(a.Fragment,null,"videos"in e.object?a.createElement(m.I,{collection:e.object,imageOptions:e.imageOptions,appLink:e.appLink,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:r.I.getAnalyticsEntity(e.object.type),actionType:i.Vw.Click,location:e.locationContext},showMask:e.showCollectionMask,showVideoCount:e.showVideoCount}):a.createElement(l.Z,{data:null==C?void 0:C.url,imageType:S,imageOptions:e.imageOptions,appLink:e.appLink,className:A,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:r.I.getAnalyticsEntity(e.object.type),actionType:i.Vw.Click,location:e.locationContext}},N))))}x.defaultProps={imageOptions:{size:p.h2.Small}}},64197:(e,t,n)=>{n.d(t,{i:()=>s});var a=n(32735),i=n(23481),r=n(31453);const o={divider:"rpkqv"};var l=i.T.encloseNamespace("shared.divider");function c(e){var t=e.text||l("or");return{"--divider-content":"'".concat(t,"'"),"--divider-text-transform":e.noUpperCase?"none":"uppercase"}}function s(e){return a.createElement("div",{className:(0,r.A)("my-2 w-100 border-bottom position-relative",o.divider,e.className),style:c(e)})}},56754:(e,t,n)=>{n.d(t,{I:()=>E});var a=n(32735),i=n(75896),r=n(65858),o=n(15611),l=n(83914),c=n(83345);const s={thumbnailTitle:"OsWjL"};function m(e){return a.createElement("h3",{title:e.title,className:"h6"},e.title)}function u(e){return e.appLink?a.createElement(o.F,{appLink:e.appLink,className:"".concat(s.thumbnailTitle)},a.createElement(m,Object.assign({},e))):a.createElement(m,Object.assign({},e))}var d=n(86348),p=n(62335),g=n(4594),f=n(68626),v=n(45778),y=n(35223);const h={badge:"M4zat",mask:"r0Ztg",thumbnailContainer:"uD9dz"};var b="shared.collectionThumbnail";function E(e){var t,n,s,m,E=function(){var t,n=null===(t=e.collection)||void 0===t?void 0:t.videos;if(n){if(!n.count&&e.collection.typeId===g.E.Playlist){var a=e.collection;a.clips.count&&(n=a.clips),a.interactives.count&&(n=a.interactives)}return i.m.first(n.data)}}(),w=function(){var t,n,a=0;if(e.collection.videos&&e.collection.videos.count&&(a+=e.collection.videos.count),e.collection.typeId===g.E.Playlist){var i=e.collection;(null===(t=i.interactives)||void 0===t?void 0:t.count)&&(a+=i.interactives.count),(null===(n=i.clips)||void 0===n?void 0:n.count)&&(a+=i.clips.count)}return a}(),k=(null===(t=e.title)||void 0===t?void 0:t.length)||(null===(n=e.subText)||void 0===n?void 0:n.length),x=Object.assign({id:e.collection.id.toString(),name:e.collection.name},e.analyticsData),C=Object.assign({actionType:r.Vw.Click,entity:(m=e.collection,v.G.isType(m,g.E.Playlist)?r.py.Playlist:v.G.isType(m,g.E.Series)?r.py.Series:void 0)},e.analyticsOptions);return a.createElement("div",null,a.createElement("div",{className:"position-relative ".concat(h.thumbnailContainer," z-1")},a.createElement(o.F,{appLink:e.appLink,analyticsData:x,analyticsOptions:C,preventFocus:!0},e.showMask&&a.createElement("div",{className:"".concat(h.mask," position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none")},a.createElement("div",{className:"".concat(h.badge," d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2")},a.createElement(l.x,{svgName:y.vn.Play,className:"svg-container text-white"}),a.createElement("p",{className:"d-inline fw-medium text-white mb-0"},(null===(s=e.hoverText)||void 0===s?void 0:s.length)?a.createElement("span",null,e.hoverText):a.createElement(c.x,{namespace:b,phrase:"playAll"})))),E&&a.createElement(d.u,{video:E,imageOptions:e.imageOptions,textPosition:f.z.Independent,type:"cosmetic",hideMask:!0,hideRating:!0,hideDuration:!0,hideVideoTypeBadge:!0}),!E&&a.createElement("div",{className:"ratio ratio-16x9 bg-light rounded-3"},a.createElement("div",{className:"d-flex justify-content-center align-items-center"},a.createElement(l.x,{svgName:y.vn.Play,className:"w-33 opacity-25 text-gray-400"}))),e.showVideoCount&&a.createElement("div",{className:"".concat(h.badge," d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2")},a.createElement(l.x,{svgName:y.vn.Series,className:"svg-container text-white me-1"}),a.createElement("p",{className:"d-inline fw-semibold text-white mb-0"},a.createElement(c.x,{namespace:b,phrase:"videos",options:{count:w,smartCount:w}}))))),k&&a.createElement("div",{className:"mt-2 d-flex flex-column"},e.subText&&a.createElement(p.m,{title:e.subText,appLink:e.subTextAppLink},e.subText),e.title&&a.createElement(u,{title:e.collection.name,appLink:e.titleAppLink})))}},84850:(e,t,n)=>{n.d(t,{X:()=>r});var a=n(1048),i=n(49985);function r(e){function t(t,n){var r=e.config[t.type];if(null==r?void 0:r.isValid(t)){var o=Object.assign(Object.assign({},e.baseData),t);return{data:a.t.omit(o,["type"]),analyticsOptions:i.k.mergeOptions(r.analyticsOptions,[e.analyticsOptions,n])}}}return{getData:t,log:function(n,a){if(e.shouldLog){var r=t(n,a);r&&i.k.logUserAction(r.data,r.analyticsOptions)}}}}},88382:(e,t,n)=>{n.d(t,{g:()=>u});var a=n(32735),i=n(42648),r=n(31453),o=n(98461),l=n(83345);const c=JSON.parse('[{"name":"BlackBoard","icon":"/images/integrations/icons/blackboard.png","link":"https://support.clickvieweducation.com/hc/articles/43194073335321","instanceRegions":[]},{"name":"Canvas","icon":"/images/integrations/icons/canvas.png","link":"https://support.clickvieweducation.com/hc/articles/42686008655001","instanceRegions":[]},{"name":"Compass","icon":"/images/integrations/icons/compass.png","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"name":"D2L Brightspace","icon":"/images/integrations/icons/brightspace.png","link":"https://support.clickvieweducation.com/hc/articles/42559711867417","instanceRegions":[]},{"name":"Edmodo","icon":"/images/integrations/icons/edmodo.png","link":"","instanceRegions":[],"notes":"We don\'t have an article"},{"name":"Education Perfect","icon":"/images/integrations/icons/education-perfect.png","link":"https://support.clickvieweducation.com/hc/articles/13167768154009","instanceRegions":[]},{"name":"FireFly","icon":"/images/integrations/icons/firefly.png","link":"","instanceRegions":[],"notes":"Two old articles: https://www.clickview.co.nz/plugins/firefly/, https://community.fireflylearning.com/s/article/ClickView-Plugin-for-Firefly"},{"name":"Frog Learning","icon":"/images/integrations/icons/frog.png","link":"","instanceRegions":[],"notes":"Users won\'t be able to embed these shares in frog, it\'s an RSS integration."},{"name":"Google Classroom","icon":"/images/integrations/icons/google-classroom.png","link":"https://support.clickvieweducation.com/hc/articles/4407883106329","instanceRegions":[]},{"name":"itslearning","icon":"/images/integrations/icons/its-learning.png","link":"https://support.clickvieweducation.com/hc/articles/42559378556185","instanceRegions":[]},{"name":"Microsoft Teams","icon":"/images/integrations/icons/microsoft-teams.png","link":"https://support.clickvieweducation.com/hc/articles/42671122820633","instanceRegions":[]},{"name":"Stile Education","icon":"/images/integrations/icons/stile.png","link":"https://help.stileapp.com/hc/articles/218052537","instanceRegions":[]},{"name":"Moodle","icon":"/images/integrations/icons/moodle.png","link":"https://support.clickvieweducation.com/hc/articles/42451786827033","instanceRegions":[]},{"name":"SEQTA","icon":"/images/integrations/icons/seqta.png","link":"https://help.seqta.com.au/s/article/embedding-and-removing-clickview-videos-and-playists","instanceRegions":[]},{"name":"Schoolbox","icon":"/images/integrations/icons/schoolbox.png","link":"","instanceRegions":[],"notes":"Only article I could find is their one: https://help.schoolbox.com.au/homepage/2718"},{"name":"Verso Learning","icon":"/images/integrations/icons/verso.png","link":"","instanceRegions":[],"notes":"https://www.clickview.co.nz/plugins/verso/"},{"name":"Schoology","icon":"/images/integrations/icons/schoology.png","link":"https://support.clickvieweducation.com/hc/articles/9512518040217","instanceRegions":[]},{"name":"SharePoint","icon":"","link":"","instanceRegions":[],"notes":"This integration is so freaking old we probably don\'t want it here"},{"name":"MyEDiary","icon":"","link":"","instanceRegions":[],"notes":"I don\'t even know WTF this is, I can\'t find it on google, I think we drop it"},{"name":"RealSmart","icon":"","link":"","instanceRegions":[],"notes":"No clue"},{"name":"Lumio","icon":"","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"name":"Daymap","icon":"","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"name":"Smart","icon":"","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"name":"myEdOnline","icon":"","link":"","instanceRegions":[]},{"name":"School Bytes","icon":"","link":"","instanceRegions":[],"notes":"can\'t find an article"},{"name":"SoftLink","icon":"","link":"","instanceRegions":[]},{"name":"Toddle","icon":"","link":"https://support.clickvieweducation.com/hc/articles/44934633120665","instanceRegions":[]}]'),s={integrationIcon:"_cwyZ"};var m="assign.integrationList";function u(e){var t=c.filter((function(t){var n=!!t.icon&&!!t.link;return e.instanceRegion&&t.instanceRegions.length&&(n=t.instanceRegions.includes(e.instanceRegion)),n}));return a.createElement("div",{className:"bg-white rounded-3"},a.createElement(i.$B,{autoHeight:!0,autoHeightMax:e.maxHeight||308},a.createElement("div",{className:"container-fluid py-3"},a.createElement("div",{className:"row mx-0 px-2"},t.map((function(t,n){return a.createElement("div",{className:(0,r.A)("col-6 mb-2",e.itemClassName),key:n},a.createElement("a",{href:t.link,className:"d-flex align-items-center border rounded-1 p-2 text-decoration-none hover-bg-light-blue fw-medium",target:"_blank",rel:"noopener noreferrer"},a.createElement("span",{className:"d-block ".concat(s.integrationIcon),style:{backgroundImage:"url(".concat(t.icon,")")}}),a.createElement("span",{className:"text-center flex-grow-1"},t.name)))})),!e.hideSupportLink&&a.createElement("div",{className:"col-12 text-center"},a.createElement(o.d,{href:e.contactSupportLink,className:"btn btn-link text-info p-0",newTab:!0},a.createElement(l.x,{namespace:m,phrase:"cantFindIntegration"})))))))}},85287:(e,t,n)=>{n.d(t,{z:()=>c});var a=n(97395),i=n(75896),r=n(19808);function o(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return l(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)?l(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(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 c={getRecipients:function(e){return e.length?e.map((function(e){return e.id})):[]},getLearnersForGroups:function(e){var t=e.reduce((function(e,t){var n;return[].concat(o(e),o(null!==(n=t.users.data)&&void 0!==n?n:[]))}),[]);return i.m.uniq(t,"id")},getSelectedEntities:function(e,t){return e.find((function(e){var n,a;return(null===(n=e.id)||void 0===n?void 0:n.toString())===(null===(a=t.id)||void 0===a?void 0:a.toString())}))?e.filter((function(e){var n,a;return(null===(n=e.id)||void 0===n?void 0:n.toString())!==(null===(a=t.id)||void 0===a?void 0:a.toString())})):[].concat(o(e),[t])},getContactSupportUrl:function(e,t){if(e&&t){var n="/contact-us/support";return t===r.b.NZ&&(n="/contact-us/"),a._.safeUrlConcat(e,n)}}}},7786:(e,t,n)=>{n.d(t,{y:()=>l});var a=n(65858),i=n(84850);function r(e){return"share"in e&&!!e.share}var o={"create-existing-classroom":{isValid:r,analyticsOptions:{actionType:a.Vw.Create,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.ExistingClassroom}},"create-open-classroom":{isValid:r,analyticsOptions:{actionType:a.Vw.Create,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.OpenClassroom}},"view-assignment":{isValid:r,analyticsOptions:{actionType:a.Vw.Click,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.ViewAssignment}},"select-existing-classroom-flow":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,workflowPhase:a.eu.Start,descriptor:a.Os.ExistingClassroom,entity:a.py.Assign}},"select-open-classroom-flow":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,workflowPhase:a.eu.Start,descriptor:a.Os.OpenClassroom,entity:a.py.Assign}},"view-previous-assignment":{isValid:r,analyticsOptions:{actionType:a.Vw.Click,workflowPhase:a.eu.Discard,entity:a.py.Assign,descriptor:a.Os.ViewPreviousAssignment}},"close-assign-popup":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,workflowPhase:a.eu.Discard,entity:a.py.Assign,descriptor:a.Os.ClosePopup}},"create-new-classroom":{isValid:function(e){return!!e.classroom},analyticsOptions:{actionType:a.Vw.Create,workflowPhase:a.eu.Next,descriptor:a.Os.CreateClassroom,entity:a.py.Assign}},"select-narrow-selection":{isValid:function(e){return!!e.classroom},analyticsOptions:{actionType:a.Vw.Click,entity:a.py.Assign,workflowPhase:a.eu.Next,descriptor:a.Os.NarrowSelection}},"copy-embed-html":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Share,workflowPhase:a.eu.Complete,entity:a.py.Assign,descriptor:a.YM.CopyEmbedHtml}},"copy-share-link":{isValid:r,analyticsOptions:{actionType:a.Vw.Share,workflowPhase:a.eu.Complete,entity:a.py.Assign,descriptor:a.YM.CopyLink}},"print-qr-code":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Print,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.PrintQrCode}},"download-qr-code":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Download,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.DownloadQrCode}},"request-full-screen":{isValid:function(){return!0},analyticsOptions:{actionType:a.Vw.Click,entity:a.py.Assign,workflowPhase:a.eu.Complete,descriptor:a.Os.FullScreen}}};function l(e){var t,n=(0,i.X)({analyticsOptions:e.analyticsOptions,baseData:e.data,config:o,shouldLog:null===(t=e.shouldLog)||void 0===t||t}),a=n.getData;return{log:n.log,getData:a}}},96509:(e,t,n)=>{n.r(t),n.d(t,{AssignDetailsView:()=>Ce});var a=n(32735),i=n(6044),r=n(23481),o=n(20354),l=n(65858),c=n(33518),s=n(18488),m=n(9111),u=n(86099),d=n(2510),p=n(51182),g=n(83345),f=n(84891),v=n(31453),y=n(19494),h=n(83914),b=n(35223),E="assign.assignDetailsTabs";function w(e){var t=e.tab===e.active;return a.createElement("button",{className:(0,v.A)("rounded-pill d-flex align-items-center gap-1 ps-1",t?"bg-dark text-white":"bg-light"),onClick:function(){return e.onClick(e.tab)}},e.children)}function k(e){return a.createElement("div",{className:"d-flex justify-content-center mb-3 gap-3 flex-wrap"},a.createElement(w,Object.assign({tab:"share-link"},e),a.createElement(h.x,{svgName:b.vn.Link}),a.createElement(g.x,{namespace:E,phrase:"shareLink"})),a.createElement(w,Object.assign({tab:"qr-code"},e),a.createElement(h.x,{svgName:b.vn.QrCode}),a.createElement(g.x,{namespace:E,phrase:"qrCode"})),a.createElement(w,Object.assign({tab:"embed"},e),a.createElement(h.x,{svgName:b.vn.Code}),a.createElement(g.x,{namespace:E,phrase:"embed"})),a.createElement(w,Object.assign({tab:"integrations"},e),a.createElement(y.C,{size:"sm",noTooltip:!0}),a.createElement(g.x,{namespace:E,phrase:"integrations"})))}function x(){return a.createElement(f.t,null,a.createElement(f.t.Step,{number:1},a.createElement(g.x,{phrase:"step1"})),a.createElement(f.t.Step,{number:2},a.createElement(g.x,{phrase:"endStep"})))}function C(){return a.createElement(f.t,null,a.createElement(f.t.Step,{number:1},a.createElement(g.x,{phrase:"step1"})),a.createElement(f.t.Step,{number:2},a.createElement(g.x,{phrase:"step2SignIn"})),a.createElement(f.t.Step,{number:3},a.createElement(g.x,{phrase:"endStep"})))}var S=n(88382);function A(){return a.createElement(f.t,null,a.createElement(f.t.Step,{number:1},a.createElement(g.x,{phrase:"step1JoinCode"})),a.createElement(f.t.Step,{number:2},a.createElement(g.x,{phrase:"step2JoinCode"})),a.createElement(f.t.Step,{number:3},a.createElement(g.x,{phrase:"step4"})))}function N(){return a.createElement(f.t,null,a.createElement(f.t.Step,{number:1},a.createElement(g.x,{phrase:"step1SignIn"})),a.createElement(f.t.Step,{number:2},a.createElement(g.x,{phrase:"step2SignIn"})),a.createElement(f.t.Step,{number:3},a.createElement(g.x,{phrase:"step3SignIn"})),a.createElement(f.t.Step,{number:4},a.createElement(g.x,{phrase:"step4"})))}var T=n(9806),O=n(64197),j=n(99742);var I="assign.assignOverview",L=r.T.encloseNamespace(I);function V(e){return a.createElement("button",{className:(0,v.A)("rounded ratio ratio-1x1 border border-light hover-bg-light-blue","r9K_x"),onClick:function(){return e.onClick(e.screen)}},a.createElement("div",{className:"d-flex flex-column align-items-center justify-content-center gap-1 p-2 "},e.children))}function P(e){return a.createElement("div",{className:(0,v.A)("d-flex align-items-center justify-content-center","McyhP")},a.createElement("figure",{style:{backgroundImage:"url(".concat(j.W.Assign.ASSIGN_DETAILS.OVERVIEW_TEXT,")")},className:(0,v.A)("m-0","u6Z4r")}),a.createElement("figure",{style:{backgroundImage:"url(".concat(j.W.Assign.ASSIGN_DETAILS.OVERVIEW_BG,")")},className:(0,v.A)("position-relative m-0","RtZpT")},a.createElement("div",{className:(0,v.A)("position-absolute","m6eZK")},a.createElement(T.k,{object:e.entity,locationContext:l.LZ.AssignFlowView,thumbnailSize:"md"}))))}var R=n(98269),z="shared.fullScreen",D=r.T.encloseNamespace(z);function F(e){return document.fullscreenEnabled?a.createElement("div",{className:(0,v.A)("vw-100 vh-100 bg-white",!e.isFullScreen&&"d-none"),ref:e.controlsRef},a.createElement("div",{className:"position-absolute top-0 end-0 pe-4 pt-4 z-1"},a.createElement(R.Z,{variant:"outline-dark",className:"d-inline-flex align-items-center gap-1",onClick:function(){document.exitFullscreen()}},a.createElement(g.x,{namespace:z,phrase:"exitFullScreen"}),a.createElement(h.x,{svgName:b.vn.Close}))),e.children):a.createElement(a.Fragment,null)}function B(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 q(){var e,t,n=a.useRef(null),i=(e=a.useState(!1),t=2,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,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return B(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)?B(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.")}()),r=i[0],o=i[1],l=document.fullscreenEnabled;return a.useEffect((function(){var e;if(n.current){var t=function(){!function(e,t){document.fullscreenElement!==e?t(!1):t(!0)}(n.current,o)};return null===(e=n.current)||void 0===e||e.addEventListener("fullscreenchange",t),function(){var e;return null===(e=n.current)||void 0===e?void 0:e.removeEventListener("fullscreenchange",t)}}}),[n.current]),{ref:n,isFullScreen:r,isSupported:l,requestFullScreen:function(){n.current&&l&&n.current.requestFullscreen&&n.current.requestFullscreen()},exitFullScreen:function(){document.exitFullscreen().finally((function(){o(!1)}))}}}F.Button=function(e){if(!document.fullscreenEnabled)return a.createElement(a.Fragment,null);var t=e.text||D("buttonText");return a.createElement("div",{className:"w-100 text-center"},a.createElement(R.Z,{variant:e.variant||"link",className:"d-inline-flex justify-content-center text-info p-0",onClick:e.onClick},a.createElement("span",null,t),!e.hideIcon&&a.createElement(h.x,{svgName:b.vn.NewWindow})))};var U=n(44645),M=n(17327),Z=n.n(M),W=n(56050),J=n(81886),Q=n(29866),H={sm:"oAKIc",md:"Ml3L5",lg:"cWnjp"},_={sm:100,md:200,lg:400,custom:0};function X(e){var t="custom"===e.size?e.customSize:_[e.size],n="custom"===e.size?e.containerClassName:H[e.size];return a.createElement("div",{className:(0,v.A)("position-relative d-flex justify-content-center align-items-center flex-column","border border-dark rounded-3 bg-white",n)},a.createElement(Q.QRCode,{id:e.id||"cv-qr-code",value:e.value,bgColor:"white",size:t,logoImage:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAYFBMVEX////4mB34lhX5qEz4kQD4kwD4lAD+79/4lxf4jwD//vv938L5rFb96NP+9On4lQv6tWf+9/D5pUX8z6D6u3n4nzP82LP5pD/7xo/4nSr6s2X6vX77xpH5rVn5pED/+vVbzc80AAACrElEQVR4nO3di3LTMBSE4R7HDjEF3IaWlmvf/y0RlA4RjWNZHqHZo/97Au1k4m6OZPXqCgAAAAAAAAAAAAAAAAAAAAAAAP/BzW3tFZR2tDe1l1DYbhqua6+hrF1n48faiygqJLTxrvYqSvqV0IZ3b2uvo5zfCW26/1B7IcU8J7Ru/772Skr5k9AO/afaSynkJWF43jzWXksZfxNaf1N7MUWcJLT9w1Pt5RRwmtAmjxUuSmgHhxUuTmgOK9y/Cf1VuFcJ3VW41wm9VbgzCa2bPFW4cwntMDqqcGcTuqpwMwkdVbi5hLY/OpnCzSZ0U+HmE4bnjYsKdyFh+DJ6qHAXE1r/tfb6truc0Hr9CreQ0KbP6o/UpYTWDeIVbjGh/BRuOWH4MkpXuJSE1n+pvcwNkhJKT+HSElp3kK1wiQnD80a1wqUm1J3CpSdUncKtSCg6hVuTMFQ4wSncqoSSG6nrEipO4VYmFJzCrU4oN4Vbn1CtwmUkFKtwOQm1NlKzEoaWqlPh8hKG541MhctNaMNOpMJlJ5SpcPkJVTZSNyQUmcJtSahR4bYlVJjCbUwosJG6NaH1D7UjLOAzXPoEvX8PvT9L3f89dN9pVA74ZSeU2eHP/n0oc0qD3/jnA+6dz2ncz9rcz0vdz7zHb7WXvNLavSeJohZh/zCiMkCMsI9/YpQpahHO07yQ2lCLJCacpIpaJPFs4lGqqEXSzpeKFbUIZ4Qli1qEs/ru37fovysWtUjj7z0JTdTmtfz+oft3SAfhohZp9l1uuYnavDbvVBDZ+kzU4t0mDopapL07hlQnavMau+vLS1GLRHfu/XBS1CIt3ZuocEYtRzP3lypufSZq5B5hza3PRE3c5+2vqEX836vv/38j+P//FgAAAAAAAAAAAAAAAAAAAAAAALJ+AoAWHaLlWtXqAAAAAElFTkSuQmCC",logoPaddingStyle:"circle",logoPadding:1,eyeRadius:[{outer:[10,0,0,0],inner:[1,0,0,0]},{outer:[0,10,0,0],inner:[0,1,0,0]},{outer:[0,0,0,10],inner:[0,0,0,1]}],removeQrCodeBehindLogo:!0,ref:e.qrRef}))}function K(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,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return G(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)?G(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 G(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 Y(e){var t=a.useRef();return a.useEffect((function(){var n=setTimeout((function(){var n;null===(n=t.current)||void 0===n||n.download(e.options.type,e.options.name),"function"==typeof e.onDone&&e.onDone()}),200);return function(){clearTimeout(n)}}),[]),a.createElement("div",{className:"d-none"},a.createElement(X,{size:e.options.size,value:e.value,qrRef:t}))}var $=n(2102),ee=n(68050),te=n(69111),ne=n(79967),ae="assign.fullScreen",ie=r.T.encloseNamespace(ae);function re(e){return a.createElement("div",{className:"container p-4"},a.createElement(ee.Z,null,a.createElement(te.Z,null,a.createElement("h3",{className:"text-center"},a.createElement(g.x,{namespace:ae,phrase:"watchVideo"})))),a.createElement(ee.Z,{className:"mb-4"},a.createElement(te.Z,{xs:12,sm:8,md:6,lg:3,className:"mx-auto"},a.createElement(T.k,{object:e.entity,thumbnailSize:"md",locationContext:e.locationContext,showVideoMetadata:!0,hideBottomBar:!0}))),e.children)}re.QrDetails=function(e){var t=(0,ne.k)(),n=t.sm||t.xs?"md":"lg";return a.createElement(ee.Z,null,a.createElement(te.Z,{xs:12,md:10,lg:8,xl:6,className:"bg-light p-4 rounded mx-auto d-flex flex-column align-items-center"},a.createElement("div",{className:"mb-3 text-center"},a.createElement("span",{className:"fs-3 fw-bold"},a.createElement(g.x,{namespace:ae,phrase:"scanQr"}))),a.createElement(X,{size:n,value:e.value})))},re.JoinCode=function(e){return a.createElement(ee.Z,null,a.createElement(te.Z,{xs:12,md:8,lg:5,className:"bg-light p-4 d-block rounded mx-auto"},a.createElement(f.t,null,a.createElement(f.t.Step,{number:1},a.createElement(g.x,{namespace:ae,phrase:"studentsGoToLink"})),a.createElement(f.t.Textbox,{value:e.link}),a.createElement(f.t.Step,{number:2},a.createElement(g.x,{namespace:ae,phrase:"enterJoinCode"})),a.createElement(f.t.Textbox,{value:e.joinCode}),a.createElement(f.t.Step,{number:3},a.createElement(g.x,{namespace:ae,phrase:"studentsWatchVideo"})))))},re.LinkDetails=function(e){return a.createElement(ee.Z,null,a.createElement(te.Z,{xs:12,md:8,lg:5,className:"bg-light p-4 d-block rounded mx-auto"},a.createElement(f.t,{bottomSpacing:"none"},a.createElement(f.t.Textbox,{label:ie("goToLink"),value:e.link}))))};function oe(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 le="assign.assignQrCode",ce=r.T.encloseNamespace(le),se=n(97395);function me(e){return a.createElement(f.t,null,a.createElement(f.t.Step,{number:1},a.createElement(g.x,{phrase:"step1"})),a.createElement(f.t.Textbox,{value:e.link,showCopyButton:!0}),a.createElement(f.t.Step,{number:2},a.createElement(g.x,{phrase:"endStep"})))}function ue(e){return a.createElement(f.t,null,a.createElement(f.t.Step,{number:1},a.createElement(g.x,{phrase:"step1"})),a.createElement(f.t.Textbox,{value:e.link,showCopyButton:!0}),a.createElement(f.t.Step,{number:2},a.createElement(g.x,{phrase:"step2SignIn"})),a.createElement(f.t.Step,{number:3},a.createElement(g.x,{phrase:"endStep"})))}function de(e){return de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},de(e)}function pe(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 ge(e,t,n){return(t=function(e){var t=function(e){if("object"!=de(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=de(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==de(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var fe=r.T.encloseNamespace("assign.assignDetails"),ve={overview:{component:function(e){return a.createElement(g.D.Provider,{value:I},a.createElement("div",{className:(0,v.A)("mx-auto","QB4Pm")},a.createElement("div",{className:"d-flex flex-column align-items-center text-center mb-4 gap-3"},a.createElement(P,{entity:e.entity}),a.createElement("h3",{className:"m-0 d-flex flex-column flex-md-row align-items-center gap-2"},a.createElement(h.x,{svgName:b.vn.Check,className:(0,v.A)("d-inline-block svg-container md bg-green rounded-circle text-white")}),a.createElement(g.x,{phrase:"title"})),a.createElement("p",{className:"m-0"},a.createElement(g.x,{phrase:"description"}))),a.createElement(O.i,{text:L("dividerText"),className:"mb-4",noUpperCase:!0}),a.createElement("div",{className:"d-flex justify-content-center gap-3 flex-wrap"},a.createElement(V,{screen:"share-link",onClick:e.onClickTab},a.createElement(h.x,{svgName:b.vn.Link}),a.createElement(g.x,{phrase:"shareLink"})),a.createElement(V,{screen:"qr-code",onClick:e.onClickTab},a.createElement(h.x,{svgName:b.vn.QrCode}),a.createElement(g.x,{phrase:"qrCode"})),a.createElement(V,{screen:"embed",onClick:e.onClickTab},a.createElement(h.x,{svgName:b.vn.Code}),a.createElement(g.x,{phrase:"embed"})),a.createElement(V,{screen:"integrations",onClick:e.onClickTab},a.createElement("span",{className:(0,v.A)("d-inline-flex align-items-center","tTimT")},a.createElement(y.C,{size:"sm",noTooltip:!0})),a.createElement(g.x,{phrase:"integrations"})))))}},"share-link":{component:function(e){var t=q(),n=e.joinCode?se._.safeUrlConcat("https://clickview.net/play",e.joinCode):e.shareLink;return a.createElement(g.D.Provider,{value:"assign.assignShareLink"},a.createElement("div",null,a.createElement(k,{active:"share-link",onClick:e.onClickTab}),a.createElement("div",{className:"bg-light rounded-3 mx-auto py-3 px-sm-5 px-3 d-block ".concat("HrK3n")},e.joinCode?a.createElement(me,{link:n}):a.createElement(ue,{link:n}),a.createElement(F.Button,{onClick:function(){"function"==typeof e.log&&e.log({type:"request-full-screen",entity:e.entity,flow:e.flow,tab:"share-link"}),t.requestFullScreen()},hideIcon:!0}))),a.createElement(F,{isFullScreen:t.isFullScreen,controlsRef:t.ref},a.createElement(re,{entity:e.entity,locationContext:l.LZ.AssignFlowView},a.createElement(re.LinkDetails,{link:n}))))}},"qr-code":{component:function(e){var t,n,i,r,o,c,s,m=(t=a.useRef(),i=(n=K(a.useState(!1),2))[0],r=n[1],c=(o=K(a.useState(!1),2))[0],s=o[1],{ref:t,isPrinting:i,isDownloading:c,download:function(e){var n=e.name,i=e.size,r=void 0===i?"lg":i,o=e.type,l=void 0===o?"png":o;if(t.current){var c=document.getElementById("print-region");c||J.Q.Ry.throw(new W.H("Could not find print region in layout"));var m=(0,U.s)(c);s(!0),m.render(a.createElement(Y,{options:{name:n,size:r,type:l},value:t.current.props.value,onDone:function(){m.unmount(),s(!1)}}))}},print:function(e){var n=e.id,i=e.name,o=e.size,l=void 0===o?"lg":o,c=e.onDone;if(t.current){var s=document.getElementById("print-region");s||J.Q.Ry.throw(new W.H("Could not find print region in layout"));var m=(0,U.s)(s);m.render(a.createElement("div",{className:"d-none vw-100 vh-100"},a.createElement("div",{id:n,className:"w-100 h-100 d-flex align-items-center justify-content-center"},a.createElement(X,{size:l,value:t.current.props.value})))),r(!0),window.setTimeout((function(){Z()({printable:n,type:"html",documentTitle:i||"ClickView - QRCode",targetStyles:["*"],imageStyle:"*",style:"@page { size: A4; margin: 1.5cm 0; }",onLoadingEnd:function(){"function"==typeof c&&c(),r(!1),m.unmount()},onError:function(){r(!1),m.unmount()}})}),200)}}}),u=q(),d=ce("fileName",{name:e.entity.name}),p=e.joinCode?{1:"step1",2:"stepWatchVideo"}:{1:"step1",2:"step2SignIn",3:"stepWatchVideo"},v=e.joinCode?"".concat(e.shareLink,"?joinCode=").concat(e.joinCode):e.shareLink;return a.createElement(g.D.Provider,{value:le},a.createElement("div",null,a.createElement(k,{active:"qr-code",onClick:e.onClickTab}),a.createElement("div",{className:"d-block mx-auto ".concat("OCQzr")},a.createElement("div",{className:"container-fluid py-3 bg-light rounded-3 p-3"},a.createElement("div",{className:"row gy-4"},a.createElement("div",{className:"col-lg-7 col-12 d-flex flex-column justify-content-center"},a.createElement(f.t,null,Object.entries(p).map((function(e){var t,n,i=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return oe(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)?oe(e,t):void 0}}(t,n)||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.")}()),r=i[0],o=i[1];return a.createElement(f.t.Step,{number:r,key:r},a.createElement(g.x,{phrase:o}))}))),a.createElement("div",{className:"d-flex flex-column flex-md-row gap-2 mb-2"},a.createElement($.m,{variant:"outline-dark",className:"w-100",showSpinner:m.isPrinting,spinnerText:ce("printing"),onClick:function(){e.log&&e.log({type:"print-qr-code",entity:e.entity,flow:e.flow});var t=d;m.print({id:t,name:t})}},a.createElement(g.x,{phrase:"printButton"})),a.createElement($.m,{showSpinner:m.isDownloading,variant:"outline-dark",className:"w-100",onClick:function(){e.log&&e.log({type:"download-qr-code",entity:e.entity,flow:e.flow}),m.download({name:d})},spinnerText:ce("downloading")},a.createElement(g.x,{phrase:"downloadButton"}))),a.createElement(F.Button,{onClick:function(){e.log&&e.log({type:"request-full-screen",entity:e.entity,flow:e.flow,tab:"qr-code"}),u.requestFullScreen()},hideIcon:!0})),a.createElement("div",{className:"col-lg-5 col-12"},a.createElement(X,{size:"md",value:v,qrRef:m.ref})))))),a.createElement(F,{isFullScreen:u.isFullScreen,controlsRef:u.ref},a.createElement(re,{entity:e.entity,locationContext:l.LZ.AssignFlowView},a.createElement(re.QrDetails,{value:v}))))}},embed:{component:function(e){return a.createElement(g.D.Provider,{value:"assign.assignEmbed"},a.createElement("div",{className:"w-100"},a.createElement(k,{active:"embed",onClick:e.onClickTab}),a.createElement("div",{className:"container-fluid bg-light py-3 bg-light rounded-3 p-3"},a.createElement("div",{className:"row gy-4"},a.createElement("div",{className:"col-lg-5 col-12 d-flex flex-column justify-content-center"},e.joinCode?a.createElement(x,null):a.createElement(C,null)),a.createElement("div",{className:"col-lg-7 col-12 d-flex flex-column-reverse gap-3"},a.createElement(p.l,{analyticsOptions:{},embedUrl:e.embedUrl,entity:e.entity,entityId:e.entityId,entityType:e.entityType,liteUrl:e.liteUrl,shareId:e.shareId,hideLabel:!0,hasInputBg:!0,onCopy:function(t){e.log&&e.log({type:"copy-embed-html",embedDetails:t,flow:e.flow})}}))))))}},integrations:{component:function(e){return a.createElement(g.D.Provider,{value:"assign.assignIntegrations"},a.createElement("div",null,a.createElement(k,{active:"integrations",onClick:e.onClickTab}),a.createElement("div",{className:"container-fluid py-3 bg-light rounded-3 p-3"},a.createElement("div",{className:"row gy-4"},a.createElement("div",{className:"col-12 col-lg-5 d-flex flex-column justify-content-center"},e.joinCode?a.createElement(N,null):a.createElement(A,null)),a.createElement("div",{className:"col-12 col-lg-7"},a.createElement(S.g,{instanceRegion:e.instanceRegion,contactSupportLink:e.contactSupportLink}))))))}}},ye=ge(ge({},d.y.Open,"open-classroom"),d.y.Classroom,"existing-classroom");function he(e){var t,n,i,r,o=(i=a.useState(null!==(t=e.initialScreen)&&void 0!==t?t:"share-link"),r=2,function(e){if(Array.isArray(e))return e}(i)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(i,r)||function(e,t){if(e){if("string"==typeof e)return pe(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)?pe(e,t):void 0}}(i,r)||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.")}()),l=o[0],c=o[1],s=e.hideTitle||"overview"===l,m={entity:e.entity,onClickTab:c,entityId:e.entityId,entityType:e.entityType,liteUrl:e.liteUrl,instanceRegion:e.instanceRegion,joinCode:null===(n=e.sharePincode)||void 0===n?void 0:n.code,shareId:e.share.shareId,embedUrl:e.share.link.shortenedEmbedUrl,shareLink:e.share.link.shortenedUrl,contactSupportLink:e.contactSupportLink,flow:ye[e.share.type],log:e.log},u=ve[l].component,d=e.title||fe("title");return a.createElement("div",{className:"d-flex flex-column align-items-center justify-content-center py-3 gap-4"},!s&&a.createElement("h3",{className:"mb-0"},a.createElement("span",null,d)),a.createElement(u,Object.assign({},m)))}var be=n(83351),Ee=n(95890),we=n(85287),ke=n(7786),xe=r.T.encloseNamespace("assign.assignDetailsView");function Ce(e){var t,n,r,d=(0,Ee._)({entityType:e.entityType,objectId:e.objectId}),p=d.config,g=d.loaded,f=d.entity,v=d.currentUser,y=(0,ke.y)({data:{entity:{id:e.objectId,type:e.entityType}},analyticsOptions:{entity:l.py.Assign,location:l.LZ.Popup}}).log,h=o.a.useBasicFetch(s.o.getShare(e.shareId)),b=(null===(t=h.data)||void 0===t?void 0:t.privacy)===c.e.PinCode,E=o.a.useBasicFetch(b&&s.o.getPincodeByShareId(e.shareId)),w=e.initialDetailsScreen||"overview",k=we.z.getContactSupportUrl(null===(n=p.data)||void 0===n?void 0:n.marketingSiteUrl,null===(r=v.data)||void 0===r?void 0:r.instanceRegion),x=!g||e.loading||!h.data||b&&!E.data;return a.createElement(m.G,{size:"lg",showLoadingSpinner:x,closePopup:e.closePopup,bodyClassName:"d-flex flex-column gap-3",animation:e.animate,hideTitle:!0},a.createElement(he,{title:e.detailsTitle,entityId:e.objectId,entityType:e.entityType,share:h.data,sharePincode:E.data,entity:f.data,liteUrl:p.data.liteUrl,instanceRegion:v.data.instanceRegion,initialScreen:e.initialDetailsScreen||w,contactSupportLink:k,log:y}),a.createElement(be.P,{backButtonText:xe("backButtonText"),nextButtonText:xe("nextButtonText"),onClickBack:function(){y({type:"close-assign-popup",share:h.data},{workflowPhase:l.eu.Complete}),e.closePopup()},onClickNext:function(){var t=(0,u.pY)(h.data);t&&(y({type:"view-assignment",share:h.data}),i.C$.trigger(t),e.closePopup())},hideCreateClassroomButton:!0}))}},84891:(e,t,n)=>{n.d(t,{t:()=>v});var a=n(32735),i=n(59087),r=n.n(i),o=n(31453),l=n(83914),c=n(83345),s=n(35223);const m={orderedListWithBackground:"ezbBL",number:"hs0Fv",code:"h0c9p",large:"_leUV",success:"f_XNL"};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,i,r,o,l=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(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 d(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 p(e){var t;return a.createElement("div",{className:(0,o.A)(m.success,"col-12 position-absolute w-100 h-100 start-0 top-0","d-inline-flex align-items-center text-white justify-content-center text-truncate bg-success fs-3",e.show?"opacity-1":"opacity-0")},null!==(t=e.text)&&void 0!==t?t:a.createElement(c.x,{namespace:"shared.instructions",phrase:"copied"}))}var g={none:"mb-0",md:"mb-3",sm:"mb-2",lg:"mb-4"},f={none:"",sm:"gap-2",md:"gap-3",lg:"gap-4"};function v(e){return a.createElement("ol",{className:(0,o.A)("d-flex flex-column",g[e.bottomSpacing||"md"],f[e.spacing||"md"],m.orderedListWithBackground,e.className)},e.children)}v.Step=function(e){return a.createElement("li",{className:"d-flex align-items-center"},a.createElement("div",{className:"align-self-start"},a.createElement("span",{className:"".concat(m.number)},e.number)),a.createElement("div",{className:"w-100"},e.children))},v.Code=function(e){var t=u(a.useState(!1),2),n=t[0],i=t[1];return a.createElement(r(),{onCopy:function(){i(!0),setTimeout((function(){return i(!1)}),2e3)},text:e.code},a.createElement("div",{className:(0,o.A)("position-relative bg-white border rounded-3 text-center overflow-hidden fw-semibold cursor-pointer ".concat(m.code),"lg"===e.size&&"py-3 ".concat(m.large),"md"===e.size&&"py-2",e.className)},e.code,a.createElement(l.x,{svgName:s.vn.Copy,size:l.S.Large,className:"ms-2 svg-container d-inline-block lg align-middle"}),a.createElement(p,{show:n})))},v.Textbox=function(e){var t=u(a.useState(!1),2),n=t[0],i=t[1];function c(){e.showCopyButton&&(i(!0),"function"==typeof e.onCopy&&e.onCopy(),setTimeout((function(){return i(!1)}),2e3))}return a.createElement(r(),{onCopy:c,text:e.value},a.createElement("div",null,e.label&&a.createElement("h3",{className:"mb-3 text-center"},e.label),a.createElement("div",{className:(0,o.A)("bg-white border rounded-3 overflow-hidden px-4 py-3 text-truncate h5 mb-0","position-relative row align-items-center gx-2 gy-0",e.showCopyButton?"text-left cursor-pointer":"text-center",e.className)},a.createElement("div",{className:(0,o.A)(e.showCopyButton?"col-11":"col-12","text-truncate")},e.value),e.showCopyButton&&a.createElement("div",{className:"col-1"},a.createElement(l.x,{svgName:s.vn.Copy,size:l.S.Standard,className:"svg-container d-inline-block std",onClick:c})),e.showCopyButton&&a.createElement(p,{show:n}))))}}}]);
2
- //# sourceMappingURL=6509-23fdb20a4b-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/6509-23fdb20a4b-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/components/shared-object-image/shared-object-image.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-object-image/SharedObjectImage.tsx","file:///app/packages/libs/shared/src/components/divider/divider.scss","file:///app/packages/libs/shared/src/components/divider/Divider.tsx","file:///app/packages/libs/shared/src/components/thumbnails/collection/title/collection-thumbnail-title.scss","file:///app/packages/libs/shared/src/components/thumbnails/collection/title/CollectionThumbnailTitle.tsx","file:///app/packages/libs/shared/src/components/thumbnails/collection/collection-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/collection/CollectionThumbnail.tsx","file:///app/packages/libs/shared/src/utils/get-event-logger/getEventLogger.ts","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/integration-list/integration-list.scss","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/integration-list/IntegrationList.tsx","file:///app/packages/projects/lite/src/apps/assign/utils/AssignHelper.ts","file:///app/packages/projects/lite/src/apps/assign/utils/get-assign-event-logger/getAssignEventLogger.ts","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-details-tabs/AssignDetailsTabs.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-embed/AssignEmbed.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-integrations/AssignIntegrations.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-overview/AssignOverview.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-overview/assign-overview.scss","file:///app/packages/libs/shared/src/components/full-screen/FullScreen.tsx","file:///app/packages/libs/shared/src/components/full-screen/hooks/useFullScreenActions.ts","file:///app/packages/libs/shared/src/components/qr-code/QrCode.tsx","file:///app/packages/libs/shared/src/components/qr-code/qr-code.scss","file:///app/packages/libs/shared/src/components/qr-code/images/Base64ClickViewLogo.ts","file:///app/packages/libs/shared/src/components/qr-code/hooks/useQrCodeActions.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-full-screen/AssignFullScreen.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-qr-code/AssignQrCode.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-share-link/AssignShareLink.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/AssignDetails.tsx","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-share-link/assign-share-link.scss","file:///app/packages/projects/lite/src/apps/assign/components/assign-details/components/assign-qr-code/assign-qr-code.scss","file:///app/packages/projects/lite/src/apps/assign/views/assign-details-view/AssignDetailsView.tsx","file:///app/packages/projects/lite/src/shared/components/instructions/instructions.scss","file:///app/packages/projects/lite/src/shared/components/instructions/Instructions.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"thumbnailFallbackSvg\":\"D4JFs\",\"posterFallbackSvg\":\"bjUWl\",\"coverFallbackSvg\":\"kdLpt\",\"thumbnailContainer\":\"d3CKN\",\"insightsMask\":\"KM76U\",\"requireMarking\":\"peLH7\",\"badge\":\"mVu0E\",\"bar\":\"zO3MS\",\"a\":\"K1jW5\",\"expandBar\":\"YITJl\",\"b\":\"tCpLF\",\"c\":\"lC0cq\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CollectionThumbnail } from 'libs/shared/components/thumbnails/collection/CollectionThumbnail';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { BaseObject, Image, Playlist, Series } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './shared-object-image.scss';\n\nconst namespace = 'shared.sharedObjectImage';\n\nconst BASE_IMAGE_CLASS_NAME = 'rounded overflow-hidden';\n\ninterface ImageProps {\n image: Image;\n imageType: ImageType;\n imageClassName?: string;\n imageFallbackComponent: JSX.Element;\n}\n\nfunction getImageProps(object: BaseObject): ImageProps {\n const image = ImageHelper.getDisplayImageFromObject(object);\n\n if (VideoHelper.isVideoType(object))\n return {\n image,\n imageType: ImageType.Thumbnails,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: <ImageFallback type={ImageFallbackType.Video} />\n };\n\n switch (object.typeId) {\n case MasterType.Series:\n return {\n image,\n imageType: ImageType.TallPosters,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent:\n <ImageFallback type={ImageFallbackType.Series} svgContainerClassName={styles.posterFallbackSvg} />\n };\n\n case MasterType.Playlist:\n return {\n image,\n imageType: ImageType.Covers,\n imageClassName: !image?.url\n ? `${BASE_IMAGE_CLASS_NAME} ${getBgColorClass(object.name, BG_COLOUR_CLASS_NAMES)}`\n : BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: (\n <ImageFallback\n type={ImageFallbackType.Playlist}\n svgContainerClassName={image?.url ? styles.coverFallbackSvg : 'd-none'}\n extraClasses={!image?.url && 'bg-transparent'}\n />\n )\n };\n }\n}\n\nfunction InsightsMask() {\n return (\n <div className={`d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center`}>\n <div className='position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3'></div>\n <div className='d-flex align-items-end gap-2 h-50 z-1'>\n <div className='d-flex align-items-end h-50'>\n <div className={`${styles.bar} ${styles.a} rounded shadow`}></div>\n </div>\n <div className='d-flex align-items-end h-75'>\n <div className={`${styles.bar} ${styles.b} rounded shadow`}></div>\n </div>\n <div className='d-flex align-items-end h-100'>\n <div className={`${styles.bar} ${styles.c} rounded shadow`}></div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction getImageRatio(object: BaseObject): ImageFallbackType {\n if (VideoHelper.isVideoType(object))\n return 16 / 9;\n\n if (object.typeId === MasterType.Playlist)\n return 1;\n\n if (object.typeId === MasterType.Series)\n return 9 / 16;\n}\n\nSharedObjectImage.defaultProps = {\n imageOptions: { size: ImageSize.Small }\n};\n\ninterface SharedObjectImageProps {\n object: BaseObject;\n locationContext: LocationContext;\n appLink?: Core.AppLink;\n showVideoMetadata?: boolean;\n fixedHeight?: boolean;\n requireMarking?: number;\n imageOptions?: ImageOptions;\n showInsightsMask?: boolean;\n showCollectionMask?: boolean;\n showVideoCount?: boolean;\n thumbnailSize?: 'sm' | 'md';\n imageClassName?: string;\n hideBottomBar?: boolean;\n}\n\nexport function SharedObjectImage(props: SharedObjectImageProps): JSX.Element {\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (!el || !props.fixedHeight)\n return;\n\n el.style.width = `${el.offsetHeight * getImageRatio(props.object)}px`;\n }, []);\n\n const useVideoThumbnail = VideoHelper.isVideoType(props.object);\n\n const {\n image,\n imageType,\n imageClassName,\n imageFallbackComponent\n } = getImageProps(props.object);\n\n const thumbnailMetadata = !props.showVideoMetadata ? {\n hideDuration: true,\n hideMask: true,\n hideRating: true,\n hideVideoBadgeType: true,\n hideBottomBar: true\n } : {\n hideBottomBar: props.hideBottomBar\n };\n\n return (\n <div className='d-flex align-items-center justify-content-center w-100 h-100'>\n <div ref={ref} className={props.fixedHeight ? 'h-100' : 'w-100'}>\n {useVideoThumbnail &&\n <div className={`${styles.thumbnailContainer} position-relative`}>\n {props.showInsightsMask && <InsightsMask />}\n <AppLink appLink={props.appLink}>\n <VideoThumbnail\n video={props.object}\n size={props.thumbnailSize}\n imageOptions={props.imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n imageClassName={props.imageClassName}\n {...thumbnailMetadata}\n />\n </AppLink>\n {!!props.requireMarking && (\n <div className={`${props.showInsightsMask && styles.requireMarking} position-absolute bottom-0 end-0 z-1 m-2`}>\n <div className={`${styles.badge} d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2`}>\n <Text namespace={namespace} phrase='requireMarking' options={{ smartCount: props.requireMarking }} />\n </div>\n </div>\n )}\n </div>\n }\n {!useVideoThumbnail &&\n <>\n {'videos' in (props.object as Playlist | Series) ? (\n <CollectionThumbnail\n collection={props.object}\n imageOptions={props.imageOptions}\n appLink={props.appLink}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n showMask={props.showCollectionMask}\n showVideoCount={props.showVideoCount}\n />\n ) : (\n <BaseImage\n data={image?.url}\n imageType={imageType}\n imageOptions={props.imageOptions}\n appLink={props.appLink}\n className={imageClassName}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n >\n {imageFallbackComponent}\n </BaseImage>\n )}\n </>\n }\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"divider\":\"rpkqv\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport styles from './divider.scss';\n\nconst namespace = 'shared.divider';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface DividerProps {\n text?: string;\n noUpperCase?: boolean;\n className?: string;\n}\n\ninterface DividerCSSProperties extends React.CSSProperties {\n '--divider-content'?: string;\n '--divider-text-transform'?: React.CSSProperties['textTransform'];\n}\n\nfunction buildStyle(props: DividerProps) {\n const content = props.text || getPhrase('or');\n \n const style: DividerCSSProperties = {\n '--divider-content': `'${content}'`,\n '--divider-text-transform': props.noUpperCase ? 'none' : 'uppercase'\n };\n\n return style;\n}\n\nexport function Divider(props: DividerProps): JSX.Element {\n return <div className={classNames('my-2 w-100 border-bottom position-relative', styles.divider, props.className)} style={buildStyle(props)}></div>;\n}","// extracted by mini-css-extract-plugin\nexport default {\"thumbnailTitle\":\"OsWjL\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './collection-thumbnail-title.scss';\n\ninterface BaseCollectionThumbnailTitleProps {\n title: string;\n}\n\nfunction BaseCollectionThumbnailTitle(props: BaseCollectionThumbnailTitleProps): JSX.Element {\n return (\n <h3 title={props.title} className='h6'>{props.title}</h3>\n );\n}\n\ninterface CollectionThumbnailTitleProps extends BaseCollectionThumbnailTitleProps {\n appLink: Core.AppLink;\n}\n\nexport function CollectionThumbnailTitle(props: CollectionThumbnailTitleProps) {\n if (!props.appLink) {\n return (\n <BaseCollectionThumbnailTitle {...props} />\n );\n }\n \n return (\n <AppLink appLink={props.appLink} className={`${styles.thumbnailTitle}`}>\n <BaseCollectionThumbnailTitle {...props} />\n </AppLink>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"badge\":\"M4zat\",\"mask\":\"r0Ztg\",\"thumbnailContainer\":\"uD9dz\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CollectionThumbnailTitle } from 'libs/shared/components/thumbnails/collection/title/CollectionThumbnailTitle';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Playlist, Series } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './collection-thumbnail.scss';\n\nconst namespace = 'shared.collectionThumbnail';\n\ntype SupportedContentType = Playlist | Series;\n\ninterface CollectionThumbnailProps {\n appLink?: Core.AppLink\n collection: SupportedContentType;\n imageOptions?: ImageOptions;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showMask?: boolean;\n showVideoCount?: boolean;\n title?: string;\n titleAppLink?: Core.AppLink;\n subText?: string;\n subTextAppLink?: Core.AppLink;\n hoverText?: string;\n}\n\nexport function CollectionThumbnail(props: CollectionThumbnailProps) {\n function getFirstVideo() {\n let collectionVideos = props.collection?.videos;\n\n if (!collectionVideos)\n return;\n\n if (!collectionVideos.count && props.collection.typeId === MasterType.Playlist) {\n const playlist = props.collection as Playlist;\n\n if (playlist.clips.count)\n collectionVideos = playlist.clips;\n\n if (playlist.interactives.count)\n collectionVideos = playlist.interactives;\n }\n\n return ArrayHelper.first(collectionVideos.data);\n }\n\n function getVideoCount() {\n let totalCount = 0;\n\n if (props.collection.videos && props.collection.videos.count) {\n totalCount += props.collection.videos.count;\n }\n\n if (props.collection.typeId === MasterType.Playlist) {\n const playlist = props.collection as Playlist;\n\n if (playlist.interactives?.count)\n totalCount += playlist.interactives.count;\n\n if (playlist.clips?.count)\n totalCount += playlist.clips.count;\n }\n\n return totalCount;\n }\n\n function getEntityType(collection: SupportedContentType) {\n if (MasterTypeHelper.isType<Playlist>(collection, MasterType.Playlist)) {\n return EntityType.Playlist;\n }\n\n if (MasterTypeHelper.isType<Series>(collection, MasterType.Series)) {\n return EntityType.Series;\n }\n }\n\n const firstVideo = getFirstVideo();\n const videoCount = getVideoCount();\n const showTexts = props.title?.length || props.subText?.length;\n\n const analyticsData = {\n id: props.collection.id.toString(),\n name: props.collection.name,\n\n ...props.analyticsData\n };\n\n const analyticsOptions = {\n actionType: UserAction.Click,\n entity: getEntityType(props.collection),\n \n ...props.analyticsOptions\n };\n\n return (\n <div>\n <div className={`position-relative ${styles.thumbnailContainer} z-1`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n preventFocus\n >\n {props.showMask &&\n <div className={`${styles.mask} position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none`}>\n <div className={`${styles.badge} d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2`}>\n <SvgContainer svgName={cvSvgLibrary.Play} className='svg-container text-white' />\n <p className='d-inline fw-medium text-white mb-0'>\n {props.hoverText?.length ?\n <span>{props.hoverText}</span> :\n <Text namespace={namespace} phrase='playAll' />\n }\n </p>\n </div>\n </div>\n }\n\n {firstVideo &&\n <VideoThumbnail\n video={firstVideo}\n imageOptions={props.imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n hideRating\n hideDuration\n hideVideoTypeBadge\n />\n }\n\n {!firstVideo &&\n <div className='ratio ratio-16x9 bg-light rounded-3'>\n <div className='d-flex justify-content-center align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.Play} className='w-33 opacity-25 text-gray-400' />\n </div>\n </div>\n }\n\n {props.showVideoCount &&\n <div className={`${styles.badge} d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2`}>\n <SvgContainer svgName={cvSvgLibrary.Series} className='svg-container text-white me-1' />\n <p className='d-inline fw-semibold text-white mb-0'>\n <Text namespace={namespace} phrase='videos' options={{ count: videoCount, smartCount: videoCount }} />\n </p>\n </div>\n }\n </AppLink>\n\n </div>\n \n {showTexts &&\n <div className='mt-2 d-flex flex-column'>\n {props.subText &&\n <TitleSubText title={props.subText} appLink={props.subTextAppLink}>\n {props.subText}\n </TitleSubText>\n }\n {props.title &&\n <CollectionThumbnailTitle\n title={props.collection.name}\n appLink={props.titleAppLink}\n />\n }\n </div>\n }\n </div>\n );\n}","import { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\n/**\n * Base type that every event needs to extend from\n */\nexport interface BaseEventLogData<T extends string = string> {\n type: T;\n}\n\n/**\n * Utility type to map event types to config types\n */\nexport type EventLogConfig<TEvents extends BaseEventLogData> = {\n [K in TEvents['type']]: BaseConfigData<Extract<TEvents, { type: K }>>;\n};\n\ninterface BaseConfigData<T extends BaseEventLogData> {\n isValid?: (data: T) => boolean;\n analyticsOptions: AnalyticsOptions;\n}\n\ninterface GetEventLoggerOptions<TData extends HashObject, TEvents extends BaseEventLogData> {\n baseData: TData;\n /**\n * Event type config map\n */\n config: EventLogConfig<TEvents>;\n /**\n * Base analytics options\n */\n analyticsOptions: AnalyticsOptions;\n\n shouldLog?: boolean;\n}\n\n/**\n * Method build and log events which are typed using map\n * passed in from config\n */\nexport function getEventLogger<\n TData extends HashObject = HashObject,\n TEvents extends BaseEventLogData = BaseEventLogData\n>(\n options: GetEventLoggerOptions<TData, TEvents>\n) {\n /**\n * Types to assist hinting in our log / getData methods\n */\n type EventType = TEvents['type']; // type of event\n type EventData = Extract<TEvents, { type: EventType }>; // restrict the data to the passed type\n \n /**\n * Get analytics data and options for a given event type\n */\n function getData(\n data: EventData,\n logAnalyticsOptions?: AnalyticsOptions\n ) {\n const logDataConfig = options.config[data.type];\n\n if (!logDataConfig?.isValid(data))\n return;\n\n const mergedData = {\n ...options.baseData,\n ...data\n };\n \n const sanitizedData = ObjectHelper.omit<typeof data>(mergedData, ['type']);\n\n const analyticsOptions = AnalyticsHelper.mergeOptions(\n logDataConfig.analyticsOptions,\n [\n options.analyticsOptions,\n logAnalyticsOptions\n ]\n );\n\n return {\n data: sanitizedData,\n analyticsOptions\n };\n }\n\n /**\n * Similar to `getData` except it logs the analytics event\n * for a given type if its valid\n */\n function log(\n data: EventData,\n logAnalyticsOptions?: AnalyticsOptions\n ) {\n if (!options.shouldLog)\n return;\n\n const analytics = getData(data, logAnalyticsOptions);\n\n if (!analytics)\n return;\n\n AnalyticsHelper.logUserAction(analytics.data, analytics.analyticsOptions);\n }\n\n return {\n getData,\n log\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"integrationIcon\":\"_cwyZ\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { ExternalLink } from 'libs/shared/components/external-link/ExternalLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport integrationsList from './integration-list.json';\n\nimport styles from './integration-list.scss';\n\nconst namespace = 'assign.integrationList';\ninterface IntegrationListProps {\n instanceRegion?: InstanceRegion;\n itemClassName?: string;\n maxHeight?: string | number;\n contactSupportLink: string;\n hideSupportLink?: boolean;\n}\n\nexport function IntegrationList(props: IntegrationListProps): JSX.Element {\n const integrations = integrationsList.filter(item => {\n let valid = !!item.icon && !!item.link;\n\n if (props.instanceRegion && item.instanceRegions.length)\n valid = item.instanceRegions.includes(props.instanceRegion);\n\n return valid;\n });\n \n return (\n <div className='bg-white rounded-3'>\n <Scrollbars autoHeight autoHeightMax={props.maxHeight || 308}>\n <div className='container-fluid py-3'>\n <div className='row mx-0 px-2'>\n {integrations.map((integration, index) => (\n <div className={classNames('col-6 mb-2', props.itemClassName)} key={index}>\n <a\n href={integration.link}\n className='d-flex align-items-center border rounded-1 p-2 text-decoration-none hover-bg-light-blue fw-medium'\n target='_blank'\n rel='noopener noreferrer'\n >\n <span\n className={`d-block ${styles.integrationIcon}`}\n style={{ backgroundImage: `url(${integration.icon})` }}\n />\n <span className='text-center flex-grow-1'>{integration.name}</span>\n </a>\n </div>\n ))}\n\n {!props.hideSupportLink &&\n <div className='col-12 text-center'>\n <ExternalLink href={props.contactSupportLink} className='btn btn-link text-info p-0' newTab>\n <Text namespace={namespace} phrase='cantFindIntegration' />\n </ExternalLink>\n </div>\n }\n </div>\n </div>\n </Scrollbars>\n </div>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { BaseObject, ClassroomGroup, User } from 'libs/shared/interfaces';\n\nexport const AssignHelper = {\n getRecipients(entities: ClassroomGroup[] | User[]): string[] {\n if (!entities.length)\n return [];\n \n return entities.map(e => e.id);\n },\n \n getLearnersForGroups(groups: ClassroomGroup[]): User[] {\n const learners = groups.reduce<User[]>((prev, curr) => ([\n ...prev, ...(curr.users.data ?? [])\n ]), []);\n\n return ArrayHelper.uniq(learners, 'id');\n },\n\n getSelectedEntities<T extends BaseObject>(selectedEntities: T[], entity: T): T[] {\n const selected = selectedEntities.find(e => e.id?.toString() === entity.id?.toString());\n\n if (selected)\n return selectedEntities.filter(e => e.id?.toString() !== entity.id?.toString());\n\n return [ ...selectedEntities, entity ];\n },\n\n getContactSupportUrl(marketingUrl: string, instanceRegion: InstanceRegion): string {\n if (!marketingUrl || !instanceRegion)\n return;\n \n let path = '/contact-us/support'; // new websites\n\n if (instanceRegion === InstanceRegion.NZ) {\n path = '/contact-us/';\n }\n \n return UrlHelper.safeUrlConcat(marketingUrl, path);\n }\n};","import { AnalyticsOptions, AssignDescriptors, EntityType, ShareDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EventLogConfig, getEventLogger } from 'libs/shared/utils/get-event-logger/getEventLogger';\n\nimport { AssignLogData, BaseAssignData } from './interfaces/GetAssignEventLogger';\n\nexport type AssignLogFn = ReturnType<typeof getAssignEventLogger>['log'];\n\n// #region Validation Methods\nfunction isValidShare(data: AssignLogData): boolean {\n if (!('share' in data))\n return false;\n\n return !!data.share;\n}\n// #endregion\n\n// #region Config \nconst LogDataConfig: EventLogConfig<AssignLogData> = {\n /**\n * Share - Assign\n */\n 'create-existing-classroom': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Assign,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: AssignDescriptors.ExistingClassroom\n }\n },\n 'create-open-classroom': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Assign,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: AssignDescriptors.OpenClassroom\n }\n },\n 'view-assignment': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Assign,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: AssignDescriptors.ViewAssignment\n }\n },\n 'select-existing-classroom-flow': {\n isValid: () => true,\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Start,\n descriptor: AssignDescriptors.ExistingClassroom,\n entity: EntityType.Assign\n }\n },\n 'select-open-classroom-flow': {\n isValid: () => true,\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Start,\n descriptor: AssignDescriptors.OpenClassroom,\n entity: EntityType.Assign\n }\n },\n 'view-previous-assignment': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Discard,\n entity: EntityType.Assign,\n descriptor: AssignDescriptors.ViewPreviousAssignment\n }\n },\n 'close-assign-popup': {\n isValid: () => true,\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Discard, // Usually discarded unless called form 'assign-details' step\n entity: EntityType.Assign,\n descriptor: AssignDescriptors.ClosePopup\n }\n },\n 'create-new-classroom': {\n isValid: data => !!data.classroom,\n analyticsOptions: {\n actionType: UserAction.Create,\n workflowPhase: WorkflowPhase.Next,\n descriptor: AssignDescriptors.CreateClassroom,\n entity: EntityType.Assign\n }\n },\n 'select-narrow-selection': {\n isValid: data => !!data.classroom,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Assign,\n workflowPhase: WorkflowPhase.Next,\n descriptor: AssignDescriptors.NarrowSelection\n }\n },\n\n /**\n * General\n */\n 'copy-embed-html': {\n isValid: () => true,\n analyticsOptions: {\n actionType: UserAction.Share,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.Assign, // default\n descriptor: ShareDescriptors.CopyEmbedHtml\n }\n },\n 'copy-share-link': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Share,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.Assign, // default\n descriptor: ShareDescriptors.CopyLink\n }\n },\n 'print-qr-code': {\n isValid: () => true,\n analyticsOptions: {\n actionType: UserAction.Print,\n entity: EntityType.Assign, // default\n workflowPhase: WorkflowPhase.Complete,\n descriptor: AssignDescriptors.PrintQrCode\n }\n },\n 'download-qr-code': {\n isValid: () => true,\n analyticsOptions: {\n actionType: UserAction.Download,\n entity: EntityType.Assign, // default\n workflowPhase: WorkflowPhase.Complete,\n descriptor: AssignDescriptors.DownloadQrCode\n }\n },\n 'request-full-screen': {\n isValid: () => true,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Assign, // default\n workflowPhase: WorkflowPhase.Complete,\n descriptor: AssignDescriptors.FullScreen\n }\n }\n};\n\n// #endregion\n\n// #region Implementation\ninterface AssignEventLoggerOptions {\n data: BaseAssignData;\n analyticsOptions: AnalyticsOptions;\n shouldLog?: boolean;\n}\n\nexport function getAssignEventLogger(options: AssignEventLoggerOptions) {\n const { getData, log } = getEventLogger({\n analyticsOptions: options.analyticsOptions,\n baseData: options.data,\n config: LogDataConfig,\n shouldLog: options.shouldLog ?? true\n });\n\n return {\n log,\n getData\n };\n}\n// #endregion","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { ShareIntegrationsStack } from 'libs/shared/apps/share/views/share/components/share-integrations/ShareIntegrationsStack';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\n\nconst namespace = 'assign.assignDetailsTabs';\n\ninterface TabItemProps {\n tab: AssignDetailsTab;\n active: AssignDetailsTab;\n onClick: (tab: AssignDetailsTab) => void;\n}\n\nfunction TabItem(props: React.PropsWithChildren<TabItemProps>): JSX.Element {\n const active = props.tab === props.active;\n\n return (\n <button\n className={classNames(\n 'rounded-pill d-flex align-items-center gap-1 ps-1',\n active ? 'bg-dark text-white' : 'bg-light'\n )}\n onClick={() => props.onClick(props.tab)}\n >\n {props.children}\n </button>\n );\n}\n\nexport type AssignDetailsTab = 'overview' | 'share-link' | 'qr-code' | 'embed' | 'integrations';\n\ninterface AssingDetailsTabsProps {\n active: AssignDetailsTab;\n onClick: (screen: AssignDetailsTab) => void;\n}\n\nexport function AssingDetailsTabs(props: AssingDetailsTabsProps): JSX.Element {\n return (\n <div className='d-flex justify-content-center mb-3 gap-3 flex-wrap'>\n <TabItem tab='share-link' {...props}>\n <SvgContainer svgName={cvSvgLibrary.Link} />\n <Text namespace={namespace} phrase='shareLink' />\n </TabItem>\n <TabItem tab='qr-code' {...props}>\n <SvgContainer svgName={cvSvgLibrary.QrCode} />\n <Text namespace={namespace} phrase='qrCode' />\n </TabItem>\n <TabItem tab='embed' {...props}>\n <SvgContainer svgName={cvSvgLibrary.Code} />\n <Text namespace={namespace} phrase='embed' />\n </TabItem>\n <TabItem tab='integrations' {...props}>\n <ShareIntegrationsStack size='sm' noTooltip />\n <Text namespace={namespace} phrase='integrations' />\n </TabItem>\n </div>\n );\n}\n","import React from 'react';\n\nimport { EmbedDetails } from 'libs/shared/apps/share/components/copy-embed-html/CopyEmbedHtml';\nimport { CopyEmbedHtml } from 'libs/shared/apps/share-v2/components/copy-embed-html/CopyEmbedHtml';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { Instructions } from 'shared/components/instructions/Instructions';\n\nimport { AssignDetailsTab, AssingDetailsTabs } from 'apps/assign/components/assign-details/components/assign-details-tabs/AssignDetailsTabs';\nimport { AssignLogFn } from 'apps/assign/utils/get-assign-event-logger/getAssignEventLogger';\n\nimport { AssignDetailsFlow } from '../../AssignDetails';\n\nconst namespace = 'assign.assignEmbed';\n\nexport interface AssignEmbedProps {\n entity: BaseObject;\n entityId: string;\n entityType: SharableEntityType;\n embedUrl: string;\n liteUrl: string;\n shareId: string;\n joinCode?: string;\n onClickTab: (tab: AssignDetailsTab) => void;\n flow?: AssignDetailsFlow;\n log?: AssignLogFn;\n}\n\nfunction JoinCodeInstructions() {\n return (\n <Instructions>\n <Instructions.Step number={1}>\n <Text phrase='step1' />\n </Instructions.Step>\n <Instructions.Step number={2}>\n <Text phrase='endStep' />\n </Instructions.Step>\n </Instructions>\n );\n}\n\nfunction SignInInstruction() {\n return (\n <Instructions>\n <Instructions.Step number={1}>\n <Text phrase='step1' />\n </Instructions.Step>\n <Instructions.Step number={2}>\n <Text phrase='step2SignIn' />\n </Instructions.Step>\n <Instructions.Step number={3}>\n <Text phrase='endStep' />\n </Instructions.Step>\n </Instructions>\n );\n}\n\nexport function AssignEmbed(props: AssignEmbedProps): JSX.Element {\n function onCopyLogEvent(embedDetails: EmbedDetails) {\n props.log && props.log({\n type: 'copy-embed-html',\n embedDetails,\n flow: props.flow\n });\n }\n \n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='w-100'>\n <AssingDetailsTabs active='embed' onClick={props.onClickTab} />\n <div className='container-fluid bg-light py-3 bg-light rounded-3 p-3'>\n <div className='row gy-4'>\n <div className='col-lg-5 col-12 d-flex flex-column justify-content-center'>\n {props.joinCode ?\n <JoinCodeInstructions /> :\n <SignInInstruction />\n }\n </div>\n <div className='col-lg-7 col-12 d-flex flex-column-reverse gap-3'>\n <CopyEmbedHtml\n analyticsOptions={{}}\n embedUrl={props.embedUrl}\n entity={props.entity}\n entityId={props.entityId}\n entityType={props.entityType}\n liteUrl={props.liteUrl}\n shareId={props.shareId}\n hideLabel\n hasInputBg\n onCopy={onCopyLogEvent}\n />\n </div>\n </div>\n </div>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { Instructions } from 'shared/components/instructions/Instructions';\n\nimport { AssignDetailsTab, AssingDetailsTabs } from 'apps/assign/components/assign-details/components/assign-details-tabs/AssignDetailsTabs';\n\nimport { IntegrationList } from '../integration-list/IntegrationList';\n\nconst namespace = 'assign.assignIntegrations';\n\nexport interface AssignIntegrationsProps {\n entity: BaseObject;\n joinCode?: string;\n instanceRegion: InstanceRegion;\n contactSupportLink: string;\n onClickTab: (tab: AssignDetailsTab) => void;\n}\n\nfunction JoinCodeInstructions() {\n return (\n <Instructions>\n <Instructions.Step number={1}>\n <Text phrase='step1JoinCode' />\n </Instructions.Step>\n <Instructions.Step number={2}>\n <Text phrase='step2JoinCode' />\n </Instructions.Step>\n <Instructions.Step number={3}>\n <Text phrase='step4' />\n </Instructions.Step>\n </Instructions>\n );\n}\n\nfunction SignInInstructions() {\n return (\n <Instructions>\n <Instructions.Step number={1}>\n <Text phrase='step1SignIn' />\n </Instructions.Step>\n <Instructions.Step number={2}>\n <Text phrase='step2SignIn' />\n </Instructions.Step>\n <Instructions.Step number={3}>\n <Text phrase='step3SignIn' />\n </Instructions.Step>\n <Instructions.Step number={4}>\n <Text phrase='step4' />\n </Instructions.Step>\n </Instructions>\n );\n}\n\nexport function AssignIntegrations(props: AssignIntegrationsProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div>\n <AssingDetailsTabs active='integrations' onClick={props.onClickTab} />\n <div className='container-fluid py-3 bg-light rounded-3 p-3'>\n <div className='row gy-4'>\n <div className='col-12 col-lg-5 d-flex flex-column justify-content-center'>\n {!props.joinCode ?\n <JoinCodeInstructions /> :\n <SignInInstructions />\n }\n </div>\n <div className='col-12 col-lg-7'>\n <IntegrationList instanceRegion={props.instanceRegion} contactSupportLink={props.contactSupportLink} />\n </div>\n </div>\n </div>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { ShareIntegrationsStack } from 'libs/shared/apps/share/views/share/components/share-integrations/ShareIntegrationsStack';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { Divider } from 'libs/shared/components/divider/Divider';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { AssignDetailsTab } from '../assign-details-tabs/AssignDetailsTabs';\n\nimport styles from './assign-overview.scss';\n\nconst namespace = 'assign.assignOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ShareLinkOptionProps {\n screen: AssignDetailsTab;\n onClick: (screen: AssignDetailsTab) => void;\n}\n\nfunction ShareLinkOption(props: React.PropsWithChildren<ShareLinkOptionProps>): JSX.Element {\n return (\n <button\n className={classNames(\n 'rounded ratio ratio-1x1 border border-light hover-bg-light-blue',\n styles.shareButton\n )}\n onClick={() => props.onClick(props.screen)}\n >\n <div className='d-flex flex-column align-items-center justify-content-center gap-1 p-2 '>\n {props.children}\n </div>\n </button>\n );\n}\n\ninterface AssignOverviewImageProps {\n entity: SharableEntity;\n}\n\nfunction AssignOverviewImage(props: AssignOverviewImageProps): JSX.Element {\n return (\n <div className={classNames('d-flex align-items-center justify-content-center', styles.overviewImage)}>\n <figure\n style={{ backgroundImage: `url(${ImageUrls.Assign.ASSIGN_DETAILS.OVERVIEW_TEXT})` }}\n className={classNames('m-0', styles.text)}\n />\n <figure\n style={{ backgroundImage: `url(${ImageUrls.Assign.ASSIGN_DETAILS.OVERVIEW_BG})` }}\n className={classNames('position-relative m-0', styles.background)}\n >\n <div className={classNames('position-absolute', styles.entity)}>\n <SharedObjectImage\n object={props.entity}\n locationContext={LocationContext.AssignFlowView}\n thumbnailSize='md'\n />\n </div>\n </figure>\n </div>\n );\n}\n\nexport interface AssignOverviewProps {\n entity: SharableEntity;\n onClickTab: (screen: AssignDetailsTab) => void;\n}\n\nexport function AssignOverview(props: AssignOverviewProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className={classNames('mx-auto', styles.wrapper)}>\n <div className='d-flex flex-column align-items-center text-center mb-4 gap-3'>\n\n <AssignOverviewImage entity={props.entity} />\n\n <h3 className='m-0 d-flex flex-column flex-md-row align-items-center gap-2'>\n <SvgContainer svgName={cvSvgLibrary.Check} className={classNames('d-inline-block svg-container md bg-green rounded-circle text-white')}/>\n <Text phrase='title' />\n </h3>\n <p className='m-0'>\n <Text phrase='description' />\n </p>\n </div>\n \n <Divider text={getPhrase('dividerText')} className='mb-4' noUpperCase />\n\n <div className='d-flex justify-content-center gap-3 flex-wrap'>\n <ShareLinkOption screen='share-link' onClick={props.onClickTab}>\n <SvgContainer svgName={cvSvgLibrary.Link} />\n <Text phrase='shareLink' />\n </ShareLinkOption>\n <ShareLinkOption screen='qr-code' onClick={props.onClickTab}>\n <SvgContainer svgName={cvSvgLibrary.QrCode} />\n <Text phrase='qrCode' />\n </ShareLinkOption>\n <ShareLinkOption screen='embed' onClick={props.onClickTab}>\n <SvgContainer svgName={cvSvgLibrary.Code} />\n <Text phrase='embed' />\n </ShareLinkOption>\n <ShareLinkOption screen='integrations' onClick={props.onClickTab}>\n <span className={classNames('d-inline-flex align-items-center', styles.integrations)}>\n <ShareIntegrationsStack size='sm' noTooltip />\n </span>\n <Text phrase='integrations' />\n </ShareLinkOption>\n </div>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"QB4Pm\",\"shareButton\":\"r9K_x\",\"integrations\":\"tTimT\",\"overviewImage\":\"McyhP\",\"text\":\"u6Z4r\",\"background\":\"RtZpT\",\"entity\":\"m6eZK\"};","import React from 'react';\nimport { Button, ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Text } from '../text/Text';\n\nconst namespace = 'shared.fullScreen';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\ninterface FullScreenButtonProps {\n variant?: ButtonProps['variant'];\n text?: string;\n hideIcon?: boolean;\n onClick: () => void;\n}\n\nfunction FsButton(props: FullScreenButtonProps) {\n if (!document.fullscreenEnabled)\n return <></>;\n\n const buttonText = props.text || getPhrase('buttonText');\n \n return (\n <div className='w-100 text-center'>\n <Button variant={props.variant || 'link'} className='d-inline-flex justify-content-center text-info p-0' onClick={props.onClick}>\n <span>{buttonText}</span>\n {!props.hideIcon &&\n <SvgContainer svgName={cvSvgLibrary.NewWindow} />\n }\n </Button>\n </div>\n );\n}\n\ninterface FullScreenProps {\n isFullScreen: boolean;\n controlsRef: React.MutableRefObject<HTMLDivElement>;\n}\n\nexport function FullScreen(props: React.PropsWithChildren<FullScreenProps>) {\n if (!document.fullscreenEnabled)\n return <></>;\n \n function exitFullScreen() {\n document.exitFullscreen();\n }\n \n return (\n <div className={classNames('vw-100 vh-100 bg-white', !props.isFullScreen && 'd-none')} ref={props.controlsRef}>\n <div className='position-absolute top-0 end-0 pe-4 pt-4 z-1'>\n <Button variant='outline-dark' className='d-inline-flex align-items-center gap-1' onClick={exitFullScreen}>\n <Text namespace={namespace} phrase='exitFullScreen' />\n <SvgContainer svgName={cvSvgLibrary.Close} />\n </Button>\n </div>\n {props.children}\n </div>\n );\n}\n\nFullScreen.Button = FsButton;","import React from 'react';\n\nfunction handleFullScreenChange<T extends HTMLElement>(target: T, setIsFullScreen: (fullscreen: boolean) => void) {\n if (document.fullscreenElement === target) {\n setIsFullScreen(true);\n return;\n }\n\n setIsFullScreen(false);\n}\n\nexport function useFullScreenActions<T extends HTMLElement = HTMLDivElement>() {\n const ref = React.useRef<T>(null);\n \n const [ isFullScreen, setIsFullScreen ] = React.useState(false);\n\n const isSupported = document.fullscreenEnabled;\n\n React.useEffect(() => {\n if (!ref.current)\n return;\n\n const onFullScreenChange = () => {\n handleFullScreenChange(ref.current, setIsFullScreen);\n };\n\n ref.current?.addEventListener('fullscreenchange', onFullScreenChange);\n\n return () => ref.current?.removeEventListener('fullscreenchange', onFullScreenChange);\n }, [ref.current]);\n \n function requestFullScreen() {\n if (!ref.current || !isSupported)\n return;\n\n ref.current.requestFullscreen && ref.current.requestFullscreen();\n }\n\n function exitFullScreen() {\n document.exitFullscreen().finally(() => {\n setIsFullScreen(false);\n });\n }\n \n return {\n ref,\n isFullScreen,\n isSupported,\n requestFullScreen,\n exitFullScreen\n };\n}","import React from 'react';\nimport { QRCode } from 'react-qrcode-logo';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { Base64ClickViewLogo } from './images/Base64ClickViewLogo';\n\nimport styles from './qr-code.scss';\n\nexport type QrCodeSizePreset = 'sm' | 'md' | 'lg';\ntype QrCodeSizeCustom = 'custom';\ntype QrCodeSize = QrCodeSizePreset | QrCodeSizeCustom;\n\ninterface BaseQrCodeProps {\n id?: string;\n size: QrCodeSize;\n value: string;\n containerClassName?: string;\n qrRef?: React.MutableRefObject<QRCode>;\n}\n\ninterface DefaultQrCodeProps extends BaseQrCodeProps {\n size: QrCodeSizePreset;\n}\n\ninterface CustomQrCodeProps extends BaseQrCodeProps {\n size: QrCodeSizeCustom;\n customSize: number;\n}\n\ntype QrCodeProps = DefaultQrCodeProps | CustomQrCodeProps;\n\nconst sizeClassMap: {[key in QrCodeSizePreset]: string} = {\n sm: styles.containerSm,\n md: styles.containerMd,\n lg: styles.containerLg\n};\n\nconst qrSizeMap: {[key in QrCodeSize]: number} = {\n sm: 100, // px\n md: 200,\n lg: 400,\n custom: 0\n};\n\nconst OUTER_RADIUS = 10;\nconst INNER_RADIUS = 1;\n\nexport function QrCode(props: QrCodeProps): JSX.Element {\n const qrSize = props.size === 'custom' ? props.customSize : qrSizeMap[props.size];\n const qrSizeClass = props.size === 'custom' ? props.containerClassName : sizeClassMap[props.size];\n\n return (\n <div className={classNames(\n 'position-relative d-flex justify-content-center align-items-center flex-column',\n 'border border-dark rounded-3 bg-white',\n qrSizeClass\n )}>\n <QRCode\n id={props.id || 'cv-qr-code'}\n value={props.value}\n bgColor='white'\n size={qrSize}\n logoImage={Base64ClickViewLogo}\n logoPaddingStyle='circle'\n logoPadding={1}\n eyeRadius={[\n { outer: [ OUTER_RADIUS, 0, 0, 0 ], inner: [ INNER_RADIUS, 0, 0, 0 ]}, // top left\n { outer: [ 0, OUTER_RADIUS, 0, 0 ], inner: [ 0, INNER_RADIUS, 0, 0 ]}, // top right\n { outer: [ 0, 0, 0, OUTER_RADIUS ], inner: [ 0, 0, 0, INNER_RADIUS ]} // bottom left\n ]}\n removeQrCodeBehindLogo\n ref={props.qrRef}\n />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"containerSm\":\"oAKIc\",\"containerMd\":\"Ml3L5\",\"containerLg\":\"cWnjp\"};","export const Base64ClickViewLogo = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAYFBMVEX////4mB34lhX5qEz4kQD4kwD4lAD+79/4lxf4jwD//vv938L5rFb96NP+9On4lQv6tWf+9/D5pUX8z6D6u3n4nzP82LP5pD/7xo/4nSr6s2X6vX77xpH5rVn5pED/+vVbzc80AAACrElEQVR4nO3di3LTMBSE4R7HDjEF3IaWlmvf/y0RlA4RjWNZHqHZo/97Au1k4m6OZPXqCgAAAAAAAAAAAAAAAAAAAAAAAP/BzW3tFZR2tDe1l1DYbhqua6+hrF1n48faiygqJLTxrvYqSvqV0IZ3b2uvo5zfCW26/1B7IcU8J7Ru/772Skr5k9AO/afaSynkJWF43jzWXksZfxNaf1N7MUWcJLT9w1Pt5RRwmtAmjxUuSmgHhxUuTmgOK9y/Cf1VuFcJ3VW41wm9VbgzCa2bPFW4cwntMDqqcGcTuqpwMwkdVbi5hLY/OpnCzSZ0U+HmE4bnjYsKdyFh+DJ6qHAXE1r/tfb6truc0Hr9CreQ0KbP6o/UpYTWDeIVbjGh/BRuOWH4MkpXuJSE1n+pvcwNkhJKT+HSElp3kK1wiQnD80a1wqUm1J3CpSdUncKtSCg6hVuTMFQ4wSncqoSSG6nrEipO4VYmFJzCrU4oN4Vbn1CtwmUkFKtwOQm1NlKzEoaWqlPh8hKG541MhctNaMNOpMJlJ5SpcPkJVTZSNyQUmcJtSahR4bYlVJjCbUwosJG6NaH1D7UjLOAzXPoEvX8PvT9L3f89dN9pVA74ZSeU2eHP/n0oc0qD3/jnA+6dz2ncz9rcz0vdz7zHb7WXvNLavSeJohZh/zCiMkCMsI9/YpQpahHO07yQ2lCLJCacpIpaJPFs4lGqqEXSzpeKFbUIZ4Qli1qEs/ru37fovysWtUjj7z0JTdTmtfz+oft3SAfhohZp9l1uuYnavDbvVBDZ+kzU4t0mDopapL07hlQnavMau+vLS1GLRHfu/XBS1CIt3ZuocEYtRzP3lypufSZq5B5hza3PRE3c5+2vqEX836vv/38j+P//FgAAAAAAAAAAAAAAAAAAAAAAALJ+AoAWHaLlWtXqAAAAAElFTkSuQmCC';\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { QRCode } from 'react-qrcode-logo';\nimport printJS from 'print-js';\n\nimport { DevError } from 'libs/common/backbone/errors/DevError';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { QrCode, QrCodeSizePreset } from '../QrCode';\n\ninterface PrintOptions {\n id: string;\n name?: string;\n size?: QrCodeSizePreset;\n onDone?: () => void;\n}\n\ninterface DownloadOptions {\n type?: 'png' | 'jpg' | 'webp',\n name?: string;\n size?: QrCodeSizePreset;\n}\n\ninterface QrCodeDownloadProps {\n options: Required<DownloadOptions>;\n value: string;\n onDone?: () => void;\n}\n\nfunction QrCodeDownload(props: QrCodeDownloadProps): JSX.Element {\n const downloadRef = React.useRef<QRCode>();\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n downloadRef.current?.download(props.options.type, props.options.name);\n typeof props.onDone === 'function' && props.onDone();\n }, 200); // Some delay is require for images to load\n\n return () => {\n clearTimeout(timeout);\n };\n }, []);\n \n return (\n <div className='d-none'>\n <QrCode size={props.options.size} value={props.value} qrRef={downloadRef} />\n </div>\n );\n}\n\nexport function useQrCodeActions() {\n const ref = React.useRef<QRCode>();\n const [ isPrinting, setIsPrinting ] = React.useState(false);\n const [ isDownloading, setIsDownloading ] = React.useState(false);\n\n /**\n * We render a different QR Code according to what we need\n */\n function download({ name, size = 'lg', type = 'png' }: DownloadOptions): void {\n if (!ref.current)\n return;\n \n const printRegion = document.getElementById('print-region');\n\n if (!printRegion)\n Core.ErrorHelper.throw(new DevError('Could not find print region in layout'));\n\n const root = createRoot(printRegion);\n\n setIsDownloading(true);\n \n root.render(\n <QrCodeDownload\n options={{ name, size, type }}\n value={ref.current.props.value}\n onDone={() => {\n root.unmount();\n setIsDownloading(false);\n }}\n />\n );\n }\n\n function print({ id, name, size = 'lg', onDone }: PrintOptions) {\n if (!ref.current)\n return;\n \n const printRegion = document.getElementById('print-region');\n\n if (!printRegion)\n Core.ErrorHelper.throw(new DevError('Could not find print region in layout'));\n\n const root = createRoot(printRegion);\n\n root.render(\n <div className='d-none vw-100 vh-100'>\n <div id={id} className='w-100 h-100 d-flex align-items-center justify-content-center'>\n <QrCode size={size} value={ref.current.props.value} />\n </div>\n </div>\n );\n\n setIsPrinting(true);\n\n window.setTimeout(() => {\n printJS({\n printable: id,\n type: 'html',\n documentTitle: name || 'ClickView - QRCode',\n targetStyles: ['*'],\n imageStyle: '*',\n style: '@page { size: A4; margin: 1.5cm 0; }',\n onLoadingEnd: () => {\n typeof onDone === 'function' && onDone();\n setIsPrinting(false);\n root.unmount();\n },\n onError: () => {\n setIsPrinting(false);\n root.unmount();\n }\n });\n }, 200); // Some delay is require for images to load\n }\n\n return { ref, isPrinting, isDownloading, download, print };\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { QrCode } from 'libs/shared/components/qr-code/QrCode';\nimport { QrCodeSizePreset } from 'libs/shared/components/qr-code/QrCode';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport { Instructions } from 'shared/components/instructions/Instructions';\n\nconst namespace = 'assign.fullScreen';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AssignQrDetailsProps {\n value: string;\n}\n\nfunction AssignQrDetails(props: AssignQrDetailsProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size: QrCodeSizePreset = (breakpoints.sm || breakpoints.xs) ? 'md' : 'lg';\n\n return (\n <Row>\n <Col xs={12} md={10} lg={8} xl={6} className='bg-light p-4 rounded mx-auto d-flex flex-column align-items-center'>\n <div className='mb-3 text-center'>\n <span className='fs-3 fw-bold'>\n <Text namespace={namespace} phrase='scanQr' />\n </span>\n </div>\n <QrCode size={size} value={props.value} />\n </Col>\n </Row>\n );\n}\n\ninterface AssignJoinCodeDetailsProps {\n link: string;\n joinCode: string;\n}\n\nfunction AssignJoinCodeDetails(props: AssignJoinCodeDetailsProps): JSX.Element {\n return (\n <Row>\n <Col xs={12} md={8} lg={5} className={'bg-light p-4 d-block rounded mx-auto'}>\n <Instructions>\n <Instructions.Step number={1}>\n <Text namespace={namespace} phrase='studentsGoToLink' />\n </Instructions.Step>\n <Instructions.Textbox value={props.link}/>\n <Instructions.Step number={2}>\n <Text namespace={namespace} phrase='enterJoinCode' />\n </Instructions.Step>\n <Instructions.Textbox value={props.joinCode} />\n <Instructions.Step number={3}>\n <Text namespace={namespace} phrase='studentsWatchVideo' />\n </Instructions.Step>\n </Instructions>\n </Col>\n </Row>\n );\n}\n\ninterface AssignLinkDetailsProps {\n link: string;\n}\n\nfunction AssignLinkDetails(props: AssignLinkDetailsProps): JSX.Element {\n return (\n <Row>\n <Col xs={12} md={8} lg={5} className={'bg-light p-4 d-block rounded mx-auto'}>\n <Instructions bottomSpacing='none'>\n <Instructions.Textbox label={getPhrase('goToLink')} value={props.link} />\n </Instructions>\n </Col>\n </Row>\n );\n}\n\ninterface AssignFullScreen {\n entity: SharableEntity;\n locationContext: LocationContext;\n}\n\nexport function AssignFullScreen(props: React.PropsWithChildren<AssignFullScreen>): JSX.Element {\n return (\n <div className='container p-4'>\n <Row>\n <Col>\n <h3 className='text-center'>\n <Text namespace={namespace} phrase='watchVideo' />\n </h3>\n </Col>\n </Row>\n <Row className='mb-4'>\n <Col xs={12} sm={8} md={6} lg={3} className='mx-auto'>\n <SharedObjectImage\n object={props.entity}\n thumbnailSize='md'\n locationContext={props.locationContext}\n showVideoMetadata\n hideBottomBar\n />\n </Col>\n </Row>\n {props.children}\n </div>\n );\n}\n\nAssignFullScreen.QrDetails = AssignQrDetails;\nAssignFullScreen.JoinCode = AssignJoinCodeDetails;\nAssignFullScreen.LinkDetails = AssignLinkDetails;","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { FullScreen } from 'libs/shared/components/full-screen/FullScreen';\nimport { useFullScreenActions } from 'libs/shared/components/full-screen/hooks/useFullScreenActions';\nimport { useQrCodeActions } from 'libs/shared/components/qr-code/hooks/useQrCodeActions';\nimport { QrCode } from 'libs/shared/components/qr-code/QrCode';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { Instructions } from 'shared/components/instructions/Instructions';\n\nimport { AssignDetailsTab, AssingDetailsTabs } from 'apps/assign/components/assign-details/components/assign-details-tabs/AssignDetailsTabs';\nimport { AssignLogFn } from 'apps/assign/utils/get-assign-event-logger/getAssignEventLogger';\n\nimport { AssignDetailsFlow } from '../../AssignDetails';\nimport { AssignFullScreen } from '../assign-full-screen/AssignFullScreen';\n\nimport styles from './assign-qr-code.scss';\n\nconst namespace = 'assign.assignQrCode';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface AssignQrCodeProps {\n shareLink: string;\n entity: SharableEntity;\n joinCode?: string;\n onClickTab: (tab: AssignDetailsTab) => void;\n flow?: AssignDetailsFlow;\n log?: AssignLogFn;\n}\n\nexport function AssignQrCode(props: AssignQrCodeProps): JSX.Element {\n const qrCode = useQrCodeActions();\n const fullScreen = useFullScreenActions();\n const fileName = getPhrase('fileName', { name: props.entity.name });\n \n function getSteps() {\n if (props.joinCode)\n return {\n 1: 'step1',\n 2: 'stepWatchVideo'\n };\n\n return {\n 1: 'step1',\n 2: 'step2SignIn',\n 3: 'stepWatchVideo'\n };\n }\n\n function getQrCodeValue() {\n if (props.joinCode) {\n return `${props.shareLink}?joinCode=${props.joinCode}`;\n }\n\n return props.shareLink;\n }\n\n function onClickDownload() {\n props.log && props.log({\n type: 'download-qr-code',\n entity: props.entity,\n flow: props.flow\n });\n \n qrCode.download({ name: fileName });\n }\n\n function onClickPrint() {\n props.log && props.log({\n type: 'print-qr-code',\n entity: props.entity,\n flow: props.flow\n });\n\n const name = fileName;\n qrCode.print({\n id: name,\n name: name\n });\n }\n\n function onClickFullScreen() {\n props.log && props.log({\n type: 'request-full-screen',\n entity: props.entity,\n flow: props.flow,\n tab: 'qr-code'\n });\n fullScreen.requestFullScreen();\n }\n\n const steps = getSteps();\n const qrValue = getQrCodeValue();\n \n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div>\n <AssingDetailsTabs active='qr-code' onClick={props.onClickTab} />\n <div className={`d-block mx-auto ${styles.container}`}>\n <div className='container-fluid py-3 bg-light rounded-3 p-3'>\n <div className='row gy-4'>\n <div className='col-lg-7 col-12 d-flex flex-column justify-content-center'>\n <Instructions>\n {Object.entries(steps).map(([ step, phrase ]) => (\n <Instructions.Step number={step} key={step}>\n <Text phrase={phrase} />\n </Instructions.Step>\n ))}\n </Instructions>\n <div className='d-flex flex-column flex-md-row gap-2 mb-2'>\n <SpinnerButton\n variant='outline-dark'\n className='w-100'\n showSpinner={qrCode.isPrinting}\n spinnerText={getPhrase('printing')}\n onClick={onClickPrint}\n >\n <Text phrase='printButton' />\n </SpinnerButton>\n <SpinnerButton\n showSpinner={qrCode.isDownloading}\n variant='outline-dark'\n className='w-100'\n onClick={onClickDownload}\n spinnerText={getPhrase('downloading')}\n >\n <Text phrase='downloadButton' />\n </SpinnerButton>\n </div>\n <FullScreen.Button onClick={onClickFullScreen} hideIcon />\n </div>\n <div className='col-lg-5 col-12'>\n <QrCode\n size='md'\n value={qrValue}\n qrRef={qrCode.ref}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n <FullScreen isFullScreen={fullScreen.isFullScreen} controlsRef={fullScreen.ref}>\n <AssignFullScreen entity={props.entity} locationContext={LocationContext.AssignFlowView}>\n <AssignFullScreen.QrDetails value={qrValue} />\n </AssignFullScreen>\n </FullScreen>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { FullScreen } from 'libs/shared/components/full-screen/FullScreen';\nimport { useFullScreenActions } from 'libs/shared/components/full-screen/hooks/useFullScreenActions';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { Instructions } from 'shared/components/instructions/Instructions';\n\nimport { AssignDetailsTab, AssingDetailsTabs } from 'apps/assign/components/assign-details/components/assign-details-tabs/AssignDetailsTabs';\nimport { AssignLogFn } from 'apps/assign/utils/get-assign-event-logger/getAssignEventLogger';\n\nimport { AssignDetailsFlow } from '../../AssignDetails';\nimport { AssignFullScreen } from '../assign-full-screen/AssignFullScreen';\n\nimport styles from './assign-share-link.scss';\n\nconst namespace = 'assign.assignShareLink';\n\nexport interface AssignShareLinkProps {\n entity: BaseObject;\n joinCode?: string;\n shareLink: string;\n onClickTab: (tab: AssignDetailsTab) => void;\n flow?: AssignDetailsFlow;\n log?: AssignLogFn;\n}\n\nconst PLAY_VIDEO_FULL_URL = 'https://clickview.net/play';\n\ninterface JoinCodeInstructionsProps {\n link: string;\n}\n\nfunction JoinCodeInstructions(props: JoinCodeInstructionsProps) {\n return (\n <Instructions>\n <Instructions.Step number={1}>\n <Text phrase='step1' />\n </Instructions.Step>\n <Instructions.Textbox\n value={props.link}\n showCopyButton\n />\n <Instructions.Step number={2}>\n <Text phrase='endStep' />\n </Instructions.Step>\n </Instructions>\n );\n}\n\ninterface SignInInstructionsProps {\n link: string;\n}\n\nfunction SignInInstructions(props: SignInInstructionsProps): JSX.Element {\n return (\n <Instructions>\n <Instructions.Step number={1}>\n <Text phrase='step1' />\n </Instructions.Step>\n <Instructions.Textbox\n value={props.link}\n showCopyButton\n />\n <Instructions.Step number={2}>\n <Text phrase='step2SignIn' />\n </Instructions.Step>\n <Instructions.Step number={3}>\n <Text phrase='endStep' />\n </Instructions.Step>\n </Instructions>\n );\n}\n\nexport function AssignShareLink(props: AssignShareLinkProps): JSX.Element {\n const fullScreen = useFullScreenActions();\n \n const link = props.joinCode\n ? UrlHelper.safeUrlConcat(PLAY_VIDEO_FULL_URL, props.joinCode)\n : props.shareLink;\n\n function onClickFullScreen() {\n typeof props.log === 'function' &&\n props.log({\n type: 'request-full-screen',\n entity: props.entity,\n flow: props.flow,\n tab: 'share-link'\n });\n fullScreen.requestFullScreen();\n }\n \n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div>\n <AssingDetailsTabs active='share-link' onClick={props.onClickTab} />\n <div className={`bg-light rounded-3 mx-auto py-3 px-sm-5 px-3 d-block ${styles.container}`}>\n {props.joinCode\n ? <JoinCodeInstructions link={link} />\n : <SignInInstructions link={link} />\n }\n <FullScreen.Button onClick={onClickFullScreen} hideIcon />\n </div>\n </div>\n <FullScreen isFullScreen={fullScreen.isFullScreen} controlsRef={fullScreen.ref}>\n <AssignFullScreen entity={props.entity} locationContext={LocationContext.AssignFlowView}>\n <AssignFullScreen.LinkDetails link={link} />\n </AssignFullScreen>\n </FullScreen>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { SharePincode } from 'libs/shared/apps/share-v2/interfaces/SharePincode';\nimport { SharableEntity, SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { AssignDetailsTab } from 'apps/assign/components/assign-details/components/assign-details-tabs/AssignDetailsTabs';\nimport { AssignEmbed, AssignEmbedProps } from 'apps/assign/components/assign-details/components/assign-embed/AssignEmbed';\nimport { AssignIntegrations, AssignIntegrationsProps } from 'apps/assign/components/assign-details/components/assign-integrations/AssignIntegrations';\nimport { AssignOverview, AssignOverviewProps } from 'apps/assign/components/assign-details/components/assign-overview/AssignOverview';\nimport { AssignQrCode, AssignQrCodeProps } from 'apps/assign/components/assign-details/components/assign-qr-code/AssignQrCode';\nimport { AssignShareLink, AssignShareLinkProps } from 'apps/assign/components/assign-details/components/assign-share-link/AssignShareLink';\nimport { AssignLogFn } from 'apps/assign/utils/get-assign-event-logger/getAssignEventLogger';\n\nconst namespace = 'assign.assignDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport type AssignDetailsFlow = 'existing-classroom' | 'open-classroom';\ninterface AssignDetailsProps {\n entityId: string;\n entity: SharableEntity;\n entityType: SharableEntityType;\n share: Share;\n liteUrl: string;\n instanceRegion: InstanceRegion;\n contactSupportLink: string;\n sharePincode?: SharePincode;\n initialScreen?: AssignDetailsTab;\n title?: string;\n hideTitle?: boolean;\n log?: AssignLogFn;\n}\n\ntype AllAssignDetailsScreenProps =\n & AssignOverviewProps\n & AssignShareLinkProps\n & AssignQrCodeProps\n & AssignEmbedProps\n & AssignIntegrationsProps;\n\nconst AssignDetailsConfig: {[key in AssignDetailsTab]: {\n component: (props: AllAssignDetailsScreenProps) => JSX.Element;\n}} = {\n 'overview': { component: AssignOverview },\n 'share-link': { component: AssignShareLink },\n 'qr-code': { component: AssignQrCode },\n 'embed': { component: AssignEmbed },\n 'integrations': { component: AssignIntegrations }\n};\n\nconst ShareTypeFlowMap: {[key in ShareType]?: 'existing-classroom' | 'open-classroom'} = {\n [ShareType.Open]: 'open-classroom',\n [ShareType.Classroom]: 'existing-classroom'\n};\n\nexport function AssignDetails(props: AssignDetailsProps): JSX.Element {\n const [ screen, setScreen ] = React.useState<AssignDetailsTab>(props.initialScreen ?? 'share-link');\n\n const shouldHideTitle = props.hideTitle || screen === 'overview';\n\n const data: AllAssignDetailsScreenProps = {\n entity: props.entity,\n onClickTab: setScreen,\n entityId: props.entityId,\n entityType: props.entityType,\n liteUrl: props.liteUrl,\n instanceRegion: props.instanceRegion,\n joinCode: props.sharePincode?.code,\n shareId: props.share.shareId,\n embedUrl: props.share.link.shortenedEmbedUrl,\n shareLink: props.share.link.shortenedUrl,\n contactSupportLink: props.contactSupportLink,\n flow: ShareTypeFlowMap[props.share.type],\n log: props.log\n };\n \n const Component = AssignDetailsConfig[screen].component;\n\n const title = props.title || getPhrase('title');\n \n return (\n <div className='d-flex flex-column align-items-center justify-content-center py-3 gap-4'>\n {!shouldHideTitle &&\n <h3 className='mb-0'><span>{title}</span></h3>\n }\n \n <Component {...data} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"HrK3n\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"OCQzr\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { EntityType, LocationContext, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { SharePincode } from 'libs/shared/apps/share-v2/interfaces/SharePincode';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\n\nimport { getInsightsOverviewAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { AssignDetails } from 'apps/assign/components/assign-details/AssignDetails';\nimport { AssignDetailsTab } from 'apps/assign/components/assign-details/components/assign-details-tabs/AssignDetailsTabs';\nimport { FlowControls } from 'apps/assign/components/flow-controls/FlowControls';\nimport { useAssignSharedData } from 'apps/assign/hooks/useAssignSharedData';\nimport { AssignHelper } from 'apps/assign/utils/AssignHelper';\nimport { getAssignEventLogger } from 'apps/assign/utils/get-assign-event-logger/getAssignEventLogger';\n\nconst namespace = 'assign.assignDetailsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface AssignDetailsViewProps extends MultiStepPopupViewProps {\n objectId: string;\n entityType: SharableEntityType;\n shareId: string;\n initialDetailsScreen?: AssignDetailsTab;\n detailsTitle?: string;\n}\n\nexport function AssignDetailsView(\n props: AssignDetailsViewProps\n) {\n const { config, loaded, entity, currentUser } = useAssignSharedData({\n entityType: props.entityType,\n objectId: props.objectId\n });\n\n const { log } = getAssignEventLogger({\n data: {\n entity: {\n id: props.objectId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n entity: EntityType.Assign,\n location: LocationContext.Popup\n }\n });\n\n const share = Flight.useBasicFetch<Share>(ShareRequests.getShare(props.shareId));\n \n const isPincodePrivacy = share.data?.privacy === SharePrivacy.PinCode;\n const pincode = Flight.useBasicFetch<SharePincode>(\n isPincodePrivacy && ShareRequests.getPincodeByShareId(props.shareId)\n );\n\n function onClickBack() {\n log({\n type: 'close-assign-popup',\n share: share.data\n }, {\n workflowPhase: WorkflowPhase.Complete\n });\n \n props.closePopup();\n }\n \n function onClickNext() {\n const appLink = getInsightsOverviewAppLink(share.data);\n\n if (!appLink)\n return;\n\n log({\n type: 'view-assignment',\n share: share.data\n });\n\n AppLinkHelper.trigger(appLink);\n props.closePopup();\n }\n\n const initialScreen: AssignDetailsTab = props.initialDetailsScreen || 'overview';\n\n const contactSupportLink = AssignHelper.getContactSupportUrl(\n config.data?.marketingSiteUrl,\n currentUser.data?.instanceRegion\n );\n \n const showLoadingSpinner = (\n !loaded ||\n props.loading ||\n !share.data ||\n (isPincodePrivacy && !pincode.data)\n );\n\n return (\n <Popup\n size='lg'\n showLoadingSpinner={showLoadingSpinner}\n closePopup={props.closePopup}\n bodyClassName='d-flex flex-column gap-3'\n animation={props.animate}\n hideTitle\n >\n <AssignDetails\n title={props.detailsTitle}\n entityId={props.objectId}\n entityType={props.entityType}\n share={share.data}\n sharePincode={pincode.data}\n entity={entity.data}\n liteUrl={config.data.liteUrl}\n instanceRegion={currentUser.data.instanceRegion}\n initialScreen={props.initialDetailsScreen || initialScreen}\n contactSupportLink={contactSupportLink}\n log={log}\n />\n <FlowControls\n backButtonText={getPhrase('backButtonText')}\n nextButtonText={getPhrase('nextButtonText')}\n onClickBack={onClickBack}\n onClickNext={onClickNext}\n hideCreateClassroomButton\n />\n </Popup>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"orderedListWithBackground\":\"ezbBL\",\"number\":\"hs0Fv\",\"code\":\"h0c9p\",\"large\":\"_leUV\",\"success\":\"f_XNL\"};","import React from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './instructions.scss';\n\nconst COPY_TIMEOUT = 2000;\n\nconst namespace = 'shared.instructions';\n\ninterface BoxOverlayProps {\n show: boolean;\n text?: string;\n}\n\nfunction BoxOverlay(props: BoxOverlayProps): JSX.Element {\n return (\n <div className={classNames(\n styles.success,\n 'col-12 position-absolute w-100 h-100 start-0 top-0',\n 'd-inline-flex align-items-center text-white justify-content-center text-truncate bg-success fs-3',\n props.show ? 'opacity-1' : 'opacity-0'\n )}>\n {props.text ?? <Text namespace={namespace} phrase='copied' />}\n </div>\n );\n}\n\ninterface StepProps {\n number: number | string;\n}\n\nfunction Step(props: React.PropsWithChildren<StepProps>): JSX.Element {\n return (\n <li className='d-flex align-items-center'>\n <div className='align-self-start'>\n <span className={`${styles.number}`}>{props.number}</span>\n </div>\n <div className='w-100'>\n {props.children}\n </div>\n </li>\n );\n}\n\ninterface CodeProps {\n code: string;\n className?: string;\n size: 'md' | 'lg';\n}\n\nfunction Code(props: CodeProps): JSX.Element {\n const [ copied, setCopied ] = React.useState(false);\n\n function onCopy(): void {\n setCopied(true);\n\n setTimeout(() => setCopied(false), COPY_TIMEOUT);\n }\n\n return (\n <CopyToClipboard onCopy={onCopy} text={props.code}>\n <div className={classNames(\n `position-relative bg-white border rounded-3 text-center overflow-hidden fw-semibold cursor-pointer ${styles.code}`,\n props.size === 'lg' && `py-3 ${styles.large}`,\n props.size === 'md' && 'py-2',\n props.className\n )}>\n {props.code}\n <SvgContainer\n svgName={cvSvgLibrary.Copy}\n size={SvgContainerSize.Large}\n className='ms-2 svg-container d-inline-block lg align-middle'\n />\n <BoxOverlay show={copied} />\n </div>\n </CopyToClipboard>\n );\n}\n\ninterface TextboxProps {\n value: string;\n label?: string;\n className?: string;\n showCopyButton?: boolean;\n copiedText?: string;\n onCopy?: () => void;\n}\n\nfunction Textbox(props: TextboxProps): JSX.Element {\n const [ copied, setCopied ] = React.useState<boolean>(false);\n \n function onCopy(): void {\n if (!props.showCopyButton)\n return;\n\n setCopied(true);\n\n typeof props.onCopy === 'function' && props.onCopy();\n\n setTimeout(() => setCopied(false), COPY_TIMEOUT);\n }\n \n\n return (\n <CopyToClipboard onCopy={onCopy} text={props.value}>\n <div>\n {props.label && <h3 className='mb-3 text-center'>{props.label}</h3>}\n <div className={classNames(\n 'bg-white border rounded-3 overflow-hidden px-4 py-3 text-truncate h5 mb-0',\n 'position-relative row align-items-center gx-2 gy-0',\n props.showCopyButton ? 'text-left cursor-pointer' : 'text-center',\n props.className\n )}>\n <div className={classNames(\n props.showCopyButton ? 'col-11' : 'col-12',\n 'text-truncate'\n )}>\n {props.value}\n </div>\n {props.showCopyButton &&\n <div className='col-1'>\n <SvgContainer\n svgName={cvSvgLibrary.Copy}\n size={SvgContainerSize.Standard}\n className='svg-container d-inline-block std'\n onClick={onCopy}\n />\n </div>\n }\n {props.showCopyButton &&\n <BoxOverlay show={copied} />\n }\n </div>\n </div>\n </CopyToClipboard>\n );\n}\n\ntype InstructionsSpacing = 'none' | 'sm' | 'md' | 'lg';\n\ninterface InstructionsProps {\n spacing?: InstructionsSpacing;\n bottomSpacing?: InstructionsSpacing;\n className?: string;\n}\n\nconst bottomSpacingMap: {[key in InstructionsSpacing]: string} = {\n none: 'mb-0',\n md: 'mb-3',\n sm: 'mb-2',\n lg: 'mb-4'\n};\n\nconst itemSpacingMap: {[key in InstructionsSpacing]: string} = {\n none: '',\n sm: 'gap-2',\n md: 'gap-3',\n lg: 'gap-4'\n};\n\nexport function Instructions(props: React.PropsWithChildren<InstructionsProps>): JSX.Element {\n return (\n <ol className={classNames(\n 'd-flex flex-column',\n bottomSpacingMap[props.bottomSpacing || 'md'],\n itemSpacingMap[props.spacing || 'md'],\n styles.orderedListWithBackground,\n props.className\n )}>\n {props.children}\n </ol>\n );\n}\n\nInstructions.Step = Step;\nInstructions.Code = Code;\nInstructions.Textbox = Textbox;"],"names":["namespace","BASE_IMAGE_CLASS_NAME","InsightsMask","className","SharedObjectImage","props","ref","el","object","fixedHeight","style","width","offsetHeight","VideoHelper","typeId","MasterType","useVideoThumbnail","image","ImageHelper","imageType","imageClassName","imageFallbackComponent","ImageFallback","type","svgContainerClassName","url","getBgColorClass","name","extraClasses","getImageProps","thumbnailMetadata","showVideoMetadata","hideBottomBar","hideDuration","hideMask","hideRating","hideVideoBadgeType","showInsightsMask","AppLink","appLink","VideoThumbnail","video","size","thumbnailSize","imageOptions","textPosition","ThumbnailTextPosition","requireMarking","Text","phrase","options","smartCount","CollectionThumbnail","collection","analyticsData","id","analyticsOptions","entity","ShareViewHelper","actionType","location","locationContext","showMask","showCollectionMask","showVideoCount","BaseImage","data","defaultProps","getPhrase","LanguageService","buildStyle","content","text","noUpperCase","Divider","BaseCollectionThumbnailTitle","title","CollectionThumbnailTitle","firstVideo","collectionVideos","videos","count","playlist","clips","interactives","ArrayHelper","getFirstVideo","videoCount","totalCount","getVideoCount","showTexts","length","subText","toString","MasterTypeHelper","preventFocus","SvgContainer","svgName","hoverText","hideVideoTypeBadge","TitleSubText","subTextAppLink","titleAppLink","getEventLogger","getData","logAnalyticsOptions","logDataConfig","config","isValid","mergedData","baseData","log","shouldLog","analytics","IntegrationList","integrations","item","valid","icon","link","instanceRegion","instanceRegions","includes","autoHeight","autoHeightMax","maxHeight","map","integration","index","itemClassName","key","href","target","rel","backgroundImage","hideSupportLink","ExternalLink","contactSupportLink","newTab","AssignHelper","getRecipients","entities","e","getLearnersForGroups","groups","learners","reduce","prev","curr","users","getSelectedEntities","selectedEntities","find","filter","getContactSupportUrl","marketingUrl","path","isValidShare","share","LogDataConfig","workflowPhase","descriptor","classroom","getAssignEventLogger","TabItem","active","tab","onClick","children","AssingDetailsTabs","ShareIntegrationsStack","noTooltip","JoinCodeInstructions","Instructions","number","SignInInstruction","SignInInstructions","ShareLinkOption","screen","AssignOverviewImage","ImageUrls","FullScreen","document","fullscreenEnabled","isFullScreen","controlsRef","Button","variant","exitFullscreen","useFullScreenActions","setIsFullScreen","isSupported","current","onFullScreenChange","fullscreenElement","handleFullScreenChange","addEventListener","removeEventListener","requestFullScreen","requestFullscreen","exitFullScreen","buttonText","hideIcon","sizeClassMap","sm","md","lg","qrSizeMap","custom","QrCode","qrSize","customSize","qrSizeClass","containerClassName","QRCode","value","bgColor","logoImage","logoPaddingStyle","logoPadding","eyeRadius","outer","inner","removeQrCodeBehindLogo","qrRef","QrCodeDownload","downloadRef","timeout","setTimeout","download","onDone","clearTimeout","AssignFullScreen","Row","Col","xs","QrDetails","breakpoints","useBreakpoints","xl","JoinCode","joinCode","LinkDetails","bottomSpacing","label","showCopyButton","AssignDetailsConfig","component","onClickTab","fullScreen","UrlHelper","shareLink","flow","isPrinting","setIsPrinting","isDownloading","setIsDownloading","qrCode","printRegion","getElementById","DevError","root","render","unmount","print","window","printable","documentTitle","targetStyles","imageStyle","onLoadingEnd","onError","fileName","steps","qrValue","Object","entries","step","SpinnerButton","showSpinner","spinnerText","CopyEmbedHtml","embedUrl","entityId","entityType","liteUrl","shareId","hideLabel","hasInputBg","onCopy","embedDetails","ShareTypeFlowMap","ShareType","AssignDetails","initialScreen","setScreen","shouldHideTitle","hideTitle","sharePincode","code","shortenedEmbedUrl","shortenedUrl","Component","AssignDetailsView","useAssignSharedData","objectId","loaded","currentUser","ShareRequests","isPincodePrivacy","privacy","SharePrivacy","pincode","initialDetailsScreen","marketingSiteUrl","showLoadingSpinner","loading","Popup","closePopup","bodyClassName","animation","animate","detailsTitle","FlowControls","backButtonText","nextButtonText","onClickBack","onClickNext","hideCreateClassroomButton","BoxOverlay","show","bottomSpacingMap","none","itemSpacingMap","spacing","Step","Code","copied","setCopied","S","Textbox"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6790],{29923:(e,t,r)=>{r.d(t,{F:()=>l});var n=r(32735),a=r(23481),o=r(89965),i=r(13876);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var s=a.T.encloseNamespace("sharev2.deleteShareContent");function l(e){var t,r,a,l=(r=n.useState(!1),a=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],s=!0,l=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(r,a)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(r,a)||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.")}()),u=l[0],d=l[1];return n.createElement("div",{className:"d-flex flex-column gap-3"},n.createElement("p",{className:"m-0"},e.phrases.leadingSentence),n.createElement("ul",{className:"m-0"},e.phrases.bulletPoints.map((function(e,t){return n.createElement("li",{key:t},e)}))),n.createElement(o.X,{id:"ack",checked:u,onChange:function(e){return d(e.target.checked)},label:e.phrases.acknowledgement}),n.createElement(i.u,null,e.onBack&&n.createElement(i.u.Cancel,{onClick:e.onBack,text:null!==(t=e.phrases.backButton)&&void 0!==t?t:s("backButton"),variant:"link"}),n.createElement(i.u.Submit,{onClick:function(){u&&!e.loading&&e.onDelete()},text:e.phrases.deleteButton,variant:"danger",disabled:!u||e.loading,showSpinner:e.loading})))}},33518:(e,t,r)=>{var n;r.d(t,{e:()=>n}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(n||(n={}))},18488:(e,t,r)=>{r.d(t,{o:()=>i});var n=r(99940),a=r(97395),o={namespace:"share-v2"},i={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:n.k.POST,data:e,normalizeOptions:o,invalidationKeys:["sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:n.k.PUT,data:t,normalizeOptions:o,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e)]}},deleteShare:function(e){return{type:n.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:o,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e)]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:n.k.GET,normalizeOptions:o}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:a._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:n.k.GET,normalize:!1}},getShareLink:function(e){return{url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:o}},createShareLink:function(e){return{type:n.k.POST,url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2"],normalizeOptions:o}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:n.k.GET,normalizeOptions:o}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:n.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},93563:(e,t,r)=>{r.d(t,{_:()=>c});var n=r(20354),a=r(33518),o=r(18488),i=r(8233);function c(e){var t=n.a.useGetFetchAsync(),r=n.a.useBasicFetch(o.o.getPrivacy(e.entityId));return{loaded:!!r.data,updateShareLink:function(e,r){return t(o.o.updateShare(e,r))},createShareLink:function(n){var c=null!=n?n:"private"===i.R.getShareLinkAccessType(r.data)?a.e.JustMySchool:a.e.Protected;return t(o.o.createShareLink({objectId:e.entityId,privacy:c}))},deleteShareLink:function(e){return t(o.o.deleteShare(e))}}}},8233:(e,t,r)=>{r.d(t,{R:()=>y});var n=r(23481),a=r(110),o=r(33518),i=r(4594),c=r(49080),s=r(26361),l=r(35223),u=r(31908);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var v=n.T.encloseNamespace("sharev2.utils"),y={getPrivateIconAndText:function(e){var t=e.entityTypeId,r=e.privacy,n=e.hasStudentExp,a=e.entity,c=e.yearGroups;if(t===i.E.Topic||t===i.E.Series)return{icon:l.vn.VisibleOn,text:v(n?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(r))switch(r){case o.e.Public:return{icon:l.vn.VisibleOn,text:v("publicDescription")};case o.e.ProtectedOverrideRestriction:return{icon:l.vn.VisibleOn,text:v("clickViewOnly")};case o.e.Protected:return{icon:l.vn.Lock,text:y.getRespectRatingText(a,c,n)};case o.e.JustMySchoolOverrideRestriction:return{icon:l.vn.Lock,text:v(n?"justMySchoolTeachers":"justMySchoolDescription")};case o.e.JustMySchool:return{icon:l.vn.Lock,text:y.getRespectRatingText(a,c,n)};case o.e.PinCode:return{icon:l.vn.Lock,text:v("pinDescription")};case o.e.PasswordProtected:return{icon:l.vn.Lock,text:v("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,r=e.isPasswordProtected,n=e.status;if(!t&&!r)return y.getPrivateIconAndText(e);if(!t)return{icon:l.vn.Lock,text:v("password")};var o=a.O.isToday(t),i=a.O.diffBetween(t,new Date,"day");if(!r){var s=o?v("expiryToday"):v("expiry",{days:i});return n===c.F.Expired&&(s=v("expired")),{icon:l.vn.Timer,text:s}}var u=o?v("passwordExpiryToday"):v("passwordExpiry",{days:i});return n===c.F.Expired&&(u=v("passwordExpired")),{icon:l.vn.Lock,text:u}},getRespectRatingText:function(e,t,r){var n;if(!e||!t)return null;if(r)return v("justMySchoolTeachers");if(!u.M.isVideoType(e))return v("collectionRating");var a=s.l.getWeightedRestriction(null===(n=e._restrictions)||void 0===n?void 0:n.value);if(a&&!a.yearGroup)return v("onlyAdmins");var o,i,c,l=u.M.getRating(e),y=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){c=!0,o=e},f:function(){try{i||null==r.return||r.return()}finally{if(c)throw o}}}}(t);try{for(y.s();!(c=y.n()).done;){var h=c.value;(!o||h.value>o.value)&&(o=h),a&&h.value<=a.yearGroup||l&&h.rating.value<l.value||(!i||h.value<i.value)&&(i=h)}}catch(e){y.e(e)}finally{y.f()}return i?1===t.length?v("clickViewOnly"):i.value===o.value?v("maxYearGroup",{yearGroup:o.name}):v("yearGroupRange",{yearGroup:i.name}):v("onlyStaff")},getShareLinkAccessType:function(e){return e.isTvContent?"tv":e.isClickViewContent?"clickview":"private"}}},36790:(e,t,r)=>{r.r(t),r.d(t,{DeleteAssignmentConfirmationView:()=>h});var n=r(32735),a=r(6044),o=r(23481),i=r(20354),c=r(29923),s=r(18488),l=r(93563),u=r(9111),d=r(69883);function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var y=o.T.encloseNamespace("sharev2.deleteAssignmentConfirmation");function h(e){var t,r,o,h=(0,d.Z)(),p=i.a.useBasicFetch(s.o.getShare(e.shareId)),f=(r=n.useState(!1),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],s=!0,l=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(r,o)||function(e,t){if(e){if("string"==typeof e)return v(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?v(e,t):void 0}}(r,o)||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.")}()),g=f[0],m=f[1],k=(0,l._)({entityId:null===(t=p.data)||void 0===t?void 0:t.objectId.toString()}).deleteShareLink,b=p.hasCompleted;return n.createElement(u.G,{title:y("title"),closePopup:e.closePopup,showLoadingSpinner:!b},n.createElement(c.F,{loading:g,phrases:{leadingSentence:y("intro"),bulletPoints:[y("studentsLoseAccessInfo"),y("loseAccessInfo"),y("loseAccessUsage")],acknowledgement:y("acknowledgement"),deleteButton:y("delete")},onDelete:function(){var t;m(!0),k(null===(t=p.data)||void 0===t?void 0:t.shareId).then((function(){m(!1),h.success(y("deleteSuccess")),e.closePopup(),e.previousAppLink&&a.C$.trigger(e.previousAppLink)})).catch((function(){h.error(y("deleteFailed"))})).finally((function(){m(!1)}))}}))}}}]);
2
- //# sourceMappingURL=6790-5086b72662-lite.chunk.js.map