@clickview/lite 0.48.0-rc.1 → 0.48.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/languages/en.json +1 -1
  3. package/dist/scripts/{1197-52bedf8583-lite.chunk.js → 1197-bc02ba8644-lite.chunk.js} +2 -2
  4. package/dist/scripts/1197-bc02ba8644-lite.chunk.js.map +1 -0
  5. package/dist/scripts/{1285-e93a3f21ba-lite.chunk.js → 1285-746158eef6-lite.chunk.js} +2 -2
  6. package/dist/scripts/{1285-e93a3f21ba-lite.chunk.js.map → 1285-746158eef6-lite.chunk.js.map} +1 -1
  7. package/dist/scripts/1628-3104bf944c-lite.chunk.js +2 -0
  8. package/dist/scripts/1628-3104bf944c-lite.chunk.js.map +1 -0
  9. package/dist/scripts/{170-f48bfc1128-lite.chunk.js → 170-bf0dd6b8ae-lite.chunk.js} +3 -3
  10. package/dist/scripts/170-bf0dd6b8ae-lite.chunk.js.map +1 -0
  11. package/dist/scripts/2182-f4e560b5f9-lite.chunk.js +2 -0
  12. package/dist/scripts/2182-f4e560b5f9-lite.chunk.js.map +1 -0
  13. package/dist/scripts/227-c82ab0d861-lite.chunk.js +2 -0
  14. package/dist/scripts/227-c82ab0d861-lite.chunk.js.map +1 -0
  15. package/dist/scripts/{2469-c504f7a87d-lite.chunk.js → 2469-34d8afaeb3-lite.chunk.js} +2 -2
  16. package/dist/scripts/{2469-c504f7a87d-lite.chunk.js.map → 2469-34d8afaeb3-lite.chunk.js.map} +1 -1
  17. package/dist/scripts/{2679-6c0646cc30-lite.chunk.js → 2679-269830f57c-lite.chunk.js} +2 -2
  18. package/dist/scripts/2679-269830f57c-lite.chunk.js.map +1 -0
  19. package/dist/scripts/{2734-a792d5393b-lite.chunk.js → 2734-9533718178-lite.chunk.js} +2 -2
  20. package/dist/scripts/2734-9533718178-lite.chunk.js.map +1 -0
  21. package/dist/scripts/{2851-e79b075ea9-lite.chunk.js → 2851-c0655d1a1d-lite.chunk.js} +2 -2
  22. package/dist/scripts/2851-c0655d1a1d-lite.chunk.js.map +1 -0
  23. package/dist/scripts/{3157-327cefda57-lite.chunk.js → 3157-730ff8b0ce-lite.chunk.js} +2 -2
  24. package/dist/scripts/3157-730ff8b0ce-lite.chunk.js.map +1 -0
  25. package/dist/scripts/{3158-7cff145fc4-lite.chunk.js → 3158-fbc814c471-lite.chunk.js} +2 -2
  26. package/dist/scripts/3158-fbc814c471-lite.chunk.js.map +1 -0
  27. package/dist/scripts/4626-e91b79757e-lite.chunk.js +3 -0
  28. package/dist/scripts/4626-e91b79757e-lite.chunk.js.map +1 -0
  29. package/dist/scripts/{5442-eecab1d715-lite.chunk.js → 5442-2326dc9418-lite.chunk.js} +2 -2
  30. package/dist/scripts/{5442-eecab1d715-lite.chunk.js.map → 5442-2326dc9418-lite.chunk.js.map} +1 -1
  31. package/dist/scripts/{5591-a4850980ea-lite.chunk.js → 5591-90c4fa0949-lite.chunk.js} +2 -2
  32. package/dist/scripts/5591-90c4fa0949-lite.chunk.js.map +1 -0
  33. package/dist/scripts/{5940-3ddc297b7a-lite.chunk.js → 5940-634de60f9b-lite.chunk.js} +2 -2
  34. package/dist/scripts/5940-634de60f9b-lite.chunk.js.map +1 -0
  35. package/dist/scripts/{6102-b712858bd1-lite.chunk.js → 6102-83f8006aec-lite.chunk.js} +3 -3
  36. package/dist/scripts/{6102-b712858bd1-lite.chunk.js.map → 6102-83f8006aec-lite.chunk.js.map} +1 -1
  37. package/dist/scripts/{6274-7d4c6ba241-lite.chunk.js → 6274-473fcd2e63-lite.chunk.js} +2 -2
  38. package/dist/scripts/{6274-7d4c6ba241-lite.chunk.js.map → 6274-473fcd2e63-lite.chunk.js.map} +1 -1
  39. package/dist/scripts/{7172-2d87ce76a3-lite.chunk.js → 7172-960e49b199-lite.chunk.js} +2 -2
  40. package/dist/scripts/7172-960e49b199-lite.chunk.js.map +1 -0
  41. package/dist/scripts/7180-79ada17b34-lite.chunk.js +2 -0
  42. package/dist/scripts/7180-79ada17b34-lite.chunk.js.map +1 -0
  43. package/dist/scripts/{7301-44362a7b42-lite.chunk.js → 7301-50cf0faef7-lite.chunk.js} +2 -2
  44. package/dist/scripts/{7301-44362a7b42-lite.chunk.js.map → 7301-50cf0faef7-lite.chunk.js.map} +1 -1
  45. package/dist/scripts/{7915-afd2304b08-lite.chunk.js → 7915-44db39c137-lite.chunk.js} +2 -2
  46. package/dist/scripts/7915-44db39c137-lite.chunk.js.map +1 -0
  47. package/dist/scripts/{8025-d7a573aca0-lite.chunk.js → 8025-24e45dc3b7-lite.chunk.js} +2 -2
  48. package/dist/scripts/8025-24e45dc3b7-lite.chunk.js.map +1 -0
  49. package/dist/scripts/823-ad4345f865-lite.chunk.js +2 -0
  50. package/dist/scripts/823-ad4345f865-lite.chunk.js.map +1 -0
  51. package/dist/scripts/{8258-6c86ad1fa4-lite.chunk.js → 8258-02d619de75-lite.chunk.js} +2 -2
  52. package/dist/scripts/{8258-6c86ad1fa4-lite.chunk.js.map → 8258-02d619de75-lite.chunk.js.map} +1 -1
  53. package/dist/scripts/8906-0821b0babe-lite.chunk.js +3 -0
  54. package/dist/scripts/8906-0821b0babe-lite.chunk.js.map +1 -0
  55. package/dist/scripts/{9212-d73ddd1ae6-lite.chunk.js → 9212-445b6499cb-lite.chunk.js} +2 -2
  56. package/dist/scripts/9212-445b6499cb-lite.chunk.js.map +1 -0
  57. package/dist/scripts/{9557-580fd7d743-lite.chunk.js → 9557-1ba0323e44-lite.chunk.js} +2 -2
  58. package/dist/scripts/{9557-580fd7d743-lite.chunk.js.map → 9557-1ba0323e44-lite.chunk.js.map} +1 -1
  59. package/dist/scripts/bundle-058c7cee3f.min.js +3 -0
  60. package/dist/scripts/bundle-058c7cee3f.min.js.map +1 -0
  61. package/package.json +1 -1
  62. package/dist/scripts/1197-52bedf8583-lite.chunk.js.map +0 -1
  63. package/dist/scripts/1628-58b55d05b5-lite.chunk.js +0 -2
  64. package/dist/scripts/1628-58b55d05b5-lite.chunk.js.map +0 -1
  65. package/dist/scripts/170-f48bfc1128-lite.chunk.js.map +0 -1
  66. package/dist/scripts/2182-da88a5c69c-lite.chunk.js +0 -2
  67. package/dist/scripts/2182-da88a5c69c-lite.chunk.js.map +0 -1
  68. package/dist/scripts/227-fb7b36b41a-lite.chunk.js +0 -2
  69. package/dist/scripts/227-fb7b36b41a-lite.chunk.js.map +0 -1
  70. package/dist/scripts/2679-6c0646cc30-lite.chunk.js.map +0 -1
  71. package/dist/scripts/2734-a792d5393b-lite.chunk.js.map +0 -1
  72. package/dist/scripts/2851-e79b075ea9-lite.chunk.js.map +0 -1
  73. package/dist/scripts/3157-327cefda57-lite.chunk.js.map +0 -1
  74. package/dist/scripts/3158-7cff145fc4-lite.chunk.js.map +0 -1
  75. package/dist/scripts/4626-cfc65aede5-lite.chunk.js +0 -3
  76. package/dist/scripts/4626-cfc65aede5-lite.chunk.js.map +0 -1
  77. package/dist/scripts/5591-a4850980ea-lite.chunk.js.map +0 -1
  78. package/dist/scripts/5940-3ddc297b7a-lite.chunk.js.map +0 -1
  79. package/dist/scripts/7172-2d87ce76a3-lite.chunk.js.map +0 -1
  80. package/dist/scripts/7180-b29d70e9d8-lite.chunk.js +0 -2
  81. package/dist/scripts/7180-b29d70e9d8-lite.chunk.js.map +0 -1
  82. package/dist/scripts/7915-afd2304b08-lite.chunk.js.map +0 -1
  83. package/dist/scripts/8025-d7a573aca0-lite.chunk.js.map +0 -1
  84. package/dist/scripts/823-7735476581-lite.chunk.js +0 -2
  85. package/dist/scripts/823-7735476581-lite.chunk.js.map +0 -1
  86. package/dist/scripts/8906-49532e8ec3-lite.chunk.js +0 -3
  87. package/dist/scripts/8906-49532e8ec3-lite.chunk.js.map +0 -1
  88. package/dist/scripts/9212-d73ddd1ae6-lite.chunk.js.map +0 -1
  89. package/dist/scripts/bundle-d3c605e0ba.min.js +0 -3
  90. package/dist/scripts/bundle-d3c605e0ba.min.js.map +0 -1
  91. /package/dist/scripts/{170-f48bfc1128-lite.chunk.js.LICENSE.txt → 170-bf0dd6b8ae-lite.chunk.js.LICENSE.txt} +0 -0
  92. /package/dist/scripts/{4626-cfc65aede5-lite.chunk.js.LICENSE.txt → 4626-e91b79757e-lite.chunk.js.LICENSE.txt} +0 -0
  93. /package/dist/scripts/{6102-b712858bd1-lite.chunk.js.LICENSE.txt → 6102-83f8006aec-lite.chunk.js.LICENSE.txt} +0 -0
  94. /package/dist/scripts/{8906-49532e8ec3-lite.chunk.js.LICENSE.txt → 8906-0821b0babe-lite.chunk.js.LICENSE.txt} +0 -0
  95. /package/dist/scripts/{bundle-d3c605e0ba.min.js.LICENSE.txt → bundle-058c7cee3f.min.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8258],{38365:(e,t,n)=>{n.d(t,{n:()=>w,W:()=>N});var a=n(32735),r=n(80247),i=n(80130),o=n(92802),l=n(91967),c=n(1048),s=n(36848),m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function u(e){var t=e.label,n=e.checkboxLabelClassName,r=e.checkboxLabelFontWeight,o=e.className,l=m(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return a.createElement(i.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check ".concat(o||"")},a.createElement(w,Object.assign({className:"form-check-input"},l)),a.createElement(i.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===r?"fw-normal":""," \n ").concat(n),htmlFor:l.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&a.createElement(a.Fragment,null,a.createElement("span",null," "),a.createElement(s.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var d=n(83914),p=n(83345),f=n(73814),b=n(35223);function v(e){var t=(0,o.u6)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const g={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var y=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},E="shared.formField";function w(e){var t,n,i=e.children,s=e.showLoadingSpinner,m=y(e,["children","showLoadingSpinner"]),u=(t=a.useState(e.type),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return 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}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=u[0],f=u[1],v=l.q.isFunction(i)?function(e){return i(e)}:a.Children.count(i)?i:null;if("password"!==m.type)return s?a.createElement("div",{className:"position-relative"},a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize"])),v),a.createElement("div",{className:g.spinner},a.createElement(r.Z,{animation:"border",size:"sm"}))):a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize"])),v);var E="position-relative ".concat(g.passwordContainer);return m.className&&(E+=" ".concat(m.className)),m.disabled&&(E+=" ".concat(g.passwordContainerDisabled)),a.createElement("div",{className:E},a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize","type","className"]),{type:p,className:"".concat(g.passwordInput," border-0 w-100 h-100 outline-none rounded")}),v),"password"===m.type&&a.createElement(d.x,{svgName:"password"===p?b.vn.VisibleOn:b.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(g.revealPassword),onClick:function(){f("password"===p?"text":"password")}}))}function N(e){var t=e.label,n=e.className,r=e.showCharacterCounter,l=e.showRequiredStar,s=e.infoTooltip,m=e.infoTooltipPlacement,h=e.infoText,N=e.formSize,S=e.showOptionalLabel,C=y(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),k=(0,o.u6)(),O=k.errors,x=k.touched,I=function(){};if("checkbox"===C.type){var R=c.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(R.onChange=I),a.createElement(u,Object.assign({},R))}var j=Object.assign(Object.assign({},C),{className:f.w.getCustomFormControlClassName(O,x,C.name,N,n,"string"==typeof e.as?e.as:null)});return e.disabled&&(j.onChange=I),a.createElement(i.Z.Group,{className:"form-group"},!!t&&a.createElement(i.Z.Label,{htmlFor:C.id,className:"d-flex align-items-center"},t,l&&a.createElement("span",{className:"text-danger"},"*"),s&&a.createElement(d.x,{className:"svg-container text-secondary ".concat(g.infoTooltip),svgName:b.vn.Info,title:s,tooltipPlacement:m,tooltipSpanHack:!0}),S&&a.createElement("span",{className:"text-secondary"}," ",a.createElement(p.x,{namespace:E,phrase:"optional"})),!!r&&!!C.maxLength&&a.createElement("div",{className:"ms-auto"},a.createElement(v,{fieldName:C.name,limit:C.maxLength}))),a.createElement(w,Object.assign({},j)),!!h&&a.createElement(i.Z.Text,{className:"text-secondary"},h),a.createElement(o.Bc,{name:C.name},(function(e){return a.createElement(i.Z.Control.Feedback,{type:"invalid"},e)})))}w.defaultProps={autoComplete:"off"},N.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,n)=>{n.d(t,{b:()=>m,n:()=>s});var a=n(32735),r=n(92802),i=n(91967),o=n(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var c=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,s=e.initialValues,m=e.onSubmit,u=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=o.t.deepClone(e);return function e(n){Object.keys(t).forEach((function(a){t.hasOwnProperty(a)&&(o.t.isObject(n[a])?e(n[a]):null===t[a]&&delete t[a])}))}(t),t}(s)):s,p={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.J9,Object.assign({enableReinitialize:!0},u,{initialValues:d,onSubmit:function(t,a){var r=a.setSubmitting,i=a.resetForm,o=a.setFieldError,c=n&&e.validationSchema?e.validationSchema.cast(t):t;m(c,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&i(),n.errors)for(var a=0,c=Object.entries(n.errors);a<c.length;a++){var s=(e=c[a],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=s[0],u=s[1];o(m,u)}r(!1)}))},initialStatus:p}),i.q.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function m(){return(0,r.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},73814:(e,t,n)=>{n.d(t,{w:()=>r});var a=n(92802),r={getCustomFormControlClassName:function(e,t,n,r,i,o){var l="";return l=function(e,t){var n="";return n="select"===e?"form-select":"form-control","sm"===t&&(n+=" ".concat(n,"-sm")),"lg"===t&&(n+=" ".concat(n,"-lg")),n}(o,r),(0,a.u9)(t,n)&&(0,a.u9)(e,n)&&(l+=" is-invalid"),i&&(l+=" ".concat(i)),l}}},9064:(e,t,n)=>{function a(e){var t,n,a,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return null;var o=Object.assign(Object.assign({},i),{id:e.id,interactiveId:e.interactiveId,name:e.name,status:e.status,originType:e.originType});return(null===(t=null==e?void 0:e._parentClip)||void 0===t?void 0:t.id)&&(o.clip={id:null===(n=null==e?void 0:e._parentClip)||void 0===n?void 0:n.id}),(null===(a=null==e?void 0:e._parentVideo)||void 0===a?void 0:a.id)&&(o.video={id:null===(r=null==e?void 0:e._parentVideo)||void 0===r?void 0:r.id}),o}n.d(t,{T:()=>a})},25050:(e,t,n)=>{n.r(t),n.d(t,{EditInteractiveDetailsView:()=>G});var a=n(32735),r=n(70680),i=n(23481),o=n(81886),l=n(20354),c=n(28400),s=n(49985),m=n(65858),u=n(80130),d=n(68050),p=n(69111),f=n(92802),b=n(5173),v=n(38365),g=n(82644),h=n(13876),y=n(77123),E=n(89965),w=n(27022);const N={dropdownMenu:"eDHti"};function S(e){function t(t){return e.selectedContentRegions.some((function(e){return e.id.toString()===t.id.toString()}))}var n,r=e.options.find((function(e){return e.systemName===w.t.GLOBAL})),i=t(r),o=e.options.filter((function(e){return e.systemName!==w.t.GLOBAL}));return a.createElement(y.Z,null,a.createElement(y.Z.Toggle,{id:e.id,variant:"outline-dark"},(null===(n=e.selectedContentRegions)||void 0===n?void 0:n.length)?e.selectedContentRegions.length>1?"".concat(e.selectedContentRegions.length," content regions"):e.selectedContentRegions[0].name:"None"),a.createElement(y.Z.Menu,{className:"".concat(N.dropdownMenu," px-2")},a.createElement(E.X,{key:r.id,label:r.name,name:r.id,id:r.id,onChange:function(){return function(t,n){n?e.onUpdateContentRegions([]):e.onUpdateContentRegions([t])}(r,i)},checked:i,className:"my-1"}),a.createElement(y.Z.Divider,null),o.map((function(n){return a.createElement(E.X,{key:n.id,label:n.name,name:n.id,id:n.id,onChange:function(){return a=n,void(t(n)?e.onUpdateContentRegions(e.selectedContentRegions.filter((function(e){return e.id.toString()!==a.id.toString()}))):e.onUpdateContentRegions(e.selectedContentRegions.concat(a)));var a},checked:t(n),className:"my-1 ".concat(i?"disabled":""),disabled:i})}))))}var C=n(83345),k=n(72355),O=n(54610),x=n(68626),I="interactives.editInteractiveDetails",R=i.T.encloseNamespace(I);function j(e){var t,n=e.interactiveMetadata,r=e.onClickCancel,i=(0,g.b)();return a.createElement(f.l0,null,a.createElement("div",{className:"row form-group"},a.createElement("div",{className:"col-5"},a.createElement(k.u,{video:n,type:"cosmetic",imageOptions:{size:O.h2.Small},textPosition:x.z.Independent,preload:!0})),a.createElement("div",{className:"col-7"},a.createElement("h2",{className:"h6"},i.values.name))),a.createElement(v.W,{label:R("nameLabel"),type:"text",name:"name",id:"name",placeholder:R("namePlaceholder"),autoFocus:!0,value:i.values.name}),a.createElement(v.W,{label:R("descriptionLabel"),component:"textarea",name:"description",id:"description",placeholder:R("descriptionPlaceholder"),value:i.values.description}),!!(null===(t=e.contentRegions)||void 0===t?void 0:t.length)&&a.createElement("div",{className:"pb-2"},a.createElement(v.W,{label:R("contentRegions"),name:"contentRegions",id:"contentRegions",value:i.values.contentRegions},(function(){return a.createElement("div",{className:"w-50"},a.createElement(S,{id:e.interactiveMetadata.id,options:e.contentRegions,selectedContentRegions:i.values.contentRegions,onUpdateContentRegions:function(e){return i.setFieldValue("contentRegions",e)}}))})),a.createElement(u.Z.Control.Feedback,{className:"d-block mt-n2",type:"invalid"},i.errors.contentRegions)),a.createElement(u.Z.Label,null,a.createElement(C.x,{namespace:I,phrase:"interactiveFeatures"})),a.createElement(d.Z,null,a.createElement(p.Z,null,a.createElement(u.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check"},a.createElement(v.n,{className:"form-check-input",label:R("preventScrubbingLabel"),name:"preventScrubbing",id:"preventScrubbing",type:"checkbox",checked:i.values.preventScrubbing}),a.createElement(u.Z.Label,{className:"form-check-label",htmlFor:"preventScrubbing"},a.createElement(C.x,{namespace:I,phrase:"preventScrubbingLabel"})," "),a.createElement("div",{className:"text-secondary"},a.createElement(C.x,{namespace:I,phrase:"preventScrubbingExplain"}))))),a.createElement(p.Z,null,a.createElement(u.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check"},a.createElement(v.n,{className:"form-check-input",label:R("immediateFeedbackLabel"),name:"immediateFeedback",id:"immediateFeedback",type:"checkbox",checked:i.values.immediateFeedback}),a.createElement(u.Z.Label,{className:"form-check-label",htmlFor:"immediateFeedback"},a.createElement(C.x,{namespace:I,phrase:"immediateFeedbackLabel"})," "),a.createElement("div",{className:"text-secondary"},a.createElement(C.x,{namespace:I,phrase:"immediateFeedbackExplain"})))))),a.createElement(h.u,null,a.createElement(h.u.Cancel,{onClick:r}),a.createElement(h.u.Submit,{variant:"dark",text:e.publish?R("publish"):R("save")})))}function T(e){var t,n,r,i,o=e.interactive,l=e.interactiveMetadata,c=e.onSubmit,s=e.onClickCancel,m=e.publish,u={name:l.name||"",description:l.description,immediateFeedback:o.immediateFeedback,preventScrubbing:o.preventScrubbing};return(null===(t=e.contentRegions)||void 0===t?void 0:t.length)&&(u.contentRegions=Array.isArray(l.contentRegions)?l.contentRegions:l.contentRegions.data),a.createElement(g.n,{initialValues:u,validationSchema:(r=!!(null===(n=e.contentRegions)||void 0===n?void 0:n.length),i={name:b.Z_().trim().max(255,(function(){return R("titleTooLong")})).required((function(){return R("titleRequired")})).default(""),description:b.Z_().max(16e3,(function(){return R("descriptionTooLong")})).default("")},r&&(i.contentRegions=b.IX().min(1,"Resources must have a content region").default([])),b.Ry().shape(i)),allowInitialSubmit:!0,onSubmit:c},a.createElement(j,{interactiveMetadata:l,onClickCancel:s,publish:m,contentRegions:e.contentRegions}))}var F=n(9111),L=n(5960),P=n(16714),V=n(20768),A=n(69883),Z=n(22902),M=n(31908),z=n(14070),_=n(97291),D=n(9064),U=i.T.encloseNamespace("interactives.editInteractiveDetailsView");function G(e){var t=e.interactiveMetadataId,n=e.publish,i=e.closePopup,u=(0,r.I0)(),d=(0,A.Z)(),p=(0,Z.T)().hasPermissions,f=l.a.useBasicFetch(V.b.interactiveMetadata(t)),b=l.a.useBasicFetch(f.data?V.b.interactive(f.data.interactiveId):null);function v(){d.error(U("error")),i()}function g(){var e=(0,D.T)(f.data);s.k.logUserAction(e,{actionType:n?m.Vw.Publish:m.Vw.Edit,entity:m.py.Interactive,location:m.LZ.EditInteractiveDetails,workflowPhase:m.eu.Discard,descriptor:n?m.Iq.Publish:void 0}),i()}var h=!!f.data&&!!b.data;return a.createElement(F.G,{title:U(n?"publishHeader":"editHeader"),closePopup:g,showLoadingSpinner:!h},a.createElement(T,{interactive:b.data,interactiveMetadata:f.data,onClickCancel:g,onSubmit:function(a){var r={id:b.data.id,name:a.name,duration:M.M.getDuration(f.data),immediateFeedback:!!a.immediateFeedback,preventScrubbing:!!a.preventScrubbing},g={name:a.name,description:a.description,status:n?L.X.Published:f.data.status},h=0,y=function(){h<1?h++:function(a){i(),d.success(U("success",{name:a,escapeText:!0}));var r=(0,D.T)(f.data);s.k.logUserAction(r,{actionType:n?m.Vw.Publish:m.Vw.Edit,entity:m.py.Interactive,location:m.LZ.EditInteractiveDetails,workflowPhase:n?m.eu.Complete:m.eu.Save,descriptor:n?m.Iq.Publish:void 0}),n&&(p(P.C.StudentExperience)?o.Q.C$.trigger({application:_.O.INTERACTIVES,action:z.e.Interactives.VIEW_INTERACTIVE,args:[e.interactiveMetadataId,c.m.slugify(f.data.name)]}):o.Q.C$.trigger({application:_.O.INTERACTIVES,action:z.e.Interactives.CONTRIBUTE_INTERACTIVE,args:[t]}))}(a.name)};l.a.fetch(u,V.b.updateInteractive(b.data.id,r,y,v)),l.a.fetch(u,V.b.updateInteractiveMetadata(f.data.id,g,y,v))},publish:n}))}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(95685),r=n.n(a),i=n(32735),o=n(46304),l=n(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:n="div",...a},i)=>{const c=(0,o.vE)(e,"row"),s=(0,o.pi)(),m=(0,o.zG)(),u=`${c}-cols`,d=[];return s.forEach((e=>{const t=a[e];let n;delete a[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const r=e!==m?`-${e}`:"";null!=n&&d.push(`${u}${r}-${n}`)})),(0,l.jsx)(n,{ref:i,...a,className:r()(t,c,...d)})}));c.displayName="Row";const s=c}}]);
2
- //# sourceMappingURL=8258-6c86ad1fa4-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8258],{38365:(e,t,n)=>{n.d(t,{n:()=>w,W:()=>N});var a=n(32735),r=n(80247),i=n(80130),o=n(92802),l=n(91967),c=n(1048),s=n(36848),m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function u(e){var t=e.label,n=e.checkboxLabelClassName,r=e.checkboxLabelFontWeight,o=e.className,l=m(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return a.createElement(i.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check ".concat(o||"")},a.createElement(w,Object.assign({className:"form-check-input"},l)),a.createElement(i.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===r?"fw-normal":""," \n ").concat(n),htmlFor:l.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&a.createElement(a.Fragment,null,a.createElement("span",null," "),a.createElement(s.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var d=n(83914),p=n(83345),f=n(73814),b=n(35223);function v(e){var t=(0,o.u6)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const g={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var y=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},E="shared.formField";function w(e){var t,n,i=e.children,s=e.showLoadingSpinner,m=y(e,["children","showLoadingSpinner"]),u=(t=a.useState(e.type),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return 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}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=u[0],f=u[1],v=l.q.isFunction(i)?function(e){return i(e)}:a.Children.count(i)?i:null;if("password"!==m.type)return s?a.createElement("div",{className:"position-relative"},a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize"])),v),a.createElement("div",{className:g.spinner},a.createElement(r.Z,{animation:"border",size:"sm"}))):a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize"])),v);var E="position-relative ".concat(g.passwordContainer);return m.className&&(E+=" ".concat(m.className)),m.disabled&&(E+=" ".concat(g.passwordContainerDisabled)),a.createElement("div",{className:E},a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize","type","className"]),{type:p,className:"".concat(g.passwordInput," border-0 w-100 h-100 outline-none rounded")}),v),"password"===m.type&&a.createElement(d.x,{svgName:"password"===p?b.vn.VisibleOn:b.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(g.revealPassword),onClick:function(){f("password"===p?"text":"password")}}))}function N(e){var t=e.label,n=e.className,r=e.showCharacterCounter,l=e.showRequiredStar,s=e.infoTooltip,m=e.infoTooltipPlacement,h=e.infoText,N=e.formSize,S=e.showOptionalLabel,C=y(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),k=(0,o.u6)(),O=k.errors,x=k.touched,I=function(){};if("checkbox"===C.type){var R=c.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(R.onChange=I),a.createElement(u,Object.assign({},R))}var j=Object.assign(Object.assign({},C),{className:f.w.getCustomFormControlClassName(O,x,C.name,N,n,"string"==typeof e.as?e.as:null)});return e.disabled&&(j.onChange=I),a.createElement(i.Z.Group,{className:"form-group"},!!t&&a.createElement(i.Z.Label,{htmlFor:C.id,className:"d-flex align-items-center"},t,l&&a.createElement("span",{className:"text-danger"},"*"),s&&a.createElement(d.x,{className:"svg-container text-secondary ".concat(g.infoTooltip),svgName:b.vn.Info,title:s,tooltipPlacement:m,tooltipSpanHack:!0}),S&&a.createElement("span",{className:"text-secondary"}," ",a.createElement(p.x,{namespace:E,phrase:"optional"})),!!r&&!!C.maxLength&&a.createElement("div",{className:"ms-auto"},a.createElement(v,{fieldName:C.name,limit:C.maxLength}))),a.createElement(w,Object.assign({},j)),!!h&&a.createElement(i.Z.Text,{className:"text-secondary"},h),a.createElement(o.Bc,{name:C.name},(function(e){return a.createElement(i.Z.Control.Feedback,{type:"invalid"},e)})))}w.defaultProps={autoComplete:"off"},N.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,n)=>{n.d(t,{b:()=>m,n:()=>s});var a=n(32735),r=n(92802),i=n(91967),o=n(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var c=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,s=e.initialValues,m=e.onSubmit,u=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=o.t.deepClone(e);return function e(n){Object.keys(t).forEach((function(a){t.hasOwnProperty(a)&&(o.t.isObject(n[a])?e(n[a]):null===t[a]&&delete t[a])}))}(t),t}(s)):s,p={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.J9,Object.assign({enableReinitialize:!0},u,{initialValues:d,onSubmit:function(t,a){var r=a.setSubmitting,i=a.resetForm,o=a.setFieldError,c=n&&e.validationSchema?e.validationSchema.cast(t):t;m(c,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&i(),n.errors)for(var a=0,c=Object.entries(n.errors);a<c.length;a++){var s=(e=c[a],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=s[0],u=s[1];o(m,u)}r(!1)}))},initialStatus:p}),i.q.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function m(){return(0,r.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},73814:(e,t,n)=>{n.d(t,{w:()=>r});var a=n(92802),r={getCustomFormControlClassName:function(e,t,n,r,i,o){var l="";return l=function(e,t){var n="";return n="select"===e?"form-select":"form-control","sm"===t&&(n+=" ".concat(n,"-sm")),"lg"===t&&(n+=" ".concat(n,"-lg")),n}(o,r),(0,a.u9)(t,n)&&(0,a.u9)(e,n)&&(l+=" is-invalid"),i&&(l+=" ".concat(i)),l}}},9064:(e,t,n)=>{function a(e){var t,n,a,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return null;var o=Object.assign(Object.assign({},i),{id:e.id,interactiveId:e.interactiveId,name:e.name,status:e.status,originType:e.originType});return(null===(t=null==e?void 0:e._parentClip)||void 0===t?void 0:t.id)&&(o.clip={id:null===(n=null==e?void 0:e._parentClip)||void 0===n?void 0:n.id}),(null===(a=null==e?void 0:e._parentVideo)||void 0===a?void 0:a.id)&&(o.video={id:null===(r=null==e?void 0:e._parentVideo)||void 0===r?void 0:r.id}),o}n.d(t,{T:()=>a})},25050:(e,t,n)=>{n.r(t),n.d(t,{EditInteractiveDetailsView:()=>G});var a=n(32735),r=n(70680),i=n(23481),o=n(81886),l=n(20354),c=n(28400),s=n(49985),m=n(65858),u=n(80130),d=n(68050),p=n(69111),f=n(92802),b=n(5173),v=n(38365),g=n(82644),h=n(13876),y=n(34509),E=n(89965),w=n(27022);const N={dropdownMenu:"eDHti"};function S(e){function t(t){return e.selectedContentRegions.some((function(e){return e.id.toString()===t.id.toString()}))}var n,r=e.options.find((function(e){return e.systemName===w.t.GLOBAL})),i=t(r),o=e.options.filter((function(e){return e.systemName!==w.t.GLOBAL}));return a.createElement(y.Z,null,a.createElement(y.Z.Toggle,{id:e.id,variant:"outline-dark"},(null===(n=e.selectedContentRegions)||void 0===n?void 0:n.length)?e.selectedContentRegions.length>1?"".concat(e.selectedContentRegions.length," content regions"):e.selectedContentRegions[0].name:"None"),a.createElement(y.Z.Menu,{className:"".concat(N.dropdownMenu," px-2")},a.createElement(E.X,{key:r.id,label:r.name,name:r.id,id:r.id,onChange:function(){return function(t,n){n?e.onUpdateContentRegions([]):e.onUpdateContentRegions([t])}(r,i)},checked:i,className:"my-1"}),a.createElement(y.Z.Divider,null),o.map((function(n){return a.createElement(E.X,{key:n.id,label:n.name,name:n.id,id:n.id,onChange:function(){return a=n,void(t(n)?e.onUpdateContentRegions(e.selectedContentRegions.filter((function(e){return e.id.toString()!==a.id.toString()}))):e.onUpdateContentRegions(e.selectedContentRegions.concat(a)));var a},checked:t(n),className:"my-1 ".concat(i?"disabled":""),disabled:i})}))))}var C=n(83345),k=n(72355),O=n(54610),x=n(68626),I="interactives.editInteractiveDetails",R=i.T.encloseNamespace(I);function j(e){var t,n=e.interactiveMetadata,r=e.onClickCancel,i=(0,g.b)();return a.createElement(f.l0,null,a.createElement("div",{className:"row form-group"},a.createElement("div",{className:"col-5"},a.createElement(k.u,{video:n,type:"cosmetic",imageOptions:{size:O.h2.Small},textPosition:x.z.Independent,preload:!0})),a.createElement("div",{className:"col-7"},a.createElement("h2",{className:"h6"},i.values.name))),a.createElement(v.W,{label:R("nameLabel"),type:"text",name:"name",id:"name",placeholder:R("namePlaceholder"),autoFocus:!0,value:i.values.name}),a.createElement(v.W,{label:R("descriptionLabel"),component:"textarea",name:"description",id:"description",placeholder:R("descriptionPlaceholder"),value:i.values.description}),!!(null===(t=e.contentRegions)||void 0===t?void 0:t.length)&&a.createElement("div",{className:"pb-2"},a.createElement(v.W,{label:R("contentRegions"),name:"contentRegions",id:"contentRegions",value:i.values.contentRegions},(function(){return a.createElement("div",{className:"w-50"},a.createElement(S,{id:e.interactiveMetadata.id,options:e.contentRegions,selectedContentRegions:i.values.contentRegions,onUpdateContentRegions:function(e){return i.setFieldValue("contentRegions",e)}}))})),a.createElement(u.Z.Control.Feedback,{className:"d-block mt-n2",type:"invalid"},i.errors.contentRegions)),a.createElement(u.Z.Label,null,a.createElement(C.x,{namespace:I,phrase:"interactiveFeatures"})),a.createElement(d.Z,null,a.createElement(p.Z,null,a.createElement(u.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check"},a.createElement(v.n,{className:"form-check-input",label:R("preventScrubbingLabel"),name:"preventScrubbing",id:"preventScrubbing",type:"checkbox",checked:i.values.preventScrubbing}),a.createElement(u.Z.Label,{className:"form-check-label",htmlFor:"preventScrubbing"},a.createElement(C.x,{namespace:I,phrase:"preventScrubbingLabel"})," "),a.createElement("div",{className:"text-secondary"},a.createElement(C.x,{namespace:I,phrase:"preventScrubbingExplain"}))))),a.createElement(p.Z,null,a.createElement(u.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check"},a.createElement(v.n,{className:"form-check-input",label:R("immediateFeedbackLabel"),name:"immediateFeedback",id:"immediateFeedback",type:"checkbox",checked:i.values.immediateFeedback}),a.createElement(u.Z.Label,{className:"form-check-label",htmlFor:"immediateFeedback"},a.createElement(C.x,{namespace:I,phrase:"immediateFeedbackLabel"})," "),a.createElement("div",{className:"text-secondary"},a.createElement(C.x,{namespace:I,phrase:"immediateFeedbackExplain"})))))),a.createElement(h.u,null,a.createElement(h.u.Cancel,{onClick:r}),a.createElement(h.u.Submit,{variant:"dark",text:e.publish?R("publish"):R("save")})))}function T(e){var t,n,r,i,o=e.interactive,l=e.interactiveMetadata,c=e.onSubmit,s=e.onClickCancel,m=e.publish,u={name:l.name||"",description:l.description,immediateFeedback:o.immediateFeedback,preventScrubbing:o.preventScrubbing};return(null===(t=e.contentRegions)||void 0===t?void 0:t.length)&&(u.contentRegions=Array.isArray(l.contentRegions)?l.contentRegions:l.contentRegions.data),a.createElement(g.n,{initialValues:u,validationSchema:(r=!!(null===(n=e.contentRegions)||void 0===n?void 0:n.length),i={name:b.Z_().trim().max(255,(function(){return R("titleTooLong")})).required((function(){return R("titleRequired")})).default(""),description:b.Z_().max(16e3,(function(){return R("descriptionTooLong")})).default("")},r&&(i.contentRegions=b.IX().min(1,"Resources must have a content region").default([])),b.Ry().shape(i)),allowInitialSubmit:!0,onSubmit:c},a.createElement(j,{interactiveMetadata:l,onClickCancel:s,publish:m,contentRegions:e.contentRegions}))}var F=n(9111),L=n(5960),P=n(16714),V=n(20768),A=n(69883),Z=n(22902),M=n(31908),z=n(14070),_=n(97291),D=n(9064),U=i.T.encloseNamespace("interactives.editInteractiveDetailsView");function G(e){var t=e.interactiveMetadataId,n=e.publish,i=e.closePopup,u=(0,r.I0)(),d=(0,A.Z)(),p=(0,Z.T)().hasPermissions,f=l.a.useBasicFetch(V.b.interactiveMetadata(t)),b=l.a.useBasicFetch(f.data?V.b.interactive(f.data.interactiveId):null);function v(){d.error(U("error")),i()}function g(){var e=(0,D.T)(f.data);s.k.logUserAction(e,{actionType:n?m.Vw.Publish:m.Vw.Edit,entity:m.py.Interactive,location:m.LZ.EditInteractiveDetails,workflowPhase:m.eu.Discard,descriptor:n?m.Iq.Publish:void 0}),i()}var h=!!f.data&&!!b.data;return a.createElement(F.G,{title:U(n?"publishHeader":"editHeader"),closePopup:g,showLoadingSpinner:!h},a.createElement(T,{interactive:b.data,interactiveMetadata:f.data,onClickCancel:g,onSubmit:function(a){var r={id:b.data.id,name:a.name,duration:M.M.getDuration(f.data),immediateFeedback:!!a.immediateFeedback,preventScrubbing:!!a.preventScrubbing},g={name:a.name,description:a.description,status:n?L.X.Published:f.data.status},h=0,y=function(){h<1?h++:function(a){i(),d.success(U("success",{name:a,escapeText:!0}));var r=(0,D.T)(f.data);s.k.logUserAction(r,{actionType:n?m.Vw.Publish:m.Vw.Edit,entity:m.py.Interactive,location:m.LZ.EditInteractiveDetails,workflowPhase:n?m.eu.Complete:m.eu.Save,descriptor:n?m.Iq.Publish:void 0}),n&&(p(P.C.StudentExperience)?o.Q.C$.trigger({application:_.O.INTERACTIVES,action:z.e.Interactives.VIEW_INTERACTIVE,args:[e.interactiveMetadataId,c.m.slugify(f.data.name)]}):o.Q.C$.trigger({application:_.O.INTERACTIVES,action:z.e.Interactives.CONTRIBUTE_INTERACTIVE,args:[t]}))}(a.name)};l.a.fetch(u,V.b.updateInteractive(b.data.id,r,y,v)),l.a.fetch(u,V.b.updateInteractiveMetadata(f.data.id,g,y,v))},publish:n}))}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(95685),r=n.n(a),i=n(32735),o=n(46304),l=n(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:n="div",...a},i)=>{const c=(0,o.vE)(e,"row"),s=(0,o.pi)(),m=(0,o.zG)(),u=`${c}-cols`,d=[];return s.forEach((e=>{const t=a[e];let n;delete a[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const r=e!==m?`-${e}`:"";null!=n&&d.push(`${u}${r}-${n}`)})),(0,l.jsx)(n,{ref:i,...a,className:r()(t,c,...d)})}));c.displayName="Row";const s=c}}]);
2
+ //# sourceMappingURL=8258-02d619de75-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/8258-6c86ad1fa4-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx","file:///app/packages/libs/shared/src/components/forms/form-field/CharacterCounter.tsx","file:///app/packages/libs/shared/src/components/forms/form-field/form-field.scss","file:///app/packages/libs/shared/src/components/forms/form-field/FormField.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/utils/FormHelper.ts","file:///app/packages/projects/lite/src/apps/interactives/utils/getInteractiveAnalyticsData.ts","file:///app/packages/libs/shared/src/components/select-content-region/select-content-region.scss","file:///app/packages/libs/shared/src/components/select-content-region/SelectContentRegion.tsx","file:///app/packages/libs/shared/src/apps/interactives/components/edit-interactive-details/EditInteractiveDetails.tsx","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive-details/EditInteractiveDetailsView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { FieldAttributes } from 'formik';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport { FieldWrapper, FormFieldProps } from '../form-field/FormField';\n\n/**\n * Use this checkbox within Formik contexts\n */\nexport function FormCheckbox(props: FieldAttributes<FormFieldProps>): JSX.Element {\n const { label, checkboxLabelClassName, checkboxLabelFontWeight, className, ...fieldProps } = props;\n\n return (\n <Form.Group className='form-group'>\n <div className={`form-check ${className || ''}`}>\n <FieldWrapper className='form-check-input' {...fieldProps} />\n <Form.Label\n className={`form-check-label cursor-pointer ${checkboxLabelFontWeight === 'normal' ? 'fw-normal' : ''} \n ${checkboxLabelClassName}`}\n htmlFor={fieldProps.id}\n >\n {label}\n </Form.Label>\n {props.checkboxAppLink && props.checkboxAppLinkText && (\n <>\n <span>&nbsp;</span>\n <AppLink appLink={props.checkboxAppLink} className='info-link'>\n {props.checkboxAppLinkText}\n </AppLink>\n </>\n )}\n </div>\n </Form.Group>\n );\n}\n\n","import * as React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\ninterface CharacterCounterProps<Values extends HashObject> {\n fieldName: keyof Values;\n limit: number;\n}\n\nexport function CharacterCounter<Values extends HashObject>(props: CharacterCounterProps<Values>): JSX.Element {\n const { values } = useFormikContext<Values>();\n\n const field = values[props.fieldName];\n\n if (typeof field !== 'string')\n return <></>;\n\n return (\n <div className='float-end text-secondary fw-normal'>\n {field.length}/{props.limit} characters\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"revealPassword\":\"jCfI0\",\"passwordInput\":\"RBJnf\",\"passwordContainer\":\"d78lK\",\"passwordContainerDisabled\":\"asbVo\",\"infoTooltip\":\"wzyOG\",\"spinner\":\"CycFx\"};","import * as React from 'react';\nimport { Form, Spinner } from 'react-bootstrap';\nimport { Placement } from 'react-bootstrap/esm/types';\nimport { ErrorMessage, Field, FieldAttributes, FieldProps, useFormikContext } from 'formik';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FormCheckbox } from 'libs/shared/components/forms/form-checkbox/FormCheckbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { FormHelper } from 'libs/shared/utils/FormHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { CharacterCounter } from './CharacterCounter';\n\nimport styles from './form-field.scss';\n\nconst namespace = 'shared.formField';\n\nexport type FormSize = 'lg' | 'sm';\n\n// If checkboxLabelFontWeight is not specified, it will be bold by default\nexport type CheckboxLabelFontWeight = 'normal' | 'bold'\n\nexport interface FormFieldProps {\n /**\n * The name prop MUST be the same as the attribute\n * name of the value that the field is bound to.\n */\n name: string;\n label?: string;\n children?: any;\n showCharacterCounter?: boolean;\n showRequiredStar?: boolean;\n checkboxAppLink?: Core.AppLink;\n checkboxAppLinkText?: string;\n checkboxLabelClassName?: string;\n checkboxLabelFontWeight?: CheckboxLabelFontWeight\n infoTooltip?: string;\n infoTooltipPlacement?: Placement;\n infoText?: string;\n formSize?: FormSize;\n showOptionalLabel?: boolean;\n showLoadingSpinner?: boolean;\n}\n\nFieldWrapper.defaultProps = {\n autoComplete: 'off'\n};\n\nexport function FieldWrapper(\n props: FieldAttributes<FormFieldProps> & { className: string }\n): React.ReactElement {\n const { children, showLoadingSpinner, ...fieldProps } = props;\n\n const [ type, setType ] = React.useState(props.type);\n\n function onClickTogglePassword(): void {\n if (type === 'password')\n setType('text');\n else\n setType('password');\n }\n\n const resolvedChildren = FunctionHelper.isFunction(children)\n ? (f: FieldProps) => children(f)\n : React.Children.count(children) ? children : null;\n\n if (fieldProps.type !== 'password') {\n if (showLoadingSpinner) {\n return (\n <div className='position-relative'>\n <Field {...(ObjectHelper.omit(fieldProps, ['formSize']))}>\n {resolvedChildren}\n </Field>\n\n <div className={styles.spinner}>\n <Spinner animation='border' size='sm' />\n </div>\n </div>\n );\n }\n\n return (\n <Field {...(ObjectHelper.omit(fieldProps, ['formSize']))}>\n {resolvedChildren}\n </Field>\n );\n }\n\n let containerClassName = `position-relative ${styles.passwordContainer}`;\n\n if (fieldProps.className)\n containerClassName += ` ${fieldProps.className}`;\n\n if (fieldProps.disabled)\n containerClassName += ` ${styles.passwordContainerDisabled}`;\n\n /**\n * We need to wrap out input with a relatively positioned element in order to absolutely\n * position our visibility icon to reveal the password - Sha\n */\n return (\n <div className={containerClassName}>\n <Field\n {...(ObjectHelper.omit(fieldProps, [ 'formSize', 'type', 'className' ]))}\n type={type}\n className={`${styles.passwordInput} border-0 w-100 h-100 outline-none rounded`}\n >\n {resolvedChildren}\n </Field>\n {fieldProps.type === 'password' &&\n <SvgContainer\n svgName={type === 'password' ? cvSvgLibrary.VisibleOn : cvSvgLibrary.VisibleOff}\n className={`svg-container cursor-pointer ${styles.revealPassword}`}\n onClick={onClickTogglePassword}\n />\n }\n </div>\n );\n}\n\nFormField.defaultProps = {\n autoComplete: 'off',\n infoTooltipPlacement: 'top'\n};\n\nexport function FormField<Values extends HashObject>(props: FieldAttributes<FormFieldProps>): React.ReactElement {\n const {\n label,\n className,\n showCharacterCounter,\n showRequiredStar,\n infoTooltip,\n infoTooltipPlacement,\n infoText,\n formSize,\n showOptionalLabel,\n ...fieldProps\n } = props;\n\n const { errors, touched } = useFormikContext<Values>();\n\n // This function overwrites the default `onChange` function whenever `props.disabled` is set.\n // This prevents users from \"undisabling\" form fields via inspect element, then editing the field.\n const disabledOnChange = () => {};\n\n if (fieldProps.type === 'checkbox') {\n const _props = ObjectHelper.omit(props, [ 'formSize', 'infoTooltipPlacement' ]);\n\n if (props.disabled)\n _props.onChange = disabledOnChange;\n\n return <FormCheckbox {..._props} />;\n }\n\n const fieldWrapperProps = {\n ...fieldProps,\n className: FormHelper.getCustomFormControlClassName(\n errors,\n touched,\n fieldProps.name,\n formSize,\n className,\n typeof props.as === 'string' ? props.as : null\n )\n };\n\n if (props.disabled)\n fieldWrapperProps.onChange = disabledOnChange;\n\n return (\n <Form.Group className='form-group'>\n {!!label && (\n <Form.Label htmlFor={fieldProps.id} className='d-flex align-items-center'>\n {label}\n {showRequiredStar && <span className='text-danger'>*</span>}\n {infoTooltip && (\n <SvgContainer\n className={`svg-container text-secondary ${styles.infoTooltip}`}\n svgName={cvSvgLibrary.Info}\n title={infoTooltip}\n tooltipPlacement={infoTooltipPlacement}\n tooltipSpanHack\n />\n )}\n {showOptionalLabel && <span className='text-secondary'>&nbsp;<Text namespace={namespace} phrase='optional' /></span>}\n \n {!!showCharacterCounter && !!(fieldProps as React.HTMLProps<HTMLInputElement>).maxLength &&\n <div className='ms-auto'>\n <CharacterCounter\n fieldName={(fieldProps.name as keyof Values)}\n limit={(fieldProps as React.HTMLProps<HTMLInputElement>).maxLength}\n />\n </div>\n }\n </Form.Label>\n )}\n\n <FieldWrapper {...fieldWrapperProps} />\n\n {!!infoText &&\n <Form.Text className='text-secondary'>\n {infoText}\n </Form.Text>\n }\n\n <ErrorMessage name={fieldProps.name}>\n {(errorMessage: string) => <Form.Control.Feedback type='invalid'>{errorMessage}</Form.Control.Feedback>}\n </ErrorMessage>\n </Form.Group>\n );\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 { FormikErrors, FormikTouched, getIn } from 'formik';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\n\nfunction getTypeSize(type: string, size: FormSize) {\n let className = '';\n\n switch (type) {\n case 'select':\n className = 'form-select';\n break;\n default:\n className = 'form-control';\n }\n\n if (size === 'sm')\n className += ` ${className}-sm`;\n\n if (size === 'lg')\n className += ` ${className}-lg`;\n\n return className;\n}\n\nexport const FormHelper = {\n getCustomFormControlClassName<T>(\n errors: FormikErrors<T>,\n touched: FormikTouched<T>,\n attribute: string,\n size?: FormSize,\n additionalClassName?: string,\n type?: string\n ): string {\n let className = '';\n\n className = getTypeSize(type, size);\n\n // Using getIn as it supports dot notation\n if (getIn(touched, attribute) && getIn(errors, attribute))\n className += ' is-invalid';\n\n if (additionalClassName)\n className += ` ${additionalClassName}`;\n\n return className;\n }\n};","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsDataPayload } from 'libs/analytics/models/AnalyticsEvent';\n\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\n\nexport function getInteractiveAnalyticsData(\n interactiveMetadata: InteractiveMetadata,\n extraAnalyticsData: HashObject = {}\n): AnalyticsDataPayload {\n if (!interactiveMetadata)\n return null;\n\n const data: AnalyticsDataPayload = {\n ...extraAnalyticsData,\n id: interactiveMetadata.id,\n interactiveId: interactiveMetadata.interactiveId,\n name: interactiveMetadata.name,\n status: interactiveMetadata.status,\n originType: interactiveMetadata.originType\n };\n\n if (interactiveMetadata?._parentClip?.id)\n data.clip = { id: interactiveMetadata?._parentClip?.id };\n \n if (interactiveMetadata?._parentVideo?.id)\n data.video = { id: interactiveMetadata?._parentVideo?.id };\n \n return data;\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownMenu\":\"eDHti\"};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { ContentRegionObject } from 'libs/shared/interfaces';\n\nimport styles from './select-content-region.scss';\n\ninterface SelectContentRegionProps {\n id: string;\n options: ContentRegionObject[];\n selectedContentRegions: ContentRegionObject[];\n onUpdateContentRegions: (contentRegions: ContentRegionObject[]) => void;\n}\n\nexport function SelectContentRegion(props: SelectContentRegionProps): JSX.Element {\n function onToggleContentRegion(option: ContentRegionObject, isCurrentlyChecked: boolean): void {\n if (isCurrentlyChecked) {\n props.onUpdateContentRegions(props.selectedContentRegions.filter(c => c.id.toString() !== option.id.toString()));\n return;\n }\n\n props.onUpdateContentRegions(props.selectedContentRegions.concat(option));\n }\n\n function onToggleGlobalContentRegion(globalContentRegion: ContentRegionObject, isCurrentlyChecked: boolean) {\n if (isCurrentlyChecked) {\n props.onUpdateContentRegions([]);\n return;\n }\n\n props.onUpdateContentRegions([globalContentRegion]);\n }\n\n function getLabel(): string {\n if (props.selectedContentRegions?.length) {\n if (props.selectedContentRegions.length > 1)\n return `${props.selectedContentRegions.length} content regions`;\n \n return props.selectedContentRegions[0].name;\n }\n \n return 'None';\n }\n\n function isChecked(contentRegion: ContentRegionObject): boolean {\n return props.selectedContentRegions.some(cr => {\n return cr.id.toString() === contentRegion.id.toString();\n });\n }\n\n const globalContentRegion = props.options.find(c => c.systemName === ContentRegion.GLOBAL);\n const isGlobalChecked = isChecked(globalContentRegion);\n\n const nonGlobalContentRegions = props.options.filter(c => c.systemName !== ContentRegion.GLOBAL);\n\n return (\n <Dropdown>\n <Dropdown.Toggle\n id={props.id}\n variant='outline-dark'\n >\n {getLabel()}\n </Dropdown.Toggle>\n\n <Dropdown.Menu className={`${styles.dropdownMenu} px-2`}>\n <Checkbox\n key={globalContentRegion.id}\n label={globalContentRegion.name}\n name={globalContentRegion.id}\n id={globalContentRegion.id}\n onChange={() => onToggleGlobalContentRegion(globalContentRegion, isGlobalChecked)}\n checked={isGlobalChecked}\n className='my-1'\n />\n\n <Dropdown.Divider />\n\n {nonGlobalContentRegions.map((contentRegion: ContentRegionObject) => {\n return (\n <Checkbox\n key={contentRegion.id}\n label={contentRegion.name}\n name={contentRegion.id}\n id={contentRegion.id}\n onChange={() => onToggleContentRegion(contentRegion, isChecked(contentRegion))}\n checked={isChecked(contentRegion)}\n className={`my-1 ${isGlobalChecked ? 'disabled' : ''}`}\n disabled={isGlobalChecked}\n />\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n );\n}","import React from 'react';\nimport { Col, Form, Row } from 'react-bootstrap';\nimport { Form as FormikForm } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FieldWrapper, FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper, useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { SelectContentRegion } from 'libs/shared/components/select-content-region/SelectContentRegion';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { ContentRegionObject, EditDetailsRequest, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nconst namespace = 'interactives.editInteractiveDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getValidationSchema(requireContentRegion: boolean) {\n const schema: Yup.ObjectSchemaDefinition<EditDetailsRequest> = {\n name: Yup.string()\n .trim()\n .max(255, () => getPhrase('titleTooLong'))\n .required(() => getPhrase('titleRequired'))\n .default(''),\n\n description: Yup.string()\n .max(16000, () => getPhrase('descriptionTooLong'))\n .default('')\n };\n\n if (requireContentRegion) {\n schema.contentRegions = Yup.array<ContentRegionObject>()\n .min(1, 'Resources must have a content region')\n .default([]);\n }\n\n return Yup.object().shape<EditDetailsRequest>(schema);\n}\n\ninterface EditInteractiveDetailsFormProps {\n interactiveMetadata: InteractiveMetadata;\n onClickCancel: () => void;\n publish: boolean;\n\n // This should only be used by Curator\n contentRegions?: ContentRegionObject[];\n}\n\nfunction EditInteractiveDetailsForm(props: EditInteractiveDetailsFormProps): React.ReactElement {\n const { interactiveMetadata, onClickCancel } = props;\n\n const formikProps = useFormikContextWrapper<EditDetailsRequest>();\n\n return (\n <FormikForm>\n <div className='row form-group'>\n <div className='col-5'>\n <VideoThumbnail\n video={interactiveMetadata}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n />\n </div>\n <div className='col-7'>\n <h2 className='h6'>{formikProps.values.name}</h2>\n </div>\n </div>\n <FormField\n label={getPhrase('nameLabel')}\n type='text'\n name='name'\n id='name'\n placeholder={getPhrase('namePlaceholder')}\n autoFocus\n value={formikProps.values.name}\n />\n <FormField\n label={getPhrase('descriptionLabel')}\n component='textarea'\n name='description'\n id='description'\n placeholder={getPhrase('descriptionPlaceholder')}\n value={formikProps.values.description}\n />\n\n {/* content regions */}\n {!!props.contentRegions?.length && (\n <div className='pb-2'>\n <FormField\n label={getPhrase('contentRegions')}\n name='contentRegions'\n id='contentRegions'\n value={formikProps.values.contentRegions}\n >\n {() => (\n <div className='w-50'>\n <SelectContentRegion\n id={props.interactiveMetadata.id}\n options={props.contentRegions}\n selectedContentRegions={formikProps.values.contentRegions}\n onUpdateContentRegions={contentRegions => formikProps.setFieldValue('contentRegions', contentRegions)}\n />\n </div>\n )}\n </FormField>\n <Form.Control.Feedback className='d-block mt-n2' type='invalid'>\n {formikProps.errors.contentRegions as string}\n </Form.Control.Feedback>\n </div>\n )}\n\n {/* interactive features */}\n <Form.Label>\n <Text namespace={namespace} phrase={'interactiveFeatures'} />\n </Form.Label>\n <Row>\n <Col>\n <Form.Group className='form-group'>\n <div className='form-check'>\n <FieldWrapper\n className='form-check-input'\n label={getPhrase('preventScrubbingLabel')}\n name='preventScrubbing'\n id='preventScrubbing'\n type='checkbox'\n checked={formikProps.values.preventScrubbing}\n />\n <Form.Label className='form-check-label' htmlFor='preventScrubbing'>\n <Text namespace={namespace} phrase={'preventScrubbingLabel'} />\n &nbsp;\n </Form.Label>\n <div className='text-secondary'>\n <Text namespace={namespace} phrase={'preventScrubbingExplain'} />\n </div>\n </div>\n </Form.Group>\n </Col>\n <Col>\n <Form.Group className='form-group'>\n <div className='form-check'>\n <FieldWrapper\n className='form-check-input'\n label={getPhrase('immediateFeedbackLabel')}\n name='immediateFeedback'\n id='immediateFeedback'\n type='checkbox'\n checked={formikProps.values.immediateFeedback}\n />\n <Form.Label className='form-check-label' htmlFor='immediateFeedback'>\n <Text namespace={namespace} phrase={'immediateFeedbackLabel'} />\n &nbsp;\n </Form.Label>\n <div className='text-secondary'>\n <Text namespace={namespace} phrase={'immediateFeedbackExplain'} />\n </div>\n </div>\n </Form.Group>\n </Col>\n </Row>\n <PopupButtons>\n <PopupButtons.Cancel onClick={onClickCancel} />\n <PopupButtons.Submit variant='dark' text={props.publish ? getPhrase('publish') : getPhrase('save')} />\n </PopupButtons>\n </FormikForm>\n );\n}\n\ninterface EditInteractiveDetailsProps {\n interactive: Interactive;\n interactiveMetadata: InteractiveMetadata;\n onSubmit: (data: EditDetailsRequest) => void;\n onClickCancel: () => void;\n publish: boolean;\n\n // This should only be used by Curator\n contentRegions?: ContentRegionObject[];\n}\n\nexport function EditInteractiveDetails(props: EditInteractiveDetailsProps): React.ReactElement {\n const {\n interactive,\n interactiveMetadata,\n onSubmit,\n onClickCancel,\n publish\n } = props;\n\n const initialValues: EditDetailsRequest = {\n name: interactiveMetadata.name || '',\n description: interactiveMetadata.description,\n immediateFeedback: interactive.immediateFeedback,\n preventScrubbing: interactive.preventScrubbing\n };\n\n if (props.contentRegions?.length) {\n initialValues.contentRegions = Array.isArray(interactiveMetadata.contentRegions)\n ? interactiveMetadata.contentRegions\n : interactiveMetadata.contentRegions.data;\n }\n\n return (\n <FormWrapper<EditDetailsRequest>\n initialValues={initialValues}\n validationSchema={getValidationSchema(!!props.contentRegions?.length)}\n allowInitialSubmit\n onSubmit={onSubmit}\n >\n <EditInteractiveDetailsForm\n interactiveMetadata={interactiveMetadata}\n onClickCancel={onClickCancel}\n publish={publish}\n contentRegions={props.contentRegions}\n />\n </FormWrapper>\n );\n}\n","import * as 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 { EntityType, LocationContext, PublishDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EditInteractiveDetails } from 'libs/shared/apps/interactives/components/edit-interactive-details/EditInteractiveDetails';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { EditDetailsRequest, EditInteractiveMetadataRequest, EditInteractiveRequest, Interactive, InteractiveMetadata, PopupViewProps } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { getInteractiveAnalyticsData } from 'apps/interactives/utils/getInteractiveAnalyticsData';\n\nconst namespace = 'interactives.editInteractiveDetailsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface EditInteractiveDetailsProps extends PopupViewProps {\n interactiveMetadataId: string;\n publish: boolean;\n}\n\nexport function EditInteractiveDetailsView(props: EditInteractiveDetailsProps): React.ReactElement {\n const { interactiveMetadataId, publish, closePopup } = props;\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const { hasPermissions } = usePermissions();\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(interactiveMetadataId)\n );\n\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data ?\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId) : null);\n\n function onError(): void {\n alerts.error(getPhrase('error'));\n closePopup();\n }\n\n function onSuccess(name: string): void {\n closePopup();\n alerts.success(getPhrase('success', { name, escapeText: true }));\n\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: publish ? UserAction.Publish : UserAction.Edit,\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractiveDetails,\n workflowPhase: publish ? WorkflowPhase.Complete : WorkflowPhase.Save,\n descriptor: publish ? PublishDescriptor.Publish : undefined\n });\n\n if (!publish) return;\n\n if (hasPermissions(PermissionName.StudentExperience)) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ props.interactiveMetadataId, TextHelper.slugify(interactiveMetadata.data.name) ]\n });\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.CONTRIBUTE_INTERACTIVE,\n args: [interactiveMetadataId]\n });\n }\n\n function onCancel(): void {\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: publish ? UserAction.Publish : UserAction.Edit,\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractiveDetails,\n workflowPhase: WorkflowPhase.Discard,\n descriptor: publish ? PublishDescriptor.Publish : undefined\n });\n closePopup();\n }\n\n function onSubmit(data: EditDetailsRequest): void {\n const interactiveData: EditInteractiveRequest = {\n id: interactive.data.id,\n name: data.name,\n duration: VideoHelper.getDuration(interactiveMetadata.data),\n immediateFeedback: !!data.immediateFeedback,\n preventScrubbing: !!data.preventScrubbing\n };\n\n const interactiveMetadataData: EditInteractiveMetadataRequest = {\n name: data.name,\n description: data.description,\n status: publish ? CurationStatus.Published : interactiveMetadata.data.status\n };\n\n let count = 0;\n const success = () => {\n if (count < 1) {\n count++;\n return;\n }\n\n onSuccess(data.name);\n };\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractive(\n interactive.data.id,\n interactiveData,\n success,\n onError\n )\n );\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractiveMetadata(\n interactiveMetadata.data.id,\n interactiveMetadataData,\n success,\n onError\n )\n );\n }\n\n const dataLoaded = !!interactiveMetadata.data && !!interactive.data;\n\n return (\n <Popup\n title={publish ? getPhrase('publishHeader') : getPhrase('editHeader')}\n closePopup={onCancel}\n showLoadingSpinner={!dataLoaded}\n >\n <EditInteractiveDetails\n interactive={interactive.data}\n interactiveMetadata={interactiveMetadata.data}\n onClickCancel={onCancel}\n onSubmit={onSubmit}\n publish={publish}\n />\n </Popup>\n );\n}\n","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["FormCheckbox","props","label","checkboxLabelClassName","checkboxLabelFontWeight","className","fieldProps","Form","FieldWrapper","htmlFor","id","checkboxAppLink","checkboxAppLinkText","AppLink","appLink","CharacterCounter","field","values","fieldName","length","limit","namespace","children","showLoadingSpinner","type","setType","resolvedChildren","FunctionHelper","f","ObjectHelper","Spinner","animation","size","containerClassName","disabled","SvgContainer","svgName","onClick","FormField","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel","errors","touched","disabledOnChange","_props","onChange","fieldWrapperProps","FormHelper","name","as","title","tooltipPlacement","tooltipSpanHack","Text","phrase","maxLength","errorMessage","defaultProps","autoComplete","FormWrapper","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formikProps","formattedInitialValues","validationSchema","cast","omitChildValues","child","Object","keys","forEach","key","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","entries","value","useFormikContextWrapper","getCustomFormControlClassName","attribute","additionalClassName","getTypeSize","getInteractiveAnalyticsData","interactiveMetadata","extraAnalyticsData","data","interactiveId","status","originType","_parentClip","clip","_parentVideo","video","SelectContentRegion","isChecked","contentRegion","selectedContentRegions","some","cr","toString","globalContentRegion","find","c","systemName","ContentRegion","isGlobalChecked","nonGlobalContentRegions","filter","Dropdown","variant","Checkbox","isCurrentlyChecked","onUpdateContentRegions","onToggleGlobalContentRegion","checked","map","option","concat","getPhrase","LanguageService","EditInteractiveDetailsForm","onClickCancel","VideoThumbnail","imageOptions","textPosition","ThumbnailTextPosition","preload","placeholder","autoFocus","component","description","contentRegions","setFieldValue","Row","Col","preventScrubbing","immediateFeedback","PopupButtons","text","publish","EditInteractiveDetails","requireContentRegion","schema","interactive","Array","isArray","trim","max","required","min","shape","EditInteractiveDetailsView","interactiveMetadataId","closePopup","dispatch","alerts","hasPermissions","usePermissions","InteractiveRequests","onError","error","onCancel","analyticsData","AnalyticsHelper","actionType","entity","location","workflowPhase","descriptor","Publish","undefined","dataLoaded","Popup","interactiveData","duration","VideoHelper","interactiveMetadataData","CurationStatus","count","success","escapeText","PermissionName","application","action","args","TextHelper","onSuccess","bsPrefix","Component","ref","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/8258-02d619de75-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx","file:///app/packages/libs/shared/src/components/forms/form-field/CharacterCounter.tsx","file:///app/packages/libs/shared/src/components/forms/form-field/form-field.scss","file:///app/packages/libs/shared/src/components/forms/form-field/FormField.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/utils/FormHelper.ts","file:///app/packages/projects/lite/src/apps/interactives/utils/getInteractiveAnalyticsData.ts","file:///app/packages/libs/shared/src/components/select-content-region/select-content-region.scss","file:///app/packages/libs/shared/src/components/select-content-region/SelectContentRegion.tsx","file:///app/packages/libs/shared/src/apps/interactives/components/edit-interactive-details/EditInteractiveDetails.tsx","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive-details/EditInteractiveDetailsView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { FieldAttributes } from 'formik';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport { FieldWrapper, FormFieldProps } from '../form-field/FormField';\n\n/**\n * Use this checkbox within Formik contexts\n */\nexport function FormCheckbox(props: FieldAttributes<FormFieldProps>): JSX.Element {\n const { label, checkboxLabelClassName, checkboxLabelFontWeight, className, ...fieldProps } = props;\n\n return (\n <Form.Group className='form-group'>\n <div className={`form-check ${className || ''}`}>\n <FieldWrapper className='form-check-input' {...fieldProps} />\n <Form.Label\n className={`form-check-label cursor-pointer ${checkboxLabelFontWeight === 'normal' ? 'fw-normal' : ''} \n ${checkboxLabelClassName}`}\n htmlFor={fieldProps.id}\n >\n {label}\n </Form.Label>\n {props.checkboxAppLink && props.checkboxAppLinkText && (\n <>\n <span>&nbsp;</span>\n <AppLink appLink={props.checkboxAppLink} className='info-link'>\n {props.checkboxAppLinkText}\n </AppLink>\n </>\n )}\n </div>\n </Form.Group>\n );\n}\n\n","import * as React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\ninterface CharacterCounterProps<Values extends HashObject> {\n fieldName: keyof Values;\n limit: number;\n}\n\nexport function CharacterCounter<Values extends HashObject>(props: CharacterCounterProps<Values>): JSX.Element {\n const { values } = useFormikContext<Values>();\n\n const field = values[props.fieldName];\n\n if (typeof field !== 'string')\n return <></>;\n\n return (\n <div className='float-end text-secondary fw-normal'>\n {field.length}/{props.limit} characters\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"revealPassword\":\"jCfI0\",\"passwordInput\":\"RBJnf\",\"passwordContainer\":\"d78lK\",\"passwordContainerDisabled\":\"asbVo\",\"infoTooltip\":\"wzyOG\",\"spinner\":\"CycFx\"};","import * as React from 'react';\nimport { Form, Spinner } from 'react-bootstrap';\nimport { Placement } from 'react-bootstrap/esm/types';\nimport { ErrorMessage, Field, FieldAttributes, FieldProps, useFormikContext } from 'formik';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FormCheckbox } from 'libs/shared/components/forms/form-checkbox/FormCheckbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { FormHelper } from 'libs/shared/utils/FormHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { CharacterCounter } from './CharacterCounter';\n\nimport styles from './form-field.scss';\n\nconst namespace = 'shared.formField';\n\nexport type FormSize = 'lg' | 'sm';\n\n// If checkboxLabelFontWeight is not specified, it will be bold by default\nexport type CheckboxLabelFontWeight = 'normal' | 'bold'\n\nexport interface FormFieldProps {\n /**\n * The name prop MUST be the same as the attribute\n * name of the value that the field is bound to.\n */\n name: string;\n label?: string;\n children?: any;\n showCharacterCounter?: boolean;\n showRequiredStar?: boolean;\n checkboxAppLink?: Core.AppLink;\n checkboxAppLinkText?: string;\n checkboxLabelClassName?: string;\n checkboxLabelFontWeight?: CheckboxLabelFontWeight\n infoTooltip?: string;\n infoTooltipPlacement?: Placement;\n infoText?: string;\n formSize?: FormSize;\n showOptionalLabel?: boolean;\n showLoadingSpinner?: boolean;\n}\n\nFieldWrapper.defaultProps = {\n autoComplete: 'off'\n};\n\nexport function FieldWrapper(\n props: FieldAttributes<FormFieldProps> & { className: string }\n): React.ReactElement {\n const { children, showLoadingSpinner, ...fieldProps } = props;\n\n const [ type, setType ] = React.useState(props.type);\n\n function onClickTogglePassword(): void {\n if (type === 'password')\n setType('text');\n else\n setType('password');\n }\n\n const resolvedChildren = FunctionHelper.isFunction(children)\n ? (f: FieldProps) => children(f)\n : React.Children.count(children) ? children : null;\n\n if (fieldProps.type !== 'password') {\n if (showLoadingSpinner) {\n return (\n <div className='position-relative'>\n <Field {...(ObjectHelper.omit(fieldProps, ['formSize']))}>\n {resolvedChildren}\n </Field>\n\n <div className={styles.spinner}>\n <Spinner animation='border' size='sm' />\n </div>\n </div>\n );\n }\n\n return (\n <Field {...(ObjectHelper.omit(fieldProps, ['formSize']))}>\n {resolvedChildren}\n </Field>\n );\n }\n\n let containerClassName = `position-relative ${styles.passwordContainer}`;\n\n if (fieldProps.className)\n containerClassName += ` ${fieldProps.className}`;\n\n if (fieldProps.disabled)\n containerClassName += ` ${styles.passwordContainerDisabled}`;\n\n /**\n * We need to wrap out input with a relatively positioned element in order to absolutely\n * position our visibility icon to reveal the password - Sha\n */\n return (\n <div className={containerClassName}>\n <Field\n {...(ObjectHelper.omit(fieldProps, [ 'formSize', 'type', 'className' ]))}\n type={type}\n className={`${styles.passwordInput} border-0 w-100 h-100 outline-none rounded`}\n >\n {resolvedChildren}\n </Field>\n {fieldProps.type === 'password' &&\n <SvgContainer\n svgName={type === 'password' ? cvSvgLibrary.VisibleOn : cvSvgLibrary.VisibleOff}\n className={`svg-container cursor-pointer ${styles.revealPassword}`}\n onClick={onClickTogglePassword}\n />\n }\n </div>\n );\n}\n\nFormField.defaultProps = {\n autoComplete: 'off',\n infoTooltipPlacement: 'top'\n};\n\nexport function FormField<Values extends HashObject>(props: FieldAttributes<FormFieldProps>): React.ReactElement {\n const {\n label,\n className,\n showCharacterCounter,\n showRequiredStar,\n infoTooltip,\n infoTooltipPlacement,\n infoText,\n formSize,\n showOptionalLabel,\n ...fieldProps\n } = props;\n\n const { errors, touched } = useFormikContext<Values>();\n\n // This function overwrites the default `onChange` function whenever `props.disabled` is set.\n // This prevents users from \"undisabling\" form fields via inspect element, then editing the field.\n const disabledOnChange = () => {};\n\n if (fieldProps.type === 'checkbox') {\n const _props = ObjectHelper.omit(props, [ 'formSize', 'infoTooltipPlacement' ]);\n\n if (props.disabled)\n _props.onChange = disabledOnChange;\n\n return <FormCheckbox {..._props} />;\n }\n\n const fieldWrapperProps = {\n ...fieldProps,\n className: FormHelper.getCustomFormControlClassName(\n errors,\n touched,\n fieldProps.name,\n formSize,\n className,\n typeof props.as === 'string' ? props.as : null\n )\n };\n\n if (props.disabled)\n fieldWrapperProps.onChange = disabledOnChange;\n\n return (\n <Form.Group className='form-group'>\n {!!label && (\n <Form.Label htmlFor={fieldProps.id} className='d-flex align-items-center'>\n {label}\n {showRequiredStar && <span className='text-danger'>*</span>}\n {infoTooltip && (\n <SvgContainer\n className={`svg-container text-secondary ${styles.infoTooltip}`}\n svgName={cvSvgLibrary.Info}\n title={infoTooltip}\n tooltipPlacement={infoTooltipPlacement}\n tooltipSpanHack\n />\n )}\n {showOptionalLabel && <span className='text-secondary'>&nbsp;<Text namespace={namespace} phrase='optional' /></span>}\n \n {!!showCharacterCounter && !!(fieldProps as React.HTMLProps<HTMLInputElement>).maxLength &&\n <div className='ms-auto'>\n <CharacterCounter\n fieldName={(fieldProps.name as keyof Values)}\n limit={(fieldProps as React.HTMLProps<HTMLInputElement>).maxLength}\n />\n </div>\n }\n </Form.Label>\n )}\n\n <FieldWrapper {...fieldWrapperProps} />\n\n {!!infoText &&\n <Form.Text className='text-secondary'>\n {infoText}\n </Form.Text>\n }\n\n <ErrorMessage name={fieldProps.name}>\n {(errorMessage: string) => <Form.Control.Feedback type='invalid'>{errorMessage}</Form.Control.Feedback>}\n </ErrorMessage>\n </Form.Group>\n );\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 { FormikErrors, FormikTouched, getIn } from 'formik';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\n\nfunction getTypeSize(type: string, size: FormSize) {\n let className = '';\n\n switch (type) {\n case 'select':\n className = 'form-select';\n break;\n default:\n className = 'form-control';\n }\n\n if (size === 'sm')\n className += ` ${className}-sm`;\n\n if (size === 'lg')\n className += ` ${className}-lg`;\n\n return className;\n}\n\nexport const FormHelper = {\n getCustomFormControlClassName<T>(\n errors: FormikErrors<T>,\n touched: FormikTouched<T>,\n attribute: string,\n size?: FormSize,\n additionalClassName?: string,\n type?: string\n ): string {\n let className = '';\n\n className = getTypeSize(type, size);\n\n // Using getIn as it supports dot notation\n if (getIn(touched, attribute) && getIn(errors, attribute))\n className += ' is-invalid';\n\n if (additionalClassName)\n className += ` ${additionalClassName}`;\n\n return className;\n }\n};","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsDataPayload } from 'libs/analytics/models/AnalyticsEvent';\n\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\n\nexport function getInteractiveAnalyticsData(\n interactiveMetadata: InteractiveMetadata,\n extraAnalyticsData: HashObject = {}\n): AnalyticsDataPayload {\n if (!interactiveMetadata)\n return null;\n\n const data: AnalyticsDataPayload = {\n ...extraAnalyticsData,\n id: interactiveMetadata.id,\n interactiveId: interactiveMetadata.interactiveId,\n name: interactiveMetadata.name,\n status: interactiveMetadata.status,\n originType: interactiveMetadata.originType\n };\n\n if (interactiveMetadata?._parentClip?.id)\n data.clip = { id: interactiveMetadata?._parentClip?.id };\n \n if (interactiveMetadata?._parentVideo?.id)\n data.video = { id: interactiveMetadata?._parentVideo?.id };\n \n return data;\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownMenu\":\"eDHti\"};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { ContentRegionObject } from 'libs/shared/interfaces';\n\nimport styles from './select-content-region.scss';\n\ninterface SelectContentRegionProps {\n id: string;\n options: ContentRegionObject[];\n selectedContentRegions: ContentRegionObject[];\n onUpdateContentRegions: (contentRegions: ContentRegionObject[]) => void;\n}\n\nexport function SelectContentRegion(props: SelectContentRegionProps): JSX.Element {\n function onToggleContentRegion(option: ContentRegionObject, isCurrentlyChecked: boolean): void {\n if (isCurrentlyChecked) {\n props.onUpdateContentRegions(props.selectedContentRegions.filter(c => c.id.toString() !== option.id.toString()));\n return;\n }\n\n props.onUpdateContentRegions(props.selectedContentRegions.concat(option));\n }\n\n function onToggleGlobalContentRegion(globalContentRegion: ContentRegionObject, isCurrentlyChecked: boolean) {\n if (isCurrentlyChecked) {\n props.onUpdateContentRegions([]);\n return;\n }\n\n props.onUpdateContentRegions([globalContentRegion]);\n }\n\n function getLabel(): string {\n if (props.selectedContentRegions?.length) {\n if (props.selectedContentRegions.length > 1)\n return `${props.selectedContentRegions.length} content regions`;\n \n return props.selectedContentRegions[0].name;\n }\n \n return 'None';\n }\n\n function isChecked(contentRegion: ContentRegionObject): boolean {\n return props.selectedContentRegions.some(cr => {\n return cr.id.toString() === contentRegion.id.toString();\n });\n }\n\n const globalContentRegion = props.options.find(c => c.systemName === ContentRegion.GLOBAL);\n const isGlobalChecked = isChecked(globalContentRegion);\n\n const nonGlobalContentRegions = props.options.filter(c => c.systemName !== ContentRegion.GLOBAL);\n\n return (\n <Dropdown>\n <Dropdown.Toggle\n id={props.id}\n variant='outline-dark'\n >\n {getLabel()}\n </Dropdown.Toggle>\n\n <Dropdown.Menu className={`${styles.dropdownMenu} px-2`}>\n <Checkbox\n key={globalContentRegion.id}\n label={globalContentRegion.name}\n name={globalContentRegion.id}\n id={globalContentRegion.id}\n onChange={() => onToggleGlobalContentRegion(globalContentRegion, isGlobalChecked)}\n checked={isGlobalChecked}\n className='my-1'\n />\n\n <Dropdown.Divider />\n\n {nonGlobalContentRegions.map((contentRegion: ContentRegionObject) => {\n return (\n <Checkbox\n key={contentRegion.id}\n label={contentRegion.name}\n name={contentRegion.id}\n id={contentRegion.id}\n onChange={() => onToggleContentRegion(contentRegion, isChecked(contentRegion))}\n checked={isChecked(contentRegion)}\n className={`my-1 ${isGlobalChecked ? 'disabled' : ''}`}\n disabled={isGlobalChecked}\n />\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n );\n}","import React from 'react';\nimport { Col, Form, Row } from 'react-bootstrap';\nimport { Form as FormikForm } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FieldWrapper, FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper, useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { SelectContentRegion } from 'libs/shared/components/select-content-region/SelectContentRegion';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { ContentRegionObject, EditDetailsRequest, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nconst namespace = 'interactives.editInteractiveDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getValidationSchema(requireContentRegion: boolean) {\n const schema: Yup.ObjectSchemaDefinition<EditDetailsRequest> = {\n name: Yup.string()\n .trim()\n .max(255, () => getPhrase('titleTooLong'))\n .required(() => getPhrase('titleRequired'))\n .default(''),\n\n description: Yup.string()\n .max(16000, () => getPhrase('descriptionTooLong'))\n .default('')\n };\n\n if (requireContentRegion) {\n schema.contentRegions = Yup.array<ContentRegionObject>()\n .min(1, 'Resources must have a content region')\n .default([]);\n }\n\n return Yup.object().shape<EditDetailsRequest>(schema);\n}\n\ninterface EditInteractiveDetailsFormProps {\n interactiveMetadata: InteractiveMetadata;\n onClickCancel: () => void;\n publish: boolean;\n\n // This should only be used by Curator\n contentRegions?: ContentRegionObject[];\n}\n\nfunction EditInteractiveDetailsForm(props: EditInteractiveDetailsFormProps): React.ReactElement {\n const { interactiveMetadata, onClickCancel } = props;\n\n const formikProps = useFormikContextWrapper<EditDetailsRequest>();\n\n return (\n <FormikForm>\n <div className='row form-group'>\n <div className='col-5'>\n <VideoThumbnail\n video={interactiveMetadata}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n />\n </div>\n <div className='col-7'>\n <h2 className='h6'>{formikProps.values.name}</h2>\n </div>\n </div>\n <FormField\n label={getPhrase('nameLabel')}\n type='text'\n name='name'\n id='name'\n placeholder={getPhrase('namePlaceholder')}\n autoFocus\n value={formikProps.values.name}\n />\n <FormField\n label={getPhrase('descriptionLabel')}\n component='textarea'\n name='description'\n id='description'\n placeholder={getPhrase('descriptionPlaceholder')}\n value={formikProps.values.description}\n />\n\n {/* content regions */}\n {!!props.contentRegions?.length && (\n <div className='pb-2'>\n <FormField\n label={getPhrase('contentRegions')}\n name='contentRegions'\n id='contentRegions'\n value={formikProps.values.contentRegions}\n >\n {() => (\n <div className='w-50'>\n <SelectContentRegion\n id={props.interactiveMetadata.id}\n options={props.contentRegions}\n selectedContentRegions={formikProps.values.contentRegions}\n onUpdateContentRegions={contentRegions => formikProps.setFieldValue('contentRegions', contentRegions)}\n />\n </div>\n )}\n </FormField>\n <Form.Control.Feedback className='d-block mt-n2' type='invalid'>\n {formikProps.errors.contentRegions as string}\n </Form.Control.Feedback>\n </div>\n )}\n\n {/* interactive features */}\n <Form.Label>\n <Text namespace={namespace} phrase={'interactiveFeatures'} />\n </Form.Label>\n <Row>\n <Col>\n <Form.Group className='form-group'>\n <div className='form-check'>\n <FieldWrapper\n className='form-check-input'\n label={getPhrase('preventScrubbingLabel')}\n name='preventScrubbing'\n id='preventScrubbing'\n type='checkbox'\n checked={formikProps.values.preventScrubbing}\n />\n <Form.Label className='form-check-label' htmlFor='preventScrubbing'>\n <Text namespace={namespace} phrase={'preventScrubbingLabel'} />\n &nbsp;\n </Form.Label>\n <div className='text-secondary'>\n <Text namespace={namespace} phrase={'preventScrubbingExplain'} />\n </div>\n </div>\n </Form.Group>\n </Col>\n <Col>\n <Form.Group className='form-group'>\n <div className='form-check'>\n <FieldWrapper\n className='form-check-input'\n label={getPhrase('immediateFeedbackLabel')}\n name='immediateFeedback'\n id='immediateFeedback'\n type='checkbox'\n checked={formikProps.values.immediateFeedback}\n />\n <Form.Label className='form-check-label' htmlFor='immediateFeedback'>\n <Text namespace={namespace} phrase={'immediateFeedbackLabel'} />\n &nbsp;\n </Form.Label>\n <div className='text-secondary'>\n <Text namespace={namespace} phrase={'immediateFeedbackExplain'} />\n </div>\n </div>\n </Form.Group>\n </Col>\n </Row>\n <PopupButtons>\n <PopupButtons.Cancel onClick={onClickCancel} />\n <PopupButtons.Submit variant='dark' text={props.publish ? getPhrase('publish') : getPhrase('save')} />\n </PopupButtons>\n </FormikForm>\n );\n}\n\ninterface EditInteractiveDetailsProps {\n interactive: Interactive;\n interactiveMetadata: InteractiveMetadata;\n onSubmit: (data: EditDetailsRequest) => void;\n onClickCancel: () => void;\n publish: boolean;\n\n // This should only be used by Curator\n contentRegions?: ContentRegionObject[];\n}\n\nexport function EditInteractiveDetails(props: EditInteractiveDetailsProps): React.ReactElement {\n const {\n interactive,\n interactiveMetadata,\n onSubmit,\n onClickCancel,\n publish\n } = props;\n\n const initialValues: EditDetailsRequest = {\n name: interactiveMetadata.name || '',\n description: interactiveMetadata.description,\n immediateFeedback: interactive.immediateFeedback,\n preventScrubbing: interactive.preventScrubbing\n };\n\n if (props.contentRegions?.length) {\n initialValues.contentRegions = Array.isArray(interactiveMetadata.contentRegions)\n ? interactiveMetadata.contentRegions\n : interactiveMetadata.contentRegions.data;\n }\n\n return (\n <FormWrapper<EditDetailsRequest>\n initialValues={initialValues}\n validationSchema={getValidationSchema(!!props.contentRegions?.length)}\n allowInitialSubmit\n onSubmit={onSubmit}\n >\n <EditInteractiveDetailsForm\n interactiveMetadata={interactiveMetadata}\n onClickCancel={onClickCancel}\n publish={publish}\n contentRegions={props.contentRegions}\n />\n </FormWrapper>\n );\n}\n","import * as 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 { EntityType, LocationContext, PublishDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EditInteractiveDetails } from 'libs/shared/apps/interactives/components/edit-interactive-details/EditInteractiveDetails';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { EditDetailsRequest, EditInteractiveMetadataRequest, EditInteractiveRequest, Interactive, InteractiveMetadata, PopupViewProps } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { getInteractiveAnalyticsData } from 'apps/interactives/utils/getInteractiveAnalyticsData';\n\nconst namespace = 'interactives.editInteractiveDetailsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface EditInteractiveDetailsProps extends PopupViewProps {\n interactiveMetadataId: string;\n publish: boolean;\n}\n\nexport function EditInteractiveDetailsView(props: EditInteractiveDetailsProps): React.ReactElement {\n const { interactiveMetadataId, publish, closePopup } = props;\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const { hasPermissions } = usePermissions();\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(interactiveMetadataId)\n );\n\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data ?\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId) : null);\n\n function onError(): void {\n alerts.error(getPhrase('error'));\n closePopup();\n }\n\n function onSuccess(name: string): void {\n closePopup();\n alerts.success(getPhrase('success', { name, escapeText: true }));\n\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: publish ? UserAction.Publish : UserAction.Edit,\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractiveDetails,\n workflowPhase: publish ? WorkflowPhase.Complete : WorkflowPhase.Save,\n descriptor: publish ? PublishDescriptor.Publish : undefined\n });\n\n if (!publish) return;\n\n if (hasPermissions(PermissionName.StudentExperience)) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ props.interactiveMetadataId, TextHelper.slugify(interactiveMetadata.data.name) ]\n });\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.CONTRIBUTE_INTERACTIVE,\n args: [interactiveMetadataId]\n });\n }\n\n function onCancel(): void {\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: publish ? UserAction.Publish : UserAction.Edit,\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractiveDetails,\n workflowPhase: WorkflowPhase.Discard,\n descriptor: publish ? PublishDescriptor.Publish : undefined\n });\n closePopup();\n }\n\n function onSubmit(data: EditDetailsRequest): void {\n const interactiveData: EditInteractiveRequest = {\n id: interactive.data.id,\n name: data.name,\n duration: VideoHelper.getDuration(interactiveMetadata.data),\n immediateFeedback: !!data.immediateFeedback,\n preventScrubbing: !!data.preventScrubbing\n };\n\n const interactiveMetadataData: EditInteractiveMetadataRequest = {\n name: data.name,\n description: data.description,\n status: publish ? CurationStatus.Published : interactiveMetadata.data.status\n };\n\n let count = 0;\n const success = () => {\n if (count < 1) {\n count++;\n return;\n }\n\n onSuccess(data.name);\n };\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractive(\n interactive.data.id,\n interactiveData,\n success,\n onError\n )\n );\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractiveMetadata(\n interactiveMetadata.data.id,\n interactiveMetadataData,\n success,\n onError\n )\n );\n }\n\n const dataLoaded = !!interactiveMetadata.data && !!interactive.data;\n\n return (\n <Popup\n title={publish ? getPhrase('publishHeader') : getPhrase('editHeader')}\n closePopup={onCancel}\n showLoadingSpinner={!dataLoaded}\n >\n <EditInteractiveDetails\n interactive={interactive.data}\n interactiveMetadata={interactiveMetadata.data}\n onClickCancel={onCancel}\n onSubmit={onSubmit}\n publish={publish}\n />\n </Popup>\n );\n}\n","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["FormCheckbox","props","label","checkboxLabelClassName","checkboxLabelFontWeight","className","fieldProps","Form","FieldWrapper","htmlFor","id","checkboxAppLink","checkboxAppLinkText","AppLink","appLink","CharacterCounter","field","values","fieldName","length","limit","namespace","children","showLoadingSpinner","type","setType","resolvedChildren","FunctionHelper","f","ObjectHelper","Spinner","animation","size","containerClassName","disabled","SvgContainer","svgName","onClick","FormField","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel","errors","touched","disabledOnChange","_props","onChange","fieldWrapperProps","FormHelper","name","as","title","tooltipPlacement","tooltipSpanHack","Text","phrase","maxLength","errorMessage","defaultProps","autoComplete","FormWrapper","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formikProps","formattedInitialValues","validationSchema","cast","omitChildValues","child","Object","keys","forEach","key","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","entries","value","useFormikContextWrapper","getCustomFormControlClassName","attribute","additionalClassName","getTypeSize","getInteractiveAnalyticsData","interactiveMetadata","extraAnalyticsData","data","interactiveId","status","originType","_parentClip","clip","_parentVideo","video","SelectContentRegion","isChecked","contentRegion","selectedContentRegions","some","cr","toString","globalContentRegion","find","c","systemName","ContentRegion","isGlobalChecked","nonGlobalContentRegions","filter","Dropdown","variant","Checkbox","isCurrentlyChecked","onUpdateContentRegions","onToggleGlobalContentRegion","checked","map","option","concat","getPhrase","LanguageService","EditInteractiveDetailsForm","onClickCancel","VideoThumbnail","imageOptions","textPosition","ThumbnailTextPosition","preload","placeholder","autoFocus","component","description","contentRegions","setFieldValue","Row","Col","preventScrubbing","immediateFeedback","PopupButtons","text","publish","EditInteractiveDetails","requireContentRegion","schema","interactive","Array","isArray","trim","max","required","min","shape","EditInteractiveDetailsView","interactiveMetadataId","closePopup","dispatch","alerts","hasPermissions","usePermissions","InteractiveRequests","onError","error","onCancel","analyticsData","AnalyticsHelper","actionType","entity","location","workflowPhase","descriptor","Publish","undefined","dataLoaded","Popup","interactiveData","duration","VideoHelper","interactiveMetadataData","CurationStatus","count","success","escapeText","PermissionName","application","action","args","TextHelper","onSuccess","bsPrefix","Component","ref","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}