@clickview/lite 0.48.0-rc.7 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/{170-1f815b85a1-lite.chunk.js → 170-2d124965b7-lite.chunk.js} +2 -2
  3. package/dist/scripts/{170-1f815b85a1-lite.chunk.js.map → 170-2d124965b7-lite.chunk.js.map} +1 -1
  4. package/dist/scripts/{1818-b9f9297d6d-lite.chunk.js → 1818-72409e60a9-lite.chunk.js} +1 -1
  5. package/dist/scripts/{1818-b9f9297d6d-lite.chunk.js.map → 1818-72409e60a9-lite.chunk.js.map} +1 -1
  6. package/dist/scripts/{1863-cf9df40052-lite.chunk.js → 1863-e7c4a6f342-lite.chunk.js} +1 -1
  7. package/dist/scripts/{1863-cf9df40052-lite.chunk.js.map → 1863-e7c4a6f342-lite.chunk.js.map} +1 -1
  8. package/dist/scripts/{1958-9889c1ad24-lite.chunk.js → 1958-5336189397-lite.chunk.js} +1 -1
  9. package/dist/scripts/{1958-9889c1ad24-lite.chunk.js.map → 1958-5336189397-lite.chunk.js.map} +1 -1
  10. package/dist/scripts/{2086-a247f6e201-lite.chunk.js → 2086-f7082703d0-lite.chunk.js} +1 -1
  11. package/dist/scripts/{2086-a247f6e201-lite.chunk.js.map → 2086-f7082703d0-lite.chunk.js.map} +1 -1
  12. package/dist/scripts/{2118-462a279c5a-lite.chunk.js → 2118-ec2a5f1e9b-lite.chunk.js} +2 -2
  13. package/dist/scripts/{2118-462a279c5a-lite.chunk.js.map → 2118-ec2a5f1e9b-lite.chunk.js.map} +1 -1
  14. package/dist/scripts/{2182-5c9db07f5b-lite.chunk.js → 2182-8e4d603a1b-lite.chunk.js} +1 -1
  15. package/dist/scripts/{2182-5c9db07f5b-lite.chunk.js.map → 2182-8e4d603a1b-lite.chunk.js.map} +1 -1
  16. package/dist/scripts/{2279-5e92c84310-lite.chunk.js → 2279-252e92e1d8-lite.chunk.js} +1 -1
  17. package/dist/scripts/{2279-5e92c84310-lite.chunk.js.map → 2279-252e92e1d8-lite.chunk.js.map} +1 -1
  18. package/dist/scripts/{2355-6cd89fa80d-lite.chunk.js → 2355-c588dc3ce2-lite.chunk.js} +1 -1
  19. package/dist/scripts/{2355-6cd89fa80d-lite.chunk.js.map → 2355-c588dc3ce2-lite.chunk.js.map} +1 -1
  20. package/dist/scripts/{2469-aa5bbbb17f-lite.chunk.js → 2469-46411b862e-lite.chunk.js} +1 -1
  21. package/dist/scripts/{2469-aa5bbbb17f-lite.chunk.js.map → 2469-46411b862e-lite.chunk.js.map} +1 -1
  22. package/dist/scripts/{2672-0fc559f1d1-lite.chunk.js → 2672-b01985cee8-lite.chunk.js} +1 -1
  23. package/dist/scripts/{2672-0fc559f1d1-lite.chunk.js.map → 2672-b01985cee8-lite.chunk.js.map} +1 -1
  24. package/dist/scripts/{2734-6c6d57d0f3-lite.chunk.js → 2734-6a7beb2ce2-lite.chunk.js} +1 -1
  25. package/dist/scripts/{2734-6c6d57d0f3-lite.chunk.js.map → 2734-6a7beb2ce2-lite.chunk.js.map} +1 -1
  26. package/dist/scripts/{287-ba98be7f21-lite.chunk.js → 287-3cbed16363-lite.chunk.js} +1 -1
  27. package/dist/scripts/{287-ba98be7f21-lite.chunk.js.map → 287-3cbed16363-lite.chunk.js.map} +1 -1
  28. package/dist/scripts/{2875-0e5f209e47-lite.chunk.js → 2875-aefd69a61f-lite.chunk.js} +1 -1
  29. package/dist/scripts/{2875-0e5f209e47-lite.chunk.js.map → 2875-aefd69a61f-lite.chunk.js.map} +1 -1
  30. package/dist/scripts/{3042-6650521d8b-lite.chunk.js → 3042-7c1b5e4ff7-lite.chunk.js} +1 -1
  31. package/dist/scripts/{3042-6650521d8b-lite.chunk.js.map → 3042-7c1b5e4ff7-lite.chunk.js.map} +1 -1
  32. package/dist/scripts/{3158-31baada6cc-lite.chunk.js → 3158-2147de456d-lite.chunk.js} +1 -1
  33. package/dist/scripts/{3158-31baada6cc-lite.chunk.js.map → 3158-2147de456d-lite.chunk.js.map} +1 -1
  34. package/dist/scripts/{3296-6d80e4dd56-lite.chunk.js → 3296-f3732c93d9-lite.chunk.js} +1 -1
  35. package/dist/scripts/{3296-6d80e4dd56-lite.chunk.js.map → 3296-f3732c93d9-lite.chunk.js.map} +1 -1
  36. package/dist/scripts/{3541-7ebd9db295-lite.chunk.js → 3541-15581012d3-lite.chunk.js} +1 -1
  37. package/dist/scripts/{3541-7ebd9db295-lite.chunk.js.map → 3541-15581012d3-lite.chunk.js.map} +1 -1
  38. package/dist/scripts/{3841-95df66e647-lite.chunk.js → 3841-bfae79638b-lite.chunk.js} +2 -2
  39. package/dist/scripts/{3841-95df66e647-lite.chunk.js.map → 3841-bfae79638b-lite.chunk.js.map} +1 -1
  40. package/dist/scripts/{3888-0bee9a9309-lite.chunk.js → 3888-87c1075a1b-lite.chunk.js} +1 -1
  41. package/dist/scripts/{3888-0bee9a9309-lite.chunk.js.map → 3888-87c1075a1b-lite.chunk.js.map} +1 -1
  42. package/dist/scripts/{4138-75a2bb69ab-lite.chunk.js → 4138-b9b03c9900-lite.chunk.js} +1 -1
  43. package/dist/scripts/{4138-75a2bb69ab-lite.chunk.js.map → 4138-b9b03c9900-lite.chunk.js.map} +1 -1
  44. package/dist/scripts/{4778-ebe369973c-lite.chunk.js → 4778-3c9f2b7f76-lite.chunk.js} +2 -2
  45. package/dist/scripts/{4778-ebe369973c-lite.chunk.js.map → 4778-3c9f2b7f76-lite.chunk.js.map} +1 -1
  46. package/dist/scripts/{4942-a27a31e79e-lite.chunk.js → 4942-acce40b333-lite.chunk.js} +2 -2
  47. package/dist/scripts/{4942-a27a31e79e-lite.chunk.js.map → 4942-acce40b333-lite.chunk.js.map} +1 -1
  48. package/dist/scripts/{5075-f8719465be-lite.chunk.js → 5075-53172298fe-lite.chunk.js} +1 -1
  49. package/dist/scripts/{5075-f8719465be-lite.chunk.js.map → 5075-53172298fe-lite.chunk.js.map} +1 -1
  50. package/dist/scripts/{5157-cd12e2e443-lite.chunk.js → 5157-47a0f5c088-lite.chunk.js} +1 -1
  51. package/dist/scripts/{5157-cd12e2e443-lite.chunk.js.map → 5157-47a0f5c088-lite.chunk.js.map} +1 -1
  52. package/dist/scripts/{5268-f4db3933ff-lite.chunk.js → 5268-9b7560f3b1-lite.chunk.js} +2 -2
  53. package/dist/scripts/{5268-f4db3933ff-lite.chunk.js.map → 5268-9b7560f3b1-lite.chunk.js.map} +1 -1
  54. package/dist/scripts/{5442-01ffd95162-lite.chunk.js → 5442-5ddfa2d951-lite.chunk.js} +1 -1
  55. package/dist/scripts/{5442-01ffd95162-lite.chunk.js.map → 5442-5ddfa2d951-lite.chunk.js.map} +1 -1
  56. package/dist/scripts/{5591-98cfe6c6e5-lite.chunk.js → 5591-119d72ede5-lite.chunk.js} +1 -1
  57. package/dist/scripts/{5591-98cfe6c6e5-lite.chunk.js.map → 5591-119d72ede5-lite.chunk.js.map} +1 -1
  58. package/dist/scripts/{5595-3763b14d77-lite.chunk.js → 5595-628d4f252c-lite.chunk.js} +2 -2
  59. package/dist/scripts/5595-628d4f252c-lite.chunk.js.map +1 -0
  60. package/dist/scripts/{6102-4d948a5e48-lite.chunk.js → 6102-751dbbbf33-lite.chunk.js} +3 -3
  61. package/dist/scripts/{6102-4d948a5e48-lite.chunk.js.map → 6102-751dbbbf33-lite.chunk.js.map} +1 -1
  62. package/dist/scripts/{6158-0c5e44f800-lite.chunk.js → 6158-d123add596-lite.chunk.js} +1 -1
  63. package/dist/scripts/{6158-0c5e44f800-lite.chunk.js.map → 6158-d123add596-lite.chunk.js.map} +1 -1
  64. package/dist/scripts/{6263-8957d50afe-lite.chunk.js → 6263-24e67b7df2-lite.chunk.js} +1 -1
  65. package/dist/scripts/{6263-8957d50afe-lite.chunk.js.map → 6263-24e67b7df2-lite.chunk.js.map} +1 -1
  66. package/dist/scripts/{6330-c66465bd6d-lite.chunk.js → 6330-9a2a5fc07e-lite.chunk.js} +1 -1
  67. package/dist/scripts/{6330-c66465bd6d-lite.chunk.js.map → 6330-9a2a5fc07e-lite.chunk.js.map} +1 -1
  68. package/dist/scripts/{671-003843ca84-lite.chunk.js → 671-5571f33165-lite.chunk.js} +1 -1
  69. package/dist/scripts/{671-003843ca84-lite.chunk.js.map → 671-5571f33165-lite.chunk.js.map} +1 -1
  70. package/dist/scripts/{7167-efe85af16e-lite.chunk.js → 7167-dc4c954c2b-lite.chunk.js} +1 -1
  71. package/dist/scripts/{7167-efe85af16e-lite.chunk.js.map → 7167-dc4c954c2b-lite.chunk.js.map} +1 -1
  72. package/dist/scripts/7293-58f4a7cf47-lite.chunk.js +2 -0
  73. package/dist/scripts/{7293-afd3349468-lite.chunk.js.map → 7293-58f4a7cf47-lite.chunk.js.map} +1 -1
  74. package/dist/scripts/{7301-f20e4bdb8f-lite.chunk.js → 7301-7c9342ef0c-lite.chunk.js} +1 -1
  75. package/dist/scripts/{7301-f20e4bdb8f-lite.chunk.js.map → 7301-7c9342ef0c-lite.chunk.js.map} +1 -1
  76. package/dist/scripts/{7708-ece31b78a9-lite.chunk.js → 7708-e91903481a-lite.chunk.js} +1 -1
  77. package/dist/scripts/{7708-ece31b78a9-lite.chunk.js.map → 7708-e91903481a-lite.chunk.js.map} +1 -1
  78. package/dist/scripts/{771-eb60e33941-lite.chunk.js → 771-5612b4ffc2-lite.chunk.js} +2 -2
  79. package/dist/scripts/{771-eb60e33941-lite.chunk.js.map → 771-5612b4ffc2-lite.chunk.js.map} +1 -1
  80. package/dist/scripts/{7855-37bcdd134e-lite.chunk.js → 7855-4b69540a71-lite.chunk.js} +1 -1
  81. package/dist/scripts/{7855-37bcdd134e-lite.chunk.js.map → 7855-4b69540a71-lite.chunk.js.map} +1 -1
  82. package/dist/scripts/{8024-66413cc05b-lite.chunk.js → 8024-765a4170c7-lite.chunk.js} +2 -2
  83. package/dist/scripts/{8024-66413cc05b-lite.chunk.js.map → 8024-765a4170c7-lite.chunk.js.map} +1 -1
  84. package/dist/scripts/{823-58d27c255b-lite.chunk.js → 823-33c5207c68-lite.chunk.js} +1 -1
  85. package/dist/scripts/{823-58d27c255b-lite.chunk.js.map → 823-33c5207c68-lite.chunk.js.map} +1 -1
  86. package/dist/scripts/8261-69854ff4d5-lite.chunk.js +2 -0
  87. package/dist/scripts/8261-69854ff4d5-lite.chunk.js.map +1 -0
  88. package/dist/scripts/{8466-ee9d40ee97-lite.chunk.js → 8466-cea62163e8-lite.chunk.js} +1 -1
  89. package/dist/scripts/{8466-ee9d40ee97-lite.chunk.js.map → 8466-cea62163e8-lite.chunk.js.map} +1 -1
  90. package/dist/scripts/{8681-41edd08b98-lite.chunk.js → 8681-49db3daae6-lite.chunk.js} +2 -2
  91. package/dist/scripts/{8681-41edd08b98-lite.chunk.js.map → 8681-49db3daae6-lite.chunk.js.map} +1 -1
  92. package/dist/scripts/{8772-9ae4d77363-lite.chunk.js → 8772-6c11095cea-lite.chunk.js} +1 -1
  93. package/dist/scripts/{8772-9ae4d77363-lite.chunk.js.map → 8772-6c11095cea-lite.chunk.js.map} +1 -1
  94. package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js → 8906-2f6b5e4c5c-lite.chunk.js} +2 -2
  95. package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js.map → 8906-2f6b5e4c5c-lite.chunk.js.map} +1 -1
  96. package/dist/scripts/{920-4de8efbcf1-lite.chunk.js → 920-acc6596891-lite.chunk.js} +1 -1
  97. package/dist/scripts/{920-4de8efbcf1-lite.chunk.js.map → 920-acc6596891-lite.chunk.js.map} +1 -1
  98. package/dist/scripts/{9212-8f95fbd9b9-lite.chunk.js → 9212-cc987a13bf-lite.chunk.js} +1 -1
  99. package/dist/scripts/{9212-8f95fbd9b9-lite.chunk.js.map → 9212-cc987a13bf-lite.chunk.js.map} +1 -1
  100. package/dist/scripts/{9242-2e533bdc0d-lite.chunk.js → 9242-144e7728ad-lite.chunk.js} +1 -1
  101. package/dist/scripts/{9242-2e533bdc0d-lite.chunk.js.map → 9242-144e7728ad-lite.chunk.js.map} +1 -1
  102. package/dist/scripts/{9264-d2285d4310-lite.chunk.js → 9264-518952f13f-lite.chunk.js} +1 -1
  103. package/dist/scripts/{9264-d2285d4310-lite.chunk.js.map → 9264-518952f13f-lite.chunk.js.map} +1 -1
  104. package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js → 9478-4b3c088537-lite.chunk.js} +2 -2
  105. package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js.map → 9478-4b3c088537-lite.chunk.js.map} +1 -1
  106. package/dist/scripts/{9484-be04a34bbf-lite.chunk.js → 9484-b85011dbea-lite.chunk.js} +2 -2
  107. package/dist/scripts/{9484-be04a34bbf-lite.chunk.js.map → 9484-b85011dbea-lite.chunk.js.map} +1 -1
  108. package/dist/scripts/{bundle-8f540a1154.min.js → bundle-c158cdd3a9.min.js} +3 -3
  109. package/dist/scripts/{bundle-8f540a1154.min.js.map → bundle-c158cdd3a9.min.js.map} +1 -1
  110. package/package.json +1 -1
  111. package/dist/scripts/5595-3763b14d77-lite.chunk.js.map +0 -1
  112. package/dist/scripts/7293-afd3349468-lite.chunk.js +0 -2
  113. package/dist/scripts/8261-72453f1978-lite.chunk.js +0 -2
  114. package/dist/scripts/8261-72453f1978-lite.chunk.js.map +0 -1
  115. /package/dist/scripts/{170-1f815b85a1-lite.chunk.js.LICENSE.txt → 170-2d124965b7-lite.chunk.js.LICENSE.txt} +0 -0
  116. /package/dist/scripts/{2118-462a279c5a-lite.chunk.js.LICENSE.txt → 2118-ec2a5f1e9b-lite.chunk.js.LICENSE.txt} +0 -0
  117. /package/dist/scripts/{3841-95df66e647-lite.chunk.js.LICENSE.txt → 3841-bfae79638b-lite.chunk.js.LICENSE.txt} +0 -0
  118. /package/dist/scripts/{4778-ebe369973c-lite.chunk.js.LICENSE.txt → 4778-3c9f2b7f76-lite.chunk.js.LICENSE.txt} +0 -0
  119. /package/dist/scripts/{4942-a27a31e79e-lite.chunk.js.LICENSE.txt → 4942-acce40b333-lite.chunk.js.LICENSE.txt} +0 -0
  120. /package/dist/scripts/{5268-f4db3933ff-lite.chunk.js.LICENSE.txt → 5268-9b7560f3b1-lite.chunk.js.LICENSE.txt} +0 -0
  121. /package/dist/scripts/{6102-4d948a5e48-lite.chunk.js.LICENSE.txt → 6102-751dbbbf33-lite.chunk.js.LICENSE.txt} +0 -0
  122. /package/dist/scripts/{771-eb60e33941-lite.chunk.js.LICENSE.txt → 771-5612b4ffc2-lite.chunk.js.LICENSE.txt} +0 -0
  123. /package/dist/scripts/{8024-66413cc05b-lite.chunk.js.LICENSE.txt → 8024-765a4170c7-lite.chunk.js.LICENSE.txt} +0 -0
  124. /package/dist/scripts/{8681-41edd08b98-lite.chunk.js.LICENSE.txt → 8681-49db3daae6-lite.chunk.js.LICENSE.txt} +0 -0
  125. /package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js.LICENSE.txt → 8906-2f6b5e4c5c-lite.chunk.js.LICENSE.txt} +0 -0
  126. /package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js.LICENSE.txt → 9478-4b3c088537-lite.chunk.js.LICENSE.txt} +0 -0
  127. /package/dist/scripts/{9484-be04a34bbf-lite.chunk.js.LICENSE.txt → 9484-b85011dbea-lite.chunk.js.LICENSE.txt} +0 -0
  128. /package/dist/scripts/{bundle-8f540a1154.min.js.LICENSE.txt → bundle-c158cdd3a9.min.js.LICENSE.txt} +0 -0
@@ -1,3 +1,3 @@
1
- /*! For license information please see 5268-f4db3933ff-lite.chunk.js.LICENSE.txt */
1
+ /*! For license information please see 5268-9b7560f3b1-lite.chunk.js.LICENSE.txt */
2
2
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5268],{12617:(e,t,r)=>{r.d(t,{E:()=>u});var n=r(99940),o=r(97395),a=r(62803),i=r(5960),c=r(4594),l=r(78417),u={videos:function(e,t,r){var n=a.v.VIDEO_COLLECTION,u=a.v.CLIP_COLLECTION,s=a.v.INTERACTIVE,d="videos[".concat(n,"]{libraries.typeid:").concat(c.E.WorkspaceCollection,"}"),f="clips[".concat(u,"]{status:").concat(i.X.Published,"}"),h="interactives[".concat(s,"]{status:[").concat(i.X.Published,",").concat(i.X.Draft,"]}"),p=[];(null==r?void 0:r.length)?(r.includes("video")&&p.push(d),r.includes("clip")&&p.push(f),r.includes("interactive")&&p.push(h)):p.push(d,f,h);var y={query:"(".concat(p.join("|"),"){orderbydesc:timestamp}"),permissionFilterOption:l.r.StripMetadata};return t&&(y.cursor=t),{url:o._.urlBuilder("{gateway}/v1/objects/".concat(e,"/members"),y),key:"my:videos:".concat(e,":").concat(t).concat(r?":".concat(Array.isArray(r)?r.join(":"):r):"")}},workspaceWithCategories:function(){return{url:o._.urlBuilder("/api/domain/v2/me/libraries",{type:["workspace"],maxCategoryDepth:6}),key:"workspace:folders",normalize:!1}},exchangeWithCategories:function(){return{url:o._.urlBuilder("/api/domain/v2/me/libraries",{type:["exchange"],maxCategoryDepth:5}),key:"exchange:folders",normalize:!1}},addFolder:function(e){var t="/api/domain/v2/collections/".concat(e.collectionId,"/categories");return e.parentCategoryId&&(t=o._.urlBuilder(t,{parentCategoryId:e.parentCategoryId})),{url:t,key:"add:folder",type:n.k.POST,data:{name:e.name},invalidationKeys:["workspace","folder"]}},deleteFolder:function(e){return{url:"{gateway}/v1/objects/".concat(e),key:"delete:folder",type:n.k.DELETE,invalidationKeys:["workspace","folder"]}},moveFolder:function(e){return{url:"/api/domain/v2/objects/move",key:"move:folder",type:n.k.POST,data:{assocType:"has",newCollectionId:e.newFolderId,oldCollectionId:e.oldFolderId,objectIds:[e.moveFolderId]},invalidationKeys:["workspace","folder"]}},updateFolder:function(e,t){return{url:"{gateway}/v1/objects/".concat(e),key:"rename:folder",type:n.k.PUT,data:{name:t},invalidationKeys:["workspace","folder"]}},videoFolders:function(e,t){return{url:"/api/domain/v2/objects/".concat(e,"/categories?query=libraries{id:").concat(t,"}"),key:"video:folders:".concat(e)}},moveVideo:function(e){var t={newCollectionId:e.newFolderId,oldCollectionId:e.oldFolderId,objectIds:e.videoId};return{url:"/api/domain/v3/objects/move",key:"move:folder:".concat(t.objectIds.join(",")),type:n.k.POST,data:t,invalidationKeys:["video"]}},addToExchange:function(e){return{url:"{gateway}/v1/users/me/videos/exchange",key:"add:to:exchange",type:n.k.POST,data:e}}}},54485:(e,t,r)=>{r.d(t,{b:()=>c});var n=r(32735),o=r(23481),a=r(11462),i=o.T.encloseNamespace("myVideos.hooks");function c(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return n.useMemo((function(){return(null==e?void 0:e.length)?{children:e.map((function(e){return Object.assign(Object.assign({},e),{data:Object.assign(Object.assign({},e.data),{name:t?i("myVideos"):e.data.name})})})).map(a.d.convertNestedObjectToTree)}:null}),[e])}},82540:(e,t,r)=>{r.r(t),r.d(t,{AddFolderView:()=>T});var n=r(32735),o=r(81886),a=r(23481),i=r(20354),c=r(49985),l=r(65858),u=r(82644),s=r(9111),d=r(31949),f=r(69883),h=r(11462),p=r(14070),y=r(97291),v=r(12617),m=r(54485),g=r(42648),w=r(92802),b=r(5173),E=r(38365),k=r(13876),x=r(55367),L=a.T.encloseNamespace("myVideos.addFolder"),O=b.Ry().shape({name:b.Z_().required((function(){return L("nameRequired")})).max(255,(function(){return L("maxNameLength")})),folder:b.Ry().required()});function C(e){var t=(0,w.u6)();return n.createElement(w.l0,null,n.createElement(E.W,{label:L("name"),type:"text",name:"name",id:"name",placeholder:L("placeholder"),autoFocus:!0,value:t.values.name,required:!0}),n.createElement(E.W,{label:L("parentFolder"),name:"folder"},(function(){var r;return n.createElement(g.$B,{autoHeight:!0,autoHeightMax:300,className:"border rounded-3"},n.createElement(x.m,{tree:e.folders,onSelect:function(e){return t.setFieldValue("folder",e)},selectedIds:(null===(r=t.values.folder)||void 0===r?void 0:r.id)?[t.values.folder.id]:void 0,selectedLinkClassName:"bg-light",openDepth:1,maxDisplayDepth:6}))})),n.createElement(k.u,null,n.createElement(k.u.Cancel,{onClick:e.onClickCancel}),n.createElement(k.u.Submit,{variant:"dark",showSpinner:e.showSpinner})))}function I(e){return I="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},I(e)}function j(){j=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var a=t&&t.prototype instanceof m?t:m,i=Object.create(a.prototype),c=new T(n||[]);return o(i,"_invoke",{value:C(e,r,c)}),i}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var f="suspendedStart",h="suspendedYield",p="executing",y="completed",v={};function m(){}function g(){}function w(){}var b={};u(b,i,(function(){return this}));var E=Object.getPrototypeOf,k=E&&E(E(P([])));k&&k!==r&&n.call(k,i)&&(b=k);var x=w.prototype=m.prototype=Object.create(b);function L(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function O(e,t){function r(o,a,i,c){var l=d(e[o],e,a);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==I(s)&&n.call(s,"__await")?t.resolve(s.__await).then((function(e){r("next",e,i,c)}),(function(e){r("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return r("throw",e,i,c)}))}c(l.arg)}var a;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return a=a?a.then(o,o):o()}})}function C(t,r,n){var o=f;return function(a,i){if(o===p)throw Error("Generator is already running");if(o===y){if("throw"===a)throw i;return{value:e,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var l=F(c,n);if(l){if(l===v)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===f)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=p;var u=d(t,r,n);if("normal"===u.type){if(o=n.done?y:h,u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=y,n.method="throw",n.arg=u.arg)}}}function F(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,F(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var a=d(o,t.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,v;var i=a.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function P(t){if(t||""===t){var r=t[i];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return a.next=a}}throw new TypeError(I(t)+" is not iterable")}return g.prototype=w,o(x,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=u(w,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,u(e,l,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},L(O.prototype),u(O.prototype,c,(function(){return this})),t.AsyncIterator=O,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new O(s(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},L(x),u(x,l,"Generator"),u(x,i,(function(){return this})),u(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=P,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(_),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return c.type="throw",c.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,v):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:P(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var S=function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{l(n.next(e))}catch(e){a(e)}}function c(e){try{l(n.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}l((n=n.apply(e,t||[])).next())}))},_=a.T.encloseNamespace("myVideos.addFolder");function T(e){var t,r,a=(t=n.useState(!1),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,i,c=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=a.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw o}}return c}}(t,r)||function(e,t){if(e){if("string"==typeof e)return F(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?F(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=a[0],w=a[1],b=i.a.useGetFetchAsync(),E=(0,f.Z)(),k=i.a.useBasicFetch(d.N.workspace()),x=i.a.useBasicFetch(v.E.workspaceWithCategories()),L=(0,m.b)(x.data),I=n.useMemo((function(){return h.d.find(L,e.parentFolderId)}),[L,e.parentFolderId]);n.useEffect((function(){x.data&&h.d.findDepth(x.data,e.parentFolderId)===h.q&&o.Q.C$.trigger({application:y.O.MY_VIDEOS,action:p.e.MyVideos.MAX_FOLDER_DEPTH,args:[h.q]})}),[x.hasCompleted]);var T=k.hasCompleted&&x.hasCompleted;return n.createElement(s.G,{title:_("title"),closePopup:e.closePopup,showLoadingSpinner:!T},T&&n.createElement(u.n,{initialValues:{name:"",folder:I},validationSchema:O,onSubmit:function(t){return S(this,void 0,void 0,j().mark((function r(){var n;return j().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return w(!0),r.prev=1,r.next=4,b(v.E.addFolder({collectionId:k.data.id,name:t.name,parentCategoryId:t.folder.id===k.data.id?void 0:t.folder.id}));case 4:n=r.sent,E.success(_("success")),e.closePopup(),c.k.logUserAction({id:n.id,name:n.name},{entity:l.py.Folder,actionType:l.Vw.Create,workflowPhase:l.eu.Complete,location:l.LZ.Popup}),r.next=14;break;case 10:r.prev=10,r.t0=r.catch(1),E.error(_("error")),e.closePopup();case 14:case"end":return r.stop()}}),r,null,[[1,10]])})))},validateOnMount:!0},n.createElement(C,{onClickCancel:e.closePopup,folders:L,showSpinner:g})))}}}]);
3
- //# sourceMappingURL=5268-f4db3933ff-lite.chunk.js.map
3
+ //# sourceMappingURL=5268-9b7560f3b1-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/5268-f4db3933ff-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/my-videos/flight-requests/MyVideosRequests.ts","file:///app/packages/projects/lite/src/apps/my-videos/hooks/useShapeTree.ts","file:///app/packages/projects/lite/src/apps/my-videos/views/add-folder/AddFolderForm.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-folder/AddFolderView.tsx"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\n\nimport { AddFolderRequest } from 'apps/my-videos/interfaces/requests/AddFolderRequest';\nimport { AddToExchangeRequest } from 'apps/my-videos/interfaces/requests/AddToExchangeRequest';\nimport { MoveFolderRequest } from 'apps/my-videos/interfaces/requests/MoveFolderRequest';\nimport { MoveVideoRequest } from 'apps/my-videos/interfaces/requests/MoveVideoRequest';\n\nexport const MyVideosRequests = {\n videos(id: string, cursor?: string, typeFilter?: SearchIndices | SearchIndices[]): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]{status:${CurationStatus.Published}}`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const query = [];\n if (typeFilter?.length) {\n if (typeFilter.includes('video'))\n query.push(videoQuery);\n if (typeFilter.includes('clip'))\n query.push(clipQuery);\n if (typeFilter.includes('interactive'))\n query.push(interactiveQuery);\n } else {\n query.push(videoQuery, clipQuery, interactiveQuery);\n }\n\n const params: HashObject = {\n query: `(${query.join('|')}){orderbydesc:timestamp}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}/members`, params),\n key: `my:videos:${id}:${cursor}${typeFilter ? `:${Array.isArray(typeFilter) ? typeFilter.join(':') : typeFilter}` : ''}`\n };\n },\n\n workspaceWithCategories(): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['workspace'],\n maxCategoryDepth: 6\n }),\n key: 'workspace:folders',\n normalize: false\n };\n },\n\n exchangeWithCategories(): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['exchange'],\n maxCategoryDepth: 5\n }),\n key: 'exchange:folders',\n normalize: false\n };\n },\n\n addFolder(data: AddFolderRequest): Flight.Request {\n // TODO: Need to stop using domain\n let url = `/api/domain/v2/collections/${data.collectionId}/categories`;\n\n if (data.parentCategoryId)\n url = UrlHelper.urlBuilder(url, { parentCategoryId: data.parentCategoryId });\n\n return {\n url,\n key: 'add:folder',\n type: HttpVerbs.POST,\n data: { name: data.name },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n deleteFolder(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'delete:folder',\n type: HttpVerbs.DELETE,\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n moveFolder(data: MoveFolderRequest): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: '/api/domain/v2/objects/move',\n key: 'move:folder',\n type: HttpVerbs.POST,\n data: {\n assocType: 'has',\n newCollectionId: data.newFolderId,\n oldCollectionId: data.oldFolderId,\n objectIds: [data.moveFolderId]\n },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n updateFolder(id: string, name: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'rename:folder',\n type: HttpVerbs.PUT,\n data: { name },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n videoFolders(videoId: string, libraryId: string): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: `/api/domain/v2/objects/${videoId}/categories?query=libraries{id:${libraryId}}`,\n key: `video:folders:${videoId}`\n };\n },\n\n moveVideo(request: MoveVideoRequest): Flight.Request {\n const data: HashObject = {\n newCollectionId: request.newFolderId,\n oldCollectionId: request.oldFolderId,\n objectIds: request.videoId\n };\n\n return {\n url: '/api/domain/v3/objects/move',\n key: `move:folder:${data.objectIds.join(',')}`,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: ['video']\n };\n },\n\n addToExchange(data: AddToExchangeRequest): Flight.Request {\n return {\n url: '{gateway}/v1/users/me/videos/exchange',\n key: 'add:to:exchange',\n type: HttpVerbs.POST,\n data\n };\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { BaseObject, BaseTree, MasterNestedObject } from 'libs/shared/interfaces';\nimport { TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nconst namespace = 'myVideos.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useShapeTree<T extends BaseObject>(\n trees: MasterNestedObject<T>[],\n rename: boolean = true\n): BaseTree<T> {\n return React.useMemo(() => {\n if (!trees?.length)\n return null;\n\n /**\n * Renaming \"<fullName>'s Workspace\"\n * to \"My Videos\"\n */\n const renamed = trees.map(t => ({\n ...t,\n data: {\n ...t.data,\n name: rename ? getPhrase('myVideos') : t.data.name\n }\n }));\n\n const rootBranches = renamed.map(TreeHelper.convertNestedObjectToTree);\n\n return {\n children: rootBranches\n } as BaseTree<T>;\n }, [trees]);\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport { Form, useFormikContext } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Tree } from 'libs/shared/components/tree/Tree';\nimport { BaseTree, Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'myVideos.addFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const AddFolderValidationSchema = Yup.object().shape({\n name: Yup\n .string()\n .required(() => getPhrase('nameRequired'))\n .max(255, () => getPhrase('maxNameLength')),\n folder: Yup.object().required()\n});\n\nexport interface AddFolderFormData {\n name: string;\n folder: Folder;\n}\n\ninterface AddFolderFormProps {\n onClickCancel: () => void;\n folders: BaseTree<Folder>;\n showSpinner: boolean;\n}\n\nexport function AddFolderForm(props: AddFolderFormProps): JSX.Element {\n const formikProps = useFormikContext<AddFolderFormData>();\n\n return (\n <Form>\n <FormField\n label={getPhrase('name')}\n type='text'\n name='name'\n id='name'\n placeholder={getPhrase('placeholder')}\n autoFocus\n value={formikProps.values.name}\n required\n />\n <FormField\n label={getPhrase('parentFolder')}\n name='folder'\n >\n {() => (\n <Scrollbars autoHeight autoHeightMax={300} className='border rounded-3'>\n <Tree\n tree={props.folders}\n onSelect={(folder: Folder) => formikProps.setFieldValue('folder', folder)}\n selectedIds={formikProps.values.folder?.id ? [formikProps.values.folder.id] : undefined}\n selectedLinkClassName='bg-light'\n openDepth={1}\n maxDisplayDepth={6}\n />\n </Scrollbars>\n )}\n </FormField>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.onClickCancel} />\n <PopupButtons.Submit variant='dark' showSpinner={props.showSpinner} />\n </PopupButtons>\n </Form>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Folder, Library, LibraryTree, PopupViewProps } from 'libs/shared/interfaces';\nimport { DEFAULT_MAX_DEPTH, TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { MyVideosRequests } from 'apps/my-videos/flight-requests/MyVideosRequests';\nimport { useShapeTree } from 'apps/my-videos/hooks/useShapeTree';\n\nimport { AddFolderForm, AddFolderFormData, AddFolderValidationSchema } from './AddFolderForm';\n\nconst namespace = 'myVideos.addFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddFolderViewProps extends PopupViewProps {\n parentFolderId: string;\n}\n\nexport function AddFolderView(props: AddFolderViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const workspace = Flight.useBasicFetch<Library>(UserRequests.workspace());\n const workspaceFolders = Flight.useBasicFetch<LibraryTree[]>(MyVideosRequests.workspaceWithCategories());\n const folders = useShapeTree(workspaceFolders.data);\n\n const initialFolder = React.useMemo(() => {\n return TreeHelper.find(folders, props.parentFolderId);\n }, [ folders, props.parentFolderId ]);\n\n React.useEffect(() => {\n if (!workspaceFolders.data) return;\n\n if (TreeHelper.findDepth(workspaceFolders.data, props.parentFolderId) === DEFAULT_MAX_DEPTH) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.MAX_FOLDER_DEPTH,\n args: [DEFAULT_MAX_DEPTH]\n });\n }\n }, [workspaceFolders.hasCompleted]);\n\n async function onSubmit(data: AddFolderFormData): Promise<void> {\n setShowSpinner(true);\n\n try {\n const folder = await fetchAsync<Folder>(MyVideosRequests.addFolder({\n collectionId: workspace.data.id,\n name: data.name,\n // If we're adding to the root category tree, we don't pass a parent category id.\n parentCategoryId: data.folder.id === workspace.data.id ? undefined : data.folder.id\n }));\n alerts.success(getPhrase('success'));\n props.closePopup();\n\n AnalyticsHelper.logUserAction({\n id: folder.id,\n name: folder.name\n }, {\n entity: EntityType.Folder,\n actionType: UserAction.Create,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n } catch {\n alerts.error(getPhrase('error'));\n props.closePopup();\n }\n }\n\n const hasLoaded = (\n workspace.hasCompleted &&\n workspaceFolders.hasCompleted\n );\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!hasLoaded}\n >\n {hasLoaded &&\n <FormWrapper<AddFolderFormData>\n initialValues={{ name: '', folder: initialFolder }}\n validationSchema={AddFolderValidationSchema}\n onSubmit={onSubmit}\n validateOnMount\n >\n <AddFolderForm\n onClickCancel={props.closePopup}\n folders={folders}\n showSpinner={showSpinner}\n />\n </FormWrapper>\n }\n </Popup>\n );\n}"],"names":["MyVideosRequests","videos","id","cursor","typeFilter","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","videoQuery","clipQuery","interactiveQuery","query","length","includes","push","params","join","permissionFilterOption","url","key","Array","isArray","workspaceWithCategories","type","maxCategoryDepth","normalize","exchangeWithCategories","addFolder","data","collectionId","parentCategoryId","name","invalidationKeys","deleteFolder","moveFolder","assocType","newCollectionId","newFolderId","oldCollectionId","oldFolderId","objectIds","moveFolderId","updateFolder","videoFolders","videoId","libraryId","moveVideo","request","addToExchange","getPhrase","useShapeTree","trees","rename","children","map","t","LanguageService","AddFolderValidationSchema","shape","required","max","folder","AddFolderForm","props","formikProps","FormField","label","placeholder","autoFocus","value","values","autoHeight","autoHeightMax","className","Tree","tree","folders","onSelect","setFieldValue","selectedIds","undefined","selectedLinkClassName","openDepth","maxDisplayDepth","PopupButtons","onClick","onClickCancel","variant","showSpinner","AddFolderView","setShowSpinner","fetchAsync","alerts","workspace","UserRequests","workspaceFolders","initialFolder","TreeHelper","parentFolderId","application","action","args","hasCompleted","hasLoaded","Popup","title","closePopup","showLoadingSpinner","FormWrapper","initialValues","validationSchema","onSubmit","success","AnalyticsHelper","entity","actionType","workflowPhase","location","error","validateOnMount"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/5268-9b7560f3b1-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/my-videos/flight-requests/MyVideosRequests.ts","file:///app/packages/projects/lite/src/apps/my-videos/hooks/useShapeTree.ts","file:///app/packages/projects/lite/src/apps/my-videos/views/add-folder/AddFolderForm.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-folder/AddFolderView.tsx"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\n\nimport { AddFolderRequest } from 'apps/my-videos/interfaces/requests/AddFolderRequest';\nimport { AddToExchangeRequest } from 'apps/my-videos/interfaces/requests/AddToExchangeRequest';\nimport { MoveFolderRequest } from 'apps/my-videos/interfaces/requests/MoveFolderRequest';\nimport { MoveVideoRequest } from 'apps/my-videos/interfaces/requests/MoveVideoRequest';\n\nexport const MyVideosRequests = {\n videos(id: string, cursor?: string, typeFilter?: SearchIndices | SearchIndices[]): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]{status:${CurationStatus.Published}}`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const query = [];\n if (typeFilter?.length) {\n if (typeFilter.includes('video'))\n query.push(videoQuery);\n if (typeFilter.includes('clip'))\n query.push(clipQuery);\n if (typeFilter.includes('interactive'))\n query.push(interactiveQuery);\n } else {\n query.push(videoQuery, clipQuery, interactiveQuery);\n }\n\n const params: HashObject = {\n query: `(${query.join('|')}){orderbydesc:timestamp}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}/members`, params),\n key: `my:videos:${id}:${cursor}${typeFilter ? `:${Array.isArray(typeFilter) ? typeFilter.join(':') : typeFilter}` : ''}`\n };\n },\n\n workspaceWithCategories(): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['workspace'],\n maxCategoryDepth: 6\n }),\n key: 'workspace:folders',\n normalize: false\n };\n },\n\n exchangeWithCategories(): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['exchange'],\n maxCategoryDepth: 5\n }),\n key: 'exchange:folders',\n normalize: false\n };\n },\n\n addFolder(data: AddFolderRequest): Flight.Request {\n // TODO: Need to stop using domain\n let url = `/api/domain/v2/collections/${data.collectionId}/categories`;\n\n if (data.parentCategoryId)\n url = UrlHelper.urlBuilder(url, { parentCategoryId: data.parentCategoryId });\n\n return {\n url,\n key: 'add:folder',\n type: HttpVerbs.POST,\n data: { name: data.name },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n deleteFolder(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'delete:folder',\n type: HttpVerbs.DELETE,\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n moveFolder(data: MoveFolderRequest): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: '/api/domain/v2/objects/move',\n key: 'move:folder',\n type: HttpVerbs.POST,\n data: {\n assocType: 'has',\n newCollectionId: data.newFolderId,\n oldCollectionId: data.oldFolderId,\n objectIds: [data.moveFolderId]\n },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n updateFolder(id: string, name: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'rename:folder',\n type: HttpVerbs.PUT,\n data: { name },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n videoFolders(videoId: string, libraryId: string): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: `/api/domain/v2/objects/${videoId}/categories?query=libraries{id:${libraryId}}`,\n key: `video:folders:${videoId}`\n };\n },\n\n moveVideo(request: MoveVideoRequest): Flight.Request {\n const data: HashObject = {\n newCollectionId: request.newFolderId,\n oldCollectionId: request.oldFolderId,\n objectIds: request.videoId\n };\n\n return {\n url: '/api/domain/v3/objects/move',\n key: `move:folder:${data.objectIds.join(',')}`,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: ['video']\n };\n },\n\n addToExchange(data: AddToExchangeRequest): Flight.Request {\n return {\n url: '{gateway}/v1/users/me/videos/exchange',\n key: 'add:to:exchange',\n type: HttpVerbs.POST,\n data\n };\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { BaseObject, BaseTree, MasterNestedObject } from 'libs/shared/interfaces';\nimport { TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nconst namespace = 'myVideos.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useShapeTree<T extends BaseObject>(\n trees: MasterNestedObject<T>[],\n rename: boolean = true\n): BaseTree<T> {\n return React.useMemo(() => {\n if (!trees?.length)\n return null;\n\n /**\n * Renaming \"<fullName>'s Workspace\"\n * to \"My Videos\"\n */\n const renamed = trees.map(t => ({\n ...t,\n data: {\n ...t.data,\n name: rename ? getPhrase('myVideos') : t.data.name\n }\n }));\n\n const rootBranches = renamed.map(TreeHelper.convertNestedObjectToTree);\n\n return {\n children: rootBranches\n } as BaseTree<T>;\n }, [trees]);\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport { Form, useFormikContext } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Tree } from 'libs/shared/components/tree/Tree';\nimport { BaseTree, Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'myVideos.addFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const AddFolderValidationSchema = Yup.object().shape({\n name: Yup\n .string()\n .required(() => getPhrase('nameRequired'))\n .max(255, () => getPhrase('maxNameLength')),\n folder: Yup.object().required()\n});\n\nexport interface AddFolderFormData {\n name: string;\n folder: Folder;\n}\n\ninterface AddFolderFormProps {\n onClickCancel: () => void;\n folders: BaseTree<Folder>;\n showSpinner: boolean;\n}\n\nexport function AddFolderForm(props: AddFolderFormProps): JSX.Element {\n const formikProps = useFormikContext<AddFolderFormData>();\n\n return (\n <Form>\n <FormField\n label={getPhrase('name')}\n type='text'\n name='name'\n id='name'\n placeholder={getPhrase('placeholder')}\n autoFocus\n value={formikProps.values.name}\n required\n />\n <FormField\n label={getPhrase('parentFolder')}\n name='folder'\n >\n {() => (\n <Scrollbars autoHeight autoHeightMax={300} className='border rounded-3'>\n <Tree\n tree={props.folders}\n onSelect={(folder: Folder) => formikProps.setFieldValue('folder', folder)}\n selectedIds={formikProps.values.folder?.id ? [formikProps.values.folder.id] : undefined}\n selectedLinkClassName='bg-light'\n openDepth={1}\n maxDisplayDepth={6}\n />\n </Scrollbars>\n )}\n </FormField>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.onClickCancel} />\n <PopupButtons.Submit variant='dark' showSpinner={props.showSpinner} />\n </PopupButtons>\n </Form>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Folder, Library, LibraryTree, PopupViewProps } from 'libs/shared/interfaces';\nimport { DEFAULT_MAX_DEPTH, TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { MyVideosRequests } from 'apps/my-videos/flight-requests/MyVideosRequests';\nimport { useShapeTree } from 'apps/my-videos/hooks/useShapeTree';\n\nimport { AddFolderForm, AddFolderFormData, AddFolderValidationSchema } from './AddFolderForm';\n\nconst namespace = 'myVideos.addFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddFolderViewProps extends PopupViewProps {\n parentFolderId: string;\n}\n\nexport function AddFolderView(props: AddFolderViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const workspace = Flight.useBasicFetch<Library>(UserRequests.workspace());\n const workspaceFolders = Flight.useBasicFetch<LibraryTree[]>(MyVideosRequests.workspaceWithCategories());\n const folders = useShapeTree(workspaceFolders.data);\n\n const initialFolder = React.useMemo(() => {\n return TreeHelper.find(folders, props.parentFolderId);\n }, [ folders, props.parentFolderId ]);\n\n React.useEffect(() => {\n if (!workspaceFolders.data) return;\n\n if (TreeHelper.findDepth(workspaceFolders.data, props.parentFolderId) === DEFAULT_MAX_DEPTH) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.MAX_FOLDER_DEPTH,\n args: [DEFAULT_MAX_DEPTH]\n });\n }\n }, [workspaceFolders.hasCompleted]);\n\n async function onSubmit(data: AddFolderFormData): Promise<void> {\n setShowSpinner(true);\n\n try {\n const folder = await fetchAsync<Folder>(MyVideosRequests.addFolder({\n collectionId: workspace.data.id,\n name: data.name,\n // If we're adding to the root category tree, we don't pass a parent category id.\n parentCategoryId: data.folder.id === workspace.data.id ? undefined : data.folder.id\n }));\n alerts.success(getPhrase('success'));\n props.closePopup();\n\n AnalyticsHelper.logUserAction({\n id: folder.id,\n name: folder.name\n }, {\n entity: EntityType.Folder,\n actionType: UserAction.Create,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n } catch {\n alerts.error(getPhrase('error'));\n props.closePopup();\n }\n }\n\n const hasLoaded = (\n workspace.hasCompleted &&\n workspaceFolders.hasCompleted\n );\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!hasLoaded}\n >\n {hasLoaded &&\n <FormWrapper<AddFolderFormData>\n initialValues={{ name: '', folder: initialFolder }}\n validationSchema={AddFolderValidationSchema}\n onSubmit={onSubmit}\n validateOnMount\n >\n <AddFolderForm\n onClickCancel={props.closePopup}\n folders={folders}\n showSpinner={showSpinner}\n />\n </FormWrapper>\n }\n </Popup>\n );\n}"],"names":["MyVideosRequests","videos","id","cursor","typeFilter","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","videoQuery","clipQuery","interactiveQuery","query","length","includes","push","params","join","permissionFilterOption","url","key","Array","isArray","workspaceWithCategories","type","maxCategoryDepth","normalize","exchangeWithCategories","addFolder","data","collectionId","parentCategoryId","name","invalidationKeys","deleteFolder","moveFolder","assocType","newCollectionId","newFolderId","oldCollectionId","oldFolderId","objectIds","moveFolderId","updateFolder","videoFolders","videoId","libraryId","moveVideo","request","addToExchange","getPhrase","useShapeTree","trees","rename","children","map","t","LanguageService","AddFolderValidationSchema","shape","required","max","folder","AddFolderForm","props","formikProps","FormField","label","placeholder","autoFocus","value","values","autoHeight","autoHeightMax","className","Tree","tree","folders","onSelect","setFieldValue","selectedIds","undefined","selectedLinkClassName","openDepth","maxDisplayDepth","PopupButtons","onClick","onClickCancel","variant","showSpinner","AddFolderView","setShowSpinner","fetchAsync","alerts","workspace","UserRequests","workspaceFolders","initialFolder","TreeHelper","parentFolderId","application","action","args","hasCompleted","hasLoaded","Popup","title","closePopup","showLoadingSpinner","FormWrapper","initialValues","validationSchema","onSubmit","success","AnalyticsHelper","entity","actionType","workflowPhase","location","error","validateOnMount"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5442],{30357:(e,t,n)=>{n.d(t,{V:()=>s});var r=n(32735),a=n(34509),i=n(89965),o=n(83345),l="share.embedSize";function s(e){var t=e.autoplay,n=e.setAutoplay,s=e.videoSize,c=e.setVideoSize,u=e.videoSizes;return r.createElement("div",{className:"d-flex align-items-center"},!!u.length&&r.createElement(r.Fragment,null,r.createElement("div",{className:"me-1"},r.createElement(o.x,{namespace:l,phrase:"videoSize"})),r.createElement("div",{className:"pe-3"},r.createElement(a.Z,null,r.createElement(a.Z.Toggle,{id:"embed-resolution",variant:"outline-dark"},s.label),r.createElement(a.Z.Menu,null,u.map((function(e){return r.createElement(a.Z.Item,{key:"".concat(e.width,"x").concat(e.height),onClick:function(){return c(e)}},e.label)})))))),r.createElement("div",{className:"me-2"},r.createElement(o.x,{namespace:l,phrase:"autoplay"})),r.createElement(i.X,{id:"autoplay-checkbox",checked:t,onChange:function(){return n(!t)}}))}},62124:(e,t,n)=>{n.d(t,{a:()=>m});var r=n(32735),a=n(92802),i=n(23481),o=n(9673),l=n(83345),s=n(83523),c=n(76177),u="shared.linkExpiry",d=i.T.encloseNamespace(u);function m(e){var t=(0,a.u6)();return r.createElement("div",{className:"d-flex justify-content-between align-items-center pb-3"},r.createElement("div",null,r.createElement("label",{className:"m-0",htmlFor:""},r.createElement(l.x,{namespace:u,phrase:"linkExpirationHeading"})),r.createElement("p",{className:"m-0"},r.createElement(l.x,{namespace:u,phrase:"linkExpirationInfo"}))),r.createElement(c.u,{title:d("passwordProtected"),disable:!e.passwordProtectLink,spanHack:!0,trigger:"hover"},r.createElement(s.Z,{onClick:function(){e.passwordProtectLink||t.setFieldValue("linkExpireDate",(0,o.o)(!t.values.linkExpireDate))},on:!!t.values.linkExpireDate,disabled:e.passwordProtectLink,showStateWhenDisabled:!0})))}},20847:(e,t,n)=>{n.d(t,{z:()=>g});var r=n(32735),a=n(92802),i=n(80130),o=n(23481),l=n(11607),s=n(83914),c=n(35223);const u={passwordButton:"W9Jl8"};function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var m=o.T.encloseNamespace("share.setPasswordInput");function p(e){var t,n,o,p=(n=r.useState(!1),o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(n,o)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(e,t):void 0}}(n,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=p[0],y=p[1],v=null===(t=(0,a.u6)().errors)||void 0===t?void 0:t.password;return r.createElement(r.Fragment,null,r.createElement("input",{className:"form-control ".concat(v?"is-invalid":""),value:e.value,onChange:function(t){e.canEdit&&e.onChange(t.target.value)},type:f?"text":"password",placeholder:e.placeholder||m("passwordPlaceholder"),readOnly:!e.canEdit}),!!v&&r.createElement(i.Z.Control.Feedback,{type:"invalid"},v),!!e.canEdit&&r.createElement(l.L,{className:u.passwordButton,onClick:function(){return y(!f)}},r.createElement(s.x,{svgName:f?c.vn.VisibleOn:c.vn.VisibleOff,title:m(f?"hidePassword":"revealPassword"),tooltipPlacement:"top"})),!e.canEdit&&!!e.canReset&&!!e.onReset&&r.createElement(l.L,{className:u.passwordButton,onClick:e.onReset},r.createElement(s.x,{svgName:c.vn.Close,title:m("resetPassword"),tooltipPlacement:"top"})))}var f=n(9673),y=n(83345),v=n(83523);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var b="shared.linkPassword",E="********";function g(e){var t,n,i,o=e.passwordProtectLink,l=e.setPasswordProtectLink,s=(0,a.u6)(),c=(n=r.useState(!!(null===(t=e.shareLink)||void 0===t?void 0:t.isPasswordProtected)),i=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(n,i)||function(e,t){if(e){if("string"==typeof e)return h(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)?h(e,t):void 0}}(n,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=c[0],d=c[1];return r.createElement("div",{className:"pb-3"},r.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.createElement("div",null,r.createElement("label",{className:"m-0",htmlFor:""},r.createElement(y.x,{namespace:b,phrase:"passwordProtectHeading"})),r.createElement("p",{className:"m-0"},r.createElement(y.x,{namespace:b,phrase:"passwordProtectInfo"}))),r.createElement(v.Z,{onClick:function(){var t;(null===(t=e.shareLink)||void 0===t?void 0:t.isPasswordProtected)&&s.setFieldValue("removePassword",o),s.setFieldValue("password",""),l(!o),s.setFieldValue("linkExpireDate",(0,f.o)(!o))},on:o})),o&&r.createElement("div",{className:"position-relative mt-2"},r.createElement(p,{value:u?E:s.values.password,onChange:function(e){s.setFieldValue("password",e)},onReset:function(){s.setFieldValue("password",""),s.setFieldValue("removePassword",!0),d(!1)},canEdit:!u,canReset:!0})))}},9673:(e,t,n)=>{n.d(t,{o:()=>a});var r=30;function a(e){if(!e)return null;var t=new Date;return t.setDate(t.getDate()+r),t.toISOString()}},61193:(e,t,n)=>{n.d(t,{d:()=>i});var r=n(5173),a=n(23481),i=(0,r.Ry)().shape({removePassword:(0,r.O7)(),resourceId:(0,r.Z_)(),linkExpireDate:(0,r.Z_)().nullable(),password:(0,r.Z_)().test({name:"password-length",exclusive:!1,params:{},message:a.T.getPhrase("share.validation","minPassword"),test:function(e){return!((null==e?void 0:e.length)&&e.length<3)}}).default("")})},82644:(e,t,n)=>{n.d(t,{b:()=>u,n:()=>c});var r=n(32735),a=n(92802),i=n(91967),o=n(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function c(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,c=e.initialValues,u=e.onSubmit,d=s(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),m=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(r){t.hasOwnProperty(r)&&(o.t.isObject(n[r])?e(n[r]):null===t[r]&&delete t[r])}))}(t),t}(c)):c,p={allowInitialSubmit:e.allowInitialSubmit};return r.createElement(a.J9,Object.assign({enableReinitialize:!0},d,{initialValues:m,onSubmit:function(t,r){var a=r.setSubmitting,i=r.resetForm,o=r.setFieldError,s=n&&e.validationSchema?e.validationSchema.cast(t):t;u(s,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&i(),n.errors)for(var r=0,s=Object.entries(n.errors);r<s.length;r++){var c=(e=s[r],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 r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}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=c[0],d=c[1];o(u,d)}a(!1)}))},initialStatus:p}),i.q.isFunction(e.children)?function(t){return e.children(t)}:r.Children.count(e.children)?e.children:null)}function u(){return(0,a.u6)()}c.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},70872:(e,t,n)=>{n.d(t,{u:()=>s});var r=n(32735),a=n(65858),i=n(36848),o=n(38647),l=n(31908);function s(e){var t,n,s,c=l.M.getCanBeConsumed(e.video).canNavigate,u=l.M.getTitle(e.video),d=Object.assign(Object.assign({},e.analyticsData),{id:null===(t=e.video)||void 0===t?void 0:t.id,name:null===(n=e.video)||void 0===n?void 0:n.name}),m=Object.assign(Object.assign({},e.analyticsOptions),{actionType:a.Vw.Click,descriptor:a._S.Title}),p=e.textClassName||"m-0 clamp-1 mb-n1 pb-1 align-middle ".concat("md"===e.size?"h4":"h5");return r.createElement(i.F,{className:e.linkClassName,appLink:c?e.appLink:null,analyticsOptions:m,analyticsData:d},r.createElement("h5",{className:p,title:null!==(s=e.video.name)&&void 0!==s?s:""},u,r.createElement(o.m,{size:e.size,video:e.video,yearGroups:e.yearGroups})))}},43472:(e,t,n)=>{n.r(t),n.d(t,{PluginShareView:()=>ye});var r=n(32735),a=n(70680),i=n(23481),o=n(81886),l=n(20354),s=n(28400),c=n(49985),u=n(65858),d=n(30439),m=n(64249),p=n(9111),f=n(5960),y=n(4594),v=n(16714),h=n(39151),b=n(1666),E=n(31949),g=n(69883),S=n(22902),w=n(37802),k=n(26450),O=n(45778),P=n(14070),x=n(97291),j=n(62756),C=n(47663);function I(e){return I="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},I(e)}function T(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,A(r.key),r)}}function A(e){var t=function(e,t){if("object"!=I(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=I(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==I(t)?t:t+""}function N(e,t,n){return t=V(t),function(e,t){if(t&&("object"===I(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,L()?Reflect.construct(t,n||[],V(e).constructor):t.apply(e,n))}function L(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(L=function(){return!!e})()}function V(e){return V=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},V(e)}function z(e,t){return z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},z(e,t)}var F="share.embedUnpublishedInteractiveError",R=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=N(this,t,["Embed unpublished interactive error"])).externalLink=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&z(e,t)}(t,e),n=t,(r=[{key:"name",get:function(){return"EmbedUnpublishedInteractiveError"}},{key:"dialogOptions",get:function(){return{title:i.T.getPhrase(F,"title"),text:i.T.getPhrase(F,"body",{externalLink:this.externalLink}),buttons:[{text:i.T.getPhrase(F,"close"),className:"btn btn-dark",success:!0}]}}}])&&T(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(C.S),D=n(13876),_=n(83345),Z=n(72355),B=n(70872),G=n(11882),M=n(54610),U=n(68626),$="share.smartEmbedConfirmation",H=i.T.encloseNamespace($);function W(e){return r.createElement(r.Fragment,null,r.createElement("div",{className:"row mb-3"},r.createElement("div",{className:"col-4"},r.createElement(Z.u,{video:e.entity,type:"cosmetic",imageOptions:{size:M.h2.Small},textPosition:U.z.Independent,preload:!0})),r.createElement("div",{className:"col-8"},r.createElement(G.$,{type:"series",analyticsOptions:{},video:e.entity}),r.createElement(B.u,{video:e.entity,analyticsOptions:{},appLink:null,yearGroups:null}))),r.createElement("p",null,r.createElement(_.x,{namespace:$,phrase:"prompt"})),r.createElement(D.u,null,r.createElement(D.u.Cancel,{onClick:e.closePopup}),r.createElement(D.u.Submit,{text:H("embed"),onClick:e.embed,variant:"dark"})))}var q=n(98269),J=n(80247),Q=n(92802),X=n(30357),Y=n(62124),K=n(20847),ee=n(61193),te=n(82644);function ne(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return re(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)?re(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function re(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ae="share.pluginShareSettings";function ie(e){var t,n,a,i,o=(0,Q.u6)(),l=(0,S.T)().hasPermissions,s=(0,j.G)().sizeSelector,c=!!(null===(t=e.shareLink)||void 0===t?void 0:t.isPasswordProtected)||!!(null===(n=e.shareLink)||void 0===n?void 0:n.linkExpireDate),u=ne(r.useState(c),2),d=u[0],m=u[1],p=ne(r.useState(!(null===(i=null===(a=e.shareLink)||void 0===a?void 0:a.isPasswordProtected)||void 0===i||!i)),2),f=p[0],y=p[1];return r.createElement(Q.l0,null,r.createElement("div",{className:"mb-4"},r.createElement("h2",{className:"h6"},r.createElement(_.x,{namespace:ae,phrase:"title"})),r.createElement(X.V,{autoplay:e.autoplay,setAutoplay:e.setAutoplay,videoSize:e.videoSize,setVideoSize:e.setVideoSize,videoSizes:s?e.videoSizes:[]})),d&&r.createElement("div",{className:"mt-2"},r.createElement("h2",{className:"h6"},r.createElement(_.x,{namespace:ae,phrase:"accessTitle"})),r.createElement(Y.a,{passwordProtectLink:f}),e.shareOverrideRestrictions&&r.createElement(K.z,{shareLink:e.shareLink,passwordProtectLink:f,setPasswordProtectLink:y})),r.createElement("div",{className:"d-flex justify-content-between"},r.createElement("div",null,!d&&l(v.C.ManageShareLinkSettings)&&r.createElement(q.Z,{type:"button",variant:"link",className:"text-info ps-0",onClick:function(){return m(!0)}},r.createElement(_.x,{namespace:ae,phrase:"showAdvanced"}))),r.createElement("div",null,r.createElement(q.Z,{className:"me-2",variant:"link",onClick:e.onClickCancel},"Cancel"),r.createElement(q.Z,{variant:"outline-dark",type:"submit"},o.isSubmitting?r.createElement(J.Z,{as:"span",animation:"border",role:"status",size:"sm"}):r.createElement(_.x,{namespace:ae,phrase:"embed"})))))}function oe(e){var t,n,a={password:"",removePassword:!1,linkExpireDate:null===(t=e.shareLink)||void 0===t?void 0:t.linkExpireDate,overrideRestrictions:null===(n=e.shareLink)||void 0===n?void 0:n.overrideRestrictions};return r.createElement(te.n,{initialValues:a,onSubmit:e.onClickEmbed,castInitialValues:!1,validationSchema:ee.d},r.createElement(ie,{shareLink:e.shareLink,onClickCancel:e.onClickCancel,autoplay:e.autoplay,setAutoplay:e.setAutoplay,videoSize:e.videoSize,setVideoSize:e.setVideoSize,videoSizes:e.videoSizes,privacy:e.privacy,entityType:e.entityType,hasStudentExp:e.hasStudentExp,entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions}))}var le=n(50023),se=n(99742),ce="share.postMessageSuccess",ue=i.T.encloseNamespace(ce);function de(e){return(0,j.G)().singleSelectMode?r.createElement("div",null,r.createElement("img",{className:"img-fluid mx-auto d-block",alt:"Success",src:se.W.SUCCESS,style:{maxWidth:"14rem"}}),r.createElement("p",{className:"text-center"},r.createElement("strong",null,r.createElement(_.x,{namespace:ce,phrase:"success"}))),r.createElement(D.u,null,r.createElement(D.u.Submit,{onClick:e.closePopup,text:ue("close"),variant:"outline-dark"}))):r.createElement(le.E,null)}function me(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return pe(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)?pe(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var fe=i.T.encloseNamespace("share.pluginShare");function ye(e){var t,n,i=(0,a.I0)(),C=(0,g.Z)(),I=(0,S.T)().hasPermissions,T=(0,w.r)(null),A=T.shareOverrideRestrictions,N=T.isLoadingSettings,L=(0,j.G)(),V=L.embed,z=L.smartEmbed,F=(0,L.isConsumer)(j.A.SmartEmbed),D=l.a.useBasicFetch(h.L.config()),_=l.a.useBasicFetch(E.N.currentUser()),Z=m.I.getFetchFunctionByType(e.entityType)(e.entityId,null===(t=_.data)||void 0===t?void 0:t.id),B=l.a.useBasicFetch(d.o.getShareLinkByObjectId(e.entityId)),G=l.a.useBasicFetch(d.o.getPrivacy(e.entityId)),M=l.a.useBasicFetch((null===(n=_.data)||void 0===n?void 0:n.isAuthenticated)&&b.h.yearGroups(_.data.customerId)),U=k.i.getEmbedResolutions(!1),$=me(r.useState(U[0]),2),H=$[0],q=$[1],J=me(r.useState(!1),2),Q=J[0],X=J[1],Y=me(r.useState(F?"smart-embed-main":"main"),2),K=Y[0],ee=Y[1];function te(t){V({entity:Z.data,entityType:e.entityType,shareLink:t,videoSize:H,autoplay:Q,primaryUrl:D.data.primaryUrl}),c.k.logUserAction(Object.assign(Object.assign({},Z.data),{shareLink:t}),c.k.mergeOptions(m.I.getAnalyticsOptions(e.entityType),{actionType:u.Vw.Share,descriptor:u.YM.PluginEmbed,eventVersion:u.eq.V4})),ee("post-message-sent")}function ne(t){B.data?m.I.updateLink(i,Z.data,e.entityType,B.data,t,C,(function(){return te(B.data)})):m.I.createLink({dispatch:i,entity:Z.data,entityType:e.entityType,alerts:C,password:t.password,linkExpireDate:t.linkExpireDate,success:te})}function re(){z(Z.data),ee("post-message-sent")}r.useEffect((function(){if(Z.hasCompleted&&O.G.isType(Z.data,y.E.Interactive)&&Z.data.status!==f.X.Published){var e=o.Q.C$.getHref({application:x.O.INTERACTIVES,action:P.e.Interactives.EDIT_INTERACTIVE,args:[Z.data.id,s.m.slugify(Z.data.name)]});o.Q.Ry.throw(new R(e))}}),[Z.hasCompleted]);var ae=D.data&&_.data&&Z.data&&B.hasCompleted&&G.data&&M.hasCompleted&&!N;return r.createElement(p.G,{title:fe("title"),closePopup:e.closePopup,showLoadingSpinner:!ae||null===K},function(){if(!ae)return r.createElement(r.Fragment,null);switch(K){case"post-message-sent":return r.createElement(de,{closePopup:e.closePopup});case"main":return r.createElement(oe,{shareLink:B.data,analyticsOptions:m.I.getAnalyticsOptions(e.entityType),onClickCancel:e.closePopup,onClickEmbed:ne,videoSize:H,setVideoSize:q,videoSizes:U,autoplay:Q,setAutoplay:X,privacy:G.data,entityType:e.entityType,hasStudentExp:I(v.C.StudentExperience),entity:Z.data,yearGroups:M.data,shareOverrideRestrictions:A});case"smart-embed-main":return r.createElement(W,{entity:Z.data,closePopup:e.closePopup,embed:re})}}())}}}]);
2
- //# sourceMappingURL=5442-01ffd95162-lite.chunk.js.map
2
+ //# sourceMappingURL=5442-5ddfa2d951-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/5442-01ffd95162-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/components/embed-size/EmbedSize.tsx","file:///app/packages/libs/shared/src/apps/share/components/link-expiry/LinkExpiry.tsx","file:///app/packages/libs/shared/src/apps/share/components/set-password-input/set-password-input.scss","file:///app/packages/libs/shared/src/apps/share/components/set-password-input/SetPasswordInput.tsx","file:///app/packages/libs/shared/src/apps/share/components/link-password/LinkPassword.tsx","file:///app/packages/libs/shared/src/apps/share/utils/LinkExpiryHelper.ts","file:///app/packages/libs/shared/src/apps/share/validation/ShareLinkSettingsValidationSchema.ts","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/components/video-list/components/video-item-title/VideoItemTitle.tsx","file:///app/packages/projects/lite/src/apps/share/errors/embed-unpublished-interactive/EmbedUnpublishedInteractiveError.ts","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/components/smart-embed-confirmation/SmartEmbedConfirmation.tsx","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/components/plugin-share-settings/PluginShareSettings.tsx","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/components/post-message-sent/PostMessageSent.tsx","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/PluginShareView.tsx"],"sourcesContent":["import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nconst namespace = 'share.embedSize';\n\ninterface EmbedSizeProps {\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n}\n\nexport function EmbedSize(props: EmbedSizeProps): React.ReactElement {\n const {\n autoplay,\n setAutoplay,\n videoSize,\n setVideoSize,\n videoSizes\n } = props;\n\n return (\n <div className='d-flex align-items-center'>\n {!!videoSizes.length &&\n <>\n <div className='me-1'>\n <Text namespace={namespace} phrase='videoSize' />\n </div>\n <div className='pe-3'>\n <Dropdown>\n <Dropdown.Toggle id='embed-resolution' variant='outline-dark'>\n {videoSize.label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n {videoSizes.map(size => (\n <Dropdown.Item\n key={`${size.width}x${size.height}`}\n onClick={() => setVideoSize(size)}\n >\n {size.label}\n </Dropdown.Item>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </div>\n </>\n }\n <div className='me-2'>\n <Text namespace={namespace} phrase='autoplay' />\n </div>\n <Checkbox id='autoplay-checkbox' checked={autoplay} onChange={() => setAutoplay(!autoplay)} />\n </div>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { getLinkExpiryDate } from 'libs/shared/apps/share/utils/LinkExpiryHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nconst namespace = 'shared.linkExpiry';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface LinkExpiryProps {\n passwordProtectLink: boolean;\n}\n\nexport function LinkExpiry(props: LinkExpiryProps): React.ReactElement {\n const formikProps = useFormikContext<EditShareLinkRequest>();\n\n function setLinkExpireDate(): void {\n if (props.passwordProtectLink)\n return;\n\n formikProps.setFieldValue('linkExpireDate', getLinkExpiryDate(!formikProps.values.linkExpireDate));\n }\n\n return (\n <div className='d-flex justify-content-between align-items-center pb-3'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='linkExpirationHeading' /></label>\n <p className='m-0'><Text namespace={namespace} phrase='linkExpirationInfo' /></p>\n </div>\n <Tooltip\n title={getPhrase('passwordProtected')}\n disable={!props.passwordProtectLink}\n spanHack\n trigger='hover'\n >\n <ToggleSwitch\n onClick={setLinkExpireDate}\n on={!!formikProps.values.linkExpireDate}\n disabled={props.passwordProtectLink}\n showStateWhenDisabled\n />\n </Tooltip>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"passwordButton\":\"W9Jl8\"};","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './set-password-input.scss';\n\nconst namespace = 'share.setPasswordInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SetPasswordInputProps {\n value: string;\n onChange: (value: string) => void;\n onReset?: () => void;\n /**\n * Allow user to view and edit current value.\n */\n canEdit?: boolean;\n /**\n * Don't allow user to view/edit current value\n * but allow them to clear it and enter a new value.\n */\n canReset?: boolean;\n placeholder?: string;\n}\n\nexport function SetPasswordInput(props: SetPasswordInputProps): JSX.Element {\n const [ revealPassword, setRevealPassword ] = React.useState(false);\n\n const formikProps = useFormikContext<EditShareLinkRequest>();\n\n const errorMsg = formikProps.errors?.password;\n\n return (\n <>\n <input\n className={`form-control ${errorMsg ? 'is-invalid' : ''}`}\n value={props.value}\n onChange={e => {\n !!props.canEdit && props.onChange(e.target.value);\n }}\n type={revealPassword ? 'text' : 'password'}\n placeholder={props.placeholder || getPhrase('passwordPlaceholder')}\n readOnly={!props.canEdit}\n />\n {!!errorMsg && (\n <Form.Control.Feedback type='invalid'>{errorMsg}</Form.Control.Feedback>\n )}\n {!!props.canEdit &&\n <DivButton className={styles.passwordButton} onClick={() => setRevealPassword(!revealPassword)}>\n <SvgContainer\n svgName={revealPassword ? cvSvgLibrary.VisibleOn : cvSvgLibrary.VisibleOff}\n title={getPhrase(revealPassword ? 'hidePassword' : 'revealPassword')}\n tooltipPlacement='top'\n />\n </DivButton>\n }\n {!props.canEdit && !!props.canReset && !!props.onReset &&\n <DivButton className={styles.passwordButton} onClick={props.onReset}>\n <SvgContainer\n svgName={cvSvgLibrary.Close} title={getPhrase('resetPassword')}\n tooltipPlacement='top'\n />\n </DivButton>\n }\n </>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { SetPasswordInput } from 'libs/shared/apps/share/components/set-password-input/SetPasswordInput';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { getLinkExpiryDate } from 'libs/shared/apps/share/utils/LinkExpiryHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { ShareLink } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.linkPassword';\n\nconst PASSWORD_PLACEHOLDER = '********';\n\ninterface LinkPasswordProps {\n shareLink: ShareLink;\n passwordProtectLink: boolean;\n setPasswordProtectLink: (protect: boolean) => void;\n}\n\nexport function LinkPassword(props: LinkPasswordProps): React.ReactElement {\n const { passwordProtectLink, setPasswordProtectLink } = props;\n\n const formikProps = useFormikContext<EditShareLinkRequest>();\n \n const [ readonlyPassword, setReadonlyPassword ] = React.useState(!!props.shareLink?.isPasswordProtected);\n\n function onTogglePasswordProtect(): void {\n if (props.shareLink?.isPasswordProtected)\n formikProps.setFieldValue('removePassword', passwordProtectLink);\n\n formikProps.setFieldValue('password', '');\n\n setPasswordProtectLink(!passwordProtectLink);\n formikProps.setFieldValue('linkExpireDate', getLinkExpiryDate(!passwordProtectLink));\n }\n\n function setPassword(password: string): void {\n formikProps.setFieldValue('password', password);\n }\n\n function resetPassword(): void {\n formikProps.setFieldValue('password', '');\n formikProps.setFieldValue('removePassword', true);\n setReadonlyPassword(false);\n }\n\n return (\n <div className='pb-3'>\n <div className='d-flex justify-content-between align-items-center'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='passwordProtectHeading' /></label>\n <p className='m-0'><Text namespace={namespace} phrase='passwordProtectInfo' /></p>\n </div>\n <ToggleSwitch onClick={onTogglePasswordProtect} on={passwordProtectLink} />\n </div>\n\n {passwordProtectLink &&\n <div className='position-relative mt-2'>\n <SetPasswordInput\n value={readonlyPassword ? PASSWORD_PLACEHOLDER : formikProps.values.password}\n onChange={setPassword}\n onReset={resetPassword}\n canEdit={!readonlyPassword}\n canReset\n />\n </div>\n }\n </div>\n );\n}","const LINK_EXPIRY_TIME = 30; // days\nexport function getLinkExpiryDate(shouldExpire: boolean): string | null {\n if (!shouldExpire)\n return null;\n\n const date = new Date();\n date.setDate(date.getDate() + LINK_EXPIRY_TIME);\n\n return date.toISOString();\n}","import { boolean, object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'share.validation';\n\nexport const ShareLinkSettingsValidationSchema = object().shape({\n removePassword: boolean(),\n resourceId: string(),\n linkExpireDate: string().nullable(),\n password: string()\n .test({\n name: 'password-length',\n exclusive: false,\n params: {},\n message: LanguageService.getPhrase(namespace, 'minPassword'),\n test: val => {\n const removePassword = ((this as any)?.parent as any)?.removePassword;\n\n if (removePassword)\n return true;\n\n if (!val?.length)\n return true;\n\n if (val.length < 3)\n return false;\n\n return true;\n }\n })\n .default('')\n});","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { Video, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface VideoItemTitleProps {\n video: Video;\n appLink: Core.AppLink;\n size?: VideoItemSize;\n analyticsData?: HashObject;\n analyticsOptions: AnalyticsOptions;\n yearGroups: YearGroup[];\n\n linkClassName?: string;\n textClassName?: string;\n}\n\nexport function VideoItemTitle(props: VideoItemTitleProps): JSX.Element {\n const { canNavigate } = VideoHelper.getCanBeConsumed(props.video);\n const title = VideoHelper.getTitle(props.video);\n\n const analyticsData: HashObject = {\n ...props.analyticsData,\n id: props.video?.id,\n name: props.video?.name\n };\n\n const analyticsOptions: AnalyticsOptions = {\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Title\n };\n\n const textClassName = props.textClassName || `m-0 clamp-1 mb-n1 pb-1 align-middle ${props.size === 'md' ? 'h4' : 'h5'}`;\n\n return (\n <AppLink\n className={props.linkClassName}\n appLink={canNavigate ? props.appLink : null}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <h5 className={textClassName} title={props.video.name ?? ''}>\n {title}\n <RestrictionPadlock\n size={props.size}\n video={props.video}\n yearGroups={props.yearGroups}\n />\n </h5>\n </AppLink>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\nconst namespace = 'share.embedUnpublishedInteractiveError';\n\nexport class EmbedUnpublishedInteractiveError extends DialogError {\n private externalLink: string;\n\n constructor(externalLink: string) {\n super('Embed unpublished interactive error');\n\n this.externalLink = externalLink;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'EmbedUnpublishedInteractiveError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n return {\n title: LanguageService.getPhrase(namespace, 'title'),\n text: LanguageService.getPhrase(namespace, 'body', {\n externalLink: this.externalLink\n }),\n buttons: [{\n text: LanguageService.getPhrase(namespace, 'close'),\n className: `btn btn-dark`,\n success: true\n }]\n };\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoItemTitle } from 'libs/shared/components/video-list/components/video-item-title/VideoItemTitle';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nconst namespace = 'share.smartEmbedConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SmartEmbedConfirmation {\n closePopup: () => void;\n embed: () => void;\n entity: VideoTypes;\n}\n\nexport function SmartEmbedConfirmation(props: SmartEmbedConfirmation): JSX.Element {\n return (\n <>\n <div className='row mb-3'>\n <div className='col-4'>\n <VideoThumbnail\n video={props.entity}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n />\n </div>\n <div className='col-8'>\n <VideoSubText type='series' analyticsOptions={{}} video={props.entity} />\n <VideoItemTitle video={props.entity} analyticsOptions={{}} appLink={null} yearGroups={null} />\n </div>\n </div>\n <p><Text namespace={namespace} phrase='prompt' /></p>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n text={getPhrase('embed')}\n onClick={props.embed}\n variant='dark'\n />\n </PopupButtons>\n </>\n );\n}","import React from 'react';\nimport { Button, Spinner } from 'react-bootstrap';\nimport { Form, useFormikContext } from 'formik';\n\nimport { EmbedSize } from 'libs/shared/apps/share/components/embed-size/EmbedSize';\nimport { LinkExpiry } from 'libs/shared/apps/share/components/link-expiry/LinkExpiry';\nimport { LinkPassword } from 'libs/shared/apps/share/components/link-password/LinkPassword';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { ShareLinkSettingsValidationSchema } from 'libs/shared/apps/share/validation/ShareLinkSettingsValidationSchema';\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { BaseObject, PropsWithAnalyticsOptions, ShareLink, YearGroup } from 'libs/shared/interfaces';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nconst namespace = 'share.pluginShareSettings';\n\ninterface PluginShareSettingsFormProps {\n shareLink: ShareLink;\n privacy: SharePrivacyResponse;\n onClickCancel: () => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n}\n\nfunction PluginShareSettingsForm(props: PluginShareSettingsFormProps): React.ReactElement {\n const formikProps = useFormikContext<EditShareLinkRequest>();\n \n const { hasPermissions } = usePermissions();\n\n const { sizeSelector } = usePluginHelper();\n\n const hasAdvanced = !!props.shareLink?.isPasswordProtected || !!props.shareLink?.linkExpireDate;\n const [ showAdvanced, setShowAdvanced ] = React.useState(hasAdvanced);\n\n const [\n passwordProtectLink, setPasswordProtectLink\n ] = React.useState(!!(props.shareLink?.isPasswordProtected ?? false));\n\n return (\n <Form>\n <div className='mb-4'>\n <h2 className='h6'><Text namespace={namespace} phrase='title' /></h2>\n <EmbedSize\n autoplay={props.autoplay}\n setAutoplay={props.setAutoplay}\n videoSize={props.videoSize}\n setVideoSize={props.setVideoSize}\n videoSizes={sizeSelector ? props.videoSizes : []}\n />\n </div>\n {showAdvanced && (\n <div className='mt-2'>\n <h2 className='h6'><Text namespace={namespace} phrase='accessTitle' /></h2>\n <LinkExpiry passwordProtectLink={passwordProtectLink}/>\n {props.shareOverrideRestrictions &&\n <LinkPassword\n shareLink={props.shareLink}\n passwordProtectLink={passwordProtectLink}\n setPasswordProtectLink={setPasswordProtectLink}\n />\n }\n </div>\n )}\n <div className='d-flex justify-content-between'>\n <div>\n {!showAdvanced && hasPermissions(PermissionName.ManageShareLinkSettings) && (\n <Button type='button' variant='link' className='text-info ps-0' onClick={() => setShowAdvanced(true)}>\n <Text namespace={namespace} phrase='showAdvanced' />\n </Button>\n )}\n </div>\n <div>\n <Button className='me-2' variant='link' onClick={props.onClickCancel}>Cancel</Button>\n <Button\n variant='outline-dark'\n type='submit'\n >\n {formikProps.isSubmitting\n ? <Spinner as='span' animation='border' role='status' size='sm' />\n : <Text namespace={namespace} phrase='embed' />}\n </Button>\n </div>\n </div>\n </Form>\n );\n}\n\ninterface PluginShareSettingsProps {\n shareLink: ShareLink;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n onClickEmbed: (data: EditShareLinkRequest) => void;\n onClickCancel: () => void;\n privacy: SharePrivacyResponse;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n}\n\nexport function PluginShareSettings(\n props: PropsWithAnalyticsOptions<PluginShareSettingsProps>\n): React.ReactElement {\n const initialValues: EditShareLinkRequest = {\n password: '',\n removePassword: false,\n linkExpireDate: props.shareLink?.linkExpireDate,\n overrideRestrictions: props.shareLink?.overrideRestrictions\n };\n\n return (\n <FormWrapper<EditShareLinkRequest>\n initialValues={initialValues}\n onSubmit={props.onClickEmbed}\n castInitialValues={false}\n validationSchema={ShareLinkSettingsValidationSchema}\n >\n <PluginShareSettingsForm\n shareLink={props.shareLink}\n onClickCancel={props.onClickCancel}\n autoplay={props.autoplay}\n setAutoplay={props.setAutoplay}\n videoSize={props.videoSize}\n setVideoSize={props.setVideoSize}\n videoSizes={props.videoSizes}\n privacy={props.privacy}\n entityType={props.entityType}\n hasStudentExp={props.hasStudentExp}\n entity={props.entity}\n yearGroups={props.yearGroups}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n />\n </FormWrapper>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { PopupLoadingSpinner } from 'libs/shared/components/popup/PopupLoadingSpinner';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nconst namespace = 'share.postMessageSuccess';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PostMessageSentProps {\n closePopup: () => void;\n}\n\nexport function PostMessageSent(props: PostMessageSentProps): React.ReactElement {\n const { singleSelectMode } = usePluginHelper();\n\n if (!singleSelectMode)\n return <PopupLoadingSpinner />;\n\n return (\n <div>\n <img\n className='img-fluid mx-auto d-block'\n alt='Success'\n src={ImageUrls.SUCCESS}\n style={{ maxWidth: '14rem' }}\n />\n <p className='text-center'>\n <strong><Text namespace={namespace} phrase='success' /></strong>\n </p>\n <PopupButtons>\n <PopupButtons.Submit onClick={props.closePopup} text={getPhrase('close')} variant='outline-dark' />\n </PopupButtons>\n </div>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EventVersion, ShareDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, PopupViewProps, ShareLink, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { EmbedHelper, EmbedResolution } from 'libs/shared/utils/EmbedHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { PluginConsumers, usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nimport { EmbedUnpublishedInteractiveError } from 'apps/share/errors/embed-unpublished-interactive/EmbedUnpublishedInteractiveError';\nimport { SmartEmbedConfirmation } from 'apps/share/views/plugin-share/components/smart-embed-confirmation/SmartEmbedConfirmation';\n\nimport { PluginShareSettings } from './components/plugin-share-settings/PluginShareSettings';\nimport { PostMessageSent } from './components/post-message-sent/PostMessageSent';\n\nconst namespace = 'share.pluginShare';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PluginShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n}\n\ntype ShareScreen = 'main' | 'post-message-sent' | 'restriction-warning' | 'smart-embed-main';\n\nexport function PluginShareView(props: PluginShareViewProps): React.ReactElement {\n const dispatch = useDispatch();\n\n const alerts = useAlerts();\n\n const { hasPermissions } = usePermissions();\n const { shareOverrideRestrictions, isLoadingSettings } = useSettings(null);\n\n const { embed, smartEmbed, isConsumer } = usePluginHelper();\n const isSmartEmbed = isConsumer(PluginConsumers.SmartEmbed);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(props.entityType)(props.entityId, currentUser.data?.id);\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareLinkByObjectId(props.entityId));\n\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(props.entityId));\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const videoSizes = EmbedHelper.getEmbedResolutions(false);\n const [ videoSize, setVideoSize ] = React.useState<EmbedResolution>(videoSizes[0]);\n const [ autoplay, setAutoplay ] = React.useState(false);\n const [ screen, setScreen ] = React.useState<ShareScreen>(isSmartEmbed ? 'smart-embed-main' : 'main');\n\n function postMessage(updatedShareLink: ShareLink): void {\n embed({\n entity: entity.data,\n entityType: props.entityType,\n shareLink: updatedShareLink,\n videoSize,\n autoplay,\n primaryUrl: config.data.primaryUrl\n });\n\n AnalyticsHelper.logUserAction({\n ...entity.data,\n shareLink: updatedShareLink\n }, AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(props.entityType), {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.PluginEmbed,\n eventVersion: EventVersion.V4\n }));\n\n setScreen('post-message-sent');\n }\n\n function onClickEmbed(data: EditShareLinkRequest): void {\n if (!shareLink.data) {\n ShareViewHelper.createLink({\n dispatch,\n entity: entity.data,\n entityType: props.entityType,\n alerts,\n password: data.password,\n linkExpireDate: data.linkExpireDate,\n success: postMessage\n });\n return;\n }\n\n ShareViewHelper.updateLink(\n dispatch,\n entity.data,\n props.entityType,\n shareLink.data,\n data,\n alerts,\n () => postMessage(shareLink.data)\n );\n }\n\n function onClickSmartEmbed(): void {\n smartEmbed(entity.data as VideoTypes);\n\n // TODO: Log analytics.\n\n setScreen('post-message-sent');\n }\n\n React.useEffect(() => {\n if (!entity.hasCompleted)\n return;\n\n // If the user is attempting to share an unpublished interactive, throw an error.\n if (\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) &&\n entity.data.status !== CurationStatus.Published\n ) {\n const interactiveUrl = Core.AppLinkHelper.getHref({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [ entity.data.id, TextHelper.slugify(entity.data.name) ]\n });\n\n Core.ErrorHelper.throw(new EmbedUnpublishedInteractiveError(interactiveUrl));\n }\n }, [entity.hasCompleted]);\n\n const loaded = config.data\n && currentUser.data\n && entity.data\n && shareLink.hasCompleted\n && privacy.data\n && yearGroups.hasCompleted\n && !isLoadingSettings;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || screen === null}\n >\n {(() => {\n if (!loaded)\n return <></>;\n\n switch (screen) {\n case 'post-message-sent':\n return <PostMessageSent closePopup={props.closePopup} />;\n case 'main':\n return (\n <PluginShareSettings\n shareLink={shareLink.data}\n analyticsOptions={ShareViewHelper.getAnalyticsOptions(props.entityType)}\n onClickCancel={props.closePopup}\n onClickEmbed={onClickEmbed}\n videoSize={videoSize}\n setVideoSize={setVideoSize}\n videoSizes={videoSizes}\n autoplay={autoplay}\n setAutoplay={setAutoplay}\n privacy={privacy.data}\n entityType={props.entityType}\n hasStudentExp={hasPermissions(PermissionName.StudentExperience)}\n entity={entity.data}\n yearGroups={yearGroups.data}\n shareOverrideRestrictions={shareOverrideRestrictions}\n />\n );\n case 'smart-embed-main':\n return (\n <SmartEmbedConfirmation\n entity={entity.data as VideoTypes}\n closePopup={props.closePopup}\n embed={onClickSmartEmbed}\n />\n );\n }\n })()}\n </Popup>\n );\n}"],"names":["namespace","EmbedSize","props","autoplay","setAutoplay","videoSize","setVideoSize","videoSizes","className","length","phrase","id","variant","label","map","size","key","width","height","onClick","checked","onChange","getPhrase","LinkExpiry","formikProps","htmlFor","title","disable","passwordProtectLink","spanHack","trigger","setFieldValue","values","linkExpireDate","on","disabled","showStateWhenDisabled","LanguageService","SetPasswordInput","revealPassword","setRevealPassword","errorMsg","errors","password","value","e","canEdit","target","type","placeholder","readOnly","Form","DivButton","SvgContainer","svgName","tooltipPlacement","canReset","onReset","PASSWORD_PLACEHOLDER","LinkPassword","setPasswordProtectLink","shareLink","isPasswordProtected","readonlyPassword","setReadonlyPassword","Text","ToggleSwitch","LINK_EXPIRY_TIME","getLinkExpiryDate","shouldExpire","date","Date","setDate","getDate","toISOString","ShareLinkSettingsValidationSchema","shape","removePassword","resourceId","nullable","test","name","exclusive","params","message","val","FormWrapper","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formattedInitialValues","validationSchema","cast","omitChildValues","child","Object","keys","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","entries","children","f","useFormikContextWrapper","defaultProps","VideoItemTitle","canNavigate","video","analyticsData","analyticsOptions","actionType","descriptor","textClassName","linkClassName","appLink","yearGroups","EmbedUnpublishedInteractiveError","externalLink","text","this","buttons","success","DialogError","SmartEmbedConfirmation","VideoThumbnail","entity","imageOptions","textPosition","ThumbnailTextPosition","preload","VideoSubText","PopupButtons","closePopup","embed","PluginShareSettingsForm","hasPermissions","usePermissions","sizeSelector","usePluginHelper","hasAdvanced","showAdvanced","setShowAdvanced","shareOverrideRestrictions","PermissionName","Button","onClickCancel","isSubmitting","Spinner","as","animation","role","PluginShareSettings","overrideRestrictions","onClickEmbed","privacy","entityType","hasStudentExp","PostMessageSent","singleSelectMode","alt","src","ImageUrls","style","maxWidth","PopupLoadingSpinner","PluginShareView","dispatch","alerts","useSettings","isLoadingSettings","smartEmbed","isSmartEmbed","isConsumer","config","ConfigRequests","currentUser","UserRequests","ShareViewHelper","entityId","data","ShareRequests","isAuthenticated","CustomerRequests","customerId","EmbedHelper","screen","setScreen","postMessage","updatedShareLink","primaryUrl","AnalyticsHelper","eventVersion","onClickSmartEmbed","hasCompleted","MasterTypeHelper","MasterType","status","CurationStatus","interactiveUrl","application","action","args","TextHelper","loaded","Popup","showLoadingSpinner"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/5442-5ddfa2d951-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/components/embed-size/EmbedSize.tsx","file:///app/packages/libs/shared/src/apps/share/components/link-expiry/LinkExpiry.tsx","file:///app/packages/libs/shared/src/apps/share/components/set-password-input/set-password-input.scss","file:///app/packages/libs/shared/src/apps/share/components/set-password-input/SetPasswordInput.tsx","file:///app/packages/libs/shared/src/apps/share/components/link-password/LinkPassword.tsx","file:///app/packages/libs/shared/src/apps/share/utils/LinkExpiryHelper.ts","file:///app/packages/libs/shared/src/apps/share/validation/ShareLinkSettingsValidationSchema.ts","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/components/video-list/components/video-item-title/VideoItemTitle.tsx","file:///app/packages/projects/lite/src/apps/share/errors/embed-unpublished-interactive/EmbedUnpublishedInteractiveError.ts","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/components/smart-embed-confirmation/SmartEmbedConfirmation.tsx","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/components/plugin-share-settings/PluginShareSettings.tsx","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/components/post-message-sent/PostMessageSent.tsx","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/PluginShareView.tsx"],"sourcesContent":["import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nconst namespace = 'share.embedSize';\n\ninterface EmbedSizeProps {\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n}\n\nexport function EmbedSize(props: EmbedSizeProps): React.ReactElement {\n const {\n autoplay,\n setAutoplay,\n videoSize,\n setVideoSize,\n videoSizes\n } = props;\n\n return (\n <div className='d-flex align-items-center'>\n {!!videoSizes.length &&\n <>\n <div className='me-1'>\n <Text namespace={namespace} phrase='videoSize' />\n </div>\n <div className='pe-3'>\n <Dropdown>\n <Dropdown.Toggle id='embed-resolution' variant='outline-dark'>\n {videoSize.label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n {videoSizes.map(size => (\n <Dropdown.Item\n key={`${size.width}x${size.height}`}\n onClick={() => setVideoSize(size)}\n >\n {size.label}\n </Dropdown.Item>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </div>\n </>\n }\n <div className='me-2'>\n <Text namespace={namespace} phrase='autoplay' />\n </div>\n <Checkbox id='autoplay-checkbox' checked={autoplay} onChange={() => setAutoplay(!autoplay)} />\n </div>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { getLinkExpiryDate } from 'libs/shared/apps/share/utils/LinkExpiryHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nconst namespace = 'shared.linkExpiry';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface LinkExpiryProps {\n passwordProtectLink: boolean;\n}\n\nexport function LinkExpiry(props: LinkExpiryProps): React.ReactElement {\n const formikProps = useFormikContext<EditShareLinkRequest>();\n\n function setLinkExpireDate(): void {\n if (props.passwordProtectLink)\n return;\n\n formikProps.setFieldValue('linkExpireDate', getLinkExpiryDate(!formikProps.values.linkExpireDate));\n }\n\n return (\n <div className='d-flex justify-content-between align-items-center pb-3'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='linkExpirationHeading' /></label>\n <p className='m-0'><Text namespace={namespace} phrase='linkExpirationInfo' /></p>\n </div>\n <Tooltip\n title={getPhrase('passwordProtected')}\n disable={!props.passwordProtectLink}\n spanHack\n trigger='hover'\n >\n <ToggleSwitch\n onClick={setLinkExpireDate}\n on={!!formikProps.values.linkExpireDate}\n disabled={props.passwordProtectLink}\n showStateWhenDisabled\n />\n </Tooltip>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"passwordButton\":\"W9Jl8\"};","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './set-password-input.scss';\n\nconst namespace = 'share.setPasswordInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SetPasswordInputProps {\n value: string;\n onChange: (value: string) => void;\n onReset?: () => void;\n /**\n * Allow user to view and edit current value.\n */\n canEdit?: boolean;\n /**\n * Don't allow user to view/edit current value\n * but allow them to clear it and enter a new value.\n */\n canReset?: boolean;\n placeholder?: string;\n}\n\nexport function SetPasswordInput(props: SetPasswordInputProps): JSX.Element {\n const [ revealPassword, setRevealPassword ] = React.useState(false);\n\n const formikProps = useFormikContext<EditShareLinkRequest>();\n\n const errorMsg = formikProps.errors?.password;\n\n return (\n <>\n <input\n className={`form-control ${errorMsg ? 'is-invalid' : ''}`}\n value={props.value}\n onChange={e => {\n !!props.canEdit && props.onChange(e.target.value);\n }}\n type={revealPassword ? 'text' : 'password'}\n placeholder={props.placeholder || getPhrase('passwordPlaceholder')}\n readOnly={!props.canEdit}\n />\n {!!errorMsg && (\n <Form.Control.Feedback type='invalid'>{errorMsg}</Form.Control.Feedback>\n )}\n {!!props.canEdit &&\n <DivButton className={styles.passwordButton} onClick={() => setRevealPassword(!revealPassword)}>\n <SvgContainer\n svgName={revealPassword ? cvSvgLibrary.VisibleOn : cvSvgLibrary.VisibleOff}\n title={getPhrase(revealPassword ? 'hidePassword' : 'revealPassword')}\n tooltipPlacement='top'\n />\n </DivButton>\n }\n {!props.canEdit && !!props.canReset && !!props.onReset &&\n <DivButton className={styles.passwordButton} onClick={props.onReset}>\n <SvgContainer\n svgName={cvSvgLibrary.Close} title={getPhrase('resetPassword')}\n tooltipPlacement='top'\n />\n </DivButton>\n }\n </>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { SetPasswordInput } from 'libs/shared/apps/share/components/set-password-input/SetPasswordInput';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { getLinkExpiryDate } from 'libs/shared/apps/share/utils/LinkExpiryHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { ShareLink } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.linkPassword';\n\nconst PASSWORD_PLACEHOLDER = '********';\n\ninterface LinkPasswordProps {\n shareLink: ShareLink;\n passwordProtectLink: boolean;\n setPasswordProtectLink: (protect: boolean) => void;\n}\n\nexport function LinkPassword(props: LinkPasswordProps): React.ReactElement {\n const { passwordProtectLink, setPasswordProtectLink } = props;\n\n const formikProps = useFormikContext<EditShareLinkRequest>();\n \n const [ readonlyPassword, setReadonlyPassword ] = React.useState(!!props.shareLink?.isPasswordProtected);\n\n function onTogglePasswordProtect(): void {\n if (props.shareLink?.isPasswordProtected)\n formikProps.setFieldValue('removePassword', passwordProtectLink);\n\n formikProps.setFieldValue('password', '');\n\n setPasswordProtectLink(!passwordProtectLink);\n formikProps.setFieldValue('linkExpireDate', getLinkExpiryDate(!passwordProtectLink));\n }\n\n function setPassword(password: string): void {\n formikProps.setFieldValue('password', password);\n }\n\n function resetPassword(): void {\n formikProps.setFieldValue('password', '');\n formikProps.setFieldValue('removePassword', true);\n setReadonlyPassword(false);\n }\n\n return (\n <div className='pb-3'>\n <div className='d-flex justify-content-between align-items-center'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='passwordProtectHeading' /></label>\n <p className='m-0'><Text namespace={namespace} phrase='passwordProtectInfo' /></p>\n </div>\n <ToggleSwitch onClick={onTogglePasswordProtect} on={passwordProtectLink} />\n </div>\n\n {passwordProtectLink &&\n <div className='position-relative mt-2'>\n <SetPasswordInput\n value={readonlyPassword ? PASSWORD_PLACEHOLDER : formikProps.values.password}\n onChange={setPassword}\n onReset={resetPassword}\n canEdit={!readonlyPassword}\n canReset\n />\n </div>\n }\n </div>\n );\n}","const LINK_EXPIRY_TIME = 30; // days\nexport function getLinkExpiryDate(shouldExpire: boolean): string | null {\n if (!shouldExpire)\n return null;\n\n const date = new Date();\n date.setDate(date.getDate() + LINK_EXPIRY_TIME);\n\n return date.toISOString();\n}","import { boolean, object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'share.validation';\n\nexport const ShareLinkSettingsValidationSchema = object().shape({\n removePassword: boolean(),\n resourceId: string(),\n linkExpireDate: string().nullable(),\n password: string()\n .test({\n name: 'password-length',\n exclusive: false,\n params: {},\n message: LanguageService.getPhrase(namespace, 'minPassword'),\n test: val => {\n const removePassword = ((this as any)?.parent as any)?.removePassword;\n\n if (removePassword)\n return true;\n\n if (!val?.length)\n return true;\n\n if (val.length < 3)\n return false;\n\n return true;\n }\n })\n .default('')\n});","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { Video, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface VideoItemTitleProps {\n video: Video;\n appLink: Core.AppLink;\n size?: VideoItemSize;\n analyticsData?: HashObject;\n analyticsOptions: AnalyticsOptions;\n yearGroups: YearGroup[];\n\n linkClassName?: string;\n textClassName?: string;\n}\n\nexport function VideoItemTitle(props: VideoItemTitleProps): JSX.Element {\n const { canNavigate } = VideoHelper.getCanBeConsumed(props.video);\n const title = VideoHelper.getTitle(props.video);\n\n const analyticsData: HashObject = {\n ...props.analyticsData,\n id: props.video?.id,\n name: props.video?.name\n };\n\n const analyticsOptions: AnalyticsOptions = {\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Title\n };\n\n const textClassName = props.textClassName || `m-0 clamp-1 mb-n1 pb-1 align-middle ${props.size === 'md' ? 'h4' : 'h5'}`;\n\n return (\n <AppLink\n className={props.linkClassName}\n appLink={canNavigate ? props.appLink : null}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <h5 className={textClassName} title={props.video.name ?? ''}>\n {title}\n <RestrictionPadlock\n size={props.size}\n video={props.video}\n yearGroups={props.yearGroups}\n />\n </h5>\n </AppLink>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\nconst namespace = 'share.embedUnpublishedInteractiveError';\n\nexport class EmbedUnpublishedInteractiveError extends DialogError {\n private externalLink: string;\n\n constructor(externalLink: string) {\n super('Embed unpublished interactive error');\n\n this.externalLink = externalLink;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'EmbedUnpublishedInteractiveError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n return {\n title: LanguageService.getPhrase(namespace, 'title'),\n text: LanguageService.getPhrase(namespace, 'body', {\n externalLink: this.externalLink\n }),\n buttons: [{\n text: LanguageService.getPhrase(namespace, 'close'),\n className: `btn btn-dark`,\n success: true\n }]\n };\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoItemTitle } from 'libs/shared/components/video-list/components/video-item-title/VideoItemTitle';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nconst namespace = 'share.smartEmbedConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SmartEmbedConfirmation {\n closePopup: () => void;\n embed: () => void;\n entity: VideoTypes;\n}\n\nexport function SmartEmbedConfirmation(props: SmartEmbedConfirmation): JSX.Element {\n return (\n <>\n <div className='row mb-3'>\n <div className='col-4'>\n <VideoThumbnail\n video={props.entity}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n />\n </div>\n <div className='col-8'>\n <VideoSubText type='series' analyticsOptions={{}} video={props.entity} />\n <VideoItemTitle video={props.entity} analyticsOptions={{}} appLink={null} yearGroups={null} />\n </div>\n </div>\n <p><Text namespace={namespace} phrase='prompt' /></p>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n text={getPhrase('embed')}\n onClick={props.embed}\n variant='dark'\n />\n </PopupButtons>\n </>\n );\n}","import React from 'react';\nimport { Button, Spinner } from 'react-bootstrap';\nimport { Form, useFormikContext } from 'formik';\n\nimport { EmbedSize } from 'libs/shared/apps/share/components/embed-size/EmbedSize';\nimport { LinkExpiry } from 'libs/shared/apps/share/components/link-expiry/LinkExpiry';\nimport { LinkPassword } from 'libs/shared/apps/share/components/link-password/LinkPassword';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { ShareLinkSettingsValidationSchema } from 'libs/shared/apps/share/validation/ShareLinkSettingsValidationSchema';\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { BaseObject, PropsWithAnalyticsOptions, ShareLink, YearGroup } from 'libs/shared/interfaces';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nconst namespace = 'share.pluginShareSettings';\n\ninterface PluginShareSettingsFormProps {\n shareLink: ShareLink;\n privacy: SharePrivacyResponse;\n onClickCancel: () => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n}\n\nfunction PluginShareSettingsForm(props: PluginShareSettingsFormProps): React.ReactElement {\n const formikProps = useFormikContext<EditShareLinkRequest>();\n \n const { hasPermissions } = usePermissions();\n\n const { sizeSelector } = usePluginHelper();\n\n const hasAdvanced = !!props.shareLink?.isPasswordProtected || !!props.shareLink?.linkExpireDate;\n const [ showAdvanced, setShowAdvanced ] = React.useState(hasAdvanced);\n\n const [\n passwordProtectLink, setPasswordProtectLink\n ] = React.useState(!!(props.shareLink?.isPasswordProtected ?? false));\n\n return (\n <Form>\n <div className='mb-4'>\n <h2 className='h6'><Text namespace={namespace} phrase='title' /></h2>\n <EmbedSize\n autoplay={props.autoplay}\n setAutoplay={props.setAutoplay}\n videoSize={props.videoSize}\n setVideoSize={props.setVideoSize}\n videoSizes={sizeSelector ? props.videoSizes : []}\n />\n </div>\n {showAdvanced && (\n <div className='mt-2'>\n <h2 className='h6'><Text namespace={namespace} phrase='accessTitle' /></h2>\n <LinkExpiry passwordProtectLink={passwordProtectLink}/>\n {props.shareOverrideRestrictions &&\n <LinkPassword\n shareLink={props.shareLink}\n passwordProtectLink={passwordProtectLink}\n setPasswordProtectLink={setPasswordProtectLink}\n />\n }\n </div>\n )}\n <div className='d-flex justify-content-between'>\n <div>\n {!showAdvanced && hasPermissions(PermissionName.ManageShareLinkSettings) && (\n <Button type='button' variant='link' className='text-info ps-0' onClick={() => setShowAdvanced(true)}>\n <Text namespace={namespace} phrase='showAdvanced' />\n </Button>\n )}\n </div>\n <div>\n <Button className='me-2' variant='link' onClick={props.onClickCancel}>Cancel</Button>\n <Button\n variant='outline-dark'\n type='submit'\n >\n {formikProps.isSubmitting\n ? <Spinner as='span' animation='border' role='status' size='sm' />\n : <Text namespace={namespace} phrase='embed' />}\n </Button>\n </div>\n </div>\n </Form>\n );\n}\n\ninterface PluginShareSettingsProps {\n shareLink: ShareLink;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n onClickEmbed: (data: EditShareLinkRequest) => void;\n onClickCancel: () => void;\n privacy: SharePrivacyResponse;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n}\n\nexport function PluginShareSettings(\n props: PropsWithAnalyticsOptions<PluginShareSettingsProps>\n): React.ReactElement {\n const initialValues: EditShareLinkRequest = {\n password: '',\n removePassword: false,\n linkExpireDate: props.shareLink?.linkExpireDate,\n overrideRestrictions: props.shareLink?.overrideRestrictions\n };\n\n return (\n <FormWrapper<EditShareLinkRequest>\n initialValues={initialValues}\n onSubmit={props.onClickEmbed}\n castInitialValues={false}\n validationSchema={ShareLinkSettingsValidationSchema}\n >\n <PluginShareSettingsForm\n shareLink={props.shareLink}\n onClickCancel={props.onClickCancel}\n autoplay={props.autoplay}\n setAutoplay={props.setAutoplay}\n videoSize={props.videoSize}\n setVideoSize={props.setVideoSize}\n videoSizes={props.videoSizes}\n privacy={props.privacy}\n entityType={props.entityType}\n hasStudentExp={props.hasStudentExp}\n entity={props.entity}\n yearGroups={props.yearGroups}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n />\n </FormWrapper>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { PopupLoadingSpinner } from 'libs/shared/components/popup/PopupLoadingSpinner';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nconst namespace = 'share.postMessageSuccess';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PostMessageSentProps {\n closePopup: () => void;\n}\n\nexport function PostMessageSent(props: PostMessageSentProps): React.ReactElement {\n const { singleSelectMode } = usePluginHelper();\n\n if (!singleSelectMode)\n return <PopupLoadingSpinner />;\n\n return (\n <div>\n <img\n className='img-fluid mx-auto d-block'\n alt='Success'\n src={ImageUrls.SUCCESS}\n style={{ maxWidth: '14rem' }}\n />\n <p className='text-center'>\n <strong><Text namespace={namespace} phrase='success' /></strong>\n </p>\n <PopupButtons>\n <PopupButtons.Submit onClick={props.closePopup} text={getPhrase('close')} variant='outline-dark' />\n </PopupButtons>\n </div>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EventVersion, ShareDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, PopupViewProps, ShareLink, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { EmbedHelper, EmbedResolution } from 'libs/shared/utils/EmbedHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { PluginConsumers, usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nimport { EmbedUnpublishedInteractiveError } from 'apps/share/errors/embed-unpublished-interactive/EmbedUnpublishedInteractiveError';\nimport { SmartEmbedConfirmation } from 'apps/share/views/plugin-share/components/smart-embed-confirmation/SmartEmbedConfirmation';\n\nimport { PluginShareSettings } from './components/plugin-share-settings/PluginShareSettings';\nimport { PostMessageSent } from './components/post-message-sent/PostMessageSent';\n\nconst namespace = 'share.pluginShare';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PluginShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n}\n\ntype ShareScreen = 'main' | 'post-message-sent' | 'restriction-warning' | 'smart-embed-main';\n\nexport function PluginShareView(props: PluginShareViewProps): React.ReactElement {\n const dispatch = useDispatch();\n\n const alerts = useAlerts();\n\n const { hasPermissions } = usePermissions();\n const { shareOverrideRestrictions, isLoadingSettings } = useSettings(null);\n\n const { embed, smartEmbed, isConsumer } = usePluginHelper();\n const isSmartEmbed = isConsumer(PluginConsumers.SmartEmbed);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(props.entityType)(props.entityId, currentUser.data?.id);\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareLinkByObjectId(props.entityId));\n\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(props.entityId));\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const videoSizes = EmbedHelper.getEmbedResolutions(false);\n const [ videoSize, setVideoSize ] = React.useState<EmbedResolution>(videoSizes[0]);\n const [ autoplay, setAutoplay ] = React.useState(false);\n const [ screen, setScreen ] = React.useState<ShareScreen>(isSmartEmbed ? 'smart-embed-main' : 'main');\n\n function postMessage(updatedShareLink: ShareLink): void {\n embed({\n entity: entity.data,\n entityType: props.entityType,\n shareLink: updatedShareLink,\n videoSize,\n autoplay,\n primaryUrl: config.data.primaryUrl\n });\n\n AnalyticsHelper.logUserAction({\n ...entity.data,\n shareLink: updatedShareLink\n }, AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(props.entityType), {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.PluginEmbed,\n eventVersion: EventVersion.V4\n }));\n\n setScreen('post-message-sent');\n }\n\n function onClickEmbed(data: EditShareLinkRequest): void {\n if (!shareLink.data) {\n ShareViewHelper.createLink({\n dispatch,\n entity: entity.data,\n entityType: props.entityType,\n alerts,\n password: data.password,\n linkExpireDate: data.linkExpireDate,\n success: postMessage\n });\n return;\n }\n\n ShareViewHelper.updateLink(\n dispatch,\n entity.data,\n props.entityType,\n shareLink.data,\n data,\n alerts,\n () => postMessage(shareLink.data)\n );\n }\n\n function onClickSmartEmbed(): void {\n smartEmbed(entity.data as VideoTypes);\n\n // TODO: Log analytics.\n\n setScreen('post-message-sent');\n }\n\n React.useEffect(() => {\n if (!entity.hasCompleted)\n return;\n\n // If the user is attempting to share an unpublished interactive, throw an error.\n if (\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) &&\n entity.data.status !== CurationStatus.Published\n ) {\n const interactiveUrl = Core.AppLinkHelper.getHref({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [ entity.data.id, TextHelper.slugify(entity.data.name) ]\n });\n\n Core.ErrorHelper.throw(new EmbedUnpublishedInteractiveError(interactiveUrl));\n }\n }, [entity.hasCompleted]);\n\n const loaded = config.data\n && currentUser.data\n && entity.data\n && shareLink.hasCompleted\n && privacy.data\n && yearGroups.hasCompleted\n && !isLoadingSettings;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || screen === null}\n >\n {(() => {\n if (!loaded)\n return <></>;\n\n switch (screen) {\n case 'post-message-sent':\n return <PostMessageSent closePopup={props.closePopup} />;\n case 'main':\n return (\n <PluginShareSettings\n shareLink={shareLink.data}\n analyticsOptions={ShareViewHelper.getAnalyticsOptions(props.entityType)}\n onClickCancel={props.closePopup}\n onClickEmbed={onClickEmbed}\n videoSize={videoSize}\n setVideoSize={setVideoSize}\n videoSizes={videoSizes}\n autoplay={autoplay}\n setAutoplay={setAutoplay}\n privacy={privacy.data}\n entityType={props.entityType}\n hasStudentExp={hasPermissions(PermissionName.StudentExperience)}\n entity={entity.data}\n yearGroups={yearGroups.data}\n shareOverrideRestrictions={shareOverrideRestrictions}\n />\n );\n case 'smart-embed-main':\n return (\n <SmartEmbedConfirmation\n entity={entity.data as VideoTypes}\n closePopup={props.closePopup}\n embed={onClickSmartEmbed}\n />\n );\n }\n })()}\n </Popup>\n );\n}"],"names":["namespace","EmbedSize","props","autoplay","setAutoplay","videoSize","setVideoSize","videoSizes","className","length","phrase","id","variant","label","map","size","key","width","height","onClick","checked","onChange","getPhrase","LinkExpiry","formikProps","htmlFor","title","disable","passwordProtectLink","spanHack","trigger","setFieldValue","values","linkExpireDate","on","disabled","showStateWhenDisabled","LanguageService","SetPasswordInput","revealPassword","setRevealPassword","errorMsg","errors","password","value","e","canEdit","target","type","placeholder","readOnly","Form","DivButton","SvgContainer","svgName","tooltipPlacement","canReset","onReset","PASSWORD_PLACEHOLDER","LinkPassword","setPasswordProtectLink","shareLink","isPasswordProtected","readonlyPassword","setReadonlyPassword","Text","ToggleSwitch","LINK_EXPIRY_TIME","getLinkExpiryDate","shouldExpire","date","Date","setDate","getDate","toISOString","ShareLinkSettingsValidationSchema","shape","removePassword","resourceId","nullable","test","name","exclusive","params","message","val","FormWrapper","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formattedInitialValues","validationSchema","cast","omitChildValues","child","Object","keys","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","entries","children","f","useFormikContextWrapper","defaultProps","VideoItemTitle","canNavigate","video","analyticsData","analyticsOptions","actionType","descriptor","textClassName","linkClassName","appLink","yearGroups","EmbedUnpublishedInteractiveError","externalLink","text","this","buttons","success","DialogError","SmartEmbedConfirmation","VideoThumbnail","entity","imageOptions","textPosition","ThumbnailTextPosition","preload","VideoSubText","PopupButtons","closePopup","embed","PluginShareSettingsForm","hasPermissions","usePermissions","sizeSelector","usePluginHelper","hasAdvanced","showAdvanced","setShowAdvanced","shareOverrideRestrictions","PermissionName","Button","onClickCancel","isSubmitting","Spinner","as","animation","role","PluginShareSettings","overrideRestrictions","onClickEmbed","privacy","entityType","hasStudentExp","PostMessageSent","singleSelectMode","alt","src","ImageUrls","style","maxWidth","PopupLoadingSpinner","PluginShareView","dispatch","alerts","useSettings","isLoadingSettings","smartEmbed","isSmartEmbed","isConsumer","config","ConfigRequests","currentUser","UserRequests","ShareViewHelper","entityId","data","ShareRequests","isAuthenticated","CustomerRequests","customerId","EmbedHelper","screen","setScreen","postMessage","updatedShareLink","primaryUrl","AnalyticsHelper","eventVersion","onClickSmartEmbed","hasCompleted","MasterTypeHelper","MasterType","status","CurationStatus","interactiveUrl","application","action","args","TextHelper","loaded","Popup","showLoadingSpinner"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5591],{94644:(e,t,r)=>{r.d(t,{r:()=>u});var n=r(50242),a=r(81886),i=r(67058),c=r(14553),o=r(49267),s=r(49075),l={notFound:i.d,forbidden:{rating:c.q,yearLevel:c.q,region:o.a,privacy:c.q},badRequest:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var c=Object.assign(Object.assign({},l),t);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==n.o.NotFound?i!==n.o.Forbidden?r.badRequest||a.Q.Ry.throw(new c.badRequest):r.forbidden||a.Q.Ry.throw(new c.forbidden.privacy):r.notFound||a.Q.Ry.throw(new c.notFound))}}},91286:(e,t,r)=>{r.d(t,{v:()=>c});var n=r(32735),a=r(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function c(e,t,r){var c=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){c.forEach((function(e){(0,a.r)(e.statusCode,t,r)}))}),[i(c),t,r])}},84062:(e,t,r)=>{r.d(t,{M:()=>y});var n=r(32735),a=r(17082),i=r(65858),c=r(38647),o=r(16714),s=r(22902),l=r(31908),u=r(26492),d=r(78166),v=r(27638),m=r(22490),f=r(57245);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function y(e){var t,r,y=e.shareLink?i.LZ.PlaySharedInteractive:i.LZ.PlayInteractive,g=(t=n.useState(!0),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,c,o=[],s=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=r.return&&(c=r.return(),Object(c)!==c))return}finally{if(l)throw a}}return o}}(t,r)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?p(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=g[0],h=g[1],E=l.M.isVideoTypeArchived(e.interactive),I=n.useMemo((function(){return(0,a.oD)()}),[]),P=(0,v.u)(y),w=P.setFavourite,N=P.canFavourite,S=(0,s.T)().hasPermissions;return n.createElement("div",{className:"px-3"},E&&n.createElement(u.T,{typeId:e.interactive.typeId,hasStudentExperience:!0}),n.createElement("div",{className:"mb-3"},n.createElement(f._,{config:e.config,video:e.interactive,currentUser:e.currentUser,shareLink:e.shareLink,viewKey:e.viewKey,startTime:e.startTime,onShowSummary:function(e){h(!e)},summaryPortalNode:I})),n.createElement("div",null,b&&n.createElement("h1",{className:"h3 d-flex"},e.interactive.name,n.createElement(c.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups}))),n.createElement(a.t0,{node:I}),!S(o.C.StudentExperience)&&n.createElement(d.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,currentUser:e.currentUser,setFavourite:w,canFavourite:N,relatedVideos:e.relatedVideos,audiences:e.audiences,getVideoAppLink:function(t,r){var n;return m.W.getAppLink(t,Object.assign(Object.assign({},r),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:null===(n=e.shareLink)||void 0===n?void 0:n.id,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv}))}},25758:(e,t,r)=>{r.d(t,{x:()=>F});var n=r(32735),a=r(17082),i=r(23481),c=r(28400),o=r(65858),s=r(83657),l=r(36848),u=r(83345),d=r(38647),v=r(11518),m=r(47862),f=r(10439),p=r(35429),y=r(5960),g=r(4594),b=r(58704),h=r(31908),E=r(47938),I=r(78166),P=r(14070),w=r(97291),N=r(10671),S=r(27638),x=r(22490),A=r(83914),C=r(83523),T=r(76177),k=r(35223),j=i.T.encloseNamespace("interactives.previewInteractive");function O(e){return n.createElement("div",{className:"alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center",role:"alert"},e.isArchived?n.createElement("div",{className:"d-flex align-items-center"},n.createElement(A.x,{svgName:k.vn.Archive,size:A.S.Standard,className:"me-2 svg-container"}),n.createElement("div",{className:"w-100"},n.createElement("p",{className:"fw-semibold mb-0"},j("archivedInfoTitle")),n.createElement("p",{className:"mb-1"},j("archivedInfo")))):n.createElement(u.x,{phrase:"alert"}),e.isPreviewPreventScrubbingEnabled&&n.createElement(T.u,{title:j("previewPreventScrubbingExplain"),trigger:"hover",spanHack:!0},n.createElement("div",{className:"d-flex mt-1 mt-lg-0"},n.createElement("div",{className:"me-2"},n.createElement(u.x,{phrase:"previewPreventScrubbing"})),n.createElement(C.Z,{on:e.isPreviewingPreventScrubbing,onClick:e.toggleStudentMode}))))}function V(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var L="interactives.previewInteractive",q=i.T.encloseNamespace(L);function F(e){var t,r,i,A,C,T,k,j,F,M=e.shareId?o.LZ.PreviewSharedInteractive:o.LZ.PreviewInteractive,R=(0,p.g)(),_=(j=n.useState(!1),F=2,function(e){if(Array.isArray(e))return e}(j)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,c,o=[],s=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=r.return&&(c=r.return(),Object(c)!==c))return}finally{if(l)throw a}}return o}}(j,F)||function(e,t){if(e){if("string"==typeof e)return V(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?V(e,t):void 0}}(j,F)||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=_[0],G=_[1],D=h.M.getCanBeConsumed(e.interactive).canConsume,Z=n.useMemo((function(){return(0,a.oD)()}),[]),$=(0,N._)({location:N.i.PlayPage,shareId:e.shareId}),Q=(0,S.u)(M),W=Q.setFavourite,z=Q.canFavourite;T=U,k=function(){var e,t,r;null===(r=null===(t=null===(e=R.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.togglePreviewPreventScrubbing)||void 0===r||r.call(t)},n.useEffect((function(){k()}),[T]);var B,K,Y,H,X=(B=e.interactive)._parentClip||B._parentVideo;h.M.isClip(X)?(K=null===(r=null===(t=X.interactives)||void 0===t?void 0:t.data)||void 0===r?void 0:r.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),Y=X.name,H={application:w.O.CLIPS,action:P.e.Clips.PLAY_CLIP,args:[X.id,c.m.slugify(X.name)]}):(K=null===(A=null===(i=X.interactives)||void 0===i?void 0:i.data)||void 0===A?void 0:A.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),Y=X.name,H={application:w.O.VIDEOS,action:P.e.Videos.PLAY_VIDEO,args:[X.id,c.m.slugify(X.name)]});var J=e.interactive.status===y.X.Draft;return n.createElement(u.D.Provider,{value:L},n.createElement("div",{className:"px-4"},n.createElement(E.W,{restrictions:e.interactive._restrictions,yearGroups:e.yearGroups,objectId:e.interactive.id,objectTypeId:g.E.Interactive,canManageVideoAccess:e.canManageVideoAccess}),n.createElement(O,{isPreviewPreventScrubbingEnabled:e.isPreviewPreventScrubbingEnabled,isPreviewingPreventScrubbing:U,toggleStudentMode:function(){G(!U)},isArchived:h.M.isVideoTypeArchived(e.interactive)}),n.createElement("div",{className:"mb-3"},D&&n.createElement(f.r,{key:e.interactive.id,objectId:e.interactive.id,objectTypeId:e.interactive.typeId,shareId:e.shareId,startTime:null!==(C=e.queryParams.t)&&void 0!==C?C:e.queryParams.startTime,mode:"default",location:"play-page"})),n.createElement("div",{className:"d-flex justify-content-between align-items-center"},n.createElement("div",{className:"inline-block w-100"},n.createElement("div",{className:"ms-2 float-end"},n.createElement(s.e,{actions:$.getVideoActions(e.interactive),actionsDropdownClassName:"btn btn-outline-dark",fetchMore:function(){return $.fetchMoreActions(e.interactive)}})),n.createElement("h1",{className:"h3 mb-2"},J&&n.createElement("div",{className:"badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base"},n.createElement(u.x,{phrase:"draft"})),e.interactive.name,n.createElement(d.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups})),h.M.canViewOriginalVideo(e.interactive)&&n.createElement("div",{className:"mb-1 me-3 clamp-1"},n.createElement(u.x,{phrase:"viewOriginal"})," ",n.createElement(l.F,{appLink:H,className:"text-info"},Y)))),e.interactive.description&&n.createElement("p",null,e.interactive.description),n.createElement("div",{className:"mb-3"},n.createElement(a.t0,{node:Z})),!!(null==K?void 0:K.length)&&n.createElement("div",{className:"pb-3"},n.createElement(v.kM,{name:q("otherInteractives",{count:K.length}),contents:b.z.Interactives,collection:K,prefetched:!0,getChildAppLink:function(e){return{application:w.O.INTERACTIVES,action:P.e.Interactives.VIEW_INTERACTIVE,args:[e.id,c.m.slugify(e.name)]}},childComponent:m.K,extraChildComponentProps:{video:X,questionsAppLink:{application:w.O.INTERACTIVES,action:P.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),n.createElement(I.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,setFavourite:W,canFavourite:z,currentUser:e.currentUser,audiences:e.audiences,relatedVideos:e.relatedVideos,getVideoAppLink:function(t,r){return x.W.getAppLink(t,Object.assign(Object.assign({},r),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv})))}},44110:(e,t,r)=>{r.d(t,{i:()=>c});var n=r(20354),a=r(89454),i=r(86698),c=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,r=e.getFallbackPresentation,c=t||r();return n.a.useBasicFetch(!!c&&a.O.presentationAudiences(c.id))}},53073:(e,t,r)=>{r.d(t,{f:()=>l});var n=r(20354),a=r(16714),i=r(12754),c=r(31949),o=r(22902),s=r(15311);function l(){var e=(0,o.T)().hasPermissions,t=(0,s.r)().hasProduct,r=n.a.useBasicFetch(c.N.currentUser());return!e(a.C.StudentExperience)&&t(i.x.Primary)&&r.data.isAuthenticated}},68050:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(95685),a=r.n(n),i=r(32735),c=r(46304),o=r(74512);const s=i.forwardRef((({bsPrefix:e,className:t,as:r="div",...n},i)=>{const s=(0,c.vE)(e,"row"),l=(0,c.pi)(),u=(0,c.zG)(),d=`${s}-cols`,v=[];return l.forEach((e=>{const t=n[e];let r;delete n[e],null!=t&&"object"==typeof t?({cols:r}=t):r=t;const a=e!==u?`-${e}`:"";null!=r&&v.push(`${d}${a}-${r}`)})),(0,o.jsx)(r,{ref:i,...n,className:a()(t,s,...v)})}));s.displayName="Row";const l=s}}]);
2
- //# sourceMappingURL=5591-98cfe6c6e5-lite.chunk.js.map
2
+ //# sourceMappingURL=5591-119d72ede5-lite.chunk.js.map