@clickview/lite 0.48.0-rc.7 → 0.48.0

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 (128) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/{170-1f815b85a1-lite.chunk.js → 170-2d124965b7-lite.chunk.js} +2 -2
  3. package/dist/scripts/{170-1f815b85a1-lite.chunk.js.map → 170-2d124965b7-lite.chunk.js.map} +1 -1
  4. package/dist/scripts/{1818-b9f9297d6d-lite.chunk.js → 1818-72409e60a9-lite.chunk.js} +1 -1
  5. package/dist/scripts/{1818-b9f9297d6d-lite.chunk.js.map → 1818-72409e60a9-lite.chunk.js.map} +1 -1
  6. package/dist/scripts/{1863-cf9df40052-lite.chunk.js → 1863-e7c4a6f342-lite.chunk.js} +1 -1
  7. package/dist/scripts/{1863-cf9df40052-lite.chunk.js.map → 1863-e7c4a6f342-lite.chunk.js.map} +1 -1
  8. package/dist/scripts/{1958-9889c1ad24-lite.chunk.js → 1958-5336189397-lite.chunk.js} +1 -1
  9. package/dist/scripts/{1958-9889c1ad24-lite.chunk.js.map → 1958-5336189397-lite.chunk.js.map} +1 -1
  10. package/dist/scripts/{2086-a247f6e201-lite.chunk.js → 2086-f7082703d0-lite.chunk.js} +1 -1
  11. package/dist/scripts/{2086-a247f6e201-lite.chunk.js.map → 2086-f7082703d0-lite.chunk.js.map} +1 -1
  12. package/dist/scripts/{2118-462a279c5a-lite.chunk.js → 2118-ec2a5f1e9b-lite.chunk.js} +2 -2
  13. package/dist/scripts/{2118-462a279c5a-lite.chunk.js.map → 2118-ec2a5f1e9b-lite.chunk.js.map} +1 -1
  14. package/dist/scripts/{2182-5c9db07f5b-lite.chunk.js → 2182-8e4d603a1b-lite.chunk.js} +1 -1
  15. package/dist/scripts/{2182-5c9db07f5b-lite.chunk.js.map → 2182-8e4d603a1b-lite.chunk.js.map} +1 -1
  16. package/dist/scripts/{2279-5e92c84310-lite.chunk.js → 2279-252e92e1d8-lite.chunk.js} +1 -1
  17. package/dist/scripts/{2279-5e92c84310-lite.chunk.js.map → 2279-252e92e1d8-lite.chunk.js.map} +1 -1
  18. package/dist/scripts/{2355-6cd89fa80d-lite.chunk.js → 2355-c588dc3ce2-lite.chunk.js} +1 -1
  19. package/dist/scripts/{2355-6cd89fa80d-lite.chunk.js.map → 2355-c588dc3ce2-lite.chunk.js.map} +1 -1
  20. package/dist/scripts/{2469-aa5bbbb17f-lite.chunk.js → 2469-46411b862e-lite.chunk.js} +1 -1
  21. package/dist/scripts/{2469-aa5bbbb17f-lite.chunk.js.map → 2469-46411b862e-lite.chunk.js.map} +1 -1
  22. package/dist/scripts/{2672-0fc559f1d1-lite.chunk.js → 2672-b01985cee8-lite.chunk.js} +1 -1
  23. package/dist/scripts/{2672-0fc559f1d1-lite.chunk.js.map → 2672-b01985cee8-lite.chunk.js.map} +1 -1
  24. package/dist/scripts/{2734-6c6d57d0f3-lite.chunk.js → 2734-6a7beb2ce2-lite.chunk.js} +1 -1
  25. package/dist/scripts/{2734-6c6d57d0f3-lite.chunk.js.map → 2734-6a7beb2ce2-lite.chunk.js.map} +1 -1
  26. package/dist/scripts/{287-ba98be7f21-lite.chunk.js → 287-3cbed16363-lite.chunk.js} +1 -1
  27. package/dist/scripts/{287-ba98be7f21-lite.chunk.js.map → 287-3cbed16363-lite.chunk.js.map} +1 -1
  28. package/dist/scripts/{2875-0e5f209e47-lite.chunk.js → 2875-aefd69a61f-lite.chunk.js} +1 -1
  29. package/dist/scripts/{2875-0e5f209e47-lite.chunk.js.map → 2875-aefd69a61f-lite.chunk.js.map} +1 -1
  30. package/dist/scripts/{3042-6650521d8b-lite.chunk.js → 3042-7c1b5e4ff7-lite.chunk.js} +1 -1
  31. package/dist/scripts/{3042-6650521d8b-lite.chunk.js.map → 3042-7c1b5e4ff7-lite.chunk.js.map} +1 -1
  32. package/dist/scripts/{3158-31baada6cc-lite.chunk.js → 3158-2147de456d-lite.chunk.js} +1 -1
  33. package/dist/scripts/{3158-31baada6cc-lite.chunk.js.map → 3158-2147de456d-lite.chunk.js.map} +1 -1
  34. package/dist/scripts/{3296-6d80e4dd56-lite.chunk.js → 3296-f3732c93d9-lite.chunk.js} +1 -1
  35. package/dist/scripts/{3296-6d80e4dd56-lite.chunk.js.map → 3296-f3732c93d9-lite.chunk.js.map} +1 -1
  36. package/dist/scripts/{3541-7ebd9db295-lite.chunk.js → 3541-15581012d3-lite.chunk.js} +1 -1
  37. package/dist/scripts/{3541-7ebd9db295-lite.chunk.js.map → 3541-15581012d3-lite.chunk.js.map} +1 -1
  38. package/dist/scripts/{3841-95df66e647-lite.chunk.js → 3841-bfae79638b-lite.chunk.js} +2 -2
  39. package/dist/scripts/{3841-95df66e647-lite.chunk.js.map → 3841-bfae79638b-lite.chunk.js.map} +1 -1
  40. package/dist/scripts/{3888-0bee9a9309-lite.chunk.js → 3888-87c1075a1b-lite.chunk.js} +1 -1
  41. package/dist/scripts/{3888-0bee9a9309-lite.chunk.js.map → 3888-87c1075a1b-lite.chunk.js.map} +1 -1
  42. package/dist/scripts/{4138-75a2bb69ab-lite.chunk.js → 4138-b9b03c9900-lite.chunk.js} +1 -1
  43. package/dist/scripts/{4138-75a2bb69ab-lite.chunk.js.map → 4138-b9b03c9900-lite.chunk.js.map} +1 -1
  44. package/dist/scripts/{4778-ebe369973c-lite.chunk.js → 4778-3c9f2b7f76-lite.chunk.js} +2 -2
  45. package/dist/scripts/{4778-ebe369973c-lite.chunk.js.map → 4778-3c9f2b7f76-lite.chunk.js.map} +1 -1
  46. package/dist/scripts/{4942-a27a31e79e-lite.chunk.js → 4942-acce40b333-lite.chunk.js} +2 -2
  47. package/dist/scripts/{4942-a27a31e79e-lite.chunk.js.map → 4942-acce40b333-lite.chunk.js.map} +1 -1
  48. package/dist/scripts/{5075-f8719465be-lite.chunk.js → 5075-53172298fe-lite.chunk.js} +1 -1
  49. package/dist/scripts/{5075-f8719465be-lite.chunk.js.map → 5075-53172298fe-lite.chunk.js.map} +1 -1
  50. package/dist/scripts/{5157-cd12e2e443-lite.chunk.js → 5157-47a0f5c088-lite.chunk.js} +1 -1
  51. package/dist/scripts/{5157-cd12e2e443-lite.chunk.js.map → 5157-47a0f5c088-lite.chunk.js.map} +1 -1
  52. package/dist/scripts/{5268-f4db3933ff-lite.chunk.js → 5268-9b7560f3b1-lite.chunk.js} +2 -2
  53. package/dist/scripts/{5268-f4db3933ff-lite.chunk.js.map → 5268-9b7560f3b1-lite.chunk.js.map} +1 -1
  54. package/dist/scripts/{5442-01ffd95162-lite.chunk.js → 5442-5ddfa2d951-lite.chunk.js} +1 -1
  55. package/dist/scripts/{5442-01ffd95162-lite.chunk.js.map → 5442-5ddfa2d951-lite.chunk.js.map} +1 -1
  56. package/dist/scripts/{5591-98cfe6c6e5-lite.chunk.js → 5591-119d72ede5-lite.chunk.js} +1 -1
  57. package/dist/scripts/{5591-98cfe6c6e5-lite.chunk.js.map → 5591-119d72ede5-lite.chunk.js.map} +1 -1
  58. package/dist/scripts/{5595-3763b14d77-lite.chunk.js → 5595-628d4f252c-lite.chunk.js} +2 -2
  59. package/dist/scripts/5595-628d4f252c-lite.chunk.js.map +1 -0
  60. package/dist/scripts/{6102-4d948a5e48-lite.chunk.js → 6102-751dbbbf33-lite.chunk.js} +3 -3
  61. package/dist/scripts/{6102-4d948a5e48-lite.chunk.js.map → 6102-751dbbbf33-lite.chunk.js.map} +1 -1
  62. package/dist/scripts/{6158-0c5e44f800-lite.chunk.js → 6158-d123add596-lite.chunk.js} +1 -1
  63. package/dist/scripts/{6158-0c5e44f800-lite.chunk.js.map → 6158-d123add596-lite.chunk.js.map} +1 -1
  64. package/dist/scripts/{6263-8957d50afe-lite.chunk.js → 6263-24e67b7df2-lite.chunk.js} +1 -1
  65. package/dist/scripts/{6263-8957d50afe-lite.chunk.js.map → 6263-24e67b7df2-lite.chunk.js.map} +1 -1
  66. package/dist/scripts/{6330-c66465bd6d-lite.chunk.js → 6330-9a2a5fc07e-lite.chunk.js} +1 -1
  67. package/dist/scripts/{6330-c66465bd6d-lite.chunk.js.map → 6330-9a2a5fc07e-lite.chunk.js.map} +1 -1
  68. package/dist/scripts/{671-003843ca84-lite.chunk.js → 671-5571f33165-lite.chunk.js} +1 -1
  69. package/dist/scripts/{671-003843ca84-lite.chunk.js.map → 671-5571f33165-lite.chunk.js.map} +1 -1
  70. package/dist/scripts/{7167-efe85af16e-lite.chunk.js → 7167-dc4c954c2b-lite.chunk.js} +1 -1
  71. package/dist/scripts/{7167-efe85af16e-lite.chunk.js.map → 7167-dc4c954c2b-lite.chunk.js.map} +1 -1
  72. package/dist/scripts/7293-58f4a7cf47-lite.chunk.js +2 -0
  73. package/dist/scripts/{7293-afd3349468-lite.chunk.js.map → 7293-58f4a7cf47-lite.chunk.js.map} +1 -1
  74. package/dist/scripts/{7301-f20e4bdb8f-lite.chunk.js → 7301-7c9342ef0c-lite.chunk.js} +1 -1
  75. package/dist/scripts/{7301-f20e4bdb8f-lite.chunk.js.map → 7301-7c9342ef0c-lite.chunk.js.map} +1 -1
  76. package/dist/scripts/{7708-ece31b78a9-lite.chunk.js → 7708-e91903481a-lite.chunk.js} +1 -1
  77. package/dist/scripts/{7708-ece31b78a9-lite.chunk.js.map → 7708-e91903481a-lite.chunk.js.map} +1 -1
  78. package/dist/scripts/{771-eb60e33941-lite.chunk.js → 771-5612b4ffc2-lite.chunk.js} +2 -2
  79. package/dist/scripts/{771-eb60e33941-lite.chunk.js.map → 771-5612b4ffc2-lite.chunk.js.map} +1 -1
  80. package/dist/scripts/{7855-37bcdd134e-lite.chunk.js → 7855-4b69540a71-lite.chunk.js} +1 -1
  81. package/dist/scripts/{7855-37bcdd134e-lite.chunk.js.map → 7855-4b69540a71-lite.chunk.js.map} +1 -1
  82. package/dist/scripts/{8024-66413cc05b-lite.chunk.js → 8024-765a4170c7-lite.chunk.js} +2 -2
  83. package/dist/scripts/{8024-66413cc05b-lite.chunk.js.map → 8024-765a4170c7-lite.chunk.js.map} +1 -1
  84. package/dist/scripts/{823-58d27c255b-lite.chunk.js → 823-33c5207c68-lite.chunk.js} +1 -1
  85. package/dist/scripts/{823-58d27c255b-lite.chunk.js.map → 823-33c5207c68-lite.chunk.js.map} +1 -1
  86. package/dist/scripts/8261-69854ff4d5-lite.chunk.js +2 -0
  87. package/dist/scripts/8261-69854ff4d5-lite.chunk.js.map +1 -0
  88. package/dist/scripts/{8466-ee9d40ee97-lite.chunk.js → 8466-cea62163e8-lite.chunk.js} +1 -1
  89. package/dist/scripts/{8466-ee9d40ee97-lite.chunk.js.map → 8466-cea62163e8-lite.chunk.js.map} +1 -1
  90. package/dist/scripts/{8681-41edd08b98-lite.chunk.js → 8681-49db3daae6-lite.chunk.js} +2 -2
  91. package/dist/scripts/{8681-41edd08b98-lite.chunk.js.map → 8681-49db3daae6-lite.chunk.js.map} +1 -1
  92. package/dist/scripts/{8772-9ae4d77363-lite.chunk.js → 8772-6c11095cea-lite.chunk.js} +1 -1
  93. package/dist/scripts/{8772-9ae4d77363-lite.chunk.js.map → 8772-6c11095cea-lite.chunk.js.map} +1 -1
  94. package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js → 8906-2f6b5e4c5c-lite.chunk.js} +2 -2
  95. package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js.map → 8906-2f6b5e4c5c-lite.chunk.js.map} +1 -1
  96. package/dist/scripts/{920-4de8efbcf1-lite.chunk.js → 920-acc6596891-lite.chunk.js} +1 -1
  97. package/dist/scripts/{920-4de8efbcf1-lite.chunk.js.map → 920-acc6596891-lite.chunk.js.map} +1 -1
  98. package/dist/scripts/{9212-8f95fbd9b9-lite.chunk.js → 9212-cc987a13bf-lite.chunk.js} +1 -1
  99. package/dist/scripts/{9212-8f95fbd9b9-lite.chunk.js.map → 9212-cc987a13bf-lite.chunk.js.map} +1 -1
  100. package/dist/scripts/{9242-2e533bdc0d-lite.chunk.js → 9242-144e7728ad-lite.chunk.js} +1 -1
  101. package/dist/scripts/{9242-2e533bdc0d-lite.chunk.js.map → 9242-144e7728ad-lite.chunk.js.map} +1 -1
  102. package/dist/scripts/{9264-d2285d4310-lite.chunk.js → 9264-518952f13f-lite.chunk.js} +1 -1
  103. package/dist/scripts/{9264-d2285d4310-lite.chunk.js.map → 9264-518952f13f-lite.chunk.js.map} +1 -1
  104. package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js → 9478-4b3c088537-lite.chunk.js} +2 -2
  105. package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js.map → 9478-4b3c088537-lite.chunk.js.map} +1 -1
  106. package/dist/scripts/{9484-be04a34bbf-lite.chunk.js → 9484-b85011dbea-lite.chunk.js} +2 -2
  107. package/dist/scripts/{9484-be04a34bbf-lite.chunk.js.map → 9484-b85011dbea-lite.chunk.js.map} +1 -1
  108. package/dist/scripts/{bundle-8f540a1154.min.js → bundle-c158cdd3a9.min.js} +3 -3
  109. package/dist/scripts/{bundle-8f540a1154.min.js.map → bundle-c158cdd3a9.min.js.map} +1 -1
  110. package/package.json +1 -1
  111. package/dist/scripts/5595-3763b14d77-lite.chunk.js.map +0 -1
  112. package/dist/scripts/7293-afd3349468-lite.chunk.js +0 -2
  113. package/dist/scripts/8261-72453f1978-lite.chunk.js +0 -2
  114. package/dist/scripts/8261-72453f1978-lite.chunk.js.map +0 -1
  115. /package/dist/scripts/{170-1f815b85a1-lite.chunk.js.LICENSE.txt → 170-2d124965b7-lite.chunk.js.LICENSE.txt} +0 -0
  116. /package/dist/scripts/{2118-462a279c5a-lite.chunk.js.LICENSE.txt → 2118-ec2a5f1e9b-lite.chunk.js.LICENSE.txt} +0 -0
  117. /package/dist/scripts/{3841-95df66e647-lite.chunk.js.LICENSE.txt → 3841-bfae79638b-lite.chunk.js.LICENSE.txt} +0 -0
  118. /package/dist/scripts/{4778-ebe369973c-lite.chunk.js.LICENSE.txt → 4778-3c9f2b7f76-lite.chunk.js.LICENSE.txt} +0 -0
  119. /package/dist/scripts/{4942-a27a31e79e-lite.chunk.js.LICENSE.txt → 4942-acce40b333-lite.chunk.js.LICENSE.txt} +0 -0
  120. /package/dist/scripts/{5268-f4db3933ff-lite.chunk.js.LICENSE.txt → 5268-9b7560f3b1-lite.chunk.js.LICENSE.txt} +0 -0
  121. /package/dist/scripts/{6102-4d948a5e48-lite.chunk.js.LICENSE.txt → 6102-751dbbbf33-lite.chunk.js.LICENSE.txt} +0 -0
  122. /package/dist/scripts/{771-eb60e33941-lite.chunk.js.LICENSE.txt → 771-5612b4ffc2-lite.chunk.js.LICENSE.txt} +0 -0
  123. /package/dist/scripts/{8024-66413cc05b-lite.chunk.js.LICENSE.txt → 8024-765a4170c7-lite.chunk.js.LICENSE.txt} +0 -0
  124. /package/dist/scripts/{8681-41edd08b98-lite.chunk.js.LICENSE.txt → 8681-49db3daae6-lite.chunk.js.LICENSE.txt} +0 -0
  125. /package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js.LICENSE.txt → 8906-2f6b5e4c5c-lite.chunk.js.LICENSE.txt} +0 -0
  126. /package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js.LICENSE.txt → 9478-4b3c088537-lite.chunk.js.LICENSE.txt} +0 -0
  127. /package/dist/scripts/{9484-be04a34bbf-lite.chunk.js.LICENSE.txt → 9484-b85011dbea-lite.chunk.js.LICENSE.txt} +0 -0
  128. /package/dist/scripts/{bundle-8f540a1154.min.js.LICENSE.txt → bundle-c158cdd3a9.min.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/5591-98cfe6c6e5-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/interactives/components/play-interactive/PlayInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/preview-interactive/InteractiveAlertBanner.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/preview-interactive/PreviewInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/hooks/interactiveHooks.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useShouldPreviewInteractive.ts","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey, PresentationAudience, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\ninterface PlayInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n currentUser: CurrentUser;\n config: Config;\n audiences: PresentationAudience[];\n queryParams: PlayViewQueryParams;\n viewKey: PlayerViewKey;\n startTime?: number;\n endTime?: number;\n\n // Share view only\n shareLink?: UnionShareObject;\n sharerInstanceRegion?: string;\n checkMarkStatus?: CheckMarkStatus;\n relatedVideos: RelatedVideosHash;\n}\n\nexport function PlayInteractive(props: PlayInteractiveProps): JSX.Element {\n const locationContext = props.shareLink ?\n LocationContext.PlaySharedInteractive :\n LocationContext.PlayInteractive;\n\n const [ showHeading, setShowHeading ] = React.useState(true);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.interactive);\n\n const summaryPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext);\n const { hasPermissions } = usePermissions();\n\n function onShowSummary(showing: boolean): void {\n setShowHeading(!showing);\n }\n\n return (\n <div className='px-3'>\n {isArchived && <ArchivedBanner typeId={props.interactive.typeId} hasStudentExperience />}\n\n <div className='mb-3'>\n <LitePlayerView\n config={props.config}\n video={props.interactive}\n currentUser={props.currentUser}\n shareLink={props.shareLink}\n viewKey={props.viewKey}\n startTime={props.startTime}\n onShowSummary={onShowSummary}\n summaryPortalNode={summaryPortalNode}\n />\n </div>\n {/* This wrapping div is here because react seems to not want to play nice\n with adding or removing a node just ahead of an OutPortal */}\n <div>\n {showHeading &&\n <h1 className='h3 d-flex'>\n {props.interactive.name}\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1'\n video={props.interactive}\n yearGroups={props.yearGroups}\n />\n </h1>\n }\n </div>\n <OutPortal node={summaryPortalNode}></OutPortal>\n\n {!hasPermissions(PermissionName.StudentExperience) && (\n <RelatedVideos\n currentVideo={props.interactive}\n yearGroups={props.yearGroups}\n currentUser={props.currentUser}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n relatedVideos={props.relatedVideos}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareLink?.id,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveAlertBannerProps {\n isPreviewPreventScrubbingEnabled: boolean;\n isPreviewingPreventScrubbing: boolean;\n toggleStudentMode: () => void;\n isArchived: boolean;\n}\n\nexport function InteractiveAlertBanner(props: InteractiveAlertBannerProps): JSX.Element {\n return (\n <div className='alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center' role='alert'>\n {!props.isArchived ? <Text phrase='alert' /> : (\n <div className='d-flex align-items-center'>\n <SvgContainer\n svgName={cvSvgLibrary.Archive}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle')}</p>\n <p className='mb-1'>{getPhrase('archivedInfo')}</p>\n </div>\n </div>\n )}\n {props.isPreviewPreventScrubbingEnabled && (\n <Tooltip\n title={getPhrase('previewPreventScrubbingExplain')}\n trigger='hover'\n spanHack\n >\n <div className='d-flex mt-1 mt-lg-0'>\n <div className='me-2'><Text phrase='previewPreventScrubbing'/></div>\n <ToggleSwitch on={props.isPreviewingPreventScrubbing} onClick={props.toggleStudentMode} />\n </div>\n </Tooltip>\n )}\n </div>\n );\n}","import * as React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { InteractiveWidgetItem, InteractiveWidgetItemProps } from 'libs/shared/components/widgets/items/interactive-widget-item/InteractiveWidgetItem';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveMetadata, PresentationAudience, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InteractiveAlertBanner } from 'apps/interactives/components/preview-interactive/InteractiveAlertBanner';\nimport { usePreviewPreventInteractive } from 'apps/interactives/hooks/interactiveHooks';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive._parentClip || interactive._parentVideo;\n}\n\ninterface PreviewInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n config: Config;\n currentUser: CurrentUser;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n isPreviewPreventScrubbingEnabled: boolean;\n relatedVideos: RelatedVideosHash;\n canManageVideoAccess: boolean;\n\n // Share view only\n shareId?: string;\n}\n\nexport function PreviewInteractive(props: PreviewInteractiveProps): JSX.Element {\n const locationContext = props.shareId ? LocationContext.PreviewSharedInteractive : LocationContext.PreviewInteractive;\n\n const playerContext = usePlayerContext();\n\n const [ isPreviewingPreventScrubbing, setIsPreviewingPreventScrubbing ] = React.useState(false);\n\n const { canConsume } = VideoHelper.getCanBeConsumed(props.interactive);\n\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n \n const videoActions = useVideoActions({\n location: VideoActionsLocation.PlayPage,\n shareId: props.shareId\n });\n\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext);\n\n usePreviewPreventInteractive(isPreviewingPreventScrubbing, togglePreviewPreventScrubbing);\n\n function togglePreviewPreventScrubbing() {\n playerContext.playerRef?.current?.togglePreviewPreventScrubbing?.();\n }\n\n function toggleStudentMode() {\n setIsPreviewingPreventScrubbing(!isPreviewingPreventScrubbing);\n }\n\n const sourceVideo = getSourceVideo(props.interactive);\n\n let otherInteractives: InteractiveMetadata[];\n let backToName: string;\n let backAppLink: Core.AppLink;\n\n if (VideoHelper.isClip(sourceVideo)) {\n otherInteractives = sourceVideo.interactives?.data?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n backToName = sourceVideo.name;\n backAppLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ sourceVideo.id, TextHelper.slugify(sourceVideo.name) ]\n };\n } else {\n otherInteractives = sourceVideo.interactives?.data?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n backToName = sourceVideo.name;\n backAppLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ sourceVideo.id, TextHelper.slugify(sourceVideo.name) ]\n };\n }\n\n const isDraft = props.interactive.status === CurationStatus.Draft;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='px-4'>\n\n <RestrictionBanner\n restrictions={props.interactive._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.interactive.id}\n objectTypeId={MasterType.Interactive}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n <InteractiveAlertBanner\n isPreviewPreventScrubbingEnabled={props.isPreviewPreventScrubbingEnabled}\n isPreviewingPreventScrubbing={isPreviewingPreventScrubbing}\n toggleStudentMode={toggleStudentMode}\n isArchived={VideoHelper.isVideoTypeArchived(props.interactive)}\n />\n\n <div className='mb-3'>\n {canConsume &&\n <GlobalPlayerConsumer\n key={props.interactive.id}\n objectId={props.interactive.id}\n objectTypeId={props.interactive.typeId}\n shareId={props.shareId}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n mode='default'\n location='play-page'\n />\n }\n </div>\n <div className='d-flex justify-content-between align-items-center'>\n <div className='inline-block w-100'>\n <div className='ms-2 float-end'>\n <ActionsComponent\n actions={videoActions.getVideoActions(props.interactive)}\n actionsDropdownClassName='btn btn-outline-dark'\n fetchMore={() => videoActions.fetchMoreActions(props.interactive)}\n />\n </div>\n\n <h1 className='h3 mb-2'>\n {isDraft && (\n <div className={`badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base`}>\n <Text phrase='draft' />\n </div>\n )}\n {props.interactive.name}\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1'\n video={props.interactive}\n yearGroups={props.yearGroups}\n />\n </h1>\n {VideoHelper.canViewOriginalVideo(props.interactive) &&\n <div className='mb-1 me-3 clamp-1'>\n <Text phrase='viewOriginal' />&nbsp;<AppLink appLink={backAppLink} className='text-info'>{backToName}</AppLink>\n </div>\n }\n </div>\n </div>\n\n {props.interactive.description &&\n <p>{props.interactive.description}</p>\n }\n\n <div className='mb-3'>\n <OutPortal node={questionListPortalNode}></OutPortal>\n </div>\n\n {!!otherInteractives?.length && (\n <div className='pb-3'>\n <FixedWidget<InteractiveWidgetItemProps>\n name={getPhrase('otherInteractives', { count: otherInteractives.length })}\n contents={WidgetContents.Interactives}\n collection={otherInteractives}\n prefetched\n getChildAppLink={(interactive: Interactive) => {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ interactive.id, TextHelper.slugify(interactive.name) ]\n };\n }}\n childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n video: sourceVideo,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n imageCdnUrl: props.config.imageCdnUrl\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n </div>\n )}\n\n <RelatedVideos\n currentVideo={props.interactive}\n yearGroups={props.yearGroups}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n relatedVideos={props.relatedVideos}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n />\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nexport function usePreviewPreventInteractive(\n previewPreventInteractive: boolean,\n togglePreviewPreventInteractive: () => void\n): void {\n React.useEffect(() => {\n togglePreviewPreventInteractive();\n }, [previewPreventInteractive]);\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nexport function useShouldPreviewInteractive() {\n const { hasPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n return !hasPermissions(PermissionName.StudentExperience) &&\n hasProduct(ProductId.Primary) &&\n currentUser.data.isAuthenticated;\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","PlayInteractive","props","locationContext","shareLink","showHeading","setShowHeading","isArchived","interactive","summaryPortalNode","u","setFavourite","canFavourite","hasPermissions","className","typeId","hasStudentExperience","config","video","currentUser","viewKey","startTime","onShowSummary","showing","name","tooltipPlacement","yearGroups","node","currentVideo","relatedVideos","audiences","getVideoAppLink","v","opts","context","queryParams","contextId","playNext","shareId","id","moviesAndTv","mtv","getPhrase","LanguageService","InteractiveAlertBanner","role","SvgContainer","svgName","size","S","Text","phrase","isPreviewPreventScrubbingEnabled","Tooltip","title","trigger","spanHack","ToggleSwitch","on","isPreviewingPreventScrubbing","onClick","toggleStudentMode","PreviewInteractive","previewPreventInteractive","togglePreviewPreventInteractive","playerContext","setIsPreviewingPreventScrubbing","canConsume","VideoHelper","questionListPortalNode","videoActions","useVideoActions","location","useLiteFavourites","playerRef","current","togglePreviewPreventScrubbing","otherInteractives","backToName","backAppLink","sourceVideo","_parentClip","_parentVideo","interactives","data","filter","i","toString","application","action","args","TextHelper","isDraft","CurationStatus","value","RestrictionBanner","restrictions","_restrictions","objectId","objectTypeId","MasterType","canManageVideoAccess","GlobalPlayerConsumer","key","t","mode","Actions","actions","getVideoActions","actionsDropdownClassName","fetchMore","fetchMoreActions","RestrictionPadlock","AppLink","appLink","description","length","count","contents","WidgetContents","collection","prefetched","getChildAppLink","childComponent","InteractiveWidgetItem","extraChildComponentProps","questionsAppLink","imageCdnUrl","analyticsData","widgetId","RelatedVideos","VideoAppLinkHelper","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","useShouldPreviewInteractive","hasProduct","isAuthenticated","Row","bsPrefix","as","Component","ref","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/5591-119d72ede5-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/interactives/components/play-interactive/PlayInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/preview-interactive/InteractiveAlertBanner.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/preview-interactive/PreviewInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/hooks/interactiveHooks.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useShouldPreviewInteractive.ts","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey, PresentationAudience, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\ninterface PlayInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n currentUser: CurrentUser;\n config: Config;\n audiences: PresentationAudience[];\n queryParams: PlayViewQueryParams;\n viewKey: PlayerViewKey;\n startTime?: number;\n endTime?: number;\n\n // Share view only\n shareLink?: UnionShareObject;\n sharerInstanceRegion?: string;\n checkMarkStatus?: CheckMarkStatus;\n relatedVideos: RelatedVideosHash;\n}\n\nexport function PlayInteractive(props: PlayInteractiveProps): JSX.Element {\n const locationContext = props.shareLink ?\n LocationContext.PlaySharedInteractive :\n LocationContext.PlayInteractive;\n\n const [ showHeading, setShowHeading ] = React.useState(true);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.interactive);\n\n const summaryPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext);\n const { hasPermissions } = usePermissions();\n\n function onShowSummary(showing: boolean): void {\n setShowHeading(!showing);\n }\n\n return (\n <div className='px-3'>\n {isArchived && <ArchivedBanner typeId={props.interactive.typeId} hasStudentExperience />}\n\n <div className='mb-3'>\n <LitePlayerView\n config={props.config}\n video={props.interactive}\n currentUser={props.currentUser}\n shareLink={props.shareLink}\n viewKey={props.viewKey}\n startTime={props.startTime}\n onShowSummary={onShowSummary}\n summaryPortalNode={summaryPortalNode}\n />\n </div>\n {/* This wrapping div is here because react seems to not want to play nice\n with adding or removing a node just ahead of an OutPortal */}\n <div>\n {showHeading &&\n <h1 className='h3 d-flex'>\n {props.interactive.name}\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1'\n video={props.interactive}\n yearGroups={props.yearGroups}\n />\n </h1>\n }\n </div>\n <OutPortal node={summaryPortalNode}></OutPortal>\n\n {!hasPermissions(PermissionName.StudentExperience) && (\n <RelatedVideos\n currentVideo={props.interactive}\n yearGroups={props.yearGroups}\n currentUser={props.currentUser}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n relatedVideos={props.relatedVideos}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareLink?.id,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveAlertBannerProps {\n isPreviewPreventScrubbingEnabled: boolean;\n isPreviewingPreventScrubbing: boolean;\n toggleStudentMode: () => void;\n isArchived: boolean;\n}\n\nexport function InteractiveAlertBanner(props: InteractiveAlertBannerProps): JSX.Element {\n return (\n <div className='alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center' role='alert'>\n {!props.isArchived ? <Text phrase='alert' /> : (\n <div className='d-flex align-items-center'>\n <SvgContainer\n svgName={cvSvgLibrary.Archive}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle')}</p>\n <p className='mb-1'>{getPhrase('archivedInfo')}</p>\n </div>\n </div>\n )}\n {props.isPreviewPreventScrubbingEnabled && (\n <Tooltip\n title={getPhrase('previewPreventScrubbingExplain')}\n trigger='hover'\n spanHack\n >\n <div className='d-flex mt-1 mt-lg-0'>\n <div className='me-2'><Text phrase='previewPreventScrubbing'/></div>\n <ToggleSwitch on={props.isPreviewingPreventScrubbing} onClick={props.toggleStudentMode} />\n </div>\n </Tooltip>\n )}\n </div>\n );\n}","import * as React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { InteractiveWidgetItem, InteractiveWidgetItemProps } from 'libs/shared/components/widgets/items/interactive-widget-item/InteractiveWidgetItem';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveMetadata, PresentationAudience, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InteractiveAlertBanner } from 'apps/interactives/components/preview-interactive/InteractiveAlertBanner';\nimport { usePreviewPreventInteractive } from 'apps/interactives/hooks/interactiveHooks';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive._parentClip || interactive._parentVideo;\n}\n\ninterface PreviewInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n config: Config;\n currentUser: CurrentUser;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n isPreviewPreventScrubbingEnabled: boolean;\n relatedVideos: RelatedVideosHash;\n canManageVideoAccess: boolean;\n\n // Share view only\n shareId?: string;\n}\n\nexport function PreviewInteractive(props: PreviewInteractiveProps): JSX.Element {\n const locationContext = props.shareId ? LocationContext.PreviewSharedInteractive : LocationContext.PreviewInteractive;\n\n const playerContext = usePlayerContext();\n\n const [ isPreviewingPreventScrubbing, setIsPreviewingPreventScrubbing ] = React.useState(false);\n\n const { canConsume } = VideoHelper.getCanBeConsumed(props.interactive);\n\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n \n const videoActions = useVideoActions({\n location: VideoActionsLocation.PlayPage,\n shareId: props.shareId\n });\n\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext);\n\n usePreviewPreventInteractive(isPreviewingPreventScrubbing, togglePreviewPreventScrubbing);\n\n function togglePreviewPreventScrubbing() {\n playerContext.playerRef?.current?.togglePreviewPreventScrubbing?.();\n }\n\n function toggleStudentMode() {\n setIsPreviewingPreventScrubbing(!isPreviewingPreventScrubbing);\n }\n\n const sourceVideo = getSourceVideo(props.interactive);\n\n let otherInteractives: InteractiveMetadata[];\n let backToName: string;\n let backAppLink: Core.AppLink;\n\n if (VideoHelper.isClip(sourceVideo)) {\n otherInteractives = sourceVideo.interactives?.data?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n backToName = sourceVideo.name;\n backAppLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ sourceVideo.id, TextHelper.slugify(sourceVideo.name) ]\n };\n } else {\n otherInteractives = sourceVideo.interactives?.data?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n backToName = sourceVideo.name;\n backAppLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ sourceVideo.id, TextHelper.slugify(sourceVideo.name) ]\n };\n }\n\n const isDraft = props.interactive.status === CurationStatus.Draft;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='px-4'>\n\n <RestrictionBanner\n restrictions={props.interactive._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.interactive.id}\n objectTypeId={MasterType.Interactive}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n <InteractiveAlertBanner\n isPreviewPreventScrubbingEnabled={props.isPreviewPreventScrubbingEnabled}\n isPreviewingPreventScrubbing={isPreviewingPreventScrubbing}\n toggleStudentMode={toggleStudentMode}\n isArchived={VideoHelper.isVideoTypeArchived(props.interactive)}\n />\n\n <div className='mb-3'>\n {canConsume &&\n <GlobalPlayerConsumer\n key={props.interactive.id}\n objectId={props.interactive.id}\n objectTypeId={props.interactive.typeId}\n shareId={props.shareId}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n mode='default'\n location='play-page'\n />\n }\n </div>\n <div className='d-flex justify-content-between align-items-center'>\n <div className='inline-block w-100'>\n <div className='ms-2 float-end'>\n <ActionsComponent\n actions={videoActions.getVideoActions(props.interactive)}\n actionsDropdownClassName='btn btn-outline-dark'\n fetchMore={() => videoActions.fetchMoreActions(props.interactive)}\n />\n </div>\n\n <h1 className='h3 mb-2'>\n {isDraft && (\n <div className={`badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base`}>\n <Text phrase='draft' />\n </div>\n )}\n {props.interactive.name}\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1'\n video={props.interactive}\n yearGroups={props.yearGroups}\n />\n </h1>\n {VideoHelper.canViewOriginalVideo(props.interactive) &&\n <div className='mb-1 me-3 clamp-1'>\n <Text phrase='viewOriginal' />&nbsp;<AppLink appLink={backAppLink} className='text-info'>{backToName}</AppLink>\n </div>\n }\n </div>\n </div>\n\n {props.interactive.description &&\n <p>{props.interactive.description}</p>\n }\n\n <div className='mb-3'>\n <OutPortal node={questionListPortalNode}></OutPortal>\n </div>\n\n {!!otherInteractives?.length && (\n <div className='pb-3'>\n <FixedWidget<InteractiveWidgetItemProps>\n name={getPhrase('otherInteractives', { count: otherInteractives.length })}\n contents={WidgetContents.Interactives}\n collection={otherInteractives}\n prefetched\n getChildAppLink={(interactive: Interactive) => {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ interactive.id, TextHelper.slugify(interactive.name) ]\n };\n }}\n childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n video: sourceVideo,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n imageCdnUrl: props.config.imageCdnUrl\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n </div>\n )}\n\n <RelatedVideos\n currentVideo={props.interactive}\n yearGroups={props.yearGroups}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n relatedVideos={props.relatedVideos}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n />\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nexport function usePreviewPreventInteractive(\n previewPreventInteractive: boolean,\n togglePreviewPreventInteractive: () => void\n): void {\n React.useEffect(() => {\n togglePreviewPreventInteractive();\n }, [previewPreventInteractive]);\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nexport function useShouldPreviewInteractive() {\n const { hasPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n return !hasPermissions(PermissionName.StudentExperience) &&\n hasProduct(ProductId.Primary) &&\n currentUser.data.isAuthenticated;\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","PlayInteractive","props","locationContext","shareLink","showHeading","setShowHeading","isArchived","interactive","summaryPortalNode","u","setFavourite","canFavourite","hasPermissions","className","typeId","hasStudentExperience","config","video","currentUser","viewKey","startTime","onShowSummary","showing","name","tooltipPlacement","yearGroups","node","currentVideo","relatedVideos","audiences","getVideoAppLink","v","opts","context","queryParams","contextId","playNext","shareId","id","moviesAndTv","mtv","getPhrase","LanguageService","InteractiveAlertBanner","role","SvgContainer","svgName","size","S","Text","phrase","isPreviewPreventScrubbingEnabled","Tooltip","title","trigger","spanHack","ToggleSwitch","on","isPreviewingPreventScrubbing","onClick","toggleStudentMode","PreviewInteractive","previewPreventInteractive","togglePreviewPreventInteractive","playerContext","setIsPreviewingPreventScrubbing","canConsume","VideoHelper","questionListPortalNode","videoActions","useVideoActions","location","useLiteFavourites","playerRef","current","togglePreviewPreventScrubbing","otherInteractives","backToName","backAppLink","sourceVideo","_parentClip","_parentVideo","interactives","data","filter","i","toString","application","action","args","TextHelper","isDraft","CurationStatus","value","RestrictionBanner","restrictions","_restrictions","objectId","objectTypeId","MasterType","canManageVideoAccess","GlobalPlayerConsumer","key","t","mode","Actions","actions","getVideoActions","actionsDropdownClassName","fetchMore","fetchMoreActions","RestrictionPadlock","AppLink","appLink","description","length","count","contents","WidgetContents","collection","prefetched","getChildAppLink","childComponent","InteractiveWidgetItem","extraChildComponentProps","questionsAppLink","imageCdnUrl","analyticsData","widgetId","RelatedVideos","VideoAppLinkHelper","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","useShouldPreviewInteractive","hasProduct","isAuthenticated","Row","bsPrefix","as","Component","ref","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5595],{84963:(e,t,a)=>{a.d(t,{r:()=>d});var n=a(32735),r=a(23481),o=a(83914),l=a(76177),i=a(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function d(e){return n.createElement(l.u,{title:r.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},n.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},n.createElement(o.x,{svgName:i.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(s,"comingSoon")))}},73679:(e,t,a)=>{a.d(t,{s:()=>l});var n=a(32735),r=a(36848);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function l(e){var t,a,l;return n.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(a=e.theme)||void 0===a?void 0:a.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},n.createElement("div",{className:"position-relative ".concat(o.dateItem)},n.createElement("div",{className:"".concat(null===(l=e.theme)||void 0===l?void 0:l.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),n.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},83657:(e,t,a)=>{a.d(t,{e:()=>s});var n=a(32735),r=a(91967),o=a(10874),l=a(76177),i=a(42735),c=a(86509);function s(e){var t=n.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),a=[],s=[];t.forEach((function(e){e.button?a.push(e):s.push(e)}));var d="d-flex";return e.className&&(d+=" ".concat(e.className)),a.length||s.length?n.createElement("div",{className:d},n.createElement(n.Fragment,null,n.createElement("span",{className:"d-flex align-items-center"},a.length?a.map((function(e,t){return n.createElement(n.Fragment,{key:t},function(){if(e.label){var t=r.q.isFunction(e.label)?e.label:function(){return n.createElement(n.Fragment,null,e.label)};return n.createElement(i.K,{appLink:e.appLink,href:e.href,onClick:e.onClick,svgName:e.svgName,className:e.className,tooltip:e.tooltip,showSpinner:e.showSpinner,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,openInNewTab:e.openInNewTab,disabled:e.disabled},t())}var a=n.createElement(o.h,{appLink:e.appLink,href:e.href,onClick:e.onClick,svgName:e.svgName,className:e.className,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,openInNewTab:e.openInNewTab,disabled:e.disabled});return e.tooltip?n.createElement(l.u,{title:e.tooltip,spanHack:!0},a):a}())})):n.createElement(n.Fragment,null),e.sortComponent&&e.sortComponent,s.length?n.createElement(c.m,{actions:s,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):n.createElement(n.Fragment,null)))):n.createElement(n.Fragment,null)}},86509:(e,t,a)=>{a.d(t,{m:()=>f});var n=a(32735),r=a(91967),o=a(81886),l=a(45157),i=a(49985),c=a(36848),s=a(83914),d=a(76177),m=a(35223);const u={dropdownToggle:"UCAnJ"};function g(){return n.createElement(n.Fragment,null,n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function p(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function v(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return n.createElement(n.Fragment,null,e.action.label)};if(e.action.appLink)return n.createElement(c.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:p(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t()));function a(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&i.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&o.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:p(e.action.className),onClick:a,href:e.action.href},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t())):n.createElement("span",{className:"cursor-pointer ".concat(p(e.action.className)),onClick:a,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&a(e)}},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function f(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),a="dropdown";e.className&&(a+=" ".concat(e.className));var r,o="actions-dropdown-".concat(l.Y.getRandomInt()),i="dropdown-toggle px-0 ".concat(u.dropdownToggle);return e.dropdownToggleClassName&&(i+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:i,type:"button",id:o,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",onClick:t?e.fetchMore:null},n.createElement(s.x,{svgName:m.vn.More,size:e.dropdownToggleSvgSize})),n.createElement("div",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right","aria-labelledby":o},t?n.createElement(g,null):e.actions.map((function(e,t){var a=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?n.createElement(n.Fragment,{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(d.u,{title:e.tooltip,spanHack:!0},n.createElement(v,{action:e}))):n.createElement(n.Fragment,{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(v,{action:e}))}))))}f.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},89043:(e,t,a)=>{a.d(t,{p:()=>S,v:()=>L});var n=a(32735),r=a(110),o=a(12788),l={renderInPortalIfExists:function(e,t){return t?(0,o.createPortal)(e,t):e}},i=a(84963),c=a(73679),s=a(83657),d=a(23481),m=a(36848),u=a(83914),g=a(35223),p="shared.backButton";function v(e){var t=Object.assign({textShadow:!0},e),a=t.backToName,r=t.appLink,o=t.color,l=t.extraClasses,i=t.textShadow,c=a?d.T.getPhrase(p,"backTo",{backToName:a}):d.T.getPhrase(p,"back"),s="black"===o?"":"text-white",v=i?"text-shadow":"";return n.createElement(m.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(l," ").concat(s," ").concat(v)},n.createElement(u.x,{svgName:g.vn.ChevronLeft,size:u.S.Medium}),n.createElement("span",{className:"ms-1"},c))}v.defaultProps={color:"black",extraClasses:""};var f=a(36518),b=a(83345),h=a(10587),y=a(94232),E=a(54610),N=a(79967),k=a(67453);const w={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var C="".concat(h.y[E.__.Banners].width,":").concat(h.y[E.__.Banners].height);function x(e){return e.length<160?"h1":w.headingLarge}var S=n.memo((function(e){var t,a,o,d,m=e.heading,u=e.banner,g=e.imageCdnUrl,p=e.actions,h=e.sortComponent,S=e.blockColourClass,L=e.specialEvent,I=n.useContext(y.n),F=(0,N.k)().xxl?1920:1200,O=n.useMemo((function(){if(!L||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return L.endDate?L.startDate<=t&&L.endDate>=t:L.startDate===t}),[L]),T=e.imageOptions||{width:F,ratio:C,resizeType:E.Nq.Cover},D=!!u&&!!g&&k.j.createBannerUrl(u,{fallbackBaseUrl:g,fallbackCategoryName:m,type:E.__.Banners},T),A={className:"banner banner-header ".concat(e.bannerClassName),style:D?{backgroundImage:"url('".concat(D,"')")}:{}};!u&&S&&(delete A.style,A.className+=" ".concat(S));var j=e.detailsComponent;return l.renderInPortalIfExists(n.createElement("header",Object.assign({},A),n.createElement("div",{className:"container ".concat(w.container," position-relative inner-banner")},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(v,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(w.bannerContent," ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?w.bannerContentWithLogo:""))},!!L&&n.createElement("div",{className:"position-relative ".concat(w.specialEventContainer)},n.createElement(c.s,{body:{type:L.endDate?"range":"day",text:L.endDate?"".concat(r.O.format(L.startDate,"DD"),"-").concat(r.O.format(L.endDate,"DD")):r.O.format(L.startDate,"DD")},month:r.O.format(L.startDate,"MMMM"),theme:e.calendarTheme})),n.createElement("div",null,O&&n.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},n.createElement(b.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&n.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),n.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&n.createElement("div",{className:"".concat(w.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(a=e.logo)||void 0===a?void 0:a.url)&&n.createElement(f.w,{src:k.j.createUrl(null===(o=e.logo)||void 0===o?void 0:o.url,{size:E.h2.Small})})),n.createElement("h1",{className:"text-white text-shadow pe-3 ".concat(w.heading," ").concat(x(m)," ").concat(e.alignLogoLeft?"w-50":"")},m,j&&n.createElement(j,null)))),!!p&&n.createElement("div",{className:w.actionsContainer},n.createElement(s.e,{actions:p,sortComponent:h,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(d=e.logo)||void 0===d?void 0:d.url)&&n.createElement("div",{className:w.logoContainer},n.createElement("img",{src:k.j.createUrl(e.logo.url,{size:E.h2.Small}),className:"rounded-circle"})))),null==I?void 0:I.container)}),(function(e,t){var a,n;return e.actions===t.actions&&e.heading===t.heading&&(null===(a=e.logo)||void 0===a?void 0:a.url)===(null===(n=t.logo)||void 0===n?void 0:n.url)}));function L(){var e=n.useContext(y.n);return l.renderInPortalIfExists(n.createElement("div",{className:"partial-banner partial-loading-background ".concat(w.banner)}),null==e?void 0:e.container)}},11921:(e,t,a)=>{a.d(t,{F:()=>i});var n=a(32735),r=a(35223),o=a(83914);var l=function(e){switch(e){case"up":return"JAT0R";case"down":return"ld41u";case"right":return"HHkPe";case"left":return"jZTRR"}};function i(e){return n.createElement(o.x,{svgName:r.vn.Caret,className:"".concat(l(e.direction)," svg-container d-inline-block ").concat(e.className)})}i.defaultProps={direction:"right"}},88711:(e,t,a)=>{a.d(t,{j:()=>o});var n=a(32735),r=a(20455);function o(e){var t,a,o=(0,r.O1)(Object.assign(Object.assign({},e.draggable),{disabled:!e.draggable})),l=o.active,i=o.isDragging,c=o.attributes,s=o.listeners,d=o.setNodeRef,m=(0,r.Zj)(Object.assign(Object.assign({},e.droppable),{disabled:!e.droppable})),u=m.isOver,g=m.over,p=m.active,v=m.setNodeRef;return n.useEffect((function(){var t,a,n,r=null===(t=e.draggable)||void 0===t?void 0:t.data;Array.isArray(r)&&(null==r?void 0:r.includes(null==l?void 0:l.id.toString()))?null===(a=e.setIsDragging)||void 0===a||a.call(e,i):null===(n=e.setIsDragging)||void 0===n||n.call(e,!1)}),[i]),n.createElement("div",Object.assign({ref:d},s,c,{className:"".concat(e.draggable?"cursor-grab":"cursor-default"," ").concat(i&&l||e.isDragging&&(a=null===(t=e.draggable)||void 0===t?void 0:t.data,Array.isArray(a)&&a.includes(e.draggable.id.toString()))?e.dragStyle:null)}),n.createElement("div",{ref:v,className:p&&u&&(null==l?void 0:l.id)!==(null==g?void 0:g.id)?e.dropStye:null},e.children))}},83834:(e,t,a)=>{a.d(t,{$:()=>N});var n=a(32735),r=a(57900),o=a(11921),l=a(11607),i=a(97395),c=a(83657),s=a(36848),d=a(88711),m=a(75163),u=a(5465),g=a(54610);const p={actions:"cN3nB",actionsContainer:"xM37V",dropStyle:"kvCLS",dragStyle:"md9Na"};function v(e){var t,a=e.folder.thumbnail?i._.urlBuilder(e.folder.thumbnail.url,{size:g.h2.Small}):null,r=null===(t=e.getFolderActions)||void 0===t?void 0:t.call(e,e.folder);return n.createElement(d.j,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:p.dropStyle,dragStyle:p.dragStyle},n.createElement("div",{className:"position-relative"},n.createElement(s.F,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name},n.createElement(m.Z,{data:a,imageType:g.__.Thumbnails,imageClassName:"rounded-top-lg"},n.createElement(u.oy,{name:e.folder.name,type:u.mS.Folder,extraClasses:"rounded-top-lg"})),n.createElement("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2"},n.createElement("span",{className:"text-truncate d-block"},e.folder.name))),(null==r?void 0:r.length)&&n.createElement(c.e,{actions:r,className:p.actionsContainer,actionsDropdownClassName:p.actions,dropdownToggleSvgSize:null})))}var f=a(83345),b=a(79967);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var y="libraries.folderList",E="has:expanded:library:folders";function N(e){var t,a,i,c=(a=n.useState(r.SG.get(E)||!1),i=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,o,l,i=[],c=!0,s=!1;try{if(o=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=o.call(a)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(a,i)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?h(e,t):void 0}}(a,i)||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.")}()),s=c[0],d=c[1],m=e.expandFolders||s,u=(t=(0,b.k)()).xxl||t.xl||t.lg?6:t.md?4:3;function g(){d(!m),r.SG.set(E,!m)}var p=m?e.folders:e.folders.slice(0,u),N=e.folders.length>u&&!e.expandFolders;return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex justify-content-between align-items-center"},e.showHeading&&n.createElement(l.L,{className:"d-inline-flex align-items-center mb-2 px-2 ".concat(N?"":"cursor-default"),onClick:g},N&&n.createElement(o.F,{direction:m?"down":"right"}),n.createElement("h2",{className:"h4 mb-0"},n.createElement(f.x,{namespace:y,phrase:"folders",options:{count:e.folders.length}}))),!(m||!N)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(l.L,{onClick:g,className:"text-dark hover-text-underline d-inline-block"},n.createElement(f.x,{namespace:y,phrase:"seeAll",options:{count:e.folders.length}}))),!(!m||!N)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(l.L,{onClick:g,className:"text-dark hover-text-underline d-inline-block"},n.createElement(f.x,{namespace:y,phrase:"seeLess"}))),e.extraButtons?e.extraButtons:n.createElement(n.Fragment,null)),n.createElement("div",{className:"row mx-1"},p.map((function(t){return n.createElement("div",{key:t.id,className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement(v,{folder:t,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop}))}))))}N.defaultProps={showHeading:!0}},65403:(e,t,a)=>{a.d(t,{i:()=>l});var n=a(32735);const r={partialFolderHeading:"dhbsL",partialFolderThumbnail:"CI9vk",partialFolderName:"l0Nll"};var o=function(){return n.createElement("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement("div",{className:"".concat(r.partialFolderThumbnail," partial-loading-background rounded-top-lg")}),n.createElement("div",{className:"".concat(r.partialFolderName," partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2")}," "))};function l(e){var t=e.count,a=void 0===t?3:t;return n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(r.partialFolderHeading," h4 mb-2 partial-loading-background")}," "),n.createElement("div",{className:"row mx-n1"},Array(a).fill(null).map((function(e,t){return n.createElement(o,{key:t})}))))}},94644:(e,t,a)=>{a.d(t,{r:()=>d});var n=a(50242),r=a(81886),o=a(67058),l=a(14553),i=a(49267),c=a(49075),s={notFound:o.d,forbidden:{rating:l.q,yearLevel:l.q,region:i.a,privacy:l.q},badRequest:c._};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},s),t);o&&r.Q.Ry.isStatusCodeError(o)&&(o!==n.o.NotFound?o!==n.o.Forbidden?a.badRequest||r.Q.Ry.throw(new l.badRequest):a.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):a.notFound||r.Q.Ry.throw(new l.notFound))}}},91286:(e,t,a)=>{a.d(t,{v:()=>l});var n=a(32735),r=a(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,a){var l=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){l.forEach((function(e){(0,r.r)(e.statusCode,t,a)}))}),[o(l),t,a])}},17087:(e,t,a)=>{a.d(t,{T:()=>i});var n=a(20354),r=a(98064);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 a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?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 a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function i(e){var t,a,l=e.folderId,i=e.firstItem,c=e.lastItem,s=e.getAppLink,d=n.a.useBasicFetch(r.D.folderParentTree(l));if(!(null===(a=null===(t=d.data)||void 0===t?void 0:t.children)||void 0===a?void 0:a.length))return[];for(var m=d.data.children.map((function(e){return{node:e,path:[e]}})),u=[],g=function(){var e=m.pop(),t=e.node,a=e.path;t.data.id.toString()===l.toString()&&(u=a.map((function(e){return{name:e.data.name,appLink:s(e)}}))),t.children&&m.push.apply(m,o(t.children.map((function(e){return{node:e,path:[].concat(o(a),[e])}}))))};m.length;)g();return i&&u.unshift(i),c&&u.push(c),u[u.length-1].active=!0,u}},98860:(e,t,a)=>{a.d(t,{P:()=>i});var n=a(20354),r=a(98064),o=a(3010),l=a(45719);function i(e){var t=n.a.useGetFetch();function a(t){return r.D.childFolders(e,t)}return(0,o.i)(!!e&&a,!!e&&function(e){t(a(e))}),(0,l.P)(!!e&&function(e){return a(e).key})}},21325:(e,t,a)=>{a.d(t,{o:()=>i});var n=a(32735),r=a(81886),o=a(96560),l=a(67058);function i(e){n.useEffect((function(){e.hasCompleted&&!e.hasError&&e.data.type!==o.r.CustomLibrary&&r.Q.Ry.throw(new l.d)}),[e.hasCompleted])}},8406:(e,t,a)=>{a.d(t,{Bf:()=>u,WO:()=>m,a5:()=>d,lS:()=>s});var n=a(28400),r=a(7733),o=a(4594),l=a(17087),i=a(14070),c=a(97291);function s(e){switch(e.typeId){case o.E.Clip:return{application:c.O.CLIPS,action:i.e.Clips.PLAY_CLIP,args:[e.id,n.m.slugify(e.name)]};case o.E.Interactive:return{application:c.O.INTERACTIVES,action:i.e.Interactives.VIEW_INTERACTIVE,args:[e.id,n.m.slugify(e.name)]};default:return{application:c.O.VIDEOS,action:i.e.Videos.PLAY_VIDEO,args:[e.id,n.m.slugify(e.name)]}}}function d(e,t,a){return e&&t?{application:c.O.LIBRARIES,action:i.e.Libraries.FOLDER,args:[e,t.id,n.m.slugify(t.name)],params:{sort:a}}:null}function m(e){for(var t,a,n=0,o=0;null!==(a=o<(null===(t=e.name)||void 0===t?void 0:t.length))&&void 0!==a&&a;o++)n+=e.name.charCodeAt(o);return r.o[n%r.o.length]}function u(e,t,a){return(0,l.T)({folderId:t&&e,getAppLink:function(e){return d(t.id,e.data,a)},firstItem:{name:null==t?void 0:t.name,appLink:{application:c.O.LIBRARIES,action:i.e.Libraries.LIBRARY,args:[null==t?void 0:t.id,n.m.slugify(null==t?void 0:t.name)]}}})}},55595:(e,t,a)=>{a.r(t),a.d(t,{LibraryView:()=>x});var n=a(32735),r=a(20354),o=a(65858),l=a(43500),i=a(89043),c=a(83834),s=a(65403),d=a(10874),m=a(4201),u=a(83345),g=a(98064),p=a(31949),v=a(91286),f=a(79612),b=a(35223),h=a(68140),y=a(14070),E=a(97291),N=a(98860),k=a(21325),w=a(8406),C="libraries.library";function x(e){var t,a,x,S,L=(0,m.of)().focusSearchBar,I=r.a.useBasicFetch(g.D.domainLibraries(["customLibrary","sharedLibrary"])),F=r.a.useBasicFetch(g.D.library(e.id)),O=(0,N.P)(null===(a=null===(t=F.data)||void 0===t?void 0:t.categoryTree)||void 0===a?void 0:a.id),T=r.a.useBasicFetch(p.N.currentUser()),D=!!T.data&&h.d.getOrSetSortType(T.data.id,e.sort);return(0,f.M)({title:null===(x=F.data)||void 0===x?void 0:x.name}),(0,v.v)(F),(0,k.o)(F),n.createElement(n.Fragment,null,F.data?n.createElement(i.p,{heading:F.data.name,blockColourClass:(0,w.WO)(F.data),logo:null===(S=F.data.owner)||void 0===S?void 0:S.logo}):n.createElement(i.v,null),function(){var t,a;return(null==O?void 0:O.items)?O.items.length?n.createElement("div",{className:"mt-3 px-2"},n.createElement(c.$,{folders:O.items,getAppLink:function(t){return(0,w.a5)(e.id,t,D)},expandFolders:!0,extraButtons:n.createElement(d.h,{svgName:b.vn.Search,appLink:{application:E.O.SEARCH,action:y.e.Search.HOME,params:{source:l.fi.School}},className:"btn btn-outline-dark mb-3 me-2 d-none d-sm-inline-block",onClick:L,analyticsData:{},analyticsOptions:{entity:o.py.SearchResults,location:o.LZ.Libraries,actionType:o.Vw.Click,descriptor:o.Bk.School}},n.createElement(u.x,{namespace:C,phrase:"searchLibrary",options:{smartCount:null!==(a=null===(t=I.data)||void 0===t?void 0:t.length)&&void 0!==a?a:1}}))})):n.createElement(n.Fragment,null):n.createElement("div",{className:"mt-3 px-3"},n.createElement(s.i,{count:10}))}())}}}]);
2
- //# sourceMappingURL=5595-3763b14d77-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5595],{84963:(e,t,a)=>{a.d(t,{r:()=>d});var n=a(32735),r=a(23481),o=a(83914),l=a(76177),i=a(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function d(e){return n.createElement(l.u,{title:r.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},n.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},n.createElement(o.x,{svgName:i.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(s,"comingSoon")))}},73679:(e,t,a)=>{a.d(t,{s:()=>l});var n=a(32735),r=a(36848);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function l(e){var t,a,l;return n.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(a=e.theme)||void 0===a?void 0:a.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},n.createElement("div",{className:"position-relative ".concat(o.dateItem)},n.createElement("div",{className:"".concat(null===(l=e.theme)||void 0===l?void 0:l.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),n.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},83657:(e,t,a)=>{a.d(t,{e:()=>s});var n=a(32735),r=a(91967),o=a(10874),l=a(76177),i=a(42735),c=a(86509);function s(e){var t=n.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),a=[],s=[];t.forEach((function(e){e.button?a.push(e):s.push(e)}));var d="d-flex";return e.className&&(d+=" ".concat(e.className)),a.length||s.length?n.createElement("div",{className:d},n.createElement(n.Fragment,null,n.createElement("span",{className:"d-flex align-items-center"},a.length?a.map((function(e,t){return n.createElement(n.Fragment,{key:t},function(){if(e.label){var t=r.q.isFunction(e.label)?e.label:function(){return n.createElement(n.Fragment,null,e.label)};return n.createElement(i.K,{appLink:e.appLink,href:e.href,onClick:e.onClick,svgName:e.svgName,className:e.className,tooltip:e.tooltip,showSpinner:e.showSpinner,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,openInNewTab:e.openInNewTab,disabled:e.disabled},t())}var a=n.createElement(o.h,{appLink:e.appLink,href:e.href,onClick:e.onClick,svgName:e.svgName,className:e.className,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,openInNewTab:e.openInNewTab,disabled:e.disabled});return e.tooltip?n.createElement(l.u,{title:e.tooltip,spanHack:!0},a):a}())})):n.createElement(n.Fragment,null),e.sortComponent&&e.sortComponent,s.length?n.createElement(c.m,{actions:s,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):n.createElement(n.Fragment,null)))):n.createElement(n.Fragment,null)}},86509:(e,t,a)=>{a.d(t,{m:()=>f});var n=a(32735),r=a(91967),o=a(81886),l=a(45157),i=a(49985),c=a(36848),s=a(83914),d=a(76177),m=a(35223);const u={dropdownToggle:"UCAnJ"};function g(){return n.createElement(n.Fragment,null,n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function p(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function v(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return n.createElement(n.Fragment,null,e.action.label)};if(e.action.appLink)return n.createElement(c.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:p(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t()));function a(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&i.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&o.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:p(e.action.className),onClick:a,href:e.action.href},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t())):n.createElement("span",{className:"cursor-pointer ".concat(p(e.action.className)),onClick:a,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&a(e)}},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function f(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),a="dropdown";e.className&&(a+=" ".concat(e.className));var r,o="actions-dropdown-".concat(l.Y.getRandomInt()),i="dropdown-toggle px-0 ".concat(u.dropdownToggle);return e.dropdownToggleClassName&&(i+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:i,type:"button",id:o,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",onClick:t?e.fetchMore:null},n.createElement(s.x,{svgName:m.vn.More,size:e.dropdownToggleSvgSize})),n.createElement("div",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right","aria-labelledby":o},t?n.createElement(g,null):e.actions.map((function(e,t){var a=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?n.createElement(n.Fragment,{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(d.u,{title:e.tooltip,spanHack:!0},n.createElement(v,{action:e}))):n.createElement(n.Fragment,{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(v,{action:e}))}))))}f.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},89043:(e,t,a)=>{a.d(t,{p:()=>S,v:()=>L});var n=a(32735),r=a(110),o=a(12788),l={renderInPortalIfExists:function(e,t){return t?(0,o.createPortal)(e,t):e}},i=a(84963),c=a(73679),s=a(83657),d=a(23481),m=a(36848),u=a(83914),g=a(35223),p="shared.backButton";function v(e){var t=Object.assign({textShadow:!0},e),a=t.backToName,r=t.appLink,o=t.color,l=t.extraClasses,i=t.textShadow,c=a?d.T.getPhrase(p,"backTo",{backToName:a}):d.T.getPhrase(p,"back"),s="black"===o?"":"text-white",v=i?"text-shadow":"";return n.createElement(m.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(l," ").concat(s," ").concat(v)},n.createElement(u.x,{svgName:g.vn.ChevronLeft,size:u.S.Medium}),n.createElement("span",{className:"ms-1"},c))}v.defaultProps={color:"black",extraClasses:""};var f=a(36518),b=a(83345),h=a(10587),y=a(94232),E=a(54610),N=a(79967),k=a(67453);const w={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var C="".concat(h.y[E.__.Banners].width,":").concat(h.y[E.__.Banners].height);function x(e){return e.length<160?"h1":w.headingLarge}var S=n.memo((function(e){var t,a,o,d,m=e.heading,u=e.banner,g=e.imageCdnUrl,p=e.actions,h=e.sortComponent,S=e.blockColourClass,L=e.specialEvent,F=n.useContext(y.n),D=(0,N.k)().xxl?1920:1200,T=n.useMemo((function(){if(!L||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return L.endDate?L.startDate<=t&&L.endDate>=t:L.startDate===t}),[L]),O=e.imageOptions||{width:D,ratio:C,resizeType:E.Nq.Cover},A=!!u&&!!g&&k.j.createBannerUrl(u,{fallbackBaseUrl:g,fallbackCategoryName:m,type:E.__.Banners},O),I={className:"banner banner-header ".concat(e.bannerClassName),style:A?{backgroundImage:"url('".concat(A,"')")}:{}};!u&&S&&(delete I.style,I.className+=" ".concat(S));var j=e.detailsComponent;return l.renderInPortalIfExists(n.createElement("header",Object.assign({},I),n.createElement("div",{className:"container ".concat(w.container," position-relative inner-banner")},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(v,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(w.bannerContent," ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?w.bannerContentWithLogo:""))},!!L&&n.createElement("div",{className:"position-relative ".concat(w.specialEventContainer)},n.createElement(c.s,{body:{type:L.endDate?"range":"day",text:L.endDate?"".concat(r.O.format(L.startDate,"DD"),"-").concat(r.O.format(L.endDate,"DD")):r.O.format(L.startDate,"DD")},month:r.O.format(L.startDate,"MMMM"),theme:e.calendarTheme})),n.createElement("div",null,T&&n.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},n.createElement(b.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&n.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),n.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&n.createElement("div",{className:"".concat(w.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(a=e.logo)||void 0===a?void 0:a.url)&&n.createElement(f.w,{src:k.j.createUrl(null===(o=e.logo)||void 0===o?void 0:o.url,{size:E.h2.Small})})),n.createElement("h1",{className:"text-white text-shadow pe-3 ".concat(w.heading," ").concat(x(m)," ").concat(e.alignLogoLeft?"w-50":"")},m,j&&n.createElement(j,null)))),!!p&&n.createElement("div",{className:w.actionsContainer},n.createElement(s.e,{actions:p,sortComponent:h,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(d=e.logo)||void 0===d?void 0:d.url)&&n.createElement("div",{className:w.logoContainer},n.createElement("img",{src:k.j.createUrl(e.logo.url,{size:E.h2.Small}),className:"rounded-circle"})))),null==F?void 0:F.container)}),(function(e,t){var a,n;return e.actions===t.actions&&e.heading===t.heading&&(null===(a=e.logo)||void 0===a?void 0:a.url)===(null===(n=t.logo)||void 0===n?void 0:n.url)}));function L(){var e=n.useContext(y.n);return l.renderInPortalIfExists(n.createElement("div",{className:"partial-banner partial-loading-background ".concat(w.banner)}),null==e?void 0:e.container)}},11921:(e,t,a)=>{a.d(t,{F:()=>i});var n=a(32735),r=a(35223),o=a(83914);var l=function(e){switch(e){case"up":return"JAT0R";case"down":return"ld41u";case"right":return"HHkPe";case"left":return"jZTRR"}};function i(e){return n.createElement(o.x,{svgName:r.vn.Caret,className:"".concat(l(e.direction)," svg-container d-inline-block ").concat(e.className)})}i.defaultProps={direction:"right"}},88711:(e,t,a)=>{a.d(t,{j:()=>o});var n=a(32735),r=a(20455);function o(e){var t,a,o=(0,r.O1)(Object.assign(Object.assign({},e.draggable),{disabled:!e.draggable})),l=o.active,i=o.isDragging,c=o.attributes,s=o.listeners,d=o.setNodeRef,m=(0,r.Zj)(Object.assign(Object.assign({},e.droppable),{disabled:!e.droppable})),u=m.isOver,g=m.over,p=m.active,v=m.setNodeRef;return n.useEffect((function(){var t,a,n,r=null===(t=e.draggable)||void 0===t?void 0:t.data;Array.isArray(r)&&(null==r?void 0:r.includes(null==l?void 0:l.id.toString()))?null===(a=e.setIsDragging)||void 0===a||a.call(e,i):null===(n=e.setIsDragging)||void 0===n||n.call(e,!1)}),[i]),n.createElement("div",Object.assign({ref:d},s,c,{className:"".concat(e.draggable?"cursor-grab":"cursor-default"," ").concat(i&&l||e.isDragging&&(a=null===(t=e.draggable)||void 0===t?void 0:t.data,Array.isArray(a)&&a.includes(e.draggable.id.toString()))?e.dragStyle:null)}),n.createElement("div",{ref:v,className:p&&u&&(null==l?void 0:l.id)!==(null==g?void 0:g.id)?e.dropStye:null},e.children))}},83834:(e,t,a)=>{a.d(t,{$:()=>N});var n=a(32735),r=a(57900),o=a(11921),l=a(11607),i=a(97395),c=a(83657),s=a(36848),d=a(88711),m=a(75163),u=a(5465),g=a(54610);const p={actions:"cN3nB",actionsContainer:"xM37V",dropStyle:"kvCLS",dragStyle:"md9Na"};function v(e){var t,a=e.folder.thumbnail?i._.urlBuilder(e.folder.thumbnail.url,{size:g.h2.Small}):null,r=null===(t=e.getFolderActions)||void 0===t?void 0:t.call(e,e.folder);return n.createElement(d.j,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:p.dropStyle,dragStyle:p.dragStyle},n.createElement("div",{className:"position-relative"},n.createElement(s.F,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name},n.createElement(m.Z,{data:a,imageType:g.__.Thumbnails,imageClassName:"rounded-top-lg"},n.createElement(u.oy,{name:e.folder.name,type:u.mS.Folder,extraClasses:"rounded-top-lg"})),n.createElement("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2"},n.createElement("span",{className:"text-truncate d-block"},e.folder.name))),(null==r?void 0:r.length)&&n.createElement(c.e,{actions:r,className:p.actionsContainer,actionsDropdownClassName:p.actions,dropdownToggleSvgSize:null})))}var f=a(83345),b=a(79967);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var y="libraries.folderList",E="has:expanded:library:folders";function N(e){var t,a,i,c=(a=n.useState(r.SG.get(E)||!1),i=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,o,l,i=[],c=!0,s=!1;try{if(o=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=o.call(a)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(a,i)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?h(e,t):void 0}}(a,i)||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.")}()),s=c[0],d=c[1],m=e.expandFolders||s,u=(t=(0,b.k)()).xxl||t.xl||t.lg?6:t.md?4:3;function g(){d(!m),r.SG.set(E,!m)}var p=m?e.folders:e.folders.slice(0,u),N=e.folders.length>u&&!e.expandFolders;return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex justify-content-between align-items-center"},e.showHeading&&n.createElement(l.L,{className:"d-inline-flex align-items-center mb-2 px-2 ".concat(N?"":"cursor-default"),onClick:g},N&&n.createElement(o.F,{direction:m?"down":"right"}),n.createElement("h2",{className:"h4 mb-0"},n.createElement(f.x,{namespace:y,phrase:"folders",options:{count:e.folders.length}}))),!(m||!N)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(l.L,{onClick:g,className:"text-dark hover-text-underline d-inline-block"},n.createElement(f.x,{namespace:y,phrase:"seeAll",options:{count:e.folders.length}}))),!(!m||!N)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(l.L,{onClick:g,className:"text-dark hover-text-underline d-inline-block"},n.createElement(f.x,{namespace:y,phrase:"seeLess"}))),e.extraButtons?e.extraButtons:n.createElement(n.Fragment,null)),n.createElement("div",{className:"row mx-1"},p.map((function(t){return n.createElement("div",{key:t.id,className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement(v,{folder:t,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop}))}))))}N.defaultProps={showHeading:!0}},65403:(e,t,a)=>{a.d(t,{i:()=>l});var n=a(32735);const r={partialFolderHeading:"dhbsL",partialFolderThumbnail:"CI9vk",partialFolderName:"l0Nll"};var o=function(){return n.createElement("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement("div",{className:"".concat(r.partialFolderThumbnail," partial-loading-background rounded-top-lg")}),n.createElement("div",{className:"".concat(r.partialFolderName," partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2")}," "))};function l(e){var t=e.count,a=void 0===t?3:t;return n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(r.partialFolderHeading," h4 mb-2 partial-loading-background")}," "),n.createElement("div",{className:"row mx-n1"},Array(a).fill(null).map((function(e,t){return n.createElement(o,{key:t})}))))}},94644:(e,t,a)=>{a.d(t,{r:()=>d});var n=a(50242),r=a(81886),o=a(67058),l=a(14553),i=a(49267),c=a(49075),s={notFound:o.d,forbidden:{rating:l.q,yearLevel:l.q,region:i.a,privacy:l.q},badRequest:c._};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},s),t);o&&r.Q.Ry.isStatusCodeError(o)&&(o!==n.o.NotFound?o!==n.o.Forbidden?a.badRequest||r.Q.Ry.throw(new l.badRequest):a.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):a.notFound||r.Q.Ry.throw(new l.notFound))}}},91286:(e,t,a)=>{a.d(t,{v:()=>l});var n=a(32735),r=a(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,a){var l=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){l.forEach((function(e){(0,r.r)(e.statusCode,t,a)}))}),[o(l),t,a])}},17087:(e,t,a)=>{a.d(t,{T:()=>i});var n=a(20354),r=a(98064);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 a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?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 a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function i(e){var t,a,l=e.folderId,i=e.firstItem,c=e.lastItem,s=e.getAppLink,d=n.a.useBasicFetch(r.D.folderParentTree(l));if(!(null===(a=null===(t=d.data)||void 0===t?void 0:t.children)||void 0===a?void 0:a.length))return[];for(var m=d.data.children.map((function(e){return{node:e,path:[e]}})),u=[],g=function(){var e=m.pop(),t=e.node,a=e.path;t.data.id.toString()===l.toString()&&(u=a.map((function(e){return{name:e.data.name,appLink:s(e)}}))),t.children&&m.push.apply(m,o(t.children.map((function(e){return{node:e,path:[].concat(o(a),[e])}}))))};m.length;)g();return i&&u.unshift(i),c&&u.push(c),u[u.length-1].active=!0,u}},98860:(e,t,a)=>{a.d(t,{P:()=>i});var n=a(20354),r=a(98064),o=a(3010),l=a(45719);function i(e){var t=n.a.useGetFetch();function a(t){return r.D.childFolders(e,t)}return(0,o.i)(!!e&&a,!!e&&function(e){t(a(e))}),(0,l.P)(!!e&&function(e){return a(e).key})}},21325:(e,t,a)=>{a.d(t,{o:()=>i});var n=a(32735),r=a(81886),o=a(96560),l=a(67058);function i(e){n.useEffect((function(){e.hasCompleted&&!e.hasError&&e.data.type!==o.r.CustomLibrary&&r.Q.Ry.throw(new l.d)}),[e.hasCompleted])}},8406:(e,t,a)=>{a.d(t,{Bf:()=>d,WO:()=>s,a5:()=>c});var n=a(28400),r=a(7733),o=a(17087),l=a(14070),i=a(97291);function c(e,t,a){return e&&t?{application:i.O.LIBRARIES,action:l.e.Libraries.FOLDER,args:[e,t.id,n.m.slugify(t.name)],params:{sort:a}}:null}function s(e){for(var t,a,n=0,o=0;null!==(a=o<(null===(t=e.name)||void 0===t?void 0:t.length))&&void 0!==a&&a;o++)n+=e.name.charCodeAt(o);return r.o[n%r.o.length]}function d(e,t,a){return(0,o.T)({folderId:t&&e,getAppLink:function(e){return c(t.id,e.data,a)},firstItem:{name:null==t?void 0:t.name,appLink:{application:i.O.LIBRARIES,action:l.e.Libraries.LIBRARY,args:[null==t?void 0:t.id,n.m.slugify(null==t?void 0:t.name)]}}})}},55595:(e,t,a)=>{a.r(t),a.d(t,{LibraryView:()=>x});var n=a(32735),r=a(20354),o=a(65858),l=a(43500),i=a(89043),c=a(83834),s=a(65403),d=a(10874),m=a(4201),u=a(83345),g=a(98064),p=a(31949),v=a(91286),f=a(79612),b=a(35223),h=a(68140),y=a(14070),E=a(97291),N=a(98860),k=a(21325),w=a(8406),C="libraries.library";function x(e){var t,a,x,S,L=(0,m.of)().focusSearchBar,F=r.a.useBasicFetch(g.D.domainLibraries(["customLibrary","sharedLibrary"])),D=r.a.useBasicFetch(g.D.library(e.id)),T=(0,N.P)(null===(a=null===(t=D.data)||void 0===t?void 0:t.categoryTree)||void 0===a?void 0:a.id),O=r.a.useBasicFetch(p.N.currentUser()),A=!!O.data&&h.d.getOrSetSortType(O.data.id,e.sort);return(0,f.M)({title:null===(x=D.data)||void 0===x?void 0:x.name}),(0,v.v)(D),(0,k.o)(D),n.createElement(n.Fragment,null,D.data?n.createElement(i.p,{heading:D.data.name,blockColourClass:(0,w.WO)(D.data),logo:null===(S=D.data.owner)||void 0===S?void 0:S.logo}):n.createElement(i.v,null),function(){var t,a;return(null==T?void 0:T.items)?T.items.length?n.createElement("div",{className:"mt-3 px-2"},n.createElement(c.$,{folders:T.items,getAppLink:function(t){return(0,w.a5)(e.id,t,A)},expandFolders:!0,extraButtons:n.createElement(d.h,{svgName:b.vn.Search,appLink:{application:E.O.SEARCH,action:y.e.Search.HOME,params:{source:l.fi.School}},className:"btn btn-outline-dark mb-3 me-2 d-none d-sm-inline-block",onClick:L,analyticsData:{},analyticsOptions:{entity:o.py.SearchResults,location:o.LZ.Libraries,actionType:o.Vw.Click,descriptor:o.Bk.School}},n.createElement(u.x,{namespace:C,phrase:"searchLibrary",options:{smartCount:null!==(a=null===(t=F.data)||void 0===t?void 0:t.length)&&void 0!==a?a:1}}))})):n.createElement(n.Fragment,null):n.createElement("div",{className:"mt-3 px-3"},n.createElement(s.i,{count:10}))}())}}}]);
2
+ //# sourceMappingURL=5595-628d4f252c-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/5595-628d4f252c-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/generic-calendar-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/GenericCalendarDate.tsx","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/caret/Caret.tsx","file:///app/packages/libs/shared/src/components/caret/caret.scss","file:///app/packages/libs/shared/src/components/drag-drop-move/DragDropMoveWrapper.tsx","file:///app/packages/libs/shared/src/components/library-folder/library-folder.scss","file:///app/packages/libs/shared/src/components/library-folder/LibraryFolder.tsx","file:///app/packages/libs/shared/src/components/folder-list/FolderList.tsx","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/partial-folder-list.scss","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useBuildBreadcrumbs.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseFetchAllChildFolders.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseHandleLibraryType.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderViewUtils.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library/LibraryView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dateItem\":\"I3SBm\",\"label\":\"PRORs\",\"body\":\"RfiM_\",\"bodyDay\":\"ZOVny\",\"bodyRange\":\"vYhXN\",\"bodyMonth\":\"mYslO\",\"month\":\"EPkkQ\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './generic-calendar-date.scss';\n\nexport interface GenericCalendarDateProps {\n label?: string;\n body: {\n type: 'month' | 'range' | 'day';\n text: string;\n };\n month?: string;\n getAppLink?: () => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n className?: string;\n theme?: CalendarTheme;\n}\n\nexport function GenericCalendarDate(props: GenericCalendarDateProps): JSX.Element {\n function getBodyClass(): string {\n switch (props.body.type) {\n case 'range':\n return styles.bodyRange;\n case 'day':\n return styles.bodyDay;\n case 'month':\n return styles.bodyMonth;\n }\n }\n\n return (\n <AppLink\n appLink={props.getAppLink?.()}\n className={`text-decoration-none text-center bg-white text-dark border border-3 ${props.theme?.border} rounded-3 d-block fw-semibold ${props.className}`}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n <div className={`position-relative ${styles.dateItem}`}>\n <div className={`${props.theme?.background} py-1 ${styles.label} d-flex align-items-center justify-content-center`}>\n {props.label ? props.label : <>&nbsp;</>}\n </div>\n <div className={`${getBodyClass()} ${styles.body} my-2`}>\n {props.body.text}\n </div>\n <div className={`mb-0 ${styles.month}`}>\n {props.month}\n </div>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n <>\n <span className='d-flex align-items-center'>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n \n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </span>\n </>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <div className='dropdown-menu dropdown-menu-end dropdown-menu-right' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <React.Fragment key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </React.Fragment>\n );\n }\n \n return (\n <React.Fragment key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </React.Fragment>\n );\n })\n }\n </div>\n </div>\n );\n}","import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={DateHelper.format(specialEvent.startDate, 'MMMM')}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Small })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import React from 'react';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './caret.scss';\n\ntype CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n\nconst getDirectionClass = (direction: CaretDirection) => {\n switch (direction) {\n case 'up':\n return styles.up;\n case 'down':\n return styles.down;\n case 'right':\n return styles.right;\n case 'left':\n return styles.left;\n }\n};\n\ninterface CaretProps {\n direction?: CaretDirection;\n className?: string;\n}\n\nCaret.defaultProps = {\n direction: 'right'\n};\n\nexport function Caret(props: CaretProps): JSX.Element {\n return (\n <SvgContainer\n svgName={cvSvgLibrary.Caret}\n className={`${getDirectionClass(props.direction)} svg-container d-inline-block ${props.className}`}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"up\":\"JAT0R\",\"down\":\"ld41u\",\"left\":\"jZTRR\",\"right\":\"HHkPe\"};","import React from 'react';\nimport { useDraggable, UseDraggableArguments, useDroppable, UseDroppableArguments } from '@dnd-kit/core';\n\ninterface DragDropMoveWrapperProps extends React.PropsWithChildren {\n droppable?: UseDroppableArguments,\n draggable?: UseDraggableArguments\n dragStyle?: string;\n dropStye?: string;\n setIsDragging?: React.Dispatch<React.SetStateAction<boolean>>\n isDragging?: boolean;\n}\n\nexport function DragDropMoveWrapper(props: DragDropMoveWrapperProps) {\n const {\n active: dragActive,\n isDragging,\n attributes,\n listeners,\n setNodeRef: draggableRef\n } = useDraggable({ ...props.draggable, disabled: !props.draggable });\n const {\n isOver,\n over,\n active: dropActive,\n setNodeRef: droppableRef\n } = useDroppable({ ...props.droppable, disabled: !props.droppable });\n\n React.useEffect(() => {\n const data = props.draggable?.data;\n if (Array.isArray(data) && data?.includes(dragActive?.id.toString())) {\n props.setIsDragging?.(isDragging);\n } else {\n props.setIsDragging?.(false);\n }\n }, [isDragging]);\n\n function isSelected() {\n const data = props.draggable?.data;\n return Array.isArray(data) && data.includes(props.draggable.id.toString());\n }\n\n return (\n <div\n ref={draggableRef}\n {...listeners}\n {...attributes}\n className={`${props.draggable ? 'cursor-grab' : 'cursor-default'} ${(isDragging && dragActive) || (props.isDragging && isSelected()) ? props.dragStyle : null}`}\n >\n <div\n ref={droppableRef}\n className={(dropActive && isOver && dragActive?.id !== over?.id) ? props.dropStye : null}\n >\n {props.children}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"cN3nB\",\"actionsContainer\":\"xM37V\",\"dropStyle\":\"kvCLS\",\"dragStyle\":\"md9Na\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolderView(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolderView}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFolderHeading\":\"dhbsL\",\"partialFolderThumbnail\":\"CI9vk\",\"partialFolderName\":\"l0Nll\"};","import React from 'react';\n\nimport styles from './partial-folder-list.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n &nbsp;\n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}>&nbsp;</div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(LibraryRequests.folderParentTree(folderId));\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","import { Flight } from 'libs/common/flight';\n\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult, useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\nimport { Folder } from 'libs/shared/interfaces';\n\nexport function useFetchAllChildFolders(parentId?: string): SelectAllPagesResult<Folder> {\n const fetch = Flight.useGetFetch();\n\n function getRequest(cursor?: string): Flight.Request {\n return LibraryRequests.childFolders(parentId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n fetch(getRequest(cursor));\n }\n\n useFetchAll(!!parentId && getRequest, !!parentId && fetchNext);\n\n return (useSelectAllPages<Folder>(!!parentId && ((cursor?: string) => getRequest(cursor).key)));\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { Library } from 'libs/shared/interfaces';\n\n/**\n * This hook prevents the libraries UI to be used for anything \n * other than customer libraries i.e Hosted, Exchange, Workspace etc\n */\nexport function useHandleLibraryType(request: Flight.Response<Library>): void {\n React.useEffect(() => {\n if (!request.hasCompleted || request.hasError)\n return;\n\n if (request.data.type !== MasterObjectTypes.CustomLibrary)\n Core.ErrorHelper.throw(new NotFoundError());\n }, [request.hasCompleted]);\n}","import { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getFolderAppLink(libraryId: string, folder: Folder, sort: string): Core.AppLink {\n if (!libraryId || !folder)\n return null;\n\n return {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ libraryId, folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < folder.name?.length ?? 0; i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}\n\nexport function useGetFolderBreadcrumbs(folderId: string, library: Library, sort: VideoSortType): Breadcrumb[] {\n return useBuildBreadcrumbs({\n folderId: library && folderId,\n getAppLink: object => getFolderAppLink(library.id, object.data, sort),\n firstItem: {\n name: library?.name,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.LIBRARY,\n args: [ library?.id, TextHelper.slugify(library?.name) ]\n }\n }\n });\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Library } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { useHandleLibraryType } from 'apps/libraries/hooks/UseHandleLibraryType';\nimport { getFolderAppLink, getFolderBgColourClass } from 'apps/libraries/views/library-folder/LibraryFolderViewUtils';\n\nconst namespace = 'libraries.library';\n\ninterface LibraryViewProps {\n id: string;\n sort?: VideoSortType;\n}\n\nexport function LibraryView(props: LibraryViewProps): JSX.Element {\n const { focusSearchBar } = useFocusSearchBar();\n\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.domainLibraries([ 'customLibrary', 'sharedLibrary' ]));\n const library = Flight.useBasicFetch<Library>(LibraryRequests.library(props.id));\n const libraryFolders = useFetchAllChildFolders(library.data?.categoryTree?.id);\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id, props.sort);\n\n useSetPageMetadata({ title: library.data?.name });\n useHandleObjectError(library);\n useHandleLibraryType(library);\n\n return (\n <>\n {library.data\n ? (\n <BannerHeader\n heading={library.data.name}\n blockColourClass={getFolderBgColourClass(library.data)}\n logo={library.data.owner?.logo}\n />\n ) : <PartialBannerHeader />\n }\n\n {(() => {\n if (!libraryFolders?.items)\n return <div className='mt-3 px-3'><PartialFolderList count={10} /></div>;\n\n if (!libraryFolders.items.length)\n return <></>;\n\n return (\n <div className='mt-3 px-2'>\n <FolderList\n folders={libraryFolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(props.id, f, sort)}\n expandFolders\n extraButtons={\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark mb-3 me-2 d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: libraries.data?.length ?? 1 }} />\n </IconButton>\n }\n />\n </div>\n );\n })()}\n </>\n );\n}\n"],"names":["namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","GenericCalendarDate","AppLink","appLink","getAppLink","theme","border","analyticsData","analyticsOptions","background","label","body","type","getBodyClass","text","month","Actions","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","length","map","idx","key","href","onClick","tooltip","showSpinner","openInNewTab","disabled","iconButton","sortComponent","dropdownToggleClassName","actionsDropdownClassName","dropdownToggleSvgSize","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","id","size","showDivider","undefined","group","defaultProps","S","PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","RATIO","getSizeClass","heading","BannerHeader","banner","imageCdnUrl","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","calendarTheme","Text","phrase","LazyImage","src","container","prevProps","nextProps","PartialBannerHeader","getDirectionClass","direction","Caret","DragDropMoveWrapper","data","draggable","dragActive","active","isDragging","attributes","listeners","draggableRef","setNodeRef","droppable","isOver","over","dropActive","droppableRef","Array","isArray","includes","toString","setIsDragging","ref","dragStyle","dropStye","children","LibraryFolder","thumbnailUrl","folder","thumbnail","UrlHelper","getFolderActions","drag","drop","name","BaseImage","imageType","imageClassName","ImageFallback","EXPANDED_FOLDERS_KEY","FolderList","breakpoints","LocalStorageHelper","_hasExpandedFolders","setHasExpandedFolders","hasExpandedFolders","expandFolders","folderLimit","xl","lg","md","onToggleFolderView","displayableFolders","folders","slice","canToggleCollapsedView","showHeading","DivButton","options","count","extraButtons","f","PartialFolder","PartialFolderList","fill","_","i","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","useBuildBreadcrumbs","folderId","firstItem","lastItem","parentTree","searchStack","c","node","path","breadcrumbs","pop","object","unshift","useFetchAllChildFolders","parentId","fetch","getRequest","cursor","useHandleLibraryType","request","hasCompleted","hasError","getFolderAppLink","libraryId","application","args","params","getFolderBgColourClass","charCode","charCodeAt","useGetFolderBreadcrumbs","library","LibraryView","focusSearchBar","libraries","libraryFolders","categoryTree","user","owner","items","source","entity","location","actionType","descriptor","smartCount"],"sourceRoot":""}