@clickview/lite 0.48.0-rc.7 → 0.48.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/{1285-c322e093f9-lite.chunk.js → 1285-c3795fed18-lite.chunk.js} +2 -2
  3. package/dist/scripts/1285-c3795fed18-lite.chunk.js.map +1 -0
  4. package/dist/scripts/{170-1f815b85a1-lite.chunk.js → 170-2d124965b7-lite.chunk.js} +2 -2
  5. package/dist/scripts/{170-1f815b85a1-lite.chunk.js.map → 170-2d124965b7-lite.chunk.js.map} +1 -1
  6. package/dist/scripts/{1818-b9f9297d6d-lite.chunk.js → 1818-72409e60a9-lite.chunk.js} +1 -1
  7. package/dist/scripts/{1818-b9f9297d6d-lite.chunk.js.map → 1818-72409e60a9-lite.chunk.js.map} +1 -1
  8. package/dist/scripts/{1863-cf9df40052-lite.chunk.js → 1863-e7c4a6f342-lite.chunk.js} +1 -1
  9. package/dist/scripts/{1863-cf9df40052-lite.chunk.js.map → 1863-e7c4a6f342-lite.chunk.js.map} +1 -1
  10. package/dist/scripts/{1958-9889c1ad24-lite.chunk.js → 1958-5336189397-lite.chunk.js} +1 -1
  11. package/dist/scripts/{1958-9889c1ad24-lite.chunk.js.map → 1958-5336189397-lite.chunk.js.map} +1 -1
  12. package/dist/scripts/{2086-a247f6e201-lite.chunk.js → 2086-f7082703d0-lite.chunk.js} +1 -1
  13. package/dist/scripts/{2086-a247f6e201-lite.chunk.js.map → 2086-f7082703d0-lite.chunk.js.map} +1 -1
  14. package/dist/scripts/{2118-462a279c5a-lite.chunk.js → 2118-ec2a5f1e9b-lite.chunk.js} +2 -2
  15. package/dist/scripts/{2118-462a279c5a-lite.chunk.js.map → 2118-ec2a5f1e9b-lite.chunk.js.map} +1 -1
  16. package/dist/scripts/{2182-5c9db07f5b-lite.chunk.js → 2182-8e4d603a1b-lite.chunk.js} +1 -1
  17. package/dist/scripts/{2182-5c9db07f5b-lite.chunk.js.map → 2182-8e4d603a1b-lite.chunk.js.map} +1 -1
  18. package/dist/scripts/{2279-5e92c84310-lite.chunk.js → 2279-252e92e1d8-lite.chunk.js} +1 -1
  19. package/dist/scripts/{2279-5e92c84310-lite.chunk.js.map → 2279-252e92e1d8-lite.chunk.js.map} +1 -1
  20. package/dist/scripts/{2355-6cd89fa80d-lite.chunk.js → 2355-c588dc3ce2-lite.chunk.js} +1 -1
  21. package/dist/scripts/{2355-6cd89fa80d-lite.chunk.js.map → 2355-c588dc3ce2-lite.chunk.js.map} +1 -1
  22. package/dist/scripts/{2469-aa5bbbb17f-lite.chunk.js → 2469-46411b862e-lite.chunk.js} +1 -1
  23. package/dist/scripts/{2469-aa5bbbb17f-lite.chunk.js.map → 2469-46411b862e-lite.chunk.js.map} +1 -1
  24. package/dist/scripts/{2672-0fc559f1d1-lite.chunk.js → 2672-b01985cee8-lite.chunk.js} +1 -1
  25. package/dist/scripts/{2672-0fc559f1d1-lite.chunk.js.map → 2672-b01985cee8-lite.chunk.js.map} +1 -1
  26. package/dist/scripts/{2734-6c6d57d0f3-lite.chunk.js → 2734-6a7beb2ce2-lite.chunk.js} +1 -1
  27. package/dist/scripts/{2734-6c6d57d0f3-lite.chunk.js.map → 2734-6a7beb2ce2-lite.chunk.js.map} +1 -1
  28. package/dist/scripts/{287-ba98be7f21-lite.chunk.js → 287-3cbed16363-lite.chunk.js} +1 -1
  29. package/dist/scripts/{287-ba98be7f21-lite.chunk.js.map → 287-3cbed16363-lite.chunk.js.map} +1 -1
  30. package/dist/scripts/{2875-0e5f209e47-lite.chunk.js → 2875-aefd69a61f-lite.chunk.js} +1 -1
  31. package/dist/scripts/{2875-0e5f209e47-lite.chunk.js.map → 2875-aefd69a61f-lite.chunk.js.map} +1 -1
  32. package/dist/scripts/{3012-b5208d6981-lite.chunk.js → 3012-fd3eb34a14-lite.chunk.js} +2 -2
  33. package/dist/scripts/3012-fd3eb34a14-lite.chunk.js.map +1 -0
  34. package/dist/scripts/{3042-6650521d8b-lite.chunk.js → 3042-7c1b5e4ff7-lite.chunk.js} +1 -1
  35. package/dist/scripts/{3042-6650521d8b-lite.chunk.js.map → 3042-7c1b5e4ff7-lite.chunk.js.map} +1 -1
  36. package/dist/scripts/{3158-31baada6cc-lite.chunk.js → 3158-2147de456d-lite.chunk.js} +1 -1
  37. package/dist/scripts/{3158-31baada6cc-lite.chunk.js.map → 3158-2147de456d-lite.chunk.js.map} +1 -1
  38. package/dist/scripts/{3296-6d80e4dd56-lite.chunk.js → 3296-f3732c93d9-lite.chunk.js} +1 -1
  39. package/dist/scripts/{3296-6d80e4dd56-lite.chunk.js.map → 3296-f3732c93d9-lite.chunk.js.map} +1 -1
  40. package/dist/scripts/{3541-7ebd9db295-lite.chunk.js → 3541-15581012d3-lite.chunk.js} +1 -1
  41. package/dist/scripts/{3541-7ebd9db295-lite.chunk.js.map → 3541-15581012d3-lite.chunk.js.map} +1 -1
  42. package/dist/scripts/{3841-95df66e647-lite.chunk.js → 3841-bfae79638b-lite.chunk.js} +2 -2
  43. package/dist/scripts/{3841-95df66e647-lite.chunk.js.map → 3841-bfae79638b-lite.chunk.js.map} +1 -1
  44. package/dist/scripts/{3888-0bee9a9309-lite.chunk.js → 3888-87c1075a1b-lite.chunk.js} +1 -1
  45. package/dist/scripts/{3888-0bee9a9309-lite.chunk.js.map → 3888-87c1075a1b-lite.chunk.js.map} +1 -1
  46. package/dist/scripts/{4138-75a2bb69ab-lite.chunk.js → 4138-b9b03c9900-lite.chunk.js} +1 -1
  47. package/dist/scripts/{4138-75a2bb69ab-lite.chunk.js.map → 4138-b9b03c9900-lite.chunk.js.map} +1 -1
  48. package/dist/scripts/{4778-ebe369973c-lite.chunk.js → 4778-3c9f2b7f76-lite.chunk.js} +2 -2
  49. package/dist/scripts/{4778-ebe369973c-lite.chunk.js.map → 4778-3c9f2b7f76-lite.chunk.js.map} +1 -1
  50. package/dist/scripts/{4942-a27a31e79e-lite.chunk.js → 4942-acce40b333-lite.chunk.js} +2 -2
  51. package/dist/scripts/{4942-a27a31e79e-lite.chunk.js.map → 4942-acce40b333-lite.chunk.js.map} +1 -1
  52. package/dist/scripts/{5075-f8719465be-lite.chunk.js → 5075-53172298fe-lite.chunk.js} +1 -1
  53. package/dist/scripts/{5075-f8719465be-lite.chunk.js.map → 5075-53172298fe-lite.chunk.js.map} +1 -1
  54. package/dist/scripts/{5157-cd12e2e443-lite.chunk.js → 5157-47a0f5c088-lite.chunk.js} +1 -1
  55. package/dist/scripts/{5157-cd12e2e443-lite.chunk.js.map → 5157-47a0f5c088-lite.chunk.js.map} +1 -1
  56. package/dist/scripts/{5268-f4db3933ff-lite.chunk.js → 5268-9b7560f3b1-lite.chunk.js} +2 -2
  57. package/dist/scripts/{5268-f4db3933ff-lite.chunk.js.map → 5268-9b7560f3b1-lite.chunk.js.map} +1 -1
  58. package/dist/scripts/{5442-01ffd95162-lite.chunk.js → 5442-5ddfa2d951-lite.chunk.js} +1 -1
  59. package/dist/scripts/{5442-01ffd95162-lite.chunk.js.map → 5442-5ddfa2d951-lite.chunk.js.map} +1 -1
  60. package/dist/scripts/{5591-98cfe6c6e5-lite.chunk.js → 5591-119d72ede5-lite.chunk.js} +1 -1
  61. package/dist/scripts/{5591-98cfe6c6e5-lite.chunk.js.map → 5591-119d72ede5-lite.chunk.js.map} +1 -1
  62. package/dist/scripts/{5595-3763b14d77-lite.chunk.js → 5595-628d4f252c-lite.chunk.js} +2 -2
  63. package/dist/scripts/5595-628d4f252c-lite.chunk.js.map +1 -0
  64. package/dist/scripts/{6102-4d948a5e48-lite.chunk.js → 6102-6e5494bf09-lite.chunk.js} +3 -3
  65. package/dist/scripts/{6102-4d948a5e48-lite.chunk.js.map → 6102-6e5494bf09-lite.chunk.js.map} +1 -1
  66. package/dist/scripts/{6158-0c5e44f800-lite.chunk.js → 6158-d123add596-lite.chunk.js} +1 -1
  67. package/dist/scripts/{6158-0c5e44f800-lite.chunk.js.map → 6158-d123add596-lite.chunk.js.map} +1 -1
  68. package/dist/scripts/{6263-8957d50afe-lite.chunk.js → 6263-24e67b7df2-lite.chunk.js} +1 -1
  69. package/dist/scripts/{6263-8957d50afe-lite.chunk.js.map → 6263-24e67b7df2-lite.chunk.js.map} +1 -1
  70. package/dist/scripts/{6330-c66465bd6d-lite.chunk.js → 6330-9a2a5fc07e-lite.chunk.js} +1 -1
  71. package/dist/scripts/{6330-c66465bd6d-lite.chunk.js.map → 6330-9a2a5fc07e-lite.chunk.js.map} +1 -1
  72. package/dist/scripts/{671-003843ca84-lite.chunk.js → 671-5571f33165-lite.chunk.js} +1 -1
  73. package/dist/scripts/{671-003843ca84-lite.chunk.js.map → 671-5571f33165-lite.chunk.js.map} +1 -1
  74. package/dist/scripts/{7167-efe85af16e-lite.chunk.js → 7167-dc4c954c2b-lite.chunk.js} +1 -1
  75. package/dist/scripts/{7167-efe85af16e-lite.chunk.js.map → 7167-dc4c954c2b-lite.chunk.js.map} +1 -1
  76. package/dist/scripts/7293-58f4a7cf47-lite.chunk.js +2 -0
  77. package/dist/scripts/{7293-afd3349468-lite.chunk.js.map → 7293-58f4a7cf47-lite.chunk.js.map} +1 -1
  78. package/dist/scripts/{7301-f20e4bdb8f-lite.chunk.js → 7301-7c9342ef0c-lite.chunk.js} +1 -1
  79. package/dist/scripts/{7301-f20e4bdb8f-lite.chunk.js.map → 7301-7c9342ef0c-lite.chunk.js.map} +1 -1
  80. package/dist/scripts/{7708-ece31b78a9-lite.chunk.js → 7708-e91903481a-lite.chunk.js} +1 -1
  81. package/dist/scripts/{7708-ece31b78a9-lite.chunk.js.map → 7708-e91903481a-lite.chunk.js.map} +1 -1
  82. package/dist/scripts/{771-eb60e33941-lite.chunk.js → 771-5612b4ffc2-lite.chunk.js} +2 -2
  83. package/dist/scripts/{771-eb60e33941-lite.chunk.js.map → 771-5612b4ffc2-lite.chunk.js.map} +1 -1
  84. package/dist/scripts/{7855-37bcdd134e-lite.chunk.js → 7855-4b69540a71-lite.chunk.js} +1 -1
  85. package/dist/scripts/{7855-37bcdd134e-lite.chunk.js.map → 7855-4b69540a71-lite.chunk.js.map} +1 -1
  86. package/dist/scripts/{8024-66413cc05b-lite.chunk.js → 8024-765a4170c7-lite.chunk.js} +2 -2
  87. package/dist/scripts/{8024-66413cc05b-lite.chunk.js.map → 8024-765a4170c7-lite.chunk.js.map} +1 -1
  88. package/dist/scripts/{823-58d27c255b-lite.chunk.js → 823-33c5207c68-lite.chunk.js} +1 -1
  89. package/dist/scripts/{823-58d27c255b-lite.chunk.js.map → 823-33c5207c68-lite.chunk.js.map} +1 -1
  90. package/dist/scripts/8261-69854ff4d5-lite.chunk.js +2 -0
  91. package/dist/scripts/8261-69854ff4d5-lite.chunk.js.map +1 -0
  92. package/dist/scripts/{8466-ee9d40ee97-lite.chunk.js → 8466-cea62163e8-lite.chunk.js} +1 -1
  93. package/dist/scripts/{8466-ee9d40ee97-lite.chunk.js.map → 8466-cea62163e8-lite.chunk.js.map} +1 -1
  94. package/dist/scripts/{8681-41edd08b98-lite.chunk.js → 8681-49db3daae6-lite.chunk.js} +2 -2
  95. package/dist/scripts/{8681-41edd08b98-lite.chunk.js.map → 8681-49db3daae6-lite.chunk.js.map} +1 -1
  96. package/dist/scripts/{8772-9ae4d77363-lite.chunk.js → 8772-6c11095cea-lite.chunk.js} +1 -1
  97. package/dist/scripts/{8772-9ae4d77363-lite.chunk.js.map → 8772-6c11095cea-lite.chunk.js.map} +1 -1
  98. package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js → 8906-2f6b5e4c5c-lite.chunk.js} +2 -2
  99. package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js.map → 8906-2f6b5e4c5c-lite.chunk.js.map} +1 -1
  100. package/dist/scripts/{920-4de8efbcf1-lite.chunk.js → 920-acc6596891-lite.chunk.js} +1 -1
  101. package/dist/scripts/{920-4de8efbcf1-lite.chunk.js.map → 920-acc6596891-lite.chunk.js.map} +1 -1
  102. package/dist/scripts/{9212-8f95fbd9b9-lite.chunk.js → 9212-cc987a13bf-lite.chunk.js} +1 -1
  103. package/dist/scripts/{9212-8f95fbd9b9-lite.chunk.js.map → 9212-cc987a13bf-lite.chunk.js.map} +1 -1
  104. package/dist/scripts/{9242-2e533bdc0d-lite.chunk.js → 9242-144e7728ad-lite.chunk.js} +1 -1
  105. package/dist/scripts/{9242-2e533bdc0d-lite.chunk.js.map → 9242-144e7728ad-lite.chunk.js.map} +1 -1
  106. package/dist/scripts/{9264-d2285d4310-lite.chunk.js → 9264-518952f13f-lite.chunk.js} +1 -1
  107. package/dist/scripts/{9264-d2285d4310-lite.chunk.js.map → 9264-518952f13f-lite.chunk.js.map} +1 -1
  108. package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js → 9478-4b3c088537-lite.chunk.js} +2 -2
  109. package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js.map → 9478-4b3c088537-lite.chunk.js.map} +1 -1
  110. package/dist/scripts/{9484-be04a34bbf-lite.chunk.js → 9484-b85011dbea-lite.chunk.js} +2 -2
  111. package/dist/scripts/{9484-be04a34bbf-lite.chunk.js.map → 9484-b85011dbea-lite.chunk.js.map} +1 -1
  112. package/dist/scripts/bundle-11bfce2e8c.min.js +3 -0
  113. package/dist/scripts/{bundle-8f540a1154.min.js.map → bundle-11bfce2e8c.min.js.map} +1 -1
  114. package/package.json +1 -1
  115. package/dist/scripts/1285-c322e093f9-lite.chunk.js.map +0 -1
  116. package/dist/scripts/3012-b5208d6981-lite.chunk.js.map +0 -1
  117. package/dist/scripts/5595-3763b14d77-lite.chunk.js.map +0 -1
  118. package/dist/scripts/7293-afd3349468-lite.chunk.js +0 -2
  119. package/dist/scripts/8261-72453f1978-lite.chunk.js +0 -2
  120. package/dist/scripts/8261-72453f1978-lite.chunk.js.map +0 -1
  121. package/dist/scripts/bundle-8f540a1154.min.js +0 -3
  122. /package/dist/scripts/{170-1f815b85a1-lite.chunk.js.LICENSE.txt → 170-2d124965b7-lite.chunk.js.LICENSE.txt} +0 -0
  123. /package/dist/scripts/{2118-462a279c5a-lite.chunk.js.LICENSE.txt → 2118-ec2a5f1e9b-lite.chunk.js.LICENSE.txt} +0 -0
  124. /package/dist/scripts/{3841-95df66e647-lite.chunk.js.LICENSE.txt → 3841-bfae79638b-lite.chunk.js.LICENSE.txt} +0 -0
  125. /package/dist/scripts/{4778-ebe369973c-lite.chunk.js.LICENSE.txt → 4778-3c9f2b7f76-lite.chunk.js.LICENSE.txt} +0 -0
  126. /package/dist/scripts/{4942-a27a31e79e-lite.chunk.js.LICENSE.txt → 4942-acce40b333-lite.chunk.js.LICENSE.txt} +0 -0
  127. /package/dist/scripts/{5268-f4db3933ff-lite.chunk.js.LICENSE.txt → 5268-9b7560f3b1-lite.chunk.js.LICENSE.txt} +0 -0
  128. /package/dist/scripts/{6102-4d948a5e48-lite.chunk.js.LICENSE.txt → 6102-6e5494bf09-lite.chunk.js.LICENSE.txt} +0 -0
  129. /package/dist/scripts/{771-eb60e33941-lite.chunk.js.LICENSE.txt → 771-5612b4ffc2-lite.chunk.js.LICENSE.txt} +0 -0
  130. /package/dist/scripts/{8024-66413cc05b-lite.chunk.js.LICENSE.txt → 8024-765a4170c7-lite.chunk.js.LICENSE.txt} +0 -0
  131. /package/dist/scripts/{8681-41edd08b98-lite.chunk.js.LICENSE.txt → 8681-49db3daae6-lite.chunk.js.LICENSE.txt} +0 -0
  132. /package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js.LICENSE.txt → 8906-2f6b5e4c5c-lite.chunk.js.LICENSE.txt} +0 -0
  133. /package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js.LICENSE.txt → 9478-4b3c088537-lite.chunk.js.LICENSE.txt} +0 -0
  134. /package/dist/scripts/{9484-be04a34bbf-lite.chunk.js.LICENSE.txt → 9484-b85011dbea-lite.chunk.js.LICENSE.txt} +0 -0
  135. /package/dist/scripts/{bundle-8f540a1154.min.js.LICENSE.txt → bundle-11bfce2e8c.min.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/6330-c66465bd6d-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/enums/LibraryRequestObjectType.ts","file:///app/packages/projects/lite/src/apps/libraries/components/add-to-library-form/AddToLibraryForm.tsx","file:///app/packages/projects/lite/src/apps/libraries/validation/AddToLibraryValidationSchema.ts","file:///app/packages/projects/lite/src/apps/libraries/views/add-to-library/AddToLibraryView.tsx"],"sourcesContent":["export enum LibraryRequestObjectType {\n MasterVideo = 1,\n MasterClip = 2,\n MasterInteractive = 3\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tree } from 'libs/shared/components/tree/Tree';\nimport { BaseTree, Folder, Library, LibraryTree, PopupViewProps, VideoTypes } from 'libs/shared/interfaces';\nimport { TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nimport { AddToLibraryFormValues } from 'apps/libraries/views/add-to-library/AddToLibraryView';\n\nconst namespace = 'libraries.addToLibraryForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToLibraryFormProps extends PopupViewProps {\n libraries: Library[];\n isFolderDisabled: (folder: BaseTree<Folder>) => boolean;\n video: VideoTypes;\n videoLibraries?: Library[];\n getCategoryTree: (libraryId: string) => LibraryTree[];\n}\n\nexport function AddToLibraryForm(props: AddToLibraryFormProps): JSX.Element {\n const formikProps = useFormikContextWrapper<AddToLibraryFormValues>();\n\n const isMakingLibraryRequest = !formikProps.values.library.canAddContent;\n const isAlreadyInLibrary = props.videoLibraries?.find(l => l.id === formikProps.values.library.id);\n\n const tree = React.useMemo(() => {\n const categoryTree = props.getCategoryTree(formikProps.values.library.id);\n\n const rootBranches = categoryTree.map(TreeHelper.convertNestedObjectToTree);\n\n return {\n children: rootBranches\n } as BaseTree<Library>;\n }, [formikProps.values.library.id]);\n\n return (\n <>\n {isAlreadyInLibrary && (\n <div className='alert alert-info'>\n <Text namespace={namespace} phrase='alreadyInLibrary' options={{ library: formikProps.values.library.name }} />\n </div>\n )}\n\n {isMakingLibraryRequest && (\n <p>\n <Text namespace={namespace} phrase='sendLibraryRequest' options={{ video: props.video.name }} />\n </p>\n )}\n\n <Form>\n {props.libraries.length > 1 && (\n <FormField\n as='select'\n label={getPhrase('selectLibrary')}\n name='library'\n value={formikProps.values.library?.id ?? ''}\n className={!formikProps.values.library?.id ? 'text-secondary' : ''}\n showRequiredStar\n onChange={(e: any) => {\n formikProps.setFieldValue('folder', null);\n\n const libraryId = e.target.value;\n\n formikProps.setFieldValue('library', props.libraries.find(l => l.id.toString() === libraryId.toString()));\n }}\n >\n {props.libraries.map(library => (\n <option key={library.id} value={library.id} className='text-dark'>\n {library.name}\n </option>\n ))}\n </FormField>\n )}\n\n <FormField\n label={getPhrase('selectFolder')}\n name='folder'\n showRequiredStar\n disabled={!formikProps.values.library}\n >\n {() => (\n <Scrollbars autoHeight autoHeightMax={300} className='border rounded-3'>\n <Tree\n tree={tree}\n onSelect={(folder: Folder) => formikProps.setFieldValue('folder', folder)}\n isDisabled={props.isFolderDisabled}\n disabledTooltip={LanguageService.getPhrase(namespace, 'disabledFolder')}\n selectedIds={formikProps.values.folder?.id ? [formikProps.values.folder.id] : undefined}\n selectedLinkClassName='bg-light'\n />\n </Scrollbars>\n )}\n </FormField>\n \n {!!formikProps.values.folder && (\n <p className='mt-n2'>\n <Text\n namespace={namespace}\n phrase={isMakingLibraryRequest ? 'requestTo' : 'addTo'}\n options={{ folder: formikProps.values.folder.name }}\n />\n </p>\n )}\n\n {isMakingLibraryRequest && (\n <FormField\n label={LanguageService.getPhrase(namespace, 'comment')}\n as='textarea'\n name='comment'\n id='comment'\n placeholder={LanguageService.getPhrase(namespace, 'commentPlaceholder')}\n value={formikProps.values.comment}\n />\n )}\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit variant='dark' text={getPhrase('addToLibrary')} />\n </PopupButtons>\n </Form>\n </>\n );\n}","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'libraries.validation';\n\nexport const AddToLibraryValidationSchema = object().shape({\n comment: string()\n .nullable()\n .max(512, () => LanguageService.getPhrase(namespace, 'commentExceeds')),\n library: object()\n .required(() => LanguageService.getPhrase(namespace, 'libraryRequired'))\n .nullable(),\n folder: object()\n .required(() => LanguageService.getPhrase(namespace, 'folderRequired'))\n .nullable()\n});","import React from 'react';\n\nimport { AlertType } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { LibraryRequestObjectType } from 'libs/shared/enums/LibraryRequestObjectType';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { BaseTree, Clip, CurrentUser, Folder, InteractiveMetadata, Library, LibraryTree, PopupViewProps, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { AddToLibraryRequest } from 'libs/shared/interfaces/requests/AddToLibraryRequest';\nimport { LibraryApiXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\nimport { ErrorMessageHelper } from 'libs/shared/utils/error-message-helper/ErrorMessageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { AddToLibraryForm } from 'apps/libraries/components/add-to-library-form/AddToLibraryForm';\nimport { LibraryHelper } from 'apps/libraries/utils/LibraryHelper';\nimport { AddToLibraryValidationSchema } from 'apps/libraries/validation/AddToLibraryValidationSchema';\n\nexport interface AddToLibraryFormValues {\n library: Library;\n folder: Folder;\n comment?: string;\n}\n\ntype LibraryObjectType = MasterType.Video | MasterType.Clip | MasterType.Interactive;\n\ntype ObjectTypeMap = {\n [K in LibraryObjectType]: LibraryRequestObjectType;\n};\n\nconst OBJECT_TYPE_MAP: ObjectTypeMap = {\n [MasterType.Video]: LibraryRequestObjectType.MasterVideo,\n [MasterType.Clip]: LibraryRequestObjectType.MasterClip,\n [MasterType.Interactive]: LibraryRequestObjectType.MasterInteractive\n};\n\nconst namespace = 'libraries.addToLibrary';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToLibraryViewProps extends PopupViewProps {\n id: string;\n typeId: MasterType;\n}\n\nexport function AddToLibraryView(props: AddToLibraryViewProps): JSX.Element {\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const librariesWithCategories = Flight.useBasicFetch<LibraryTree[]>(LibraryRequests.librariesWithCategories());\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.libraryRequestLibraries());\n\n const videoRequest = VideoHelper.getVideoRequest(props.id, props.typeId);\n const video = Flight.useBasicFetch<VideoTypes>(videoRequest);\n\n const isClipOrInteractive = VideoHelper.isClip(video.data) || VideoHelper.isInteractive(video.data);\n const parentVideo = isClipOrInteractive && (video.data as Clip | InteractiveMetadata)?._parentVideo;\n const parentVideoDetails = Flight.useBasicFetch<Video>(\n parentVideo && VideoRequests.video(parentVideo.id)\n );\n\n const sortedLibraries = React.useMemo(() => LibraryHelper.sort(libraries.data), [libraries.data]);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id);\n\n /**\n * We try to pull the library and category id off the video/clip/interactive.\n * If we can't, then we try to get them off the _parentVideo. \n */\n function getSourceIds() {\n let sourceCategoryId: string = null;\n let sourceLibraryId = ArrayHelper.first(video.data?.libraries?.data)?.id;\n\n if (sourceLibraryId && video.data.categories.data?.length) {\n const category = video.data.categories.data.find(category => {\n return category.libraries?.data?.find(l => l.id.toString() === sourceLibraryId.toString());\n });\n\n if (category)\n sourceCategoryId = category.id;\n }\n\n if (!sourceLibraryId) {\n sourceLibraryId = ArrayHelper.first(parentVideoDetails.data?.libraries?.data)?.id;\n\n if (sourceLibraryId && parentVideoDetails.data.categories.data?.length) {\n const category = parentVideoDetails.data.categories.data.find(category => {\n return category.libraries?.data?.find(l => l.id.toString() === sourceLibraryId.toString());\n });\n \n if (category)\n sourceCategoryId = category.id;\n }\n }\n\n return {\n sourceLibraryId: sourceLibraryId ? +sourceLibraryId : null,\n sourceCategoryId: sourceCategoryId ? +sourceCategoryId : null\n };\n }\n\n function addToLibrary(data: AddToLibraryFormValues, onDone: () => void): void {\n const { sourceLibraryId, sourceCategoryId } = getSourceIds();\n\n const request: AddToLibraryRequest = {\n objectId: props.id.toString(),\n objectType: OBJECT_TYPE_MAP[props.typeId as LibraryObjectType],\n message: data.comment,\n sourceLibraryId,\n destinationLibraryId: +data.library.id,\n metadata: {\n destinationCategoryId: +data.folder.id,\n sourceCategoryId\n }\n };\n\n fetchAsync(LibraryRequests.addToLibrary(request, sort))\n .then(() => {\n if (!data.library.canAddContent) {\n alerts.success({\n type: AlertType.Pending,\n heading: getPhrase('pendingApproval'),\n message: getPhrase('libraryRequestSent', { library: data.library.name, escapeText: true })\n });\n } else {\n alerts.success({\n type: AlertType.Success,\n heading: '',\n message: getPhrase('addToLibrarySuccess', { folder: data.folder.name, video: video.data.name, escapeText: true }),\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ data.library.id, data.folder.id, TextHelper.slugify(data.folder.name) ]\n },\n appLinkText: getPhrase('goToFolder', { folder: data.folder.name }),\n appLinkClassName: 'info-link'\n });\n }\n })\n .catch((xhr: LibraryApiXhr) => {\n alerts.error(ErrorMessageHelper.libraryApiError(xhr));\n onDone();\n })\n .finally(() => {\n props.closePopup();\n });\n }\n\n function getCategoryTree(libraryId: string): LibraryTree[] {\n return librariesWithCategories.data.find(l => l.data.id.toString() === libraryId.toString())?.children;\n }\n\n function isFolderDisabled(folder: BaseTree<Folder>): boolean {\n return !!video.data.categories?.data?.find(category => category.id === folder.id);\n }\n\n const dataLoaded = (\n libraries.data &&\n video.data &&\n librariesWithCategories.data\n );\n\n return (\n <Popup title={getPhrase('addToLibrary')} closePopup={props.closePopup} showLoadingSpinner={!dataLoaded}>\n {dataLoaded && (\n <FormWrapper<AddToLibraryFormValues>\n initialValues={{\n library: ArrayHelper.first(sortedLibraries),\n folder: null,\n comment: ''\n }}\n validationSchema={AddToLibraryValidationSchema}\n onSubmit={addToLibrary}\n >\n <AddToLibraryForm\n libraries={sortedLibraries}\n closePopup={props.closePopup}\n isFolderDisabled={isFolderDisabled}\n video={video.data}\n videoLibraries={video.data?.libraries?.data}\n getCategoryTree={getCategoryTree}\n />\n </FormWrapper>\n )}\n </Popup>\n );\n}"],"names":["LibraryRequestObjectType","namespace","getPhrase","LanguageService","AddToLibraryForm","props","formikProps","isMakingLibraryRequest","values","library","canAddContent","isAlreadyInLibrary","videoLibraries","find","l","id","tree","children","getCategoryTree","map","TreeHelper","className","Text","phrase","options","name","video","libraries","length","FormField","as","label","value","showRequiredStar","onChange","e","setFieldValue","libraryId","target","toString","key","disabled","autoHeight","autoHeightMax","Tree","onSelect","folder","isDisabled","isFolderDisabled","disabledTooltip","selectedIds","undefined","selectedLinkClassName","placeholder","comment","PopupButtons","onClick","closePopup","variant","text","AddToLibraryValidationSchema","shape","nullable","max","required","OBJECT_TYPE_MAP","MasterType","MasterVideo","MasterClip","MasterInteractive","AddToLibraryView","user","UserRequests","librariesWithCategories","LibraryRequests","videoRequest","VideoHelper","typeId","parentVideo","data","_parentVideo","parentVideoDetails","VideoRequests","sortedLibraries","LibraryHelper","fetchAsync","alerts","sort","VideoSortHelper","dataLoaded","Popup","title","showLoadingSpinner","FormWrapper","initialValues","ArrayHelper","validationSchema","onSubmit","onDone","sourceCategoryId","sourceLibraryId","categories","category","getSourceIds","request","objectId","objectType","message","destinationLibraryId","metadata","destinationCategoryId","then","success","type","heading","escapeText","appLink","application","action","args","TextHelper","appLinkText","appLinkClassName","xhr","error","ErrorMessageHelper"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/6330-9a2a5fc07e-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/enums/LibraryRequestObjectType.ts","file:///app/packages/projects/lite/src/apps/libraries/components/add-to-library-form/AddToLibraryForm.tsx","file:///app/packages/projects/lite/src/apps/libraries/validation/AddToLibraryValidationSchema.ts","file:///app/packages/projects/lite/src/apps/libraries/views/add-to-library/AddToLibraryView.tsx"],"sourcesContent":["export enum LibraryRequestObjectType {\n MasterVideo = 1,\n MasterClip = 2,\n MasterInteractive = 3\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tree } from 'libs/shared/components/tree/Tree';\nimport { BaseTree, Folder, Library, LibraryTree, PopupViewProps, VideoTypes } from 'libs/shared/interfaces';\nimport { TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nimport { AddToLibraryFormValues } from 'apps/libraries/views/add-to-library/AddToLibraryView';\n\nconst namespace = 'libraries.addToLibraryForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToLibraryFormProps extends PopupViewProps {\n libraries: Library[];\n isFolderDisabled: (folder: BaseTree<Folder>) => boolean;\n video: VideoTypes;\n videoLibraries?: Library[];\n getCategoryTree: (libraryId: string) => LibraryTree[];\n}\n\nexport function AddToLibraryForm(props: AddToLibraryFormProps): JSX.Element {\n const formikProps = useFormikContextWrapper<AddToLibraryFormValues>();\n\n const isMakingLibraryRequest = !formikProps.values.library.canAddContent;\n const isAlreadyInLibrary = props.videoLibraries?.find(l => l.id === formikProps.values.library.id);\n\n const tree = React.useMemo(() => {\n const categoryTree = props.getCategoryTree(formikProps.values.library.id);\n\n const rootBranches = categoryTree.map(TreeHelper.convertNestedObjectToTree);\n\n return {\n children: rootBranches\n } as BaseTree<Library>;\n }, [formikProps.values.library.id]);\n\n return (\n <>\n {isAlreadyInLibrary && (\n <div className='alert alert-info'>\n <Text namespace={namespace} phrase='alreadyInLibrary' options={{ library: formikProps.values.library.name }} />\n </div>\n )}\n\n {isMakingLibraryRequest && (\n <p>\n <Text namespace={namespace} phrase='sendLibraryRequest' options={{ video: props.video.name }} />\n </p>\n )}\n\n <Form>\n {props.libraries.length > 1 && (\n <FormField\n as='select'\n label={getPhrase('selectLibrary')}\n name='library'\n value={formikProps.values.library?.id ?? ''}\n className={!formikProps.values.library?.id ? 'text-secondary' : ''}\n showRequiredStar\n onChange={(e: any) => {\n formikProps.setFieldValue('folder', null);\n\n const libraryId = e.target.value;\n\n formikProps.setFieldValue('library', props.libraries.find(l => l.id.toString() === libraryId.toString()));\n }}\n >\n {props.libraries.map(library => (\n <option key={library.id} value={library.id} className='text-dark'>\n {library.name}\n </option>\n ))}\n </FormField>\n )}\n\n <FormField\n label={getPhrase('selectFolder')}\n name='folder'\n showRequiredStar\n disabled={!formikProps.values.library}\n >\n {() => (\n <Scrollbars autoHeight autoHeightMax={300} className='border rounded-3'>\n <Tree\n tree={tree}\n onSelect={(folder: Folder) => formikProps.setFieldValue('folder', folder)}\n isDisabled={props.isFolderDisabled}\n disabledTooltip={LanguageService.getPhrase(namespace, 'disabledFolder')}\n selectedIds={formikProps.values.folder?.id ? [formikProps.values.folder.id] : undefined}\n selectedLinkClassName='bg-light'\n />\n </Scrollbars>\n )}\n </FormField>\n \n {!!formikProps.values.folder && (\n <p className='mt-n2'>\n <Text\n namespace={namespace}\n phrase={isMakingLibraryRequest ? 'requestTo' : 'addTo'}\n options={{ folder: formikProps.values.folder.name }}\n />\n </p>\n )}\n\n {isMakingLibraryRequest && (\n <FormField\n label={LanguageService.getPhrase(namespace, 'comment')}\n as='textarea'\n name='comment'\n id='comment'\n placeholder={LanguageService.getPhrase(namespace, 'commentPlaceholder')}\n value={formikProps.values.comment}\n />\n )}\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit variant='dark' text={getPhrase('addToLibrary')} />\n </PopupButtons>\n </Form>\n </>\n );\n}","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'libraries.validation';\n\nexport const AddToLibraryValidationSchema = object().shape({\n comment: string()\n .nullable()\n .max(512, () => LanguageService.getPhrase(namespace, 'commentExceeds')),\n library: object()\n .required(() => LanguageService.getPhrase(namespace, 'libraryRequired'))\n .nullable(),\n folder: object()\n .required(() => LanguageService.getPhrase(namespace, 'folderRequired'))\n .nullable()\n});","import React from 'react';\n\nimport { AlertType } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { LibraryRequestObjectType } from 'libs/shared/enums/LibraryRequestObjectType';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { BaseTree, Clip, CurrentUser, Folder, InteractiveMetadata, Library, LibraryTree, PopupViewProps, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { AddToLibraryRequest } from 'libs/shared/interfaces/requests/AddToLibraryRequest';\nimport { LibraryApiXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\nimport { ErrorMessageHelper } from 'libs/shared/utils/error-message-helper/ErrorMessageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { AddToLibraryForm } from 'apps/libraries/components/add-to-library-form/AddToLibraryForm';\nimport { LibraryHelper } from 'apps/libraries/utils/LibraryHelper';\nimport { AddToLibraryValidationSchema } from 'apps/libraries/validation/AddToLibraryValidationSchema';\n\nexport interface AddToLibraryFormValues {\n library: Library;\n folder: Folder;\n comment?: string;\n}\n\ntype LibraryObjectType = MasterType.Video | MasterType.Clip | MasterType.Interactive;\n\ntype ObjectTypeMap = {\n [K in LibraryObjectType]: LibraryRequestObjectType;\n};\n\nconst OBJECT_TYPE_MAP: ObjectTypeMap = {\n [MasterType.Video]: LibraryRequestObjectType.MasterVideo,\n [MasterType.Clip]: LibraryRequestObjectType.MasterClip,\n [MasterType.Interactive]: LibraryRequestObjectType.MasterInteractive\n};\n\nconst namespace = 'libraries.addToLibrary';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToLibraryViewProps extends PopupViewProps {\n id: string;\n typeId: MasterType;\n}\n\nexport function AddToLibraryView(props: AddToLibraryViewProps): JSX.Element {\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const librariesWithCategories = Flight.useBasicFetch<LibraryTree[]>(LibraryRequests.librariesWithCategories());\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.libraryRequestLibraries());\n\n const videoRequest = VideoHelper.getVideoRequest(props.id, props.typeId);\n const video = Flight.useBasicFetch<VideoTypes>(videoRequest);\n\n const isClipOrInteractive = VideoHelper.isClip(video.data) || VideoHelper.isInteractive(video.data);\n const parentVideo = isClipOrInteractive && (video.data as Clip | InteractiveMetadata)?._parentVideo;\n const parentVideoDetails = Flight.useBasicFetch<Video>(\n parentVideo && VideoRequests.video(parentVideo.id)\n );\n\n const sortedLibraries = React.useMemo(() => LibraryHelper.sort(libraries.data), [libraries.data]);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id);\n\n /**\n * We try to pull the library and category id off the video/clip/interactive.\n * If we can't, then we try to get them off the _parentVideo. \n */\n function getSourceIds() {\n let sourceCategoryId: string = null;\n let sourceLibraryId = ArrayHelper.first(video.data?.libraries?.data)?.id;\n\n if (sourceLibraryId && video.data.categories.data?.length) {\n const category = video.data.categories.data.find(category => {\n return category.libraries?.data?.find(l => l.id.toString() === sourceLibraryId.toString());\n });\n\n if (category)\n sourceCategoryId = category.id;\n }\n\n if (!sourceLibraryId) {\n sourceLibraryId = ArrayHelper.first(parentVideoDetails.data?.libraries?.data)?.id;\n\n if (sourceLibraryId && parentVideoDetails.data.categories.data?.length) {\n const category = parentVideoDetails.data.categories.data.find(category => {\n return category.libraries?.data?.find(l => l.id.toString() === sourceLibraryId.toString());\n });\n \n if (category)\n sourceCategoryId = category.id;\n }\n }\n\n return {\n sourceLibraryId: sourceLibraryId ? +sourceLibraryId : null,\n sourceCategoryId: sourceCategoryId ? +sourceCategoryId : null\n };\n }\n\n function addToLibrary(data: AddToLibraryFormValues, onDone: () => void): void {\n const { sourceLibraryId, sourceCategoryId } = getSourceIds();\n\n const request: AddToLibraryRequest = {\n objectId: props.id.toString(),\n objectType: OBJECT_TYPE_MAP[props.typeId as LibraryObjectType],\n message: data.comment,\n sourceLibraryId,\n destinationLibraryId: +data.library.id,\n metadata: {\n destinationCategoryId: +data.folder.id,\n sourceCategoryId\n }\n };\n\n fetchAsync(LibraryRequests.addToLibrary(request, sort))\n .then(() => {\n if (!data.library.canAddContent) {\n alerts.success({\n type: AlertType.Pending,\n heading: getPhrase('pendingApproval'),\n message: getPhrase('libraryRequestSent', { library: data.library.name, escapeText: true })\n });\n } else {\n alerts.success({\n type: AlertType.Success,\n heading: '',\n message: getPhrase('addToLibrarySuccess', { folder: data.folder.name, video: video.data.name, escapeText: true }),\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ data.library.id, data.folder.id, TextHelper.slugify(data.folder.name) ]\n },\n appLinkText: getPhrase('goToFolder', { folder: data.folder.name }),\n appLinkClassName: 'info-link'\n });\n }\n })\n .catch((xhr: LibraryApiXhr) => {\n alerts.error(ErrorMessageHelper.libraryApiError(xhr));\n onDone();\n })\n .finally(() => {\n props.closePopup();\n });\n }\n\n function getCategoryTree(libraryId: string): LibraryTree[] {\n return librariesWithCategories.data.find(l => l.data.id.toString() === libraryId.toString())?.children;\n }\n\n function isFolderDisabled(folder: BaseTree<Folder>): boolean {\n return !!video.data.categories?.data?.find(category => category.id === folder.id);\n }\n\n const dataLoaded = (\n libraries.data &&\n video.data &&\n librariesWithCategories.data\n );\n\n return (\n <Popup title={getPhrase('addToLibrary')} closePopup={props.closePopup} showLoadingSpinner={!dataLoaded}>\n {dataLoaded && (\n <FormWrapper<AddToLibraryFormValues>\n initialValues={{\n library: ArrayHelper.first(sortedLibraries),\n folder: null,\n comment: ''\n }}\n validationSchema={AddToLibraryValidationSchema}\n onSubmit={addToLibrary}\n >\n <AddToLibraryForm\n libraries={sortedLibraries}\n closePopup={props.closePopup}\n isFolderDisabled={isFolderDisabled}\n video={video.data}\n videoLibraries={video.data?.libraries?.data}\n getCategoryTree={getCategoryTree}\n />\n </FormWrapper>\n )}\n </Popup>\n );\n}"],"names":["LibraryRequestObjectType","namespace","getPhrase","LanguageService","AddToLibraryForm","props","formikProps","isMakingLibraryRequest","values","library","canAddContent","isAlreadyInLibrary","videoLibraries","find","l","id","tree","children","getCategoryTree","map","TreeHelper","className","Text","phrase","options","name","video","libraries","length","FormField","as","label","value","showRequiredStar","onChange","e","setFieldValue","libraryId","target","toString","key","disabled","autoHeight","autoHeightMax","Tree","onSelect","folder","isDisabled","isFolderDisabled","disabledTooltip","selectedIds","undefined","selectedLinkClassName","placeholder","comment","PopupButtons","onClick","closePopup","variant","text","AddToLibraryValidationSchema","shape","nullable","max","required","OBJECT_TYPE_MAP","MasterType","MasterVideo","MasterClip","MasterInteractive","AddToLibraryView","user","UserRequests","librariesWithCategories","LibraryRequests","videoRequest","VideoHelper","typeId","parentVideo","data","_parentVideo","parentVideoDetails","VideoRequests","sortedLibraries","LibraryHelper","fetchAsync","alerts","sort","VideoSortHelper","dataLoaded","Popup","title","showLoadingSpinner","FormWrapper","initialValues","ArrayHelper","validationSchema","onSubmit","onDone","sourceCategoryId","sourceLibraryId","categories","category","getSourceIds","request","objectId","objectType","message","destinationLibraryId","metadata","destinationCategoryId","then","success","type","heading","escapeText","appLink","application","action","args","TextHelper","appLinkText","appLinkClassName","xhr","error","ErrorMessageHelper"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[671],{56520:(e,i,t)=>{t.d(i,{R0:()=>v,_N:()=>u,eR:()=>p});var a=t(23481),n=t(97395),o=t(20354),r=t(42617),s=t(4594),c=t(39151),d=t(31949),l=a.T.encloseNamespace("shared.hooks");function u(e,i,t,a){var o=n._.safeUrlConcat(e,"manage"),r=n._.safeUrlConcat(e,"exchange"),c=function(e,i,t){return n._.safeUrlConcat(e,"".concat(i,"/").concat(t))};switch(i){case s.E.Subject:return n._.safeUrlConcat(o,"subjects/presentations/".concat(a,"/classifications/").concat(t,"/edit"));case s.E.Video:return c(o,"videos",t);case s.E.Playlist:return c(o,"playlists",t);case s.E.Series:return c(o,"series",t);case s.E.Company:return c(o,"companies",t);case s.E.Interactive:return c(o,"interactives",t);case s.E.Clip:return c(o,"clips",t);case s.E.Category:return c(r,"categories",t)}}function p(){return l("openInCurationStudio")}function v(){var e,i,t=o.a.useBasicFetch(d.N.currentUser()),a=o.a.useBasicFetch((null===(e=t.data)||void 0===e?void 0:e.id)&&d.N.groups(null===(i=t.data)||void 0===i?void 0:i.id)).data,n=o.a.useBasicFetch(c.L.config()),s=[r.j.Curator,r.j.Content,r.j.Developer];return{openInCurationStudioLabel:p(),isUserCurator:s.some((function(e){return null==a?void 0:a.data.find((function(i){return i.name===e}))})),getOpenInCurationStudioLink:function(e,i,t){var a;return u(null===(a=n.data)||void 0===a?void 0:a.curatorUrl,e,i,t)}}}},70227:(e,i,t)=>{t.d(i,{c:()=>o});var a=t(97395),n=t(4594),o={getObjectUrl:function(e,i){var t=e.analyticsWebUrl;if(t){var o="";switch(i.typeId){case n.E.Video:o="/videos/".concat(i.id,"/overview");break;case n.E.Clip:o="/clips/".concat(i.id,"/overview");break;case n.E.Interactive:o="/interactives/".concat(i.id,"/overview")}if(o)return a._.safeUrlConcat(t,o)}}}},10671:(e,i,t)=>{t.d(i,{i:()=>A,_:()=>x});var a,n=t(20354),o=t(65858),r=t(16714);!function(e){e[e.AddToPlaylist=0]="AddToPlaylist",e[e.Share=1]="Share",e[e.EditVideo=2]="EditVideo",e[e.EditDetails=3]="EditDetails",e[e.Download=4]="Download",e[e.Delete=5]="Delete",e[e.ViewCurriculumLinks=6]="ViewCurriculumLinks",e[e.CreateClip=7]="CreateClip",e[e.CreateInteractive=8]="CreateInteractive",e[e.ViewUsage=9]="ViewUsage",e[e.AddToLibrary=10]="AddToLibrary",e[e.Approve=11]="Approve",e[e.ManageAccess=12]="ManageAccess",e[e.OpenInCurationStudio=13]="OpenInCurationStudio",e[e.AddToMyVideos=14]="AddToMyVideos",e[e.ViewOriginalVideo=15]="ViewOriginalVideo",e[e.EditClip=16]="EditClip",e[e.EditInteractive=17]="EditInteractive",e[e.PreviewQuestions=18]="PreviewQuestions",e[e.ViewResults=19]="ViewResults",e[e.CopyInteractive=20]="CopyInteractive",e[e.PrintInteractive=21]="PrintInteractive",e[e.UnpublishInteractive=22]="UnpublishInteractive"}(a||(a={}));var s,c=t(39151),d=t(98064),l=t(79967),u=t(56520),p=t(22902),v=t(31908);!function(e){e[e.PlayPage=0]="PlayPage"}(s||(s={}));var y,g=t(26361),I=t(62756),f=t(23481),m=t(97395),C=t(28400),V=t(5960),b=t(4594),E=t(12754),w=t(70227),P=t(35223),T=t(14070),h=t(97291);function O(e){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O(e)}function k(e,i,t){var a;return a=function(e,i){if("object"!=O(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=O(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(i),(i="symbol"==O(a)?a:a+"")in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e}var A,L=f.T.encloseNamespace("shared.utils"),S=(k(k(k(k(k(k(k(k(k(k(y={},a.Approve,(function(e){return{enabled:e.hasPermissions(r.C.ManageVideoAccess),svgName:P.vn.Check,order:10,name:L("approve"),button:!0,showButtonText:!0,appLink:{application:h.O.DEFAULT,action:T.e.Default.APPROVE_VIDEO,params:{objectId:e.video.id,objectTypeId:e.video.typeId}},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.Approve}}})),a.ManageAccess,(function(e){var i=g.l.hasCustomRestriction(e.video);return{enabled:e.hasPermissions(r.C.ManageVideoAccess),svgName:P.vn.Lock,order:90,name:L("manageAccess"),button:i,showButtonText:i,appLink:{application:h.O.DEFAULT,action:T.e.Default.MANAGE_ACCCESS,params:{objectId:e.video.id,objectTypeId:e.video.typeId}},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ManageAccess},group:"manage"}})),a.ViewResults,(function(e){var i=!0,t=5;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?5:t}return{enabled:e.hasPermissions(r.C.ViewAnalyticsProduct)&&e.video.status!==V.X.Draft,types:[b.E.Interactive],order:t,svgName:P.vn.Chart,name:L("viewResults"),button:i,showButtonText:e.location===A.PlayPage&&i,href:w.c.getObjectUrl(e.config,e.video),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ViewResults},group:"none"}})),a.AddToPlaylist,(function(e){var i=!v.M.isInteractive(e.video)||e.video.status!==V.X.Draft,t=10;if(i&&e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?55:t}return{enabled:!0,order:t,svgName:P.vn.AddToPlaylists,name:L("addToPlaylist"),button:i,showButtonText:e.location===A.PlayPage&&i,appLink:{application:h.O.PLAYLISTS,action:T.e.Playlists.ADD_TO_PLAYLIST,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Associate,descriptor:o.iF.Playlist,workflowPhase:o.eu.Start},group:"add"}})),a.Share,(function(e){var i=!0,t=20;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?5:t}return{enabled:!v.M.isInteractive(e.video)||e.video.status!==V.X.Draft,order:t,svgName:P.vn.Share2,name:L("share"),button:i,showButtonText:e.location===A.PlayPage&&i,appLink:{application:h.O.DEFAULT,action:T.e.Default.SHARE,args:[e.video.id],params:{entityType:e.video.type}},analyticsOptions:{actionType:o.Vw.Share,workflowPhase:o.eu.Start,eventVersion:o.eq.V3},group:"none"}})),a.CreateClip,(function(e){return{enabled:!e.isPlugin,types:[b.E.Video],order:30,svgName:P.vn.Clip,name:L("createClip"),button:!1,appLink:{application:h.O.CLIPS,action:T.e.Clips.CREATE_CLIP,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.Clip,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"create"}})),a.CreateInteractive,(function(e){var i=!1,t=40;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm||e.breakpoints.md;i=!a,t=a?t:-10}return{enabled:!e.isPlugin,types:[b.E.Video,b.E.Clip],order:t,svgName:P.vn.CreateInteractive,name:L("createInteractive"),button:i,showButtonText:e.location===A.PlayPage&&i,appLink:{application:h.O.INTERACTIVES,action:v.M.isVideo(e.video)?T.e.Interactives.NEW_INTERACTIVE:T.e.Interactives.NEW_CLIP_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.Interactive,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"create"}})),a.AddToMyVideos,(function(e){var i,t;return{enabled:v.M.isVideo(e.video)&&!!(null===(t=null===(i=e.video.libraries)||void 0===i?void 0:i.data)||void 0===t?void 0:t.find((function(e){return"exchange"===e.type}))),types:[b.E.Video],order:50,svgName:P.vn.AddVideo,name:L("addMyVideos"),button:!1,appLink:{application:h.O.DEFAULT,action:T.e.Default.ADD_VIDEO,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.WorkspaceAdd,workflowPhase:o.eu.Start},group:"add"}})),a.AddToLibrary,(function(e){var i,t;return{enabled:!e.hasPermissions(r.C.StudentExperience)&&(null===(i=e.video._canAddToLibrary)||void 0===i?void 0:i.value)&&(null===(t=e.requestLibraries)||void 0===t?void 0:t.length)&&(!v.M.isInteractive(e.video)||e.video.status!==V.X.Draft),order:60,svgName:P.vn.Library,name:L("addToLibrary"),button:!1,appLink:{application:h.O.LIBRARIES,action:T.e.Libraries.ADD_TO_LIBRARY,args:[e.video.id,e.video.typeId]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.LibraryRequest,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"add"}})),a.EditVideo,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[b.E.Video],order:70,svgName:P.vn.EditVideo,name:L("editVideo"),button:!1,href:m._.urlBuilder(m._.safeUrlConcat(e.config.cloudEditorUrl,"video/".concat(e.video.id)),{product:E.x.Primary}),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Video,descriptor:o.XX.EditVideo},group:"edit"}})),k(k(k(k(k(k(k(k(k(k(y,a.EditClip,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[b.E.Clip],order:70,svgName:P.vn.EditVideo,name:L("editClip"),button:!1,appLink:{application:h.O.CLIPS,action:T.e.Clips.EDIT_CLIP,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.EditDetails,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[b.E.Video,b.E.Clip],order:80,svgName:P.vn.Edit,name:L("editDetails"),button:!1,appLink:v.M.isVideo(e.video)?{application:h.O.VIDEOS,action:T.e.Videos.EDIT_VIDEO,args:[e.video.id]}:{application:h.O.CLIPS,action:T.e.Clips.EDIT_CLIP_DETAILS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.ViewOriginalVideo,(function(e){var i,t,a=null;return v.M.isInteractive(e.video)&&(null===(i=e.video._parentClip)||void 0===i?void 0:i.id)&&(a={application:h.O.CLIPS,action:T.e.Clips.PLAY_CLIP,args:[e.video._parentClip.id,C.m.slugify(e.video._parentClip.name)]}),!v.M.isVideo(e.video)&&(null===(t=e.video._parentVideo)||void 0===t?void 0:t.id)&&(a={application:h.O.VIDEOS,action:T.e.Videos.PLAY_VIDEO,args:[e.video._parentVideo.id,C.m.slugify(e.video._parentVideo.name)]}),{enabled:!v.M.isVideo(e.video)&&v.M.canViewOriginalVideo(e.video)&&!!a,types:[b.E.Clip,b.E.Interactive],order:100,svgName:P.vn.Video,name:L("viewOriginalVideo"),button:!1,appLink:a,analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ViewOriginalVideo},group:"manage"}})),a.ViewUsage,(function(e){var i;return{enabled:e.hasPermissions(r.C.ViewAnalyticsProduct)&&(e.hasPermissions(r.C.ViewCustomerAnalytics)||(null===(i=e.video._canUpdate)||void 0===i?void 0:i.value)),types:[b.E.Clip,b.E.Video],order:110,svgName:P.vn.Chart,name:L("viewUsage"),button:!1,href:w.c.getObjectUrl(e.config,e.video),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,workflowPhase:o.eu.Complete,descriptor:o.XX.ViewUsage},group:"manage"}})),a.ViewCurriculumLinks,(function(e){return{enabled:!e.hasPermissions(r.C.StudentExperience)&&v.M.isVideo(e.video)&&e.video._hasCurriculumLinks,types:[b.E.Video],order:120,svgName:P.vn.Tag,name:L("viewCurriculumLinks"),button:!1,appLink:{application:h.O.VIDEOS,action:T.e.Videos.VIEW_CURRICULUM_LINKS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Click,workflowPhase:o.eu.Complete,descriptor:o.XX.ViewCurriculumLinks},group:"manage"}})),a.Download,(function(e){var i;return{enabled:v.M.isVideo(e.video)&&(null===(i=e.video._canDownload)||void 0===i?void 0:i.value),types:[b.E.Video],order:130,svgName:P.vn.Download,name:L("download"),button:!1,appLink:{application:h.O.VIDEOS,action:T.e.Videos.DOWNLOAD_VIDEO,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Download,workflowPhase:o.eu.Start},group:"manage"}})),a.OpenInCurationStudio,(function(e){return{enabled:e.isUserCurator,order:140,svgName:P.vn.NewWindow,name:L("openInCurationStudio"),button:!1,href:(0,u._N)(e.config.curatorUrl,e.video.typeId,e.video.id),openInNewTab:!0,group:"administrative"}})),a.Delete,(function(e){var i,t={application:h.O.VIDEOS,action:T.e.Videos.DELETE_VIDEO,params:{ids:[e.video.id]}};return v.M.isClip(e.video)?t={application:h.O.CLIPS,action:T.e.Clips.DELETE_CLIP,args:[e.video.id]}:v.M.isInteractive(e.video)&&(t={application:h.O.INTERACTIVES,action:T.e.Interactives.DELETE_INTERACTIVE,args:[e.video.id]}),{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,order:150,svgName:P.vn.Delete,name:L("delete"),variant:"danger",button:!1,appLink:t,analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"delete"}})),a.PreviewQuestions,(function(e){return{enabled:e.location===A.VideoItem,types:[b.E.Interactive],order:83,svgName:P.vn.Search,name:L("previewInteractive"),button:!1,appLink:{application:h.O.INTERACTIVES,action:T.e.Interactives.PREVIEW_QUESTIONS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.PreviewInteractiveVideo},group:"manage-interactives"}})),a.PrintInteractive,(function(e){return{enabled:!0,types:[b.E.Interactive],order:85,svgName:P.vn.Print,name:L("printAsWorksheet"),button:!1,appLink:{application:h.O.INTERACTIVES,action:T.e.Interactives.PRINT_QUESTIONS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Print,workflowPhase:o.eu.Start},group:"manage-interactives"}})),k(k(k(y,a.CopyInteractive,(function(e){return{enabled:!e.hasPermissions(r.C.StudentExperience),types:[b.E.Interactive],order:87,svgName:P.vn.Copy,name:L("copyInteractive"),button:!1,appLink:{application:h.O.INTERACTIVES,action:T.e.Interactives.COPY_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Copy,workflowPhase:o.eu.Start},group:"manage-interactives"}})),a.EditInteractive,(function(e){var i=e.video.status===V.X.Draft,t=70;return e.location===A.PlayPage&&e.breakpoints.xs&&(i=!1,t=-10),{enabled:!e.isPlugin&&e.video.status===V.X.Draft,types:[b.E.Interactive],order:t,svgName:P.vn.EditVideo,name:L("editInteractive"),tooltip:e.location!==A.PlayPage?L("editInteractiveTooltip"):"",button:i,showButtonText:e.location===A.PlayPage&&i,appLink:{application:h.O.INTERACTIVES,action:T.e.Interactives.EDIT_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.UnpublishInteractive,(function(e){var i;return{enabled:(null===(i=e.video._canUpdate)||void 0===i?void 0:i.value)&&e.video.status!==V.X.Draft,types:[b.E.Interactive],order:70,svgName:P.vn.EditVideo,name:L("editInteractive"),button:!1,appLink:{application:h.O.INTERACTIVES,action:T.e.Interactives.UNPUBLISH_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Publish,descriptor:o.Iq.Unpublish,workflowPhase:o.eu.Start},group:"edit"}})));function D(e,i){(null==i||i>e.length)&&(i=e.length);for(var t=0,a=new Array(i);t<i;t++)a[t]=e[t];return a}!function(e){e[e.PlayPage=0]="PlayPage",e[e.VideoItem=1]="VideoItem"}(A||(A={}));var N=[a.Approve,a.ManageAccess],_=[a.ViewResults],U=[a.AddToPlaylist,a.Share,a.EditInteractive,a.ViewResults],R=[a.ManageAccess,a.AddToLibrary,a.ViewCurriculumLinks,a.ViewUsage,a.CreateClip,a.CreateInteractive,a.EditVideo,a.EditClip,a.EditDetails,a.Delete,a.Download,a.OpenInCurationStudio,a.ViewOriginalVideo,a.CopyInteractive,a.PrintInteractive,a.UnpublishInteractive,a.PreviewQuestions],M={lazyPlaceholder:!0};function X(e){switch(e){case A.PlayPage:return o.LZ.PlayPage;case A.VideoItem:return o.LZ.VideoListItem}}function j(e,i){return e.map((function(e){var t,a,n,o=S[e](i);if(o.types&&!o.types.some((function(e){return e===i.video.typeId})))return null;if(!o.enabled)return null;var r=o.variant||"outline-dark",s="";o.showButtonText?s="btn btn-".concat(r," me-2"):o.variant&&(s="text-".concat(r));var c=!o.button||o.showButtonText;return{order:o.order,label:c?o.name:null,appLink:o.appLink,href:o.href,onClick:o.onClick,svgName:o.svgName,className:s,button:o.button,tooltip:null!==(t=o.tooltip)&&void 0!==t?t:c?null:o.name,analyticsData:o.analyticsData||i.analyticsData,analyticsOptions:o.analyticsOptions?Object.assign(Object.assign({},null!==(a=i.analyticsOptions)&&void 0!==a?a:{}),null!==(n=o.analyticsOptions)&&void 0!==n?n:{}):null,openInNewTab:o.openInNewTab,group:o.group}})).filter((function(e){return!!e}))}function x(e){var i=(0,l.k)(),t=(0,p.T)(),a=t.hasPermissions,o=t.hasLocalPermissions,y=(0,I.G)().isPlugin,f=(0,u.R0)().isUserCurator,m=n.a.useBasicFetch(c.L.config()),C=n.a.useBasicFetch(a(r.C.ViewLibraries)&&d.D.libraryRequestLibraries()),V=function(e){var i=n.a.useGetResponseFunc(),t=n.a.useGetFetch();function a(i){return e.type!==s.PlayPage?null:v.M.getVideoRequest(i.id,i.typeId,e.shareId)}return{hydrate:function(e){var n=a(e);i(n.key).shouldFetch&&t(n)},isHydrated:function(e){var t=a(e);return i(t.key).hasCompleted}}}({type:s.PlayPage,shareId:e.shareId}),b=V.hydrate,E=V.isHydrated;return{getVideoActions:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!o(r.E.UseVideoActions))return[];if(!v.M.getCanBeConsumed(t).canConsume)return[];var s,c={video:t,breakpoints:i,location:e.location,hasPermissions:a,requestLibraries:C.data,config:m.data,isPlugin:y,isUserCurator:f,analyticsData:v.M.getAnalyticsData(t,n.analyticsData),analyticsOptions:Object.assign(Object.assign({},n.analyticsOptions),{entity:v.M.getAnalyticsEntity(t),location:X(e.location)})};return v.M.isVideoTypeArchived(t)?j(_,c):g.l.hasCustomRestriction(t)?j(N,c):E(t)?j([].concat(U,R),c):[].concat(function(e){if(Array.isArray(e))return D(e)}(s=j(U,c))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(s)||function(e,i){if(e){if("string"==typeof e)return D(e,i);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?D(e,i):void 0}}(s)||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.")}(),[M])},fetchMoreActions:function(e){return b(e)}}}}}]);
2
- //# sourceMappingURL=671-003843ca84-lite.chunk.js.map
2
+ //# sourceMappingURL=671-5571f33165-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/671-003843ca84-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/useCurationStudio.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRouteHelper.ts","file:///app/packages/libs/shared/src/enums/VideoActions.ts","file:///app/packages/libs/shared/src/hooks/useVideohydration.ts","file:///app/packages/projects/lite/src/shared/hooks/use-video-actions/VideoActionDefinitions.ts","file:///app/packages/projects/lite/src/shared/hooks/use-video-actions/useVideoActions.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\n\nexport const AnalyticsRouteHelper = {\n getObjectUrl(config: Config, object: BaseObject): string {\n const baseUrl = config.analyticsWebUrl;\n\n if (!baseUrl)\n return;\n\n let relativeUrl = '';\n\n switch (object.typeId) {\n case MasterType.Video:\n relativeUrl = `/videos/${object.id}/overview`;\n break;\n\n case MasterType.Clip:\n relativeUrl = `/clips/${object.id}/overview`;\n break;\n\n case MasterType.Interactive:\n relativeUrl = `/interactives/${object.id}/overview`;\n break;\n }\n\n if (!relativeUrl)\n return;\n\n return UrlHelper.safeUrlConcat(baseUrl, relativeUrl);\n }\n};","export enum VideoAction {\n AddToPlaylist,\n Share,\n EditVideo,\n EditDetails,\n Download,\n Delete,\n ViewCurriculumLinks,\n CreateClip,\n CreateInteractive,\n ViewUsage,\n AddToLibrary,\n Approve,\n ManageAccess,\n OpenInCurationStudio,\n AddToMyVideos,\n ViewOriginalVideo,\n EditClip,\n EditInteractive,\n PreviewQuestions,\n ViewResults,\n CopyInteractive,\n PrintInteractive,\n UnpublishInteractive,\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}","import { ButtonProps } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsOptions, AssocDescriptor, EntityType, EventVersion, HashObject, PublishDescriptor, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { VideoAction } from 'libs/shared/enums/VideoActions';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { getOpenInCurationStudioLink } from 'libs/shared/hooks/useCurationStudio';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { Config, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\n\nconst namespace = 'shared.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype ActionGroup = 'create' | 'add' | 'edit' | 'manage-interactives' | 'manage' | 'administrative' | 'delete' | 'none';\n\ninterface VideoActionDefinition {\n order: number;\n svgName: string;\n name: string;\n tooltip?: string;\n button: boolean;\n variant?: ButtonProps['variant'];\n appLink?: Core.AppLink;\n analyticsOptions?: AnalyticsOptions;\n enabled: boolean;\n types?: (MasterType.Video | MasterType.Clip | MasterType.Interactive)[];\n openInNewTab?: boolean;\n onClick?: () => void;\n href?: string;\n analyticsData?: HashObject;\n group?: ActionGroup;\n showButtonText?: boolean;\n}\n\nexport interface GetActionsContext {\n video: VideoTypes;\n location: VideoActionsLocation;\n breakpoints: Breakpoints;\n hasPermissions: HasPermissionsFunc;\n requestLibraries: Library[];\n config: Config;\n isPlugin: boolean;\n isUserCurator: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport const VideoActionsDefinitions: Record<VideoAction, (options: GetActionsContext) => VideoActionDefinition> = {\n /**\n * Content Review actions\n */\n [VideoAction.Approve]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.hasPermissions(PermissionName.ManageVideoAccess),\n svgName: cvSvgLibrary.Check,\n order: 10,\n name: getPhrase('approve'),\n button: true,\n showButtonText: true,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.APPROVE_VIDEO,\n params: { objectId: ctx.video.id, objectTypeId: ctx.video.typeId }\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.Approve\n }\n }),\n\n [VideoAction.ManageAccess]: (ctx: GetActionsContext): VideoActionDefinition => {\n const hasCustomRestriction = RestrictionHelper.hasCustomRestriction(ctx.video);\n\n return {\n enabled: ctx.hasPermissions(PermissionName.ManageVideoAccess),\n svgName: cvSvgLibrary.Lock,\n order: 90,\n name: getPhrase('manageAccess'),\n button: hasCustomRestriction,\n showButtonText: hasCustomRestriction,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.MANAGE_ACCCESS,\n params: {\n objectId: ctx.video.id,\n objectTypeId: ctx.video.typeId\n }\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ManageAccess\n },\n group: 'manage'\n };\n },\n\n /**\n * Archived videos\n */\n [VideoAction.ViewResults]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = true;\n let order = 5;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = isMobile ? 5 : order;\n }\n\n return {\n enabled: ctx.hasPermissions(PermissionName.ViewAnalyticsProduct)\n && ctx.video.status !== CurationStatus.Draft,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.Chart,\n name: getPhrase('viewResults'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n href: AnalyticsRouteHelper.getObjectUrl(ctx.config, ctx.video),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewResults\n },\n group: 'none'\n };\n },\n\n /**\n * All other actions\n */\n [VideoAction.AddToPlaylist]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = !VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft;\n let order = 10;\n\n if (button && ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = isMobile ? 55 : order;\n }\n \n return {\n enabled: true,\n order,\n svgName: cvSvgLibrary.AddToPlaylists,\n name: getPhrase('addToPlaylist'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.ADD_TO_PLAYLIST,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Associate,\n descriptor: AssocDescriptor.Playlist,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'add'\n };\n },\n\n [VideoAction.Share]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = true;\n let order = 20;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = isMobile ? 5 : order;\n }\n\n return {\n enabled: !VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft,\n order,\n svgName: cvSvgLibrary.Share2,\n name: getPhrase('share'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [ctx.video.id],\n params: { entityType: ctx.video.type }\n },\n analyticsOptions: {\n actionType: UserAction.Share,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V3\n },\n group: 'none'\n };\n },\n\n [VideoAction.CreateClip]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.isPlugin,\n types: [MasterType.Video],\n order: 30,\n svgName: cvSvgLibrary.Clip,\n name: getPhrase('createClip'),\n button: false,\n appLink: { application: AppChannels.CLIPS, action: Actions.Clips.CREATE_CLIP, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Clip,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'create'\n }),\n\n [VideoAction.CreateInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = false;\n let order = 40;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isIpad = ctx.breakpoints.xs || ctx.breakpoints.sm || ctx.breakpoints.md;\n button = !isIpad;\n order = isIpad ? order : -10;\n }\n\n return {\n enabled: !ctx.isPlugin,\n types: [ MasterType.Video, MasterType.Clip ],\n order,\n svgName: cvSvgLibrary.CreateInteractive,\n name: getPhrase('createInteractive'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: VideoHelper.isVideo(ctx.video) ?\n Actions.Interactives.NEW_INTERACTIVE :\n Actions.Interactives.NEW_CLIP_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Interactive,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'create'\n };\n },\n\n [VideoAction.AddToMyVideos]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: VideoHelper.isVideo(ctx.video) &&\n !!ctx.video.libraries?.data?.find(library => library.type === 'exchange'),\n types: [MasterType.Video],\n order: 50,\n svgName: cvSvgLibrary.AddVideo,\n name: getPhrase('addMyVideos'),\n button: false,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.ADD_VIDEO,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.WorkspaceAdd,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'add'\n }),\n\n [VideoAction.AddToLibrary]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience) &&\n ctx.video._canAddToLibrary?.value &&\n ctx.requestLibraries?.length &&\n (!VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft),\n order: 60,\n svgName: cvSvgLibrary.Library,\n name: getPhrase('addToLibrary'),\n button: false,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.ADD_TO_LIBRARY,\n args: [ ctx.video.id, ctx.video.typeId ]\n },\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'add'\n }),\n\n [VideoAction.EditVideo]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [MasterType.Video],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editVideo'),\n button: false,\n href: UrlHelper.urlBuilder(\n UrlHelper.safeUrlConcat(ctx.config.cloudEditorUrl, `video/${ctx.video.id}`),\n { product: ProductId.Primary }\n ),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.EditVideo\n },\n group: 'edit'\n }),\n\n [VideoAction.EditClip]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [MasterType.Clip],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editClip'),\n button: false,\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.EDIT_CLIP,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n }),\n\n [VideoAction.EditDetails]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [ MasterType.Video, MasterType.Clip ],\n order: 80,\n svgName: cvSvgLibrary.Edit,\n name: getPhrase('editDetails'),\n button: false,\n appLink: VideoHelper.isVideo(ctx.video) ?\n { application: AppChannels.VIDEOS, action: Actions.Videos.EDIT_VIDEO, args: [ctx.video.id]} :\n { application: AppChannels.CLIPS, action: Actions.Clips.EDIT_CLIP_DETAILS, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n }),\n\n [VideoAction.ViewOriginalVideo]: (ctx: GetActionsContext): VideoActionDefinition => {\n let appLink: Core.AppLink = null;\n\n if (VideoHelper.isInteractive(ctx.video) && ctx.video._parentClip?.id) {\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ ctx.video._parentClip.id, TextHelper.slugify(ctx.video._parentClip.name) ]\n };\n }\n \n if (!VideoHelper.isVideo(ctx.video) && ctx.video._parentVideo?.id) {\n appLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ ctx.video._parentVideo.id, TextHelper.slugify(ctx.video._parentVideo.name) ]\n };\n }\n \n return {\n enabled: !VideoHelper.isVideo(ctx.video) &&\n VideoHelper.canViewOriginalVideo(ctx.video) &&\n !!appLink,\n types: [ MasterType.Clip, MasterType.Interactive ],\n order: 100,\n svgName: cvSvgLibrary.Video,\n name: getPhrase('viewOriginalVideo'),\n button: false,\n appLink,\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewOriginalVideo\n },\n group: 'manage'\n };\n },\n\n [VideoAction.ViewUsage]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.hasPermissions(PermissionName.ViewAnalyticsProduct) &&\n (ctx.hasPermissions(PermissionName.ViewCustomerAnalytics) || ctx.video._canUpdate?.value),\n types: [ MasterType.Clip, MasterType.Video ],\n order: 110,\n svgName: cvSvgLibrary.Chart,\n name: getPhrase('viewUsage'),\n button: false,\n href: AnalyticsRouteHelper.getObjectUrl(ctx.config, ctx.video),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.ViewUsage\n },\n group: 'manage'\n }),\n\n [VideoAction.ViewCurriculumLinks]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience) &&\n VideoHelper.isVideo(ctx.video) &&\n ctx.video._hasCurriculumLinks,\n types: [MasterType.Video],\n order: 120,\n svgName: cvSvgLibrary.Tag,\n name: getPhrase('viewCurriculumLinks'),\n button: false,\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.VIEW_CURRICULUM_LINKS, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.ViewCurriculumLinks\n },\n group: 'manage'\n }),\n\n [VideoAction.Download]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: VideoHelper.isVideo(ctx.video) && ctx.video._canDownload?.value,\n types: [MasterType.Video],\n order: 130,\n svgName: cvSvgLibrary.Download,\n name: getPhrase('download'),\n button: false,\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.DOWNLOAD_VIDEO, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Download,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage'\n }),\n\n [VideoAction.OpenInCurationStudio]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.isUserCurator,\n order: 140,\n svgName: cvSvgLibrary.NewWindow,\n name: getPhrase('openInCurationStudio'),\n button: false,\n href: getOpenInCurationStudioLink(ctx.config.curatorUrl, ctx.video.typeId, ctx.video.id),\n openInNewTab: true,\n group: 'administrative'\n }),\n\n [VideoAction.Delete]: (ctx: GetActionsContext): VideoActionDefinition => {\n let appLink: Core.AppLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_VIDEO,\n params: { ids: [ctx.video.id]}\n };\n \n if (VideoHelper.isClip(ctx.video)) {\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.DELETE_CLIP,\n args: [ctx.video.id]\n };\n } else if (VideoHelper.isInteractive(ctx.video)) {\n appLink = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.DELETE_INTERACTIVE,\n args: [ctx.video.id]\n };\n }\n\n return {\n enabled: ctx.video._canUpdate?.value,\n order: 150,\n svgName: cvSvgLibrary.Delete,\n name: getPhrase('delete'),\n variant: 'danger',\n button: false,\n appLink,\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'delete'\n };\n },\n\n /**\n * Interactive only\n */\n [VideoAction.PreviewQuestions]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.location === VideoActionsLocation.VideoItem,\n types: [MasterType.Interactive],\n order: 83,\n svgName: cvSvgLibrary.Search,\n name: getPhrase('previewInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.PreviewInteractiveVideo\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.PrintInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: true,\n types: [MasterType.Interactive],\n order: 85,\n svgName: cvSvgLibrary.Print,\n name: getPhrase('printAsWorksheet'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PRINT_QUESTIONS,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Print,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.CopyInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience),\n types: [MasterType.Interactive],\n order: 87,\n svgName: cvSvgLibrary.Copy,\n name: getPhrase('copyInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.COPY_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Copy,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.EditInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = ctx.video.status === CurationStatus.Draft;\n let order = 70;\n\n if (ctx.location === VideoActionsLocation.PlayPage && ctx.breakpoints.xs) {\n button = false;\n order = -10;\n }\n\n return {\n enabled: !ctx.isPlugin && ctx.video.status === CurationStatus.Draft,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editInteractive'),\n tooltip: ctx.location !== VideoActionsLocation.PlayPage\n ? getPhrase('editInteractiveTooltip')\n : '',\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n };\n },\n\n [VideoAction.UnpublishInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value && ctx.video.status !== CurationStatus.Draft,\n types: [MasterType.Interactive],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.UNPUBLISH_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Publish,\n descriptor: PublishDescriptor.Unpublish,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n })\n};","import { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { VideoActionsOptions } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoAction } from 'libs/shared/enums/VideoActions';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { Config, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { usePluginHelper } from '../use-plugin-helper/usePluginHelper';\n\nimport { GetActionsContext, VideoActionsDefinitions } from './VideoActionDefinitions';\n\nexport enum VideoActionsLocation {\n PlayPage,\n VideoItem\n}\n\nconst RESTRICTED_ACTIONS = [\n VideoAction.Approve,\n VideoAction.ManageAccess\n];\n\nconst ARCHIVED_ACTIONS = [\n VideoAction.ViewResults\n];\n\nconst ACTIONS = [\n VideoAction.AddToPlaylist,\n VideoAction.Share,\n VideoAction.EditInteractive,\n VideoAction.ViewResults\n];\n\nconst LAZY_ACTIONS = [\n VideoAction.ManageAccess,\n VideoAction.AddToLibrary,\n VideoAction.ViewCurriculumLinks,\n VideoAction.ViewUsage,\n VideoAction.CreateClip,\n VideoAction.CreateInteractive,\n VideoAction.EditVideo,\n VideoAction.EditClip,\n VideoAction.EditDetails,\n VideoAction.Delete,\n VideoAction.Download,\n VideoAction.OpenInCurationStudio,\n VideoAction.ViewOriginalVideo,\n VideoAction.CopyInteractive,\n VideoAction.PrintInteractive,\n VideoAction.UnpublishInteractive,\n VideoAction.PreviewQuestions\n];\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nfunction mapActionsLocationToAnalyticsLocation(actionsLocation: VideoActionsLocation) {\n switch (actionsLocation) {\n case VideoActionsLocation.PlayPage: return LocationContext.PlayPage;\n case VideoActionsLocation.VideoItem: return LocationContext.VideoListItem;\n }\n}\n\nfunction getActionOptions(actions: VideoAction[], ctx: GetActionsContext): ActionOptions[] {\n return actions.map(action => {\n const definition = VideoActionsDefinitions[action](ctx);\n\n // Action does not apply to this video type\n if (definition.types && !definition.types.some(type => type === ctx.video.typeId))\n return null;\n \n // Action is disabled\n if (!definition.enabled)\n return null;\n\n const variant = definition.variant || 'outline-dark';\n let className = '';\n\n if (definition.showButtonText)\n className = `btn btn-${variant} me-2`;\n else if (definition.variant)\n className = `text-${variant}`;\n\n const showLabel = (!definition.button || definition.showButtonText);\n\n return {\n order: definition.order,\n label: showLabel ? definition.name : null,\n appLink: definition.appLink,\n href: definition.href,\n onClick: definition.onClick,\n svgName: definition.svgName,\n className,\n button: definition.button,\n tooltip: definition.tooltip ?? (!showLabel ? definition.name : null),\n analyticsData: definition.analyticsData || ctx.analyticsData,\n analyticsOptions: definition.analyticsOptions ? {\n ...(ctx.analyticsOptions ?? {}),\n ...(definition.analyticsOptions ?? {})\n } : null,\n openInNewTab: definition.openInNewTab,\n group: definition.group\n };\n }).filter(a => !!a);\n}\n\ninterface UseVideoActionsOptions {\n location: VideoActionsLocation;\n shareId?: string;\n}\n\nexport function useVideoActions(options: UseVideoActionsOptions) {\n const breakpoints = useBreakpoints();\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n const { isUserCurator } = useCurationStudio();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ViewLibraries) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage,\n shareId: options.shareId\n });\n\n function getVideoActions(video: VideoTypes, opts: VideoActionsOptions = {}) {\n if (!hasLocalPermissions(LocalPermissionName.UseVideoActions))\n return [];\n\n const { canConsume } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume)\n return [];\n\n const context: GetActionsContext = {\n video,\n breakpoints,\n location: options.location,\n hasPermissions,\n requestLibraries: requestLibraries.data,\n config: config.data,\n isPlugin,\n isUserCurator,\n analyticsData: VideoHelper.getAnalyticsData(video, opts.analyticsData),\n analyticsOptions: {\n ...opts.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video),\n location: mapActionsLocationToAnalyticsLocation(options.location)\n }\n };\n\n if (VideoHelper.isVideoTypeArchived(video))\n return getActionOptions(ARCHIVED_ACTIONS, context);\n\n if (RestrictionHelper.hasCustomRestriction(video))\n return getActionOptions(RESTRICTED_ACTIONS, context);\n\n if (!isHydrated(video))\n return [ ...getActionOptions(ACTIONS, context), FETCH_MORE_ACTION_OPTION ];\n\n return getActionOptions([ ...ACTIONS, ...LAZY_ACTIONS ], context);\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}"],"names":["getPhrase","baseUrl","objectType","id","presentationId","baseManageUrl","baseExchangeUrl","href","getOpenInCurationStudioLabel","useCurationStudio","currentUser","userGroups","data","config","curatorGroups","Curator","openInCurationStudioLabel","isUserCurator","some","group","find","userGroup","name","getOpenInCurationStudioLink","curatorUrl","AnalyticsRouteHelper","getObjectUrl","object","analyticsWebUrl","relativeUrl","typeId","VideoAction","VideoHydrationType","VideoActionsLocation","LanguageService","VideoActionsDefinitions","Approve","ctx","enabled","hasPermissions","PermissionName","svgName","order","button","showButtonText","appLink","application","action","params","objectId","video","objectTypeId","analyticsOptions","actionType","descriptor","ManageAccess","hasCustomRestriction","RestrictionHelper","ViewResults","location","PlayPage","isMobile","breakpoints","xs","sm","status","CurationStatus","types","MasterType","openInNewTab","AddToPlaylist","VideoHelper","args","workflowPhase","Share","entityType","type","eventVersion","CreateClip","isPlugin","entity","analyticsData","CreateInteractive","isIpad","md","AddToMyVideos","libraries","library","AddToLibrary","_canAddToLibrary","value","requestLibraries","length","EditVideo","_canUpdate","UrlHelper","cloudEditorUrl","product","ProductId","EditClip","EditDetails","ViewOriginalVideo","_parentClip","TextHelper","_parentVideo","ViewUsage","ViewCurriculumLinks","_hasCurriculumLinks","Download","_canDownload","OpenInCurationStudio","Delete","ids","variant","PreviewQuestions","VideoItem","PrintInteractive","CopyInteractive","EditInteractive","tooltip","UnpublishInteractive","RESTRICTED_ACTIONS","ARCHIVED_ACTIONS","ACTIONS","LAZY_ACTIONS","FETCH_MORE_ACTION_OPTION","lazyPlaceholder","mapActionsLocationToAnalyticsLocation","actionsLocation","getActionOptions","actions","map","definition","className","showLabel","label","onClick","filter","a","useVideoActions","options","useBreakpoints","usePermissions","hasLocalPermissions","usePluginHelper","ConfigRequests","LibraryRequests","getResponse","fetch","getRequest","shareId","hydrate","request","key","shouldFetch","isHydrated","hasCompleted","useVideoHydration","getVideoActions","opts","canConsume","context","fetchMoreActions"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/671-5571f33165-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/useCurationStudio.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRouteHelper.ts","file:///app/packages/libs/shared/src/enums/VideoActions.ts","file:///app/packages/libs/shared/src/hooks/useVideohydration.ts","file:///app/packages/projects/lite/src/shared/hooks/use-video-actions/VideoActionDefinitions.ts","file:///app/packages/projects/lite/src/shared/hooks/use-video-actions/useVideoActions.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\n\nexport const AnalyticsRouteHelper = {\n getObjectUrl(config: Config, object: BaseObject): string {\n const baseUrl = config.analyticsWebUrl;\n\n if (!baseUrl)\n return;\n\n let relativeUrl = '';\n\n switch (object.typeId) {\n case MasterType.Video:\n relativeUrl = `/videos/${object.id}/overview`;\n break;\n\n case MasterType.Clip:\n relativeUrl = `/clips/${object.id}/overview`;\n break;\n\n case MasterType.Interactive:\n relativeUrl = `/interactives/${object.id}/overview`;\n break;\n }\n\n if (!relativeUrl)\n return;\n\n return UrlHelper.safeUrlConcat(baseUrl, relativeUrl);\n }\n};","export enum VideoAction {\n AddToPlaylist,\n Share,\n EditVideo,\n EditDetails,\n Download,\n Delete,\n ViewCurriculumLinks,\n CreateClip,\n CreateInteractive,\n ViewUsage,\n AddToLibrary,\n Approve,\n ManageAccess,\n OpenInCurationStudio,\n AddToMyVideos,\n ViewOriginalVideo,\n EditClip,\n EditInteractive,\n PreviewQuestions,\n ViewResults,\n CopyInteractive,\n PrintInteractive,\n UnpublishInteractive,\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}","import { ButtonProps } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsOptions, AssocDescriptor, EntityType, EventVersion, HashObject, PublishDescriptor, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { VideoAction } from 'libs/shared/enums/VideoActions';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { getOpenInCurationStudioLink } from 'libs/shared/hooks/useCurationStudio';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { Config, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\n\nconst namespace = 'shared.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype ActionGroup = 'create' | 'add' | 'edit' | 'manage-interactives' | 'manage' | 'administrative' | 'delete' | 'none';\n\ninterface VideoActionDefinition {\n order: number;\n svgName: string;\n name: string;\n tooltip?: string;\n button: boolean;\n variant?: ButtonProps['variant'];\n appLink?: Core.AppLink;\n analyticsOptions?: AnalyticsOptions;\n enabled: boolean;\n types?: (MasterType.Video | MasterType.Clip | MasterType.Interactive)[];\n openInNewTab?: boolean;\n onClick?: () => void;\n href?: string;\n analyticsData?: HashObject;\n group?: ActionGroup;\n showButtonText?: boolean;\n}\n\nexport interface GetActionsContext {\n video: VideoTypes;\n location: VideoActionsLocation;\n breakpoints: Breakpoints;\n hasPermissions: HasPermissionsFunc;\n requestLibraries: Library[];\n config: Config;\n isPlugin: boolean;\n isUserCurator: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport const VideoActionsDefinitions: Record<VideoAction, (options: GetActionsContext) => VideoActionDefinition> = {\n /**\n * Content Review actions\n */\n [VideoAction.Approve]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.hasPermissions(PermissionName.ManageVideoAccess),\n svgName: cvSvgLibrary.Check,\n order: 10,\n name: getPhrase('approve'),\n button: true,\n showButtonText: true,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.APPROVE_VIDEO,\n params: { objectId: ctx.video.id, objectTypeId: ctx.video.typeId }\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.Approve\n }\n }),\n\n [VideoAction.ManageAccess]: (ctx: GetActionsContext): VideoActionDefinition => {\n const hasCustomRestriction = RestrictionHelper.hasCustomRestriction(ctx.video);\n\n return {\n enabled: ctx.hasPermissions(PermissionName.ManageVideoAccess),\n svgName: cvSvgLibrary.Lock,\n order: 90,\n name: getPhrase('manageAccess'),\n button: hasCustomRestriction,\n showButtonText: hasCustomRestriction,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.MANAGE_ACCCESS,\n params: {\n objectId: ctx.video.id,\n objectTypeId: ctx.video.typeId\n }\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ManageAccess\n },\n group: 'manage'\n };\n },\n\n /**\n * Archived videos\n */\n [VideoAction.ViewResults]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = true;\n let order = 5;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = isMobile ? 5 : order;\n }\n\n return {\n enabled: ctx.hasPermissions(PermissionName.ViewAnalyticsProduct)\n && ctx.video.status !== CurationStatus.Draft,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.Chart,\n name: getPhrase('viewResults'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n href: AnalyticsRouteHelper.getObjectUrl(ctx.config, ctx.video),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewResults\n },\n group: 'none'\n };\n },\n\n /**\n * All other actions\n */\n [VideoAction.AddToPlaylist]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = !VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft;\n let order = 10;\n\n if (button && ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = isMobile ? 55 : order;\n }\n \n return {\n enabled: true,\n order,\n svgName: cvSvgLibrary.AddToPlaylists,\n name: getPhrase('addToPlaylist'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.ADD_TO_PLAYLIST,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Associate,\n descriptor: AssocDescriptor.Playlist,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'add'\n };\n },\n\n [VideoAction.Share]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = true;\n let order = 20;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = isMobile ? 5 : order;\n }\n\n return {\n enabled: !VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft,\n order,\n svgName: cvSvgLibrary.Share2,\n name: getPhrase('share'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [ctx.video.id],\n params: { entityType: ctx.video.type }\n },\n analyticsOptions: {\n actionType: UserAction.Share,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V3\n },\n group: 'none'\n };\n },\n\n [VideoAction.CreateClip]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.isPlugin,\n types: [MasterType.Video],\n order: 30,\n svgName: cvSvgLibrary.Clip,\n name: getPhrase('createClip'),\n button: false,\n appLink: { application: AppChannels.CLIPS, action: Actions.Clips.CREATE_CLIP, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Clip,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'create'\n }),\n\n [VideoAction.CreateInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = false;\n let order = 40;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isIpad = ctx.breakpoints.xs || ctx.breakpoints.sm || ctx.breakpoints.md;\n button = !isIpad;\n order = isIpad ? order : -10;\n }\n\n return {\n enabled: !ctx.isPlugin,\n types: [ MasterType.Video, MasterType.Clip ],\n order,\n svgName: cvSvgLibrary.CreateInteractive,\n name: getPhrase('createInteractive'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: VideoHelper.isVideo(ctx.video) ?\n Actions.Interactives.NEW_INTERACTIVE :\n Actions.Interactives.NEW_CLIP_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Interactive,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'create'\n };\n },\n\n [VideoAction.AddToMyVideos]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: VideoHelper.isVideo(ctx.video) &&\n !!ctx.video.libraries?.data?.find(library => library.type === 'exchange'),\n types: [MasterType.Video],\n order: 50,\n svgName: cvSvgLibrary.AddVideo,\n name: getPhrase('addMyVideos'),\n button: false,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.ADD_VIDEO,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.WorkspaceAdd,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'add'\n }),\n\n [VideoAction.AddToLibrary]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience) &&\n ctx.video._canAddToLibrary?.value &&\n ctx.requestLibraries?.length &&\n (!VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft),\n order: 60,\n svgName: cvSvgLibrary.Library,\n name: getPhrase('addToLibrary'),\n button: false,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.ADD_TO_LIBRARY,\n args: [ ctx.video.id, ctx.video.typeId ]\n },\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'add'\n }),\n\n [VideoAction.EditVideo]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [MasterType.Video],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editVideo'),\n button: false,\n href: UrlHelper.urlBuilder(\n UrlHelper.safeUrlConcat(ctx.config.cloudEditorUrl, `video/${ctx.video.id}`),\n { product: ProductId.Primary }\n ),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.EditVideo\n },\n group: 'edit'\n }),\n\n [VideoAction.EditClip]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [MasterType.Clip],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editClip'),\n button: false,\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.EDIT_CLIP,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n }),\n\n [VideoAction.EditDetails]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [ MasterType.Video, MasterType.Clip ],\n order: 80,\n svgName: cvSvgLibrary.Edit,\n name: getPhrase('editDetails'),\n button: false,\n appLink: VideoHelper.isVideo(ctx.video) ?\n { application: AppChannels.VIDEOS, action: Actions.Videos.EDIT_VIDEO, args: [ctx.video.id]} :\n { application: AppChannels.CLIPS, action: Actions.Clips.EDIT_CLIP_DETAILS, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n }),\n\n [VideoAction.ViewOriginalVideo]: (ctx: GetActionsContext): VideoActionDefinition => {\n let appLink: Core.AppLink = null;\n\n if (VideoHelper.isInteractive(ctx.video) && ctx.video._parentClip?.id) {\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ ctx.video._parentClip.id, TextHelper.slugify(ctx.video._parentClip.name) ]\n };\n }\n \n if (!VideoHelper.isVideo(ctx.video) && ctx.video._parentVideo?.id) {\n appLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ ctx.video._parentVideo.id, TextHelper.slugify(ctx.video._parentVideo.name) ]\n };\n }\n \n return {\n enabled: !VideoHelper.isVideo(ctx.video) &&\n VideoHelper.canViewOriginalVideo(ctx.video) &&\n !!appLink,\n types: [ MasterType.Clip, MasterType.Interactive ],\n order: 100,\n svgName: cvSvgLibrary.Video,\n name: getPhrase('viewOriginalVideo'),\n button: false,\n appLink,\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewOriginalVideo\n },\n group: 'manage'\n };\n },\n\n [VideoAction.ViewUsage]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.hasPermissions(PermissionName.ViewAnalyticsProduct) &&\n (ctx.hasPermissions(PermissionName.ViewCustomerAnalytics) || ctx.video._canUpdate?.value),\n types: [ MasterType.Clip, MasterType.Video ],\n order: 110,\n svgName: cvSvgLibrary.Chart,\n name: getPhrase('viewUsage'),\n button: false,\n href: AnalyticsRouteHelper.getObjectUrl(ctx.config, ctx.video),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.ViewUsage\n },\n group: 'manage'\n }),\n\n [VideoAction.ViewCurriculumLinks]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience) &&\n VideoHelper.isVideo(ctx.video) &&\n ctx.video._hasCurriculumLinks,\n types: [MasterType.Video],\n order: 120,\n svgName: cvSvgLibrary.Tag,\n name: getPhrase('viewCurriculumLinks'),\n button: false,\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.VIEW_CURRICULUM_LINKS, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.ViewCurriculumLinks\n },\n group: 'manage'\n }),\n\n [VideoAction.Download]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: VideoHelper.isVideo(ctx.video) && ctx.video._canDownload?.value,\n types: [MasterType.Video],\n order: 130,\n svgName: cvSvgLibrary.Download,\n name: getPhrase('download'),\n button: false,\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.DOWNLOAD_VIDEO, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Download,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage'\n }),\n\n [VideoAction.OpenInCurationStudio]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.isUserCurator,\n order: 140,\n svgName: cvSvgLibrary.NewWindow,\n name: getPhrase('openInCurationStudio'),\n button: false,\n href: getOpenInCurationStudioLink(ctx.config.curatorUrl, ctx.video.typeId, ctx.video.id),\n openInNewTab: true,\n group: 'administrative'\n }),\n\n [VideoAction.Delete]: (ctx: GetActionsContext): VideoActionDefinition => {\n let appLink: Core.AppLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_VIDEO,\n params: { ids: [ctx.video.id]}\n };\n \n if (VideoHelper.isClip(ctx.video)) {\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.DELETE_CLIP,\n args: [ctx.video.id]\n };\n } else if (VideoHelper.isInteractive(ctx.video)) {\n appLink = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.DELETE_INTERACTIVE,\n args: [ctx.video.id]\n };\n }\n\n return {\n enabled: ctx.video._canUpdate?.value,\n order: 150,\n svgName: cvSvgLibrary.Delete,\n name: getPhrase('delete'),\n variant: 'danger',\n button: false,\n appLink,\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'delete'\n };\n },\n\n /**\n * Interactive only\n */\n [VideoAction.PreviewQuestions]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.location === VideoActionsLocation.VideoItem,\n types: [MasterType.Interactive],\n order: 83,\n svgName: cvSvgLibrary.Search,\n name: getPhrase('previewInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.PreviewInteractiveVideo\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.PrintInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: true,\n types: [MasterType.Interactive],\n order: 85,\n svgName: cvSvgLibrary.Print,\n name: getPhrase('printAsWorksheet'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PRINT_QUESTIONS,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Print,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.CopyInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience),\n types: [MasterType.Interactive],\n order: 87,\n svgName: cvSvgLibrary.Copy,\n name: getPhrase('copyInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.COPY_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Copy,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.EditInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = ctx.video.status === CurationStatus.Draft;\n let order = 70;\n\n if (ctx.location === VideoActionsLocation.PlayPage && ctx.breakpoints.xs) {\n button = false;\n order = -10;\n }\n\n return {\n enabled: !ctx.isPlugin && ctx.video.status === CurationStatus.Draft,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editInteractive'),\n tooltip: ctx.location !== VideoActionsLocation.PlayPage\n ? getPhrase('editInteractiveTooltip')\n : '',\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n };\n },\n\n [VideoAction.UnpublishInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value && ctx.video.status !== CurationStatus.Draft,\n types: [MasterType.Interactive],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.UNPUBLISH_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Publish,\n descriptor: PublishDescriptor.Unpublish,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n })\n};","import { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { VideoActionsOptions } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoAction } from 'libs/shared/enums/VideoActions';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { Config, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { usePluginHelper } from '../use-plugin-helper/usePluginHelper';\n\nimport { GetActionsContext, VideoActionsDefinitions } from './VideoActionDefinitions';\n\nexport enum VideoActionsLocation {\n PlayPage,\n VideoItem\n}\n\nconst RESTRICTED_ACTIONS = [\n VideoAction.Approve,\n VideoAction.ManageAccess\n];\n\nconst ARCHIVED_ACTIONS = [\n VideoAction.ViewResults\n];\n\nconst ACTIONS = [\n VideoAction.AddToPlaylist,\n VideoAction.Share,\n VideoAction.EditInteractive,\n VideoAction.ViewResults\n];\n\nconst LAZY_ACTIONS = [\n VideoAction.ManageAccess,\n VideoAction.AddToLibrary,\n VideoAction.ViewCurriculumLinks,\n VideoAction.ViewUsage,\n VideoAction.CreateClip,\n VideoAction.CreateInteractive,\n VideoAction.EditVideo,\n VideoAction.EditClip,\n VideoAction.EditDetails,\n VideoAction.Delete,\n VideoAction.Download,\n VideoAction.OpenInCurationStudio,\n VideoAction.ViewOriginalVideo,\n VideoAction.CopyInteractive,\n VideoAction.PrintInteractive,\n VideoAction.UnpublishInteractive,\n VideoAction.PreviewQuestions\n];\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nfunction mapActionsLocationToAnalyticsLocation(actionsLocation: VideoActionsLocation) {\n switch (actionsLocation) {\n case VideoActionsLocation.PlayPage: return LocationContext.PlayPage;\n case VideoActionsLocation.VideoItem: return LocationContext.VideoListItem;\n }\n}\n\nfunction getActionOptions(actions: VideoAction[], ctx: GetActionsContext): ActionOptions[] {\n return actions.map(action => {\n const definition = VideoActionsDefinitions[action](ctx);\n\n // Action does not apply to this video type\n if (definition.types && !definition.types.some(type => type === ctx.video.typeId))\n return null;\n \n // Action is disabled\n if (!definition.enabled)\n return null;\n\n const variant = definition.variant || 'outline-dark';\n let className = '';\n\n if (definition.showButtonText)\n className = `btn btn-${variant} me-2`;\n else if (definition.variant)\n className = `text-${variant}`;\n\n const showLabel = (!definition.button || definition.showButtonText);\n\n return {\n order: definition.order,\n label: showLabel ? definition.name : null,\n appLink: definition.appLink,\n href: definition.href,\n onClick: definition.onClick,\n svgName: definition.svgName,\n className,\n button: definition.button,\n tooltip: definition.tooltip ?? (!showLabel ? definition.name : null),\n analyticsData: definition.analyticsData || ctx.analyticsData,\n analyticsOptions: definition.analyticsOptions ? {\n ...(ctx.analyticsOptions ?? {}),\n ...(definition.analyticsOptions ?? {})\n } : null,\n openInNewTab: definition.openInNewTab,\n group: definition.group\n };\n }).filter(a => !!a);\n}\n\ninterface UseVideoActionsOptions {\n location: VideoActionsLocation;\n shareId?: string;\n}\n\nexport function useVideoActions(options: UseVideoActionsOptions) {\n const breakpoints = useBreakpoints();\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n const { isUserCurator } = useCurationStudio();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ViewLibraries) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage,\n shareId: options.shareId\n });\n\n function getVideoActions(video: VideoTypes, opts: VideoActionsOptions = {}) {\n if (!hasLocalPermissions(LocalPermissionName.UseVideoActions))\n return [];\n\n const { canConsume } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume)\n return [];\n\n const context: GetActionsContext = {\n video,\n breakpoints,\n location: options.location,\n hasPermissions,\n requestLibraries: requestLibraries.data,\n config: config.data,\n isPlugin,\n isUserCurator,\n analyticsData: VideoHelper.getAnalyticsData(video, opts.analyticsData),\n analyticsOptions: {\n ...opts.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video),\n location: mapActionsLocationToAnalyticsLocation(options.location)\n }\n };\n\n if (VideoHelper.isVideoTypeArchived(video))\n return getActionOptions(ARCHIVED_ACTIONS, context);\n\n if (RestrictionHelper.hasCustomRestriction(video))\n return getActionOptions(RESTRICTED_ACTIONS, context);\n\n if (!isHydrated(video))\n return [ ...getActionOptions(ACTIONS, context), FETCH_MORE_ACTION_OPTION ];\n\n return getActionOptions([ ...ACTIONS, ...LAZY_ACTIONS ], context);\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}"],"names":["getPhrase","baseUrl","objectType","id","presentationId","baseManageUrl","baseExchangeUrl","href","getOpenInCurationStudioLabel","useCurationStudio","currentUser","userGroups","data","config","curatorGroups","Curator","openInCurationStudioLabel","isUserCurator","some","group","find","userGroup","name","getOpenInCurationStudioLink","curatorUrl","AnalyticsRouteHelper","getObjectUrl","object","analyticsWebUrl","relativeUrl","typeId","VideoAction","VideoHydrationType","VideoActionsLocation","LanguageService","VideoActionsDefinitions","Approve","ctx","enabled","hasPermissions","PermissionName","svgName","order","button","showButtonText","appLink","application","action","params","objectId","video","objectTypeId","analyticsOptions","actionType","descriptor","ManageAccess","hasCustomRestriction","RestrictionHelper","ViewResults","location","PlayPage","isMobile","breakpoints","xs","sm","status","CurationStatus","types","MasterType","openInNewTab","AddToPlaylist","VideoHelper","args","workflowPhase","Share","entityType","type","eventVersion","CreateClip","isPlugin","entity","analyticsData","CreateInteractive","isIpad","md","AddToMyVideos","libraries","library","AddToLibrary","_canAddToLibrary","value","requestLibraries","length","EditVideo","_canUpdate","UrlHelper","cloudEditorUrl","product","ProductId","EditClip","EditDetails","ViewOriginalVideo","_parentClip","TextHelper","_parentVideo","ViewUsage","ViewCurriculumLinks","_hasCurriculumLinks","Download","_canDownload","OpenInCurationStudio","Delete","ids","variant","PreviewQuestions","VideoItem","PrintInteractive","CopyInteractive","EditInteractive","tooltip","UnpublishInteractive","RESTRICTED_ACTIONS","ARCHIVED_ACTIONS","ACTIONS","LAZY_ACTIONS","FETCH_MORE_ACTION_OPTION","lazyPlaceholder","mapActionsLocationToAnalyticsLocation","actionsLocation","getActionOptions","actions","map","definition","className","showLabel","label","onClick","filter","a","useVideoActions","options","useBreakpoints","usePermissions","hasLocalPermissions","usePluginHelper","ConfigRequests","LibraryRequests","getResponse","fetch","getRequest","shareId","hydrate","request","key","shouldFetch","isHydrated","hasCompleted","useVideoHydration","getVideoActions","opts","canConsume","context","fetchMoreActions"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7167],{49935:(e,t,n)=>{n.d(t,{Oo:()=>m,b2:()=>d});var a=n(32735),r=n(36848),c=n(86764),o=n(3747),l=n(5859),i=n(35223),s=n(83914),u=function(e){var t=e.breadcrumb,n=t.name,c=t.appLink,o=t.active,l=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(o?" active":"")},o?a.createElement("strong",null,n):a.createElement(r.F,{appLink:c},l&&a.createElement(s.x,{svgName:i.vn.ChevronLeft,size:s.S.Small}),a.createElement("span",{className:l?"ms-2":""},n)))},m=function(e){var t=e.breadcrumbs,n=(0,o.a)(c.r.XS),r=null==t?void 0:t.length;return!r||n&&r<2?a.createElement(a.Fragment,null):n?a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(u,{breadcrumb:t[r-2],withBackIcon:!0}))):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return a.createElement(u,{key:t,breadcrumb:e})}))))},d=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,o.a)(c.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},23201:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(32735),r=n(92802),c=n(2102),o=n(83345),l=n(33936),i="shared.formButtons";function s(e){var t=(0,r.u6)(),n=(0,l.l)(t);return a.createElement(c.m,{variant:e.variant||"primary",type:"submit",disabled:!n,size:e.size,className:e.className?e.className:"",showSpinner:t.isSubmitting},e.submitText?a.createElement(a.Fragment,null,e.submitText):a.createElement(o.x,{namespace:i,phrase:e.isNew?"create":"save"}))}},38365:(e,t,n)=>{n.d(t,{n:()=>S,W:()=>k});var a=n(32735),r=n(80247),c=n(80130),o=n(92802),l=n(91967),i=n(1048),s=n(36848),u=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function m(e){var t=e.label,n=e.checkboxLabelClassName,r=e.checkboxLabelFontWeight,o=e.className,l=u(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return a.createElement(c.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check ".concat(o||"")},a.createElement(S,Object.assign({className:"form-check-input"},l)),a.createElement(c.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===r?"fw-normal":""," \n ").concat(n),htmlFor:l.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&a.createElement(a.Fragment,null,a.createElement("span",null," "),a.createElement(s.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var d=n(83914),p=n(83345),f=n(73814),y=n(35223);function b(e){var t=(0,o.u6)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const v={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var h=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},E="shared.formField";function S(e){var t,n,c=e.children,s=e.showLoadingSpinner,u=h(e,["children","showLoadingSpinner"]),m=(t=a.useState(e.type),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,c,o,l=[],i=!0,s=!1;try{if(c=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=c.call(n)).done)&&(l.push(a.value),l.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=m[0],f=m[1],b=l.q.isFunction(c)?function(e){return c(e)}:a.Children.count(c)?c:null;if("password"!==u.type)return s?a.createElement("div",{className:"position-relative"},a.createElement(o.gN,Object.assign({},i.t.omit(u,["formSize"])),b),a.createElement("div",{className:v.spinner},a.createElement(r.Z,{animation:"border",size:"sm"}))):a.createElement(o.gN,Object.assign({},i.t.omit(u,["formSize"])),b);var E="position-relative ".concat(v.passwordContainer);return u.className&&(E+=" ".concat(u.className)),u.disabled&&(E+=" ".concat(v.passwordContainerDisabled)),a.createElement("div",{className:E},a.createElement(o.gN,Object.assign({},i.t.omit(u,["formSize","type","className"]),{type:p,className:"".concat(v.passwordInput," border-0 w-100 h-100 outline-none rounded")}),b),"password"===u.type&&a.createElement(d.x,{svgName:"password"===p?y.vn.VisibleOn:y.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(v.revealPassword),onClick:function(){f("password"===p?"text":"password")}}))}function k(e){var t=e.label,n=e.className,r=e.showCharacterCounter,l=e.showRequiredStar,s=e.infoTooltip,u=e.infoTooltipPlacement,g=e.infoText,k=e.formSize,O=e.showOptionalLabel,w=h(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),N=(0,o.u6)(),T=N.errors,x=N.touched,I=function(){};if("checkbox"===w.type){var A=i.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(A.onChange=I),a.createElement(m,Object.assign({},A))}var j=Object.assign(Object.assign({},w),{className:f.w.getCustomFormControlClassName(T,x,w.name,k,n,"string"==typeof e.as?e.as:null)});return e.disabled&&(j.onChange=I),a.createElement(c.Z.Group,{className:"form-group"},!!t&&a.createElement(c.Z.Label,{htmlFor:w.id,className:"d-flex align-items-center"},t,l&&a.createElement("span",{className:"text-danger"},"*"),s&&a.createElement(d.x,{className:"svg-container text-secondary ".concat(v.infoTooltip),svgName:y.vn.Info,title:s,tooltipPlacement:u,tooltipSpanHack:!0}),O&&a.createElement("span",{className:"text-secondary"}," ",a.createElement(p.x,{namespace:E,phrase:"optional"})),!!r&&!!w.maxLength&&a.createElement("div",{className:"ms-auto"},a.createElement(b,{fieldName:w.name,limit:w.maxLength}))),a.createElement(S,Object.assign({},j)),!!g&&a.createElement(c.Z.Text,{className:"text-secondary"},g),a.createElement(o.Bc,{name:w.name},(function(e){return a.createElement(c.Z.Control.Feedback,{type:"invalid"},e)})))}S.defaultProps={autoComplete:"off"},k.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,n)=>{n.d(t,{b:()=>u,n:()=>s});var a=n(32735),r=n(92802),c=n(91967),o=n(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var i=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,s=e.initialValues,u=e.onSubmit,m=i(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=o.t.deepClone(e);return function e(n){Object.keys(t).forEach((function(a){t.hasOwnProperty(a)&&(o.t.isObject(n[a])?e(n[a]):null===t[a]&&delete t[a])}))}(t),t}(s)):s,p={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,a){var r=a.setSubmitting,c=a.resetForm,o=a.setFieldError,i=n&&e.validationSchema?e.validationSchema.cast(t):t;u(i,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&c(),n.errors)for(var a=0,i=Object.entries(n.errors);a<i.length;a++){var s=(e=i[a],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,c,o,l=[],i=!0,s=!1;try{if(c=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=c.call(n)).done)&&(l.push(a.value),l.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=s[0],m=s[1];o(u,m)}r(!1)}))},initialStatus:p}),c.q.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function u(){return(0,r.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},38502:(e,t,n)=>{n.d(t,{r:()=>s});var a=n(32735),r=n(49985),c=n(36848),o=n(18559),l=n(11607),i=n(87432);function s(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:""},a.createElement("ul",{className:"list-unstyled d-inline-block m-0 ".concat(i.Z.pillTabSelector)},e.tabs.map((function(e){return a.createElement("li",{className:"p-0 ".concat(e.active?"btn btn-dark":"btn btn-outline-dark"),key:e.name},e.appLink?a.createElement(c.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"cursor-pointer d-flex justify-content-center text-decoration-none text-reset px-2 ".concat(i.Z.pillItem)},e.name,"number"==typeof e.count&&a.createElement("div",{className:"ps-2"},a.createElement(o.C,{type:o.g.Count,data:e.count}))):a.createElement(l.L,{className:"".concat(i.Z.pillItem," d-flex justify-content-center p-2"),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},e.name,"number"==typeof e.count&&a.createElement("div",{className:"ps-2"},a.createElement(o.C,{type:o.g.Count,data:e.count}))))}))))}},31647:(e,t,n)=>{n.d(t,{E:()=>l});var a=n(32735),r=n(23481),c=n(38502),o="rostering.settingHeader";function l(e){var t,n,l=[{name:r.T.getPhrase(o,"syncJobs"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.syncJobs,active:"syncJobs"===e.active},{name:r.T.getPhrase(o,"settings"),appLink:null===(n=e.appLinks)||void 0===n?void 0:n.settings,active:"settings"===e.active}];return a.createElement("div",null,a.createElement(c.r,{tabs:l}))}},65654:(e,t,n)=>{n.d(t,{G:()=>i});var a=n(32735),r=n(23481),c=n(76177);const o={rightButton:"GcqRT"};var l=r.T.encloseNamespace("rostering.syncActionButtonGroup");function i(e){return a.createElement("div",{className:"btn-group px-2",role:"group"},a.createElement(c.u,{title:l("syncNowTooltip"),spanHack:!0,placement:"left",spanHackClassName:o.buttonBorder},a.createElement("button",{type:"button",className:"btn btn-outline-dark ".concat(o.leftButton),onClick:null==e?void 0:e.onSyncNow},l("syncNow"))))}},62394:(e,t,n)=>{n.d(t,{y:()=>o});var a=n(75896),r=n(110),c=new Date,o={parseUTCToLocal:function(e){var t=e.utcHour,n=e.utcWeekdays,c=e.utcMinute,o=void 0===c?0:c,l=n.map((function(e){return r.O.buildLocalDateFromUTC(e,t,o)})),i=l.map((function(e){return e.getDay()}));return{hour:+r.O.format(a.m.first(l),"HH"),daysOfWeek:i,minute:o}},getScheduledJobBySetting:function(e){var t;if(!e||!e.fullSyncSchedule||!e.fullSyncSchedule.enabled)return null;var n=o.parseUTCToLocal({utcHour:e.fullSyncSchedule.hour,utcWeekdays:e.fullSyncSchedule.daysOfWeek,utcMinute:e.fullSyncSchedule.minute}),a=new Date,r=c.getDay(),l=n.daysOfWeek.sort((function(e,t){return e-t})),i=n.daysOfWeek.includes(r),s=n.hour,u=null!==(t=null==n?void 0:n.minute)&&void 0!==t?t:0;if(i&&(a.setHours(s,u,0,0),c<a))return a;var m=new Date,d=l.find((function(e){return e>r}));d||(d=l[0]);var p=Math.abs(d-r);return m.setDate(c.getDate()+p),m.setHours(s,0,0,0),m}}},44538:(e,t,n)=>{n.d(t,{K:()=>l});var a=n(99940),r=n(97395),c=n(58739),o=n(38389),l={getRostering:function(){return{url:"{gateway}/v1/users/me/rostering",key:"rostering"}},getSyncList:function(e){var t={};if(e.cursor&&(t.cursor=e.cursor),e.sort&&("oldest"===e.sort?t.order="ASC":t.order="DESC"),e.jobStatus){var n=[];e.jobStatus.includes("completed")&&n.push.apply(n,[c.K.Completed,c.K.CompletedWithError]),e.jobStatus.includes("failed")&&n.push(c.K.Failed),e.jobStatus.includes("inProgress")&&n.push.apply(n,[c.K.Submitted,c.K.Queued,c.K.Pending,c.K.InProgress]),t.status=n}return t.type=o.m.Rostering,{url:r._.urlBuilder("{gateway}/v1/batch/jobs",t),key:"rostering:sync:".concat(e.cursor,":").concat(e.sort,":").concat(e.jobStatus)}},createJob:function(e,t,n){return{url:"{gateway}/v1/batch/jobs",key:"rostering:sync",type:a.k.POST,invalidationKeys:["rostering:sync"],data:e,success:t,error:n}},getJobSummary:function(e){return{url:"{gateway}/v1/batch/jobs/".concat(e,"/summary"),key:"job:summary:".concat(e)}},getSyncScheduleSettings:function(e){return{url:"{gateway}/v1/rostering/".concat(e,"/schedule"),key:"sync-settings:".concat(e)}},updateScheduleSetting:function(e,t,n,r,c){return{type:a.k.PUT,url:"{gateway}/v1/rostering/".concat(t,"/schedule"),key:"update:sync-settings:".concat(e.customerId,":").concat(t),invalidationKeys:["sync-settings:".concat(t)],data:e,success:n,error:r,always:c}}}},73814:(e,t,n)=>{n.d(t,{w:()=>r});var a=n(92802),r={getCustomFormControlClassName:function(e,t,n,r,c,o){var l="";return l=function(e,t){var n="";return n="select"===e?"form-select":"form-control","sm"===t&&(n+=" ".concat(n,"-sm")),"lg"===t&&(n+=" ".concat(n,"-lg")),n}(o,r),(0,a.u9)(t,n)&&(0,a.u9)(e,n)&&(l+=" is-invalid"),c&&(l+=" ".concat(c)),l}}},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>c});var r={numItems:5,minWidth:50,maxWidth:100},c={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(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 a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(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.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},81803:(e,t,n)=>{n.d(t,{d:()=>f});var a=n(32735),r=n(81886),c=n(23481),o=n(49935),l=n(22902),i=n(14070),s=n(97291),u=n(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var d="settings.settingsLayout",p=function(e){var t=(0,l.T)().hasPermissions,n=(0,u.e)();if(e)return t(e);var a=r.Q.C$.getCurrentAppLink();return a.application!==s.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===a.action}))}))};function f(e){var t,n=p(e.requiredPermissions);if(a.useEffect((function(){n||r.Q.C$.trigger({application:s.O.SETTINGS,action:i.e.Settings.HOME},{replace:!0})}),[n]),!n)return a.createElement(a.Fragment,null);var l,u=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:s.O.SETTINGS,action:i.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return a.createElement("div",{className:"px-3"},a.createElement("div",{className:"d-flex align-items-center justify-content-between"},a.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),a.createElement("div",{className:"pb-3"},a.createElement(o.Oo,{breadcrumbs:[{name:c.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:i.e.Settings.HOME}}].concat((l=u,function(e){if(Array.isArray(e))return m(e)}(l)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(l)||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.")}()))})),e.description&&a.createElement(a.Fragment,null,a.createElement("p",null,e.description),a.createElement("hr",null)),e.children)}},52834:(e,t,n)=>{n.d(t,{y:()=>u});var a=n(32735),r=n(23232),c=n(98461),o=n(83345),l=n(12778),i=n(99742),s="rostering.requiresSetUp";function u(){return a.createElement(r.u,null,a.createElement(r.u.Image,{src:i.W.EmptyStates.Rostering.REQUIRES_SET_UP}),a.createElement(r.u.Heading,null,a.createElement(o.x,{namespace:s,phrase:"emptyHeading"})),a.createElement(r.u.Info,{className:"w-50 mb-3"},a.createElement(o.x,{namespace:s,phrase:"emptyInfo"})),a.createElement(c.d,{className:"btn btn-dark",href:l.o.getSupportRequestUrl(),newTab:!0},a.createElement(o.x,{namespace:s,phrase:"button"})))}},57167:(e,t,n)=>{n.r(t),n.d(t,{RosteringSyncSettingsView:()=>z});var a=n(32735),r=n(80247),c=n(23481),o=n(20354),l=n(31647),i=n(5173),s=n(75896),u=n(110),m=n(82644),d=n(92802),p=n(28400),f=n(23201),y=n(38365),b=n(83345);const v={select:"eHERO",sourceLabel:"P7yI8",source:"dsINO",logoWrapper:"kPI9A",wrapper:"PYTsc",weekdaysPicker:"W8qyy"};function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var h="rostering.settings.schedule",E=c.T.encloseNamespace(h),S=new Array(24).fill(0).map((function(e,t){return t})),k=["daily","weekly"],O=[1,2,3,4,5,6,0],w=new Date,N=(new Date).getTimezoneOffset()/60;function T(e){if(0===e)return"12:00 AM";var t=12===e?12:e%12;return e/12<1?t<10?"0".concat(t,":00 AM"):"".concat(t,":00 AM"):t<10?"0".concat(t,":00 PM"):"".concat(t,":00 PM")}function x(e){return u.O.format(u.O.weekday(w,e),"ddd")}function I(){var e,t=(0,d.u6)();return a.createElement(d.l0,null,a.createElement("div",null,a.createElement("p",null,a.createElement(b.x,{namespace:h,phrase:"info"})),a.createElement("div",{className:"row"}),a.createElement("div",{className:"row align-items-center"},a.createElement("p",{className:"col col-3"},E("start")),a.createElement("div",{className:"col"},a.createElement("div",{className:"d-flex align-items-center flex-gap"},a.createElement(y.W,{className:"".concat(v.select," me-2"),id:"start",name:"startAt",as:"select",value:null!==(e=t.values.startAt)&&void 0!==e?e:2},S.map((function(e){return a.createElement("option",{className:"text-dark",value:e,key:e},T(e))}))),a.createElement("p",null,"(EST UTC","".concat(N),") ",Intl.DateTimeFormat().resolvedOptions().timeZone.replace("/"," - "))))),a.createElement("div",{className:"row align-items-center"},a.createElement("p",{className:"col col-3"},E("repeat")),a.createElement("div",{className:"col ".concat(v.wrapper," position-relative")},a.createElement(y.W,{className:"".concat(v.select," d-inline-block"),id:"repeat",name:"repeat",as:"select",value:t.values.repeat},k.map((function(e){return a.createElement("option",{className:"text-dark",value:e,key:e},p.m.toTitleCase(e))}))),"weekly"===t.values.repeat&&a.createElement("div",{className:"d-flex align-items-center position-absolute ".concat(v.weekdaysPicker)},a.createElement("span",{className:"ms-2 me-3"},E("on")),a.createElement("div",{className:"btn-group mb-1"},O.map((function(e){return a.createElement("button",{key:e,className:(n=e,r="btn border",t.values.daysOfWeek.includes(n)?r+=" btn-dark":r+=" btn-outline-dark",r),onClick:function(n){!function(e,n){e.preventDefault();var a,r=t.values.daysOfWeek.includes(n)?t.values.daysOfWeek.filter((function(e){return e!==n})):[].concat(function(e){if(Array.isArray(e))return g(e)}(a=t.values.daysOfWeek)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}(a)||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.")}(),[n]);0!==r.length&&t.setFieldValue("daysOfWeek",r)}(n,e)},type:"button"},x(e).charAt(0));var n,r}))))))),a.createElement("div",{className:"rounded p-2 bg-light-blue text-info fw-semibold mb-3"},function(e){switch(e.repeat){case"daily":return E("summary",{time:T(e.startAt),repeat:e.repeat});case"weekly":var t,n=O.filter((function(t){return e.daysOfWeek.includes(t)})).map((function(e){return x(e)}));return t=n.length>=2?n.slice(0,n.length-1).join(", ")+", and "+n[n.length-1]:n.join(", "),E("weeklySummary",{weekdays:t,time:T(e.startAt),repeat:e.repeat})}}(t.values)),a.createElement(f.A,{isNew:!1,variant:"outline-dark"}))}var A=n(62394),j="rostering.settings.schedule",C=i.Ry().shape({daysOfWeek:i.IX().min(1),startAt:i.Rx().min(0).max(23).required(),repeat:i.nK().oneOf(["daily","weekly"]).default("daily")});function L(e){return a.createElement("div",{className:"py-3 border-bottom w-100"},a.createElement("h2",{className:"h4"},a.createElement(b.x,{namespace:j,phrase:"heading"})),a.createElement(m.n,{initialValues:(t=e.settings.fullSyncSchedule,n=A.y.parseUTCToLocal({utcHour:t.hour,utcWeekdays:t.daysOfWeek,utcMinute:t.minute}),{startAt:n.hour,daysOfWeek:n.daysOfWeek,repeat:7===t.daysOfWeek.length?"daily":"weekly"}),onSubmit:function(t,n){e.onSave(function(e,t){var n=function(e){var t=e.hour,n=e.minute,a=e.weekdays.map((function(e){return u.O.buildUTCDate(e,t,n)}));return{hour:+u.O.format(s.m.first(a),"HH"),daysOfWeek:a.map((function(e){return e.getDay()})),minute:+u.O.format(s.m.first(a),"mm")}}({hour:e.startAt,weekdays:e.daysOfWeek,minute:0});return{fullSyncSchedule:{daysOfWeek:"daily"===e.repeat?[0,1,2,3,4,5,6]:n.daysOfWeek,hour:n.hour,minute:n.minute,enabled:t.enabled}}}(t,e.settings.fullSyncSchedule),n)},validationSchema:C},a.createElement(I,null)));var t,n}var P=n(65654),W=n(16714),F=n(44538),M=n(31949),R=n(69883),D=n(79612),H=n(14070),B=n(97291),U=n(81803),G=n(52834),K=n(56736);const Z={settings:"K6Qs1",spinner:"PDZWp"};var V=c.T.encloseNamespace("rostering.rosteringSyncSettings");function z(){var e,t,n,c=o.a.useBasicFetch(M.N.currentUser()),i=o.a.useBasicFetch(F.K.getRostering()),s=o.a.useBasicFetch((null===(e=i.data)||void 0===e?void 0:e.id)&&F.K.getSyncScheduleSettings(i.data.id)),u=o.a.useGetFetch(),m=(0,R.Z)();(0,D.M)({title:V("pageTitle")});var d=(0,K.B)(c.data),p=d.syncNow,f=d.fullSync;return a.createElement(U.d,{heading:V("heading"),breadcrumbs:[V("breadcrumb")],headingButton:function(){var e;return"Active"!==(null===(e=i.data)||void 0===e?void 0:e.status)?a.createElement(a.Fragment,null):a.createElement(P.G,{onSyncNow:p,onFullSync:f})},requiredPermissions:W.C.Rostering},"Active"===(null===(t=i.data)||void 0===t?void 0:t.status)&&a.createElement(l.E,{active:"settings",appLinks:{syncJobs:{application:B.O.SETTINGS,action:H.e.Settings.ROSTERING},settings:{application:B.O.SETTINGS,action:H.e.Settings.ROSTERING_SETTINGS}}}),"Active"!==(null===(n=i.data)||void 0===n?void 0:n.status)?a.createElement(G.y,null):a.createElement("div",{className:"d-flex flex-column align-items-center justify-content-center ".concat(Z.settings)},s.data?a.createElement(a.Fragment,null,a.createElement(L,{onSave:function(e,t){var n=Object.assign(Object.assign({},e),{userId:c.data.id,customerId:c.data.customerId});u(F.K.updateScheduleSetting(n,i.data.id,(function(){return m.success(V("success"))}),(function(){return m.error(V("error"))}),(function(){return null==t?void 0:t()})))},settings:s.data})):a.createElement("div",{className:Z.spinner},a.createElement(r.Z,{as:"div",animation:"border",role:"status"}))))}},56736:(e,t,n)=>{n.d(t,{B:()=>p});var a=n(60139),r=n(23481),c=n(20354),o=n(67651),l=n(72081),i=n(38389),s=n(4594),u=n(44538),m=n(69883),d=r.T.encloseNamespace("rostering.syncUtils"),p=function(e){var t=c.a.useGetFetchAsync(),n=(0,m.Z)();return e?{fullSync:function(){},syncNow:function(){var r={type:a.NK.Success,heading:d("startSyncAlertHeading"),message:d("startSyncAlertBody"),appLinkText:d("startSyncAlertAppLinkText"),appLinkClassName:"info-link"},c={name:l.g.Rostering,type:i.m.Rostering,metadata:{targetMasterId:e.customerId,targetMasterType:s.E.Customer},customerId:e.customerId,dataType:o.B.Learner};t(u.K.createJob(c,(function(){n.success(r)}),(function(){n.error(d("error"))})))}}:{syncNow:function(){},fullSync:function(){}}}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",pillItem:"hUJx1"}}}]);
2
- //# sourceMappingURL=7167-efe85af16e-lite.chunk.js.map
2
+ //# sourceMappingURL=7167-dc4c954c2b-lite.chunk.js.map