@clickview/lite 0.51.4-rc.0 → 0.51.4-rc.2
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.
- package/dist/bundles.json +2 -2
- package/dist/css/{4489-lite-94d395e526.chunk.css → 4489-lite-e971ca8ab6.chunk.css} +1 -1
- package/dist/css/{8192-lite-0fd63fc233.chunk.css → 8192-lite-cf3253f7b8.chunk.css} +1 -1
- package/dist/css/{lite-app-94ef086c93.css → lite-app-64ea1f3376.css} +2 -2
- package/dist/scripts/{3188-afaf7ead55-lite.chunk.js → 3188-b8dc4bd305-lite.chunk.js} +2 -2
- package/dist/scripts/3188-b8dc4bd305-lite.chunk.js.map +1 -0
- package/dist/scripts/{671-36d34edbf3-lite.chunk.js → 671-4c464fb251-lite.chunk.js} +2 -2
- package/dist/scripts/671-4c464fb251-lite.chunk.js.map +1 -0
- package/dist/scripts/{7223-8af7b524a8-lite.chunk.js → 7223-135cc7d675-lite.chunk.js} +2 -2
- package/dist/scripts/{7223-8af7b524a8-lite.chunk.js.map → 7223-135cc7d675-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8192-fa3ebf2431-lite.chunk.js → 8192-f26370c5a6-lite.chunk.js} +1 -1
- package/dist/scripts/{8192-fa3ebf2431-lite.chunk.js.map → 8192-f26370c5a6-lite.chunk.js.map} +1 -1
- package/dist/scripts/bundle-5481f5bf86.min.js +3 -0
- package/dist/scripts/bundle-5481f5bf86.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/3188-afaf7ead55-lite.chunk.js.map +0 -1
- package/dist/scripts/671-36d34edbf3-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-e900189908.min.js +0 -3
- package/dist/scripts/bundle-e900189908.min.js.map +0 -1
- /package/dist/scripts/{bundle-e900189908.min.js.LICENSE.txt → bundle-5481f5bf86.min.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8192,4489],{36199:(t,e,n)=>{var r;n.d(e,{V:()=>r}),function(t){t[t.Original=0]="Original",t[t.Copy=1]="Copy"}(r||(r={}))},94644:(t,e,n)=>{n.d(e,{r:()=>f});var r=n(50242),o=n(81886),i=n(67058),a=n(14553),c=n(49267),u=n(49075),l={notFound:i.d,forbidden:{rating:a.q,yearLevel:a.q,region:c.a,privacy:a.q},badRequest:u._};function f(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i;i="number"==typeof t?t:t.status;var a=Object.assign(Object.assign({},l),e);i&&o.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?n.badRequest||o.Q.Ry.throw(new a.badRequest):n.forbidden||o.Q.Ry.throw(new a.forbidden.privacy):n.notFound||o.Q.Ry.throw(new a.notFound))}}},91286:(t,e,n)=>{n.d(e,{v:()=>a});var r=n(32735),o=n(94644);function i(t){return t.map((function(t){return t.statusCode})).join(":")}function a(t,e,n){var a=Array.isArray(t)?t:[t];(0,r.useEffect)((function(){a.forEach((function(t){(0,o.r)(t.statusCode,e,n)}))}),[i(a),e,n])}},63649:(t,e,n)=>{n.d(e,{X:()=>i});var r=n(32735);const o={video:"ekpg6",notice:"lQs4F",heading:"Gt6uV",interaction:"LEfYX",button:"caHP7",edit:"de4DP",questions:"XelbS"};function i(){return r.createElement("div",{className:"px-3 w-100"},r.createElement("div",{className:"partial-loading-background ".concat(o.notice)}),r.createElement("div",{className:"partial-loading-background mb-3 ".concat(o.video)},r.createElement("div",{className:"partial-loading-background ".concat(o.questions)})),r.createElement("div",{className:"partial-loading-background mb-3 ".concat(o.heading)}),r.createElement("div",null,Array(5).fill(null).map((function(t,e){return r.createElement("div",{key:e,className:"partial-loading-background my-2 ".concat(o.interaction)})}))))}},9064:(t,e,n)=>{function r(t){var e,n,r,o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return null;var a=Object.assign(Object.assign({},i),{id:t.id,interactiveId:t.interactiveId,name:t.name,status:t.status,originType:t.originType});return(null===(e=null==t?void 0:t._parentClip)||void 0===e?void 0:e.id)&&(a.clip={id:null===(n=null==t?void 0:t._parentClip)||void 0===n?void 0:n.id}),(null===(r=null==t?void 0:t._parentVideo)||void 0===r?void 0:r.id)&&(a.video={id:null===(o=null==t?void 0:t._parentVideo)||void 0===o?void 0:o.id}),a}n.d(e,{T:()=>r})},9897:(t,e,n)=>{n.r(e),n.d(e,{EditInteractiveView:()=>tt});var r=n(32735),o=n(17082),i=n(81886),a=n(20354),c=n(49985),u=n(65858),l=n(5960),f=n(60051),s=n(61990),d=n(33803),y=n(39151),p=n(20768),b=n(47812),v=n(31949),m=n(91286),g=n(72596),h=n(38314),w=n(72004),E=n(14070),O=n(97291),j=n(23481),P=n(64364);function S(t){return S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},S(t)}function k(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,T(r.key),r)}}function T(t){var e=function(t,e){if("object"!=S(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=S(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==S(e)?e:e+""}function I(t,e,n){return e=A(e),function(t,e){if(e&&("object"==S(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,_()?Reflect.construct(e,n||[],A(t).constructor):e.apply(t,n))}function _(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(_=function(){return!!t})()}function A(t){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},A(t)}function C(t,e){return C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},C(t,e)}var R="shared.cannotEditPublishedInteractive",N=function(t){function e(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),I(this,e,[j.T.getPhrase(R,"title")])}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&C(t,e)}(e,t),n=e,(r=[{key:"name",get:function(){return"CannotEditPublishedInteractiveError"}},{key:"heading",get:function(){return j.T.getPhrase(R,"heading")}},{key:"description",get:function(){return j.T.getPhrase(R,"description")}}])&&k(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(P.H),F=n(63649),V=n(9064),L=n(70680),Q=n(36199);function U(t){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U(t)}function q(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,x(r.key),r)}}function x(t){var e=function(t,e){if("object"!=U(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=U(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==U(e)?e:e+""}function B(t,e,n){return e=M(e),function(t,e){if(e&&("object"==U(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,D()?Reflect.construct(e,n||[],M(t).constructor):e.apply(t,n))}function D(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(D=function(){return!!t})()}function M(t){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},M(t)}function X(t,e){return X=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},X(t,e)}var $="shared.cannotEditInteractive",H=function(t){function e(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),B(this,e,[j.T.getPhrase($,"title")])}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&X(t,e)}(e,t),n=e,(r=[{key:"name",get:function(){return"CannnotEditInteractiveError"}},{key:"heading",get:function(){return j.T.getPhrase($,"heading")}},{key:"description",get:function(){return j.T.getPhrase($,"description")}}])&&q(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(P.H);function K(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return G(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?G(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function G(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}var Z=function(t){var e=(0,L.I0)(),n=K(r.useState(!1),2),o=n[0],c=n[1],u=K(r.useState(!1),2),l=u[0],f=u[1];return r.useEffect((function(){if(t&&!l&&!o)if(t.originType!==Q.V.Original){var n=function(){i.Q.Ry.throw(new H)};c(!0),a.a.fetch(e,p.b.copyInteractive(t.interactiveId,(function(r){var o={originType:Q.V.Original,interactiveId:r.id};a.a.fetch(e,p.b.updateInteractiveMetadata(t.id,o,(function(){return f(!0)}),n))}),n))}else f(!0)}),[t]),l};function Y(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return z(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?z(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}var J={application:O.O.INTERACTIVES,action:E.e.Interactives.EDIT_INTERACTIVE_DETAILS},W={notFound:s.l,forbidden:{privacy:d.G}};function tt(t){var e=Y(r.useState(!1),2),n=e[0],s=e[1],d=Y(r.useState(!1),2),E=d[0],O=d[1],j=r.useRef(),P=a.a.useBasicFetch(y.L.config()),S=a.a.useBasicFetch(v.N.currentUser()),k=a.a.useBasicFetch(!!S.data&&p.b.interactiveMetadata(t.id)),T=Z(k.data),I=a.a.useBasicFetch(T?b.k.createViewKey(k.data.id,f.f.MasterObject):null),_=a.a.useBasicFetch(v.N.token()),A=r.useMemo((function(){return(0,o.oD)()}),[]),C=r.useMemo((function(){return(0,o.oD)()}),[]),R=r.useRef();if((0,m.v)(k,W),!(I.data&&P.data&&k.data&&_.data))return r.createElement(F.X,null);if(!E&&(O(!0),k.data.status!==l.X.Draft))return i.Q.Ry.throw(new N),null;var L=(0,V.T)(k.data),Q={entity:u.py.Interactive,location:u.LZ.EditInteractive,workflowPhase:u.eu.Start};return r.createElement(r.Fragment,null,!n&&r.createElement(F.X,null),r.createElement("div",{className:"px-3 ".concat(n?"":"d-none")},r.createElement("div",{className:"d-flex justify-content-between align-items-center mb-3"},r.createElement("h1",{className:"h3 text-truncate mb-0 pb-1"},k.data.name),r.createElement("div",{className:"flex-shrink-0"},r.createElement(o.t0,{node:A}))),r.createElement(w.ClickViewInteractivePlayer,{viewKey:I.data.viewKey,imageApi:new URL(P.data.imageCdnUrl),playerApi:new URL(P.data.playerApiUrl),hotkeyElQuerySelector:"body",autoplay:!0,onReady:function(t){j.current=t,s(!0),R.current=new g.M({player:t,video:k.data,analyticsLocation:u.LZ.EditInteractive})},currentUser:S.data,mode:h.A.Create,actionsPortalNode:A,questionListPortalNode:C,authToken:_.data.value,onClickEditDetails:function(){c.k.logUserAction(L,Object.assign({actionType:u.Vw.Edit},Q)),i.Q.C$.trigger(Object.assign(Object.assign({},J),{args:[t.id]}))},onClickPublish:function(){c.k.logUserAction(L,Object.assign({actionType:u.Vw.Publish},Q)),i.Q.C$.trigger(Object.assign(Object.assign({},J),{args:[t.id],params:{publish:!0}}))},enableImmersiveReader:!0}),r.createElement(o.t0,{node:C})))}}}]);
|
|
2
|
-
//# sourceMappingURL=8192-
|
|
2
|
+
//# sourceMappingURL=8192-f26370c5a6-lite.chunk.js.map
|
package/dist/scripts/{8192-fa3ebf2431-lite.chunk.js.map → 8192-f26370c5a6-lite.chunk.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/8192-fa3ebf2431-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/enums/InteractiveOriginType.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/interactive-partial-loading.scss","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/InteractivePartialLoading.tsx","file:///app/packages/projects/lite/src/apps/interactives/utils/getInteractiveAnalyticsData.ts","file:///app/packages/projects/lite/src/shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError.ts","file:///app/packages/projects/lite/src/shared/errors/interactives/cannot-edit/CannotEditError.ts","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive/useEnsureOriginal.ts","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive/EditInteractiveView.tsx"],"sourcesContent":["export enum InteractiveOriginType {\n Original = 0,\n Copy = 1\n}\n","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","// extracted by mini-css-extract-plugin\nexport default {\"video\":\"ekpg6\",\"notice\":\"lQs4F\",\"heading\":\"Gt6uV\",\"interaction\":\"LEfYX\",\"button\":\"caHP7\",\"edit\":\"de4DP\",\"questions\":\"XelbS\"};","import React from 'react';\n\nimport styles from './interactive-partial-loading.scss';\n\nexport function InteractivePartialLoading(): React.ReactElement {\n return (\n <div className='px-3 w-100'>\n <div className={`partial-loading-background ${styles.notice}`} />\n <div className={`partial-loading-background mb-3 ${styles.video}`}>\n <div className={`partial-loading-background ${styles.questions}`}></div>\n </div>\n <div className={`partial-loading-background mb-3 ${styles.heading}`}></div>\n <div>\n {Array(5).fill(null).map((_, i) => (\n <div key={i} className={`partial-loading-background my-2 ${styles.interaction}`}></div>\n ))}\n </div>\n </div>\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}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditPublishedInteractive';\n\nexport class CannotEditPublishInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannotEditPublishedInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditInteractive';\n\nexport class CannotEditInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannnotEditInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { InteractiveOriginType } from 'libs/shared/enums/InteractiveOriginType';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { EditInteractiveMetadataOriginRequest, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { CannotEditInteractiveError } from 'shared/errors/interactives/cannot-edit/CannotEditError';\n\nexport const useEnsureOriginal = (\n interactiveMetadata: InteractiveMetadata\n) => {\n const dispatch = useDispatch();\n\n /* Used to ensure only one request */\n const [ requested, setRequest ] = React.useState(false);\n const [ ready, setReady ] = React.useState(false);\n\n React.useEffect(() => {\n if (!interactiveMetadata || ready || requested)\n return;\n\n if (interactiveMetadata.originType === InteractiveOriginType.Original) {\n setReady(true);\n return;\n }\n\n const error = () => {\n Core.ErrorHelper.throw(new CannotEditInteractiveError());\n };\n\n const success = (resp: Interactive) => {\n const data: EditInteractiveMetadataOriginRequest = {\n originType: InteractiveOriginType.Original,\n interactiveId: resp.id\n };\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractiveMetadata(\n interactiveMetadata.id,\n data,\n () => setReady(true),\n error\n )\n );\n };\n\n setRequest(true);\n Flight.fetch(dispatch, InteractiveRequests.copyInteractive(\n interactiveMetadata.interactiveId,\n success,\n error\n ));\n }, [interactiveMetadata]);\n\n return ready;\n};","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\nimport { PlayerAnalyticsTracker } from 'libs/shared/utils/PlayerAnalyticsTracker';\n\nimport { InteractivePlayer } from 'projects/player/players/interactive-player';\nimport { InteractiveMode } from 'projects/player/plugins/interactive-plugin/interfaces';\nimport { ClickViewInteractivePlayer } from 'projects/player/react/InteractivePlayer';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CannotEditPublishInteractiveError } from 'shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { getInteractiveAnalyticsData } from 'apps/interactives/utils/getInteractiveAnalyticsData';\n\nimport { useEnsureOriginal } from './useEnsureOriginal';\n\nconst EDIT_APPLINK = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE_DETAILS\n};\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\ninterface EditInteractiveProps {\n id: string;\n}\n\nexport function EditInteractiveView(props: EditInteractiveProps): React.ReactElement {\n const [ ready, setReady ] = React.useState(false);\n\n const [ hasCheckedStatus, setHasCheckedStatus ] = React.useState(false);\n const playerRef = React.useRef<InteractivePlayer>();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(!!currentUser.data &&\n InteractiveRequests.interactiveMetadata(props.id));\n\n /**\n * This will check if the interactive is a copy or not\n * and update it to original if it is a copy.\n */\n const isOriginal = useEnsureOriginal(interactiveMetadata.data);\n\n /**\n * We don't fetch our view key until we know our interactive has been upgraded\n * to an original\n */\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(isOriginal ?\n PlayerRequests.createViewKey(interactiveMetadata.data.id, MediaIdType.MasterObject) : null);\n\n const token = Flight.useBasicFetch<HashObject>(UserRequests.token());\n\n const actionsPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const analyticsTracker = React.useRef<PlayerAnalyticsTracker>();\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n\n function onReady(player: InteractivePlayer): void {\n playerRef.current = player;\n\n setReady(true);\n\n analyticsTracker.current = new PlayerAnalyticsTracker({\n player,\n video: interactiveMetadata.data,\n analyticsLocation: LocationContext.EditInteractive\n });\n }\n\n if (!viewKey.data || !config.data || !interactiveMetadata.data || !token.data)\n return <InteractivePartialLoading />;\n\n /**\n * We do this because when the publish popup publishes\n * the flight state updates and this briefly re-renders\n * with data.status being published\n */\n if (!hasCheckedStatus) {\n setHasCheckedStatus(true);\n if (interactiveMetadata.data.status !== CurationStatus.Draft) {\n Core.ErrorHelper.throw(new CannotEditPublishInteractiveError());\n return null;\n }\n }\n\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n\n const baseAnalyticsOptions = {\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractive,\n workflowPhase: WorkflowPhase.Start\n };\n\n function onClickEditDetails(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Edit,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id]\n });\n }\n\n function onClickPublish(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Publish,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id],\n params: { publish: true }\n });\n }\n\n return (\n <>\n {!ready && <InteractivePartialLoading />}\n <div className={`px-3 ${ready ? '' : 'd-none'}`}>\n <div className='d-flex justify-content-between align-items-center mb-3'>\n <h1 className='h3 text-truncate mb-0 pb-1'>{interactiveMetadata.data.name}</h1>\n <div className='flex-shrink-0'>\n <OutPortal node={actionsPortalNode} />\n </div>\n </div>\n <ClickViewInteractivePlayer\n viewKey={viewKey.data.viewKey}\n imageApi={new URL(config.data.imageCdnUrl)}\n playerApi={new URL(config.data.playerApiUrl)}\n hotkeyElQuerySelector='body'\n autoplay\n onReady={onReady}\n currentUser={currentUser.data}\n mode={InteractiveMode.Create}\n actionsPortalNode={actionsPortalNode}\n questionListPortalNode={questionListPortalNode}\n authToken={token.data.value}\n onClickEditDetails={onClickEditDetails}\n onClickPublish={onClickPublish}\n enableImmersiveReader\n />\n <OutPortal node={questionListPortalNode} />\n </div>\n </>\n );\n}\n"],"names":["InteractiveOriginType","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","InteractivePartialLoading","className","fill","_","i","key","getInteractiveAnalyticsData","interactiveMetadata","extraAnalyticsData","data","id","interactiveId","name","originType","_parentClip","clip","_parentVideo","video","namespace","CannotEditPublishInteractiveError","LanguageService","ErrorPageError","CannotEditInteractiveError","useEnsureOriginal","dispatch","requested","setRequest","ready","setReady","error","InteractiveRequests","resp","EDIT_APPLINK","application","action","videoErrors","VideoNotFoundError","VideoPrivateError","EditInteractiveView","props","hasCheckedStatus","setHasCheckedStatus","playerRef","config","ConfigRequests","currentUser","UserRequests","isOriginal","viewKey","PlayerRequests","MediaIdType","token","actionsPortalNode","questionListPortalNode","analyticsTracker","CurationStatus","analyticsData","baseAnalyticsOptions","entity","location","workflowPhase","node","ClickViewInteractivePlayer","imageApi","URL","imageCdnUrl","playerApi","playerApiUrl","hotkeyElQuerySelector","autoplay","onReady","player","current","PlayerAnalyticsTracker","analyticsLocation","mode","authToken","value","onClickEditDetails","AnalyticsHelper","actionType","args","onClickPublish","params","publish","enableImmersiveReader"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/8192-f26370c5a6-lite.chunk.js","mappings":"wHAAA,IAAYA,E,iBAAZ,SAAYA,GACV,2BACA,kBACD,CAHD,CAAYA,IAAAA,EAAqB,I,yGC0B3BC,EAA8B,CAClCC,SAAU,IACVC,UAAW,CACTC,OAAQ,IACRC,UAAW,IACXC,OAAQ,IACRC,QAAS,KAEXC,WAAY,KAGR,SAAUC,EACdC,GAMkC,IALlCC,EAAA,uDAA+B,CAAC,EAKhCC,EAAA,uDAAgC,CAAC,EAEjC,GAAKF,EAAL,CAGA,IAAIG,EAGFA,EADmB,iBAAVH,EACIA,EAEAA,EAAKI,OAGpB,IAAMC,EAAW,OAAH,wBACTd,GACAU,GAGAE,GAGA,yBAAmCA,KAGpCA,IAAe,aAMfA,IAAe,cAUdD,EAAUJ,YACb,aAAuB,IAAIO,EAASP,YAN/BI,EAAUT,WACb,aAAuB,IAAIY,EAASZ,UAAUI,SAX3CK,EAAUV,UACb,aAAuB,IAAIa,EAASb,UAvBhC,CAuCV,C,6DChFA,SAASc,EAAiBC,GACxB,OAAOA,EAAWC,KAAI,SAAAC,GAAG,OAAIA,EAAIN,UAAU,IAAEO,KAAK,IACpD,CAGM,SAAUC,EACdC,EACAC,EACAC,GAEA,IAAMP,EAAaQ,MAAMC,QAAQJ,GAAeA,EAAc,CAACA,IAE/D,IAAAK,YAAU,WACRV,EAAWW,SAAQ,SAAAT,IACjB,OAAgBA,EAAIN,WAAYU,EAAcC,EAChD,GACF,GAAG,CAAER,EAAiBC,GAAaM,EAAcC,GACnD,C,kDCtBA,SAAgB,MAAQ,QAAQ,OAAS,QAAQ,QAAU,QAAQ,YAAc,QAAQ,OAAS,QAAQ,KAAO,QAAQ,UAAY,SCG/H,SAAUK,IACd,OACE,uBAAKC,UAAU,cACb,uBAAKA,UAAS,qCAAgC,YAC9C,uBAAKA,UAAS,0CAAqC,UACjD,uBAAKA,UAAS,qCAAgC,gBAEhD,uBAAKA,UAAS,0CAAqC,aACnD,2BACGL,MAAM,GAAGM,KAAK,MAAMb,KAAI,SAACc,EAAGC,GAAC,OAC5B,uBAAKC,IAAKD,EAAGH,UAAS,0CAAqC,gBAA4B,KAKjG,C,iBCbM,SAAUK,EACdC,GACmC,I,QAAnCC,EAAA,uDAAiC,CAAC,EAElC,IAAKD,EACH,OAAO,KAET,IAAME,EAAI,+BACLD,GAAkB,CACrBE,GAAIH,EAAoBG,GACxBC,cAAeJ,EAAoBI,cACnCC,KAAML,EAAoBK,KAC1B3B,OAAQsB,EAAoBtB,OAC5B4B,WAAYN,EAAoBM,aASlC,OANoC,QAAhC,EAAAN,aAAmB,EAAnBA,EAAqBO,mBAAW,eAAEJ,MACpCD,EAAKM,KAAO,CAAEL,GAAoC,QAAhC,EAAAH,aAAmB,EAAnBA,EAAqBO,mBAAW,eAAEJ,MAEjB,QAAjC,EAAAH,aAAmB,EAAnBA,EAAqBS,oBAAY,eAAEN,MACrCD,EAAKQ,MAAQ,CAAEP,GAAqC,QAAjC,EAAAH,aAAmB,EAAnBA,EAAqBS,oBAAY,eAAEN,KAEjDD,CACT,C,+vDCzBA,IAAMS,EAAY,wCAELC,EAAkC,YAC7C,oB,4FAAA,mBACQC,EAAA,YAA0BF,EAAW,UAC7C,CAEA,O,qRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,qCACT,GAEA,mBACA,WACE,OAAOE,EAAA,YAA0BF,EAAW,UAC9C,GAEA,uBACA,WACE,OAAOE,EAAA,YAA0BF,EAAW,cAC9C,M,6EAAC,CAlB4C,CAAQG,EAAA,G,y+CCFvD,IAAM,EAAY,+BAELC,EAA2B,YACtC,oB,4FAAA,mBACQF,EAAA,YAA0B,EAAW,UAC7C,CAEA,O,qRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,6BACT,GAEA,mBACA,WACE,OAAOA,EAAA,YAA0B,EAAW,UAC9C,GAEA,uBACA,WACE,OAAOA,EAAA,YAA0B,EAAW,cAC9C,M,6EAAC,CAlBqC,CAAQC,EAAA,G,ggCCMzC,IAAME,EAAoB,SAC/BhB,GAEA,IAAMiB,GAAW,UAGsC,IAArB,YAAe,GAAM,GAA/CC,EAAS,KAAEC,EAAU,KACoB,IAArB,YAAe,GAAM,GAAzCC,EAAK,KAAEC,EAAQ,KAwCvB,OAtCA,aAAgB,WACd,GAAKrB,IAAuBoB,IAASF,EAGrC,GAAIlB,EAAoBM,aAAe1C,EAAA,WAAvC,CAKA,IAAM0D,EAAQ,WACZ,aAAuB,IAAIP,EAC7B,EAmBAI,GAAW,GACX,UAAaF,EAAUM,EAAA,kBACrBvB,EAAoBI,eAnBN,SAACoB,GACf,IAAMtB,EAA6C,CACjDI,WAAY1C,EAAA,WACZwC,cAAeoB,EAAKrB,IAGtB,UACEc,EACAM,EAAA,4BACEvB,EAAoBG,GACpBD,GACA,kBAAMmB,GAAS,EAAK,GACpBC,GAGN,GAMEA,GA3BD,MAFCD,GAAS,EA+Bb,GAAG,CAACrB,IAEGoB,CACT,E,ggCCzBA,IAAMK,EAAe,CACnBC,YAAa,iBACbC,OAAQ,2CAGJC,EAAc,CAClB9D,SAAU+D,EAAA,EACV9D,UAAW,CACTI,QAAS2D,EAAA,IAQP,SAAUC,GAAoBC,GAClC,IAAiD,IAArB,YAAe,GAAM,GAAzCZ,EAAK,KAAEC,EAAQ,KAEgD,IAArB,YAAe,GAAM,GAA/DY,EAAgB,KAAEC,EAAmB,KACvCC,EAAY,WAEZC,EAAS,kBAA6BC,EAAA,YACtCC,EAAc,kBAAkCC,EAAA,iBAEhDvC,EAAsB,oBAA4CsC,EAAYpC,MAClFqB,EAAA,sBAAwCS,EAAM7B,KAM1CqC,EAAaxB,EAAkBhB,EAAoBE,MAMnDuC,EAAU,kBAAoCD,EAClDE,EAAA,gBAA6B1C,EAAoBE,KAAKC,GAAIwC,EAAA,gBAA4B,MAElFC,EAAQ,kBAAiCL,EAAA,WAEzCM,EAAoB,WAAc,kBAAM,SAAsB,GAAE,IAChEC,EAAyB,WAAc,kBAAM,SAAsB,GAAE,IAErEC,EAAmB,WAgBzB,IAdA,OAAqB/C,EAAqB4B,KAcrCa,EAAQvC,MAASkC,EAAOlC,MAASF,EAAoBE,MAAS0C,EAAM1C,MACvE,OAAO,gBAACT,EAAA,EAAyB,MAOnC,IAAKwC,IACHC,GAAoB,GAChBlC,EAAoBE,KAAKxB,SAAWsE,EAAA,SAEtC,OADA,aAAuB,IAAIpC,GACpB,KAIX,IAAMqC,GAAgB,EAAAlD,EAAA,GAA4BC,EAAoBE,MAEhEgD,EAAuB,CAC3BC,OAAQ,iBACRC,SAAU,qBACVC,cAAe,YA4BjB,OACE,iCACIjC,GAAS,gBAAC3B,EAAA,EAAyB,MACrC,uBAAKC,UAAS,eAAU0B,EAAQ,GAAK,WACnC,uBAAK1B,UAAU,0DACb,sBAAIA,UAAU,8BAA8BM,EAAoBE,KAAKG,MACrE,uBAAKX,UAAU,iBACb,gBAAC,KAAS,CAAC4D,KAAMT,MAGrB,gBAAC,EAAAU,2BAA0B,CACzBd,QAASA,EAAQvC,KAAKuC,QACtBe,SAAU,IAAIC,IAAIrB,EAAOlC,KAAKwD,aAC9BC,UAAW,IAAIF,IAAIrB,EAAOlC,KAAK0D,cAC/BC,sBAAsB,OACtBC,UAAQ,EACRC,QA7ER,SAAiBC,GACf7B,EAAU8B,QAAUD,EAEpB3C,GAAS,GAET0B,EAAiBkB,QAAU,IAAIC,EAAA,EAAuB,CACpDF,OAAAA,EACAtD,MAAOV,EAAoBE,KAC3BiE,kBAAmB,sBAEvB,EAoEQ7B,YAAaA,EAAYpC,KACzBkE,KAAM,WACNvB,kBAAmBA,EACnBC,uBAAwBA,EACxBuB,UAAWzB,EAAM1C,KAAKoE,MACtBC,mBA/CR,WACEC,EAAA,gBAA8BvB,EAAe,OAAF,QACzCwB,WAAY,WACTvB,IAGL,eAA2B,OAAD,wBACrBzB,GAAY,CACfiD,KAAM,CAAC1C,EAAM7B,MAEjB,EAsCQwE,eApCR,WACEH,EAAA,gBAA8BvB,EAAe,OAAF,QACzCwB,WAAY,cACTvB,IAGL,eAA2B,OAAD,wBACrBzB,GAAY,CACfiD,KAAM,CAAC1C,EAAM7B,IACbyE,OAAQ,CAAEC,SAAS,KAEvB,EA0BQC,uBAAqB,IAEvB,gBAAC,KAAS,CAACxB,KAAMR,KAIzB,C","sources":["file:///app/packages/libs/shared/src/enums/InteractiveOriginType.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/interactive-partial-loading.scss","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/InteractivePartialLoading.tsx","file:///app/packages/projects/lite/src/apps/interactives/utils/getInteractiveAnalyticsData.ts","file:///app/packages/projects/lite/src/shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError.ts","file:///app/packages/projects/lite/src/shared/errors/interactives/cannot-edit/CannotEditError.ts","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive/useEnsureOriginal.ts","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive/EditInteractiveView.tsx"],"sourcesContent":["export enum InteractiveOriginType {\n Original = 0,\n Copy = 1\n}\n","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","// extracted by mini-css-extract-plugin\nexport default {\"video\":\"ekpg6\",\"notice\":\"lQs4F\",\"heading\":\"Gt6uV\",\"interaction\":\"LEfYX\",\"button\":\"caHP7\",\"edit\":\"de4DP\",\"questions\":\"XelbS\"};","import React from 'react';\n\nimport styles from './interactive-partial-loading.scss';\n\nexport function InteractivePartialLoading(): React.ReactElement {\n return (\n <div className='px-3 w-100'>\n <div className={`partial-loading-background ${styles.notice}`} />\n <div className={`partial-loading-background mb-3 ${styles.video}`}>\n <div className={`partial-loading-background ${styles.questions}`}></div>\n </div>\n <div className={`partial-loading-background mb-3 ${styles.heading}`}></div>\n <div>\n {Array(5).fill(null).map((_, i) => (\n <div key={i} className={`partial-loading-background my-2 ${styles.interaction}`}></div>\n ))}\n </div>\n </div>\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}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditPublishedInteractive';\n\nexport class CannotEditPublishInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannotEditPublishedInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditInteractive';\n\nexport class CannotEditInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannnotEditInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { InteractiveOriginType } from 'libs/shared/enums/InteractiveOriginType';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { EditInteractiveMetadataOriginRequest, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { CannotEditInteractiveError } from 'shared/errors/interactives/cannot-edit/CannotEditError';\n\nexport const useEnsureOriginal = (\n interactiveMetadata: InteractiveMetadata\n) => {\n const dispatch = useDispatch();\n\n /* Used to ensure only one request */\n const [ requested, setRequest ] = React.useState(false);\n const [ ready, setReady ] = React.useState(false);\n\n React.useEffect(() => {\n if (!interactiveMetadata || ready || requested)\n return;\n\n if (interactiveMetadata.originType === InteractiveOriginType.Original) {\n setReady(true);\n return;\n }\n\n const error = () => {\n Core.ErrorHelper.throw(new CannotEditInteractiveError());\n };\n\n const success = (resp: Interactive) => {\n const data: EditInteractiveMetadataOriginRequest = {\n originType: InteractiveOriginType.Original,\n interactiveId: resp.id\n };\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractiveMetadata(\n interactiveMetadata.id,\n data,\n () => setReady(true),\n error\n )\n );\n };\n\n setRequest(true);\n Flight.fetch(dispatch, InteractiveRequests.copyInteractive(\n interactiveMetadata.interactiveId,\n success,\n error\n ));\n }, [interactiveMetadata]);\n\n return ready;\n};","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\nimport { PlayerAnalyticsTracker } from 'libs/shared/utils/PlayerAnalyticsTracker';\n\nimport { InteractivePlayer } from 'projects/player/players/interactive-player';\nimport { InteractiveMode } from 'projects/player/plugins/interactive-plugin/interfaces';\nimport { ClickViewInteractivePlayer } from 'projects/player/react/InteractivePlayer';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CannotEditPublishInteractiveError } from 'shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { getInteractiveAnalyticsData } from 'apps/interactives/utils/getInteractiveAnalyticsData';\n\nimport { useEnsureOriginal } from './useEnsureOriginal';\n\nconst EDIT_APPLINK = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE_DETAILS\n};\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\ninterface EditInteractiveProps {\n id: string;\n}\n\nexport function EditInteractiveView(props: EditInteractiveProps): React.ReactElement {\n const [ ready, setReady ] = React.useState(false);\n\n const [ hasCheckedStatus, setHasCheckedStatus ] = React.useState(false);\n const playerRef = React.useRef<InteractivePlayer>();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(!!currentUser.data &&\n InteractiveRequests.interactiveMetadata(props.id));\n\n /**\n * This will check if the interactive is a copy or not\n * and update it to original if it is a copy.\n */\n const isOriginal = useEnsureOriginal(interactiveMetadata.data);\n\n /**\n * We don't fetch our view key until we know our interactive has been upgraded\n * to an original\n */\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(isOriginal ?\n PlayerRequests.createViewKey(interactiveMetadata.data.id, MediaIdType.MasterObject) : null);\n\n const token = Flight.useBasicFetch<HashObject>(UserRequests.token());\n\n const actionsPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const analyticsTracker = React.useRef<PlayerAnalyticsTracker>();\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n\n function onReady(player: InteractivePlayer): void {\n playerRef.current = player;\n\n setReady(true);\n\n analyticsTracker.current = new PlayerAnalyticsTracker({\n player,\n video: interactiveMetadata.data,\n analyticsLocation: LocationContext.EditInteractive\n });\n }\n\n if (!viewKey.data || !config.data || !interactiveMetadata.data || !token.data)\n return <InteractivePartialLoading />;\n\n /**\n * We do this because when the publish popup publishes\n * the flight state updates and this briefly re-renders\n * with data.status being published\n */\n if (!hasCheckedStatus) {\n setHasCheckedStatus(true);\n if (interactiveMetadata.data.status !== CurationStatus.Draft) {\n Core.ErrorHelper.throw(new CannotEditPublishInteractiveError());\n return null;\n }\n }\n\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n\n const baseAnalyticsOptions = {\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractive,\n workflowPhase: WorkflowPhase.Start\n };\n\n function onClickEditDetails(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Edit,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id]\n });\n }\n\n function onClickPublish(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Publish,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id],\n params: { publish: true }\n });\n }\n\n return (\n <>\n {!ready && <InteractivePartialLoading />}\n <div className={`px-3 ${ready ? '' : 'd-none'}`}>\n <div className='d-flex justify-content-between align-items-center mb-3'>\n <h1 className='h3 text-truncate mb-0 pb-1'>{interactiveMetadata.data.name}</h1>\n <div className='flex-shrink-0'>\n <OutPortal node={actionsPortalNode} />\n </div>\n </div>\n <ClickViewInteractivePlayer\n viewKey={viewKey.data.viewKey}\n imageApi={new URL(config.data.imageCdnUrl)}\n playerApi={new URL(config.data.playerApiUrl)}\n hotkeyElQuerySelector='body'\n autoplay\n onReady={onReady}\n currentUser={currentUser.data}\n mode={InteractiveMode.Create}\n actionsPortalNode={actionsPortalNode}\n questionListPortalNode={questionListPortalNode}\n authToken={token.data.value}\n onClickEditDetails={onClickEditDetails}\n onClickPublish={onClickPublish}\n enableImmersiveReader\n />\n <OutPortal node={questionListPortalNode} />\n </div>\n </>\n );\n}\n"],"names":["InteractiveOriginType","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","InteractivePartialLoading","className","fill","_","i","key","getInteractiveAnalyticsData","interactiveMetadata","extraAnalyticsData","data","id","interactiveId","name","originType","_parentClip","clip","_parentVideo","video","namespace","CannotEditPublishInteractiveError","LanguageService","ErrorPageError","CannotEditInteractiveError","useEnsureOriginal","dispatch","requested","setRequest","ready","setReady","error","InteractiveRequests","resp","EDIT_APPLINK","application","action","videoErrors","VideoNotFoundError","VideoPrivateError","EditInteractiveView","props","hasCheckedStatus","setHasCheckedStatus","playerRef","config","ConfigRequests","currentUser","UserRequests","isOriginal","viewKey","PlayerRequests","MediaIdType","token","actionsPortalNode","questionListPortalNode","analyticsTracker","CurationStatus","analyticsData","baseAnalyticsOptions","entity","location","workflowPhase","node","ClickViewInteractivePlayer","imageApi","URL","imageCdnUrl","playerApi","playerApiUrl","hotkeyElQuerySelector","autoplay","onReady","player","current","PlayerAnalyticsTracker","analyticsLocation","mode","authToken","value","onClickEditDetails","AnalyticsHelper","actionType","args","onClickPublish","params","publish","enableImmersiveReader"],"sourceRoot":""}
|