sanity-plugin-mux-input 1.1.1 → 1.1.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.
package/README.md CHANGED
@@ -84,3 +84,13 @@ Issues are actively monitored and PRs are welcome. When developing this plugin t
84
84
  1. Re-start the sanity studio server with `npm start`.
85
85
  1. Edit `schemas/post.js` and add follow the plugin documentation to add a `mux.video` type field.
86
86
  1. Your studio should reload, and now when you edit the plugin code it should reload the studio, when you're done create a branch, put in a PR and a maintainer will review it. Thank you!
87
+
88
+ ## Publishing
89
+
90
+ ### Test
91
+
92
+ `yarn semantic-release`
93
+
94
+ ### Go live
95
+
96
+ `yarn semantic-release -- --no-ci`
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
6
7
  exports.deleteAsset = deleteAsset;
7
8
  exports.getAsset = getAsset;
8
- exports.default = void 0;
9
9
 
10
10
  var _SanityClient = _interopRequireDefault(require("../clients/SanityClient"));
11
11
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/actions/assets.js"],"names":["deleteAsset","assetId","dataset","client","clientConfig","request","url","withCredentials","method","getAsset"],"mappings":";;;;;;;;;AAAA;;;;AAEO,SAASA,WAAT,CAAqBC,OAArB,EAA8B;AACnC,MAAMC,OAAO,GAAGC,sBAAOC,YAAP,CAAoBF,OAApC;AACA,SAAOC,sBAAOE,OAAP,CAAe;AACpBC,IAAAA,GAAG,+BAAwBJ,OAAxB,cAAmCD,OAAnC,CADiB;AAEpBM,IAAAA,eAAe,EAAE,IAFG;AAGpBC,IAAAA,MAAM,EAAE;AAHY,GAAf,CAAP;AAKD;;AAEM,SAASC,QAAT,CAAkBR,OAAlB,EAA2B;AAChC,MAAMC,OAAO,GAAGC,sBAAOC,YAAP,CAAoBF,OAApC;AACA,SAAOC,sBAAOE,OAAP,CAAe;AACpBC,IAAAA,GAAG,+BAAwBJ,OAAxB,mBAAwCD,OAAxC,CADiB;AAEpBM,IAAAA,eAAe,EAAE,IAFG;AAGpBC,IAAAA,MAAM,EAAE;AAHY,GAAf,CAAP;AAKD;;eAEc;AAACC,EAAAA,QAAD;AAAWT,EAAAA;AAAX,C","sourcesContent":["import client from '../clients/SanityClient'\n\nexport function deleteAsset(assetId) {\n const dataset = client.clientConfig.dataset\n return client.request({\n url: `/addons/mux/assets/${dataset}/${assetId}`,\n withCredentials: true,\n method: 'DELETE',\n })\n}\n\nexport function getAsset(assetId) {\n const dataset = client.clientConfig.dataset\n return client.request({\n url: `/addons/mux/assets/${dataset}/data/${assetId}`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nexport default {getAsset, deleteAsset}\n"],"file":"assets.js"}
1
+ {"version":3,"file":"assets.js","names":["deleteAsset","assetId","dataset","client","clientConfig","request","url","withCredentials","method","getAsset"],"sources":["../../src/actions/assets.js"],"sourcesContent":["import client from '../clients/SanityClient'\n\nexport function deleteAsset(assetId) {\n const dataset = client.clientConfig.dataset\n return client.request({\n url: `/addons/mux/assets/${dataset}/${assetId}`,\n withCredentials: true,\n method: 'DELETE',\n })\n}\n\nexport function getAsset(assetId) {\n const dataset = client.clientConfig.dataset\n return client.request({\n url: `/addons/mux/assets/${dataset}/data/${assetId}`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nexport default {getAsset, deleteAsset}\n"],"mappings":";;;;;;;;;AAAA;;;;AAEO,SAASA,WAAT,CAAqBC,OAArB,EAA8B;EACnC,IAAMC,OAAO,GAAGC,qBAAA,CAAOC,YAAP,CAAoBF,OAApC;EACA,OAAOC,qBAAA,CAAOE,OAAP,CAAe;IACpBC,GAAG,+BAAwBJ,OAAxB,cAAmCD,OAAnC,CADiB;IAEpBM,eAAe,EAAE,IAFG;IAGpBC,MAAM,EAAE;EAHY,CAAf,CAAP;AAKD;;AAEM,SAASC,QAAT,CAAkBR,OAAlB,EAA2B;EAChC,IAAMC,OAAO,GAAGC,qBAAA,CAAOC,YAAP,CAAoBF,OAApC;EACA,OAAOC,qBAAA,CAAOE,OAAP,CAAe;IACpBC,GAAG,+BAAwBJ,OAAxB,mBAAwCD,OAAxC,CADiB;IAEpBM,eAAe,EAAE,IAFG;IAGpBC,MAAM,EAAE;EAHY,CAAf,CAAP;AAKD;;eAEc;EAACC,QAAD;EAAWT;AAAX,C"}
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.createSigningKeys = createSigningKeys;
6
7
  exports.fetchSecrets = fetchSecrets;
8
+ exports.haveValidSigningKeys = haveValidSigningKeys;
7
9
  exports.saveSecrets = saveSecrets;
8
- exports.createSigningKeys = createSigningKeys;
9
10
  exports.testSecrets = testSecrets;
10
- exports.haveValidSigningKeys = haveValidSigningKeys;
11
11
  exports.testSecretsObservable = testSecretsObservable;
12
12
 
13
13
  var _rxjs = require("rxjs");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/actions/secrets.js"],"names":["cache","secrets","exists","fetchSecrets","Promise","resolve","client","fetch","then","Boolean","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","saveSecrets","doc","_id","_type","createOrReplace","createSigningKeys","dataset","clientConfig","request","url","withCredentials","method","testSecrets","haveValidSigningKeys","res","data","id","e","console","error","testSecretsObservable","observable"],"mappings":"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","sourcesContent":["import {defer} from 'rxjs'\nimport client from '../clients/SanityClient'\n\nconst cache = {\n secrets: null,\n exists: false,\n}\n\nexport function fetchSecrets() {\n if (cache.exists) {\n return Promise.resolve(cache)\n }\n\n return client.fetch('*[_id == \"secrets.mux\"][0]').then((secrets) => {\n cache.exists = Boolean(secrets)\n cache.secrets = {\n token: secrets?.token || null,\n secretKey: secrets?.secretKey || null,\n enableSignedUrls: secrets?.enableSignedUrls || false,\n signingKeyId: secrets?.signingKeyId || null,\n signingKeyPrivate: secrets?.signingKeyPrivate || null,\n }\n return cache\n })\n}\n\nexport function saveSecrets(token, secretKey, enableSignedUrls, signingKeyId, signingKeyPrivate) {\n const doc = {\n _id: 'secrets.mux',\n _type: 'mux.apiKey',\n token,\n secretKey,\n enableSignedUrls,\n signingKeyId,\n signingKeyPrivate,\n }\n\n return client.createOrReplace(doc).then(() => {\n cache.exists = true\n cache.secrets = {\n token,\n secretKey,\n enableSignedUrls,\n signingKeyId,\n signingKeyPrivate,\n }\n return cache.secrets\n })\n}\n\nexport function createSigningKeys() {\n const dataset = client.clientConfig.dataset\n return client.request({\n url: `/addons/mux/signing-keys/${dataset}`,\n withCredentials: true,\n method: 'POST',\n })\n}\n\nexport function testSecrets() {\n const dataset = client.clientConfig.dataset\n return client.request({\n url: `/addons/mux/secrets/${dataset}/test`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nexport async function haveValidSigningKeys(signingKeyId, signingKeyPrivate) {\n if (!(signingKeyId && signingKeyPrivate)) {\n return false\n }\n\n const dataset = client.clientConfig.dataset\n try {\n const res = await client.request({\n url: `/addons/mux/signing-keys/${dataset}/${signingKeyId}`,\n withCredentials: true,\n method: 'GET',\n })\n //\n // if this signing key is valid it will return { data: { id: 'xxxx' } }\n //\n return !!(res.data && res.data.id)\n } catch (e) {\n console.error('Error fetching signingKeyId', signingKeyId, 'assuming it is not valid')\n return false\n }\n}\n\nexport function testSecretsObservable() {\n const dataset = client.clientConfig.dataset\n return defer(() =>\n client.observable.request({\n url: `/addons/mux/secrets/${dataset}/test`,\n withCredentials: true,\n method: 'GET',\n })\n )\n}\n"],"file":"secrets.js"}
1
+ {"version":3,"file":"secrets.js","names":["cache","secrets","exists","fetchSecrets","Promise","resolve","client","fetch","then","Boolean","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","saveSecrets","doc","_id","_type","createOrReplace","createSigningKeys","dataset","clientConfig","request","url","withCredentials","method","testSecrets","haveValidSigningKeys","res","data","id","e","console","error","testSecretsObservable","defer","observable"],"sources":["../../src/actions/secrets.js"],"sourcesContent":["import {defer} from 'rxjs'\nimport client from '../clients/SanityClient'\n\nconst cache = {\n secrets: null,\n exists: false,\n}\n\nexport function fetchSecrets() {\n if (cache.exists) {\n return Promise.resolve(cache)\n }\n\n return client.fetch('*[_id == \"secrets.mux\"][0]').then((secrets) => {\n cache.exists = Boolean(secrets)\n cache.secrets = {\n token: secrets?.token || null,\n secretKey: secrets?.secretKey || null,\n enableSignedUrls: secrets?.enableSignedUrls || false,\n signingKeyId: secrets?.signingKeyId || null,\n signingKeyPrivate: secrets?.signingKeyPrivate || null,\n }\n return cache\n })\n}\n\nexport function saveSecrets(token, secretKey, enableSignedUrls, signingKeyId, signingKeyPrivate) {\n const doc = {\n _id: 'secrets.mux',\n _type: 'mux.apiKey',\n token,\n secretKey,\n enableSignedUrls,\n signingKeyId,\n signingKeyPrivate,\n }\n\n return client.createOrReplace(doc).then(() => {\n cache.exists = true\n cache.secrets = {\n token,\n secretKey,\n enableSignedUrls,\n signingKeyId,\n signingKeyPrivate,\n }\n return cache.secrets\n })\n}\n\nexport function createSigningKeys() {\n const dataset = client.clientConfig.dataset\n return client.request({\n url: `/addons/mux/signing-keys/${dataset}`,\n withCredentials: true,\n method: 'POST',\n })\n}\n\nexport function testSecrets() {\n const dataset = client.clientConfig.dataset\n return client.request({\n url: `/addons/mux/secrets/${dataset}/test`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nexport async function haveValidSigningKeys(signingKeyId, signingKeyPrivate) {\n if (!(signingKeyId && signingKeyPrivate)) {\n return false\n }\n\n const dataset = client.clientConfig.dataset\n try {\n const res = await client.request({\n url: `/addons/mux/signing-keys/${dataset}/${signingKeyId}`,\n withCredentials: true,\n method: 'GET',\n })\n //\n // if this signing key is valid it will return { data: { id: 'xxxx' } }\n //\n return !!(res.data && res.data.id)\n } catch (e) {\n console.error('Error fetching signingKeyId', signingKeyId, 'assuming it is not valid')\n return false\n }\n}\n\nexport function testSecretsObservable() {\n const dataset = client.clientConfig.dataset\n return defer(() =>\n client.observable.request({\n url: `/addons/mux/secrets/${dataset}/test`,\n withCredentials: true,\n method: 'GET',\n })\n )\n}\n"],"mappings":"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"}
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.cancelUpload = cancelUpload;
7
- exports.uploadUrl = uploadUrl;
8
- exports.uploadFile = uploadFile;
9
- exports.getUpload = getUpload;
10
7
  exports.default = void 0;
8
+ exports.getUpload = getUpload;
9
+ exports.uploadFile = uploadFile;
10
+ exports.uploadUrl = uploadUrl;
11
11
 
12
12
  var _uuid = require("@sanity/uuid");
13
13
 
@@ -33,9 +33,9 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
33
33
 
34
34
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
35
35
 
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
37
 
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
39
 
40
40
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
41
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/actions/upload.js"],"names":["cancelUpload","uuid","client","observable","request","url","clientConfig","dataset","withCredentials","method","uploadUrl","options","testUrl","pipe","validUrl","type","json","status","Error","enableSignedUrls","muxBody","input","playback_policy","mp4_support","config","query","JSON","stringify","filename","split","slice","headers","result","asset","results","document","id","uploadFile","file","testFile","fileOptions","body","upload","event","updateAssetDocumentFromUpload","doc","err","getUpload","assetId","pollUpload","maxTries","pollInterval","tries","Promise","resolve","reject","setInterval","data","asset_id","clearInterval","_id","_type","playbackId","playback_ids","uploadId","createOrReplace","then","window","File","optionsFromFile","error","parsed","URL","protocol","match","opts","fileOpts","preserveFilename","undefined","name","contentType"],"mappings":"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","sourcesContent":["/* eslint-disable camelcase */\nimport {uuid as generateUuid} from '@sanity/uuid'\nimport config from '../config'\nimport {isString} from 'lodash'\nimport {concat, defer, from, of, throwError} from 'rxjs'\nimport {catchError, mergeMap, mergeMapTo, switchMap} from 'rxjs/operators'\nimport {getAsset} from '../actions/assets'\nimport {testSecretsObservable} from '../actions/secrets'\nimport client from '../clients/SanityClient'\nimport {createUpChunkObservable} from '../clients/upChunkObservable'\n\nexport function cancelUpload(uuid) {\n return client.observable.request({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}/${uuid}`,\n withCredentials: true,\n method: 'DELETE',\n })\n}\n\nexport function uploadUrl(url, options = {}) {\n return testUrl(url).pipe(\n switchMap((validUrl) => {\n return concat(\n of({type: 'url', url: validUrl}),\n testSecretsObservable().pipe(\n switchMap((json) => {\n if (!json || !json.status) {\n return throwError(new Error('Invalid credentials'))\n }\n const uuid = generateUuid()\n const {enableSignedUrls} = options\n const muxBody = {\n input: validUrl,\n playback_policy: [enableSignedUrls ? 'signed' : 'public'],\n mp4_support: config.mp4_support,\n }\n const query = {\n muxBody: JSON.stringify(muxBody),\n filename: validUrl.split('/').slice(-1)[0],\n }\n\n const dataset = client.clientConfig.dataset\n return defer(() =>\n client.observable.request({\n url: `/addons/mux/assets/${dataset}`,\n withCredentials: true,\n method: 'POST',\n headers: {\n 'MUX-Proxy-UUID': uuid,\n 'Content-Type': 'application/json',\n },\n query,\n })\n ).pipe(\n mergeMap((result) => {\n const asset =\n (result && result.results && result.results[0] && result.results[0].document) ||\n null\n\n if (!asset) {\n return throwError(new Error('No asset document returned'))\n }\n return of({type: 'success', id: uuid, asset})\n })\n )\n })\n )\n )\n })\n )\n}\n\nexport function uploadFile(file, options = {}) {\n return testFile(file).pipe(\n switchMap((fileOptions) => {\n return concat(\n of({type: 'file', file: fileOptions}),\n testSecretsObservable().pipe(\n switchMap((json) => {\n if (!json || !json.status) {\n return throwError(new Error('Invalid credentials'))\n }\n const uuid = generateUuid()\n const {enableSignedUrls} = options\n const body = {\n mp4_support: config.mp4_support,\n playback_policy: [enableSignedUrls ? 'signed' : 'public'],\n }\n\n return concat(\n of({type: 'uuid', uuid}),\n defer(() =>\n client.observable.request({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}`,\n withCredentials: true,\n method: 'POST',\n headers: {\n 'MUX-Proxy-UUID': uuid,\n 'Content-Type': 'application/json',\n },\n body,\n })\n ).pipe(\n mergeMap((result) => {\n return createUpChunkObservable(uuid, result.upload.url, file).pipe(\n // eslint-disable-next-line max-nested-callbacks\n mergeMap((event) => {\n if (event.type !== 'success') {\n return of(event)\n }\n return from(updateAssetDocumentFromUpload(uuid)).pipe(\n // eslint-disable-next-line max-nested-callbacks\n mergeMap((doc) => of({...event, asset: doc}))\n )\n }),\n // eslint-disable-next-line max-nested-callbacks\n catchError((err) => {\n // Delete asset document\n return cancelUpload(uuid).pipe(mergeMapTo(throwError(err)))\n })\n )\n })\n )\n )\n })\n )\n )\n })\n )\n}\n\nexport function getUpload(assetId) {\n return client.request({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}/${assetId}`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nexport default {uploadUrl, uploadFile, getUpload}\n\nfunction pollUpload(uuid) {\n const maxTries = 10\n let pollInterval\n let tries = 0\n let assetId\n let upload\n return new Promise((resolve, reject) => {\n pollInterval = setInterval(async () => {\n try {\n upload = await getUpload(uuid)\n } catch (err) {\n reject(err)\n return\n }\n assetId = upload && upload.data && upload.data.asset_id\n if (assetId) {\n clearInterval(pollInterval)\n resolve(upload)\n }\n if (tries > maxTries) {\n clearInterval(pollInterval)\n reject(new Error('Upload did not finish'))\n }\n tries++\n }, 2000)\n })\n}\n\nasync function updateAssetDocumentFromUpload(uuid) {\n let upload\n let asset\n try {\n upload = await pollUpload(uuid)\n } catch (err) {\n return Promise.reject(err)\n }\n try {\n asset = await getAsset(upload.data.asset_id)\n } catch (err) {\n return Promise.reject(err)\n }\n\n const doc = {\n _id: uuid,\n _type: 'mux.videoAsset',\n status: asset.data.status,\n data: asset.data,\n assetId: asset.data.id,\n playbackId: asset.data.playback_ids[0].id,\n uploadId: upload.data.id,\n }\n return client.createOrReplace(doc).then(() => {\n return doc\n })\n}\n\nfunction testFile(file) {\n if (typeof window !== 'undefined' && file instanceof window.File) {\n const fileOptions = optionsFromFile(file)\n return of(fileOptions)\n }\n return throwError(new Error('Invalid file'))\n}\n\nfunction testUrl(url) {\n const error = new Error('Invalid URL')\n if (!isString(url)) {\n return throwError(error)\n }\n let parsed\n try {\n parsed = new URL(url)\n } catch (err) {\n return throwError(error)\n }\n if (parsed && !parsed.protocol.match(/http:|https:/)) {\n return throwError(error)\n }\n return of(url)\n}\n\nfunction optionsFromFile(opts, file) {\n if (typeof window === 'undefined' || !(file instanceof window.File)) {\n return opts\n }\n const fileOpts = {\n filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type,\n }\n\n return {\n ...{\n filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type,\n },\n fileOpts,\n }\n}\n"],"file":"upload.js"}
1
+ {"version":3,"file":"upload.js","names":["cancelUpload","uuid","client","observable","request","url","clientConfig","dataset","withCredentials","method","uploadUrl","options","testUrl","pipe","switchMap","validUrl","concat","of","type","testSecretsObservable","json","status","throwError","Error","generateUuid","enableSignedUrls","muxBody","input","playback_policy","mp4_support","config","query","JSON","stringify","filename","split","slice","defer","headers","mergeMap","result","asset","results","document","id","uploadFile","file","testFile","fileOptions","body","createUpChunkObservable","upload","event","from","updateAssetDocumentFromUpload","doc","catchError","err","mergeMapTo","getUpload","assetId","pollUpload","maxTries","pollInterval","tries","Promise","resolve","reject","setInterval","data","asset_id","clearInterval","getAsset","_id","_type","playbackId","playback_ids","uploadId","createOrReplace","then","window","File","optionsFromFile","error","isString","parsed","URL","protocol","match","opts","fileOpts","preserveFilename","undefined","name","contentType"],"sources":["../../src/actions/upload.js"],"sourcesContent":["/* eslint-disable camelcase */\nimport {uuid as generateUuid} from '@sanity/uuid'\nimport config from '../config'\nimport {isString} from 'lodash'\nimport {concat, defer, from, of, throwError} from 'rxjs'\nimport {catchError, mergeMap, mergeMapTo, switchMap} from 'rxjs/operators'\nimport {getAsset} from '../actions/assets'\nimport {testSecretsObservable} from '../actions/secrets'\nimport client from '../clients/SanityClient'\nimport {createUpChunkObservable} from '../clients/upChunkObservable'\n\nexport function cancelUpload(uuid) {\n return client.observable.request({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}/${uuid}`,\n withCredentials: true,\n method: 'DELETE',\n })\n}\n\nexport function uploadUrl(url, options = {}) {\n return testUrl(url).pipe(\n switchMap((validUrl) => {\n return concat(\n of({type: 'url', url: validUrl}),\n testSecretsObservable().pipe(\n switchMap((json) => {\n if (!json || !json.status) {\n return throwError(new Error('Invalid credentials'))\n }\n const uuid = generateUuid()\n const {enableSignedUrls} = options\n const muxBody = {\n input: validUrl,\n playback_policy: [enableSignedUrls ? 'signed' : 'public'],\n mp4_support: config.mp4_support,\n }\n const query = {\n muxBody: JSON.stringify(muxBody),\n filename: validUrl.split('/').slice(-1)[0],\n }\n\n const dataset = client.clientConfig.dataset\n return defer(() =>\n client.observable.request({\n url: `/addons/mux/assets/${dataset}`,\n withCredentials: true,\n method: 'POST',\n headers: {\n 'MUX-Proxy-UUID': uuid,\n 'Content-Type': 'application/json',\n },\n query,\n })\n ).pipe(\n mergeMap((result) => {\n const asset =\n (result && result.results && result.results[0] && result.results[0].document) ||\n null\n\n if (!asset) {\n return throwError(new Error('No asset document returned'))\n }\n return of({type: 'success', id: uuid, asset})\n })\n )\n })\n )\n )\n })\n )\n}\n\nexport function uploadFile(file, options = {}) {\n return testFile(file).pipe(\n switchMap((fileOptions) => {\n return concat(\n of({type: 'file', file: fileOptions}),\n testSecretsObservable().pipe(\n switchMap((json) => {\n if (!json || !json.status) {\n return throwError(new Error('Invalid credentials'))\n }\n const uuid = generateUuid()\n const {enableSignedUrls} = options\n const body = {\n mp4_support: config.mp4_support,\n playback_policy: [enableSignedUrls ? 'signed' : 'public'],\n }\n\n return concat(\n of({type: 'uuid', uuid}),\n defer(() =>\n client.observable.request({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}`,\n withCredentials: true,\n method: 'POST',\n headers: {\n 'MUX-Proxy-UUID': uuid,\n 'Content-Type': 'application/json',\n },\n body,\n })\n ).pipe(\n mergeMap((result) => {\n return createUpChunkObservable(uuid, result.upload.url, file).pipe(\n // eslint-disable-next-line max-nested-callbacks\n mergeMap((event) => {\n if (event.type !== 'success') {\n return of(event)\n }\n return from(updateAssetDocumentFromUpload(uuid)).pipe(\n // eslint-disable-next-line max-nested-callbacks\n mergeMap((doc) => of({...event, asset: doc}))\n )\n }),\n // eslint-disable-next-line max-nested-callbacks\n catchError((err) => {\n // Delete asset document\n return cancelUpload(uuid).pipe(mergeMapTo(throwError(err)))\n })\n )\n })\n )\n )\n })\n )\n )\n })\n )\n}\n\nexport function getUpload(assetId) {\n return client.request({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}/${assetId}`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nexport default {uploadUrl, uploadFile, getUpload}\n\nfunction pollUpload(uuid) {\n const maxTries = 10\n let pollInterval\n let tries = 0\n let assetId\n let upload\n return new Promise((resolve, reject) => {\n pollInterval = setInterval(async () => {\n try {\n upload = await getUpload(uuid)\n } catch (err) {\n reject(err)\n return\n }\n assetId = upload && upload.data && upload.data.asset_id\n if (assetId) {\n clearInterval(pollInterval)\n resolve(upload)\n }\n if (tries > maxTries) {\n clearInterval(pollInterval)\n reject(new Error('Upload did not finish'))\n }\n tries++\n }, 2000)\n })\n}\n\nasync function updateAssetDocumentFromUpload(uuid) {\n let upload\n let asset\n try {\n upload = await pollUpload(uuid)\n } catch (err) {\n return Promise.reject(err)\n }\n try {\n asset = await getAsset(upload.data.asset_id)\n } catch (err) {\n return Promise.reject(err)\n }\n\n const doc = {\n _id: uuid,\n _type: 'mux.videoAsset',\n status: asset.data.status,\n data: asset.data,\n assetId: asset.data.id,\n playbackId: asset.data.playback_ids[0].id,\n uploadId: upload.data.id,\n }\n return client.createOrReplace(doc).then(() => {\n return doc\n })\n}\n\nfunction testFile(file) {\n if (typeof window !== 'undefined' && file instanceof window.File) {\n const fileOptions = optionsFromFile(file)\n return of(fileOptions)\n }\n return throwError(new Error('Invalid file'))\n}\n\nfunction testUrl(url) {\n const error = new Error('Invalid URL')\n if (!isString(url)) {\n return throwError(error)\n }\n let parsed\n try {\n parsed = new URL(url)\n } catch (err) {\n return throwError(error)\n }\n if (parsed && !parsed.protocol.match(/http:|https:/)) {\n return throwError(error)\n }\n return of(url)\n}\n\nfunction optionsFromFile(opts, file) {\n if (typeof window === 'undefined' || !(file instanceof window.File)) {\n return opts\n }\n const fileOpts = {\n filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type,\n }\n\n return {\n ...{\n filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type,\n },\n fileOpts,\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/clients/SanityClient.js"],"names":["isContentLakeSupported","sanityClient","withConfig","client","apiVersion"],"mappings":";;;;;;;AAAA;;;;AAEA,IAAMA,sBAAsB,GAAG,OAAOC,gBAAaC,UAApB,KAAmC,UAAlE;AAEO,IAAMC,MAAM,GAAGH,sBAAsB,GACxCC,gBAAaC,UAAb,CAAwB;AAACE,EAAAA,UAAU,EAAE;AAAb,CAAxB,CADwC,GAExCH,eAFG;;eAIQE,M","sourcesContent":["import sanityClient from 'part:@sanity/base/client'\n\nconst isContentLakeSupported = typeof sanityClient.withConfig === 'function'\n\nexport const client = isContentLakeSupported\n ? sanityClient.withConfig({apiVersion: '2021-05-17'})\n : sanityClient\n\nexport default client\n"],"file":"SanityClient.js"}
1
+ {"version":3,"file":"SanityClient.js","names":["isContentLakeSupported","sanityClient","withConfig","client","apiVersion"],"sources":["../../src/clients/SanityClient.js"],"sourcesContent":["import sanityClient from 'part:@sanity/base/client'\n\nconst isContentLakeSupported = typeof sanityClient.withConfig === 'function'\n\nexport const client = isContentLakeSupported\n ? sanityClient.withConfig({apiVersion: '2021-05-17'})\n : sanityClient\n\nexport default client\n"],"mappings":";;;;;;;AAAA;;;;AAEA,IAAMA,sBAAsB,GAAG,OAAOC,eAAA,CAAaC,UAApB,KAAmC,UAAlE;AAEO,IAAMC,MAAM,GAAGH,sBAAsB,GACxCC,eAAA,CAAaC,UAAb,CAAwB;EAACE,UAAU,EAAE;AAAb,CAAxB,CADwC,GAExCH,eAFG;;eAIQE,M"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/clients/upChunkObservable.js"],"names":["createUpChunkObservable","uuid","uploadUrl","source","Observable","subscriber","upchunk","UpChunk","createUpload","endpoint","file","chunkSize","successHandler","next","type","id","complete","errorHandler","data","error","Error","detail","message","progressHandler","percent","offlineHandler","pause","onlineHandler","resume","on","abort"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEO,SAASA,uBAAT,CAAiCC,IAAjC,EAAuCC,SAAvC,EAAkDC,MAAlD,EAA0D;AAC/D,SAAO,IAAIC,gBAAJ,CAAgBC,UAAD,IAAgB;AACpC,QAAMC,OAAO,GAAGC,OAAO,CAACC,YAAR,CAAqB;AACnCC,MAAAA,QAAQ,EAAEP,SADyB;AAEnCQ,MAAAA,IAAI,EAAEP,MAF6B;AAGnCQ,MAAAA,SAAS,EAAE,IAHwB,CAGlB;;AAHkB,KAArB,CAAhB;;AAMA,QAAMC,cAAc,GAAG,MAAM;AAC3BP,MAAAA,UAAU,CAACQ,IAAX,CAAgB;AACdC,QAAAA,IAAI,EAAE,SADQ;AAEdC,QAAAA,EAAE,EAAEd;AAFU,OAAhB;AAIAI,MAAAA,UAAU,CAACW,QAAX;AACD,KAND;;AAQA,QAAMC,YAAY,GAAIC,IAAD,IAAUb,UAAU,CAACc,KAAX,CAAiB,IAAIC,KAAJ,CAAUF,IAAI,CAACG,MAAL,CAAYC,OAAtB,CAAjB,CAA/B;;AAEA,QAAMC,eAAe,GAAIL,IAAD,IAAU;AAChC,aAAOb,UAAU,CAACQ,IAAX,CAAgB;AAACC,QAAAA,IAAI,EAAE,UAAP;AAAmBU,QAAAA,OAAO,EAAEN,IAAI,CAACG;AAAjC,OAAhB,CAAP;AACD,KAFD;;AAIA,QAAMI,cAAc,GAAIP,IAAD,IAAU;AAC/BZ,MAAAA,OAAO,CAACoB,KAAR;AACArB,MAAAA,UAAU,CAACQ,IAAX,CAAgB;AACdC,QAAAA,IAAI,EAAE,OADQ;AAEdC,QAAAA,EAAE,EAAEd;AAFU,OAAhB;AAID,KAND;;AAQA,QAAM0B,aAAa,GAAIT,IAAD,IAAU;AAC9BZ,MAAAA,OAAO,CAACsB,MAAR;AACAvB,MAAAA,UAAU,CAACQ,IAAX,CAAgB;AACdC,QAAAA,IAAI,EAAE,QADQ;AAEdC,QAAAA,EAAE,EAAEd;AAFU,OAAhB;AAID,KAND;;AAQAK,IAAAA,OAAO,CAACuB,EAAR,CAAW,SAAX,EAAsBjB,cAAtB;AACAN,IAAAA,OAAO,CAACuB,EAAR,CAAW,OAAX,EAAoBZ,YAApB;AACAX,IAAAA,OAAO,CAACuB,EAAR,CAAW,UAAX,EAAuBN,eAAvB;AACAjB,IAAAA,OAAO,CAACuB,EAAR,CAAW,SAAX,EAAsBJ,cAAtB;AACAnB,IAAAA,OAAO,CAACuB,EAAR,CAAW,QAAX,EAAqBF,aAArB;AAEA,WAAO,MAAMrB,OAAO,CAACwB,KAAR,EAAb;AACD,GA5CM,CAAP;AA6CD","sourcesContent":["import * as UpChunk from '@mux/upchunk'\nimport {Observable} from 'rxjs'\n\nexport function createUpChunkObservable(uuid, uploadUrl, source) {\n return new Observable((subscriber) => {\n const upchunk = UpChunk.createUpload({\n endpoint: uploadUrl,\n file: source,\n chunkSize: 5120, // Uploads the file in ~5mb chunks\n })\n\n const successHandler = () => {\n subscriber.next({\n type: 'success',\n id: uuid,\n })\n subscriber.complete()\n }\n\n const errorHandler = (data) => subscriber.error(new Error(data.detail.message))\n\n const progressHandler = (data) => {\n return subscriber.next({type: 'progress', percent: data.detail})\n }\n\n const offlineHandler = (data) => {\n upchunk.pause()\n subscriber.next({\n type: 'pause',\n id: uuid,\n })\n }\n\n const onlineHandler = (data) => {\n upchunk.resume()\n subscriber.next({\n type: 'resume',\n id: uuid,\n })\n }\n\n upchunk.on('success', successHandler)\n upchunk.on('error', errorHandler)\n upchunk.on('progress', progressHandler)\n upchunk.on('offline', offlineHandler)\n upchunk.on('online', onlineHandler)\n\n return () => upchunk.abort()\n })\n}\n"],"file":"upChunkObservable.js"}
1
+ {"version":3,"file":"upChunkObservable.js","names":["createUpChunkObservable","uuid","uploadUrl","source","Observable","subscriber","upchunk","UpChunk","createUpload","endpoint","file","chunkSize","successHandler","next","type","id","complete","errorHandler","data","error","Error","detail","message","progressHandler","percent","offlineHandler","pause","onlineHandler","resume","on","abort"],"sources":["../../src/clients/upChunkObservable.js"],"sourcesContent":["import * as UpChunk from '@mux/upchunk'\nimport {Observable} from 'rxjs'\n\nexport function createUpChunkObservable(uuid, uploadUrl, source) {\n return new Observable((subscriber) => {\n const upchunk = UpChunk.createUpload({\n endpoint: uploadUrl,\n file: source,\n chunkSize: 5120, // Uploads the file in ~5mb chunks\n })\n\n const successHandler = () => {\n subscriber.next({\n type: 'success',\n id: uuid,\n })\n subscriber.complete()\n }\n\n const errorHandler = (data) => subscriber.error(new Error(data.detail.message))\n\n const progressHandler = (data) => {\n return subscriber.next({type: 'progress', percent: data.detail})\n }\n\n const offlineHandler = (data) => {\n upchunk.pause()\n subscriber.next({\n type: 'pause',\n id: uuid,\n })\n }\n\n const onlineHandler = (data) => {\n upchunk.resume()\n subscriber.next({\n type: 'resume',\n id: uuid,\n })\n }\n\n upchunk.on('success', successHandler)\n upchunk.on('error', errorHandler)\n upchunk.on('progress', progressHandler)\n upchunk.on('offline', offlineHandler)\n upchunk.on('online', onlineHandler)\n\n return () => upchunk.abort()\n })\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEO,SAASA,uBAAT,CAAiCC,IAAjC,EAAuCC,SAAvC,EAAkDC,MAAlD,EAA0D;EAC/D,OAAO,IAAIC,gBAAJ,CAAgBC,UAAD,IAAgB;IACpC,IAAMC,OAAO,GAAGC,OAAO,CAACC,YAAR,CAAqB;MACnCC,QAAQ,EAAEP,SADyB;MAEnCQ,IAAI,EAAEP,MAF6B;MAGnCQ,SAAS,EAAE,IAHwB,CAGlB;;IAHkB,CAArB,CAAhB;;IAMA,IAAMC,cAAc,GAAG,MAAM;MAC3BP,UAAU,CAACQ,IAAX,CAAgB;QACdC,IAAI,EAAE,SADQ;QAEdC,EAAE,EAAEd;MAFU,CAAhB;MAIAI,UAAU,CAACW,QAAX;IACD,CAND;;IAQA,IAAMC,YAAY,GAAIC,IAAD,IAAUb,UAAU,CAACc,KAAX,CAAiB,IAAIC,KAAJ,CAAUF,IAAI,CAACG,MAAL,CAAYC,OAAtB,CAAjB,CAA/B;;IAEA,IAAMC,eAAe,GAAIL,IAAD,IAAU;MAChC,OAAOb,UAAU,CAACQ,IAAX,CAAgB;QAACC,IAAI,EAAE,UAAP;QAAmBU,OAAO,EAAEN,IAAI,CAACG;MAAjC,CAAhB,CAAP;IACD,CAFD;;IAIA,IAAMI,cAAc,GAAIP,IAAD,IAAU;MAC/BZ,OAAO,CAACoB,KAAR;MACArB,UAAU,CAACQ,IAAX,CAAgB;QACdC,IAAI,EAAE,OADQ;QAEdC,EAAE,EAAEd;MAFU,CAAhB;IAID,CAND;;IAQA,IAAM0B,aAAa,GAAIT,IAAD,IAAU;MAC9BZ,OAAO,CAACsB,MAAR;MACAvB,UAAU,CAACQ,IAAX,CAAgB;QACdC,IAAI,EAAE,QADQ;QAEdC,EAAE,EAAEd;MAFU,CAAhB;IAID,CAND;;IAQAK,OAAO,CAACuB,EAAR,CAAW,SAAX,EAAsBjB,cAAtB;IACAN,OAAO,CAACuB,EAAR,CAAW,OAAX,EAAoBZ,YAApB;IACAX,OAAO,CAACuB,EAAR,CAAW,UAAX,EAAuBN,eAAvB;IACAjB,OAAO,CAACuB,EAAR,CAAW,SAAX,EAAsBJ,cAAtB;IACAnB,OAAO,CAACuB,EAAR,CAAW,QAAX,EAAqBF,aAArB;IAEA,OAAO,MAAMrB,OAAO,CAACwB,KAAR,EAAb;EACD,CA5CM,CAAP;AA6CD"}
@@ -19,7 +19,7 @@ var _templateObject, _templateObject2;
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
22
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
23
 
24
24
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
25
25
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/FileInputButton.js"],"names":["HiddenInput","styled","input","Label","label","handleSelect","event","onSelect","target","files","handleButtonClick","inputRef","current","click","FileInputButton","type","props","_inputId","React","useRef","width"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEA,IAAMA,WAAW,GAAGC,0BAAOC,KAAV,qLAAjB;;AASA,IAAMC,KAAK,GAAGF,0BAAOG,KAAV,gGAAX;;AAIA,IAAMC,YAAY,GAAG,QAAuB;AAAA,MAArBC,KAAqB,QAArBA,KAAqB;AAAA,MAAdC,QAAc,QAAdA,QAAc;;AAC1C,MAAIA,QAAJ,EAAc;AACZA,IAAAA,QAAQ,CAACD,KAAK,CAACE,MAAN,CAAaC,KAAd,CAAR;AACD;AACF,CAJD;;AAMA,IAAMC,iBAAiB,GAAIC,QAAD,IAAc;AACtC,MAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAzB,EAAkC;AAChCD,IAAAA,QAAQ,CAACC,OAAT,CAAiBC,KAAjB;AACD;AACF,CAJD;;AAMO,IAAMC,eAAe,GAAG,SAAyC;AAAA,MAAvCP,QAAuC,SAAvCA,QAAuC;AAAA,yBAA7BQ,IAA6B;AAAA,MAA7BA,IAA6B,2BAAtB,MAAsB;AAAA,MAAXC,KAAW;;AACtE,MAAMC,QAAQ,GAAGC,eAAMC,MAAN,CAAa,sBAAS,YAAT,CAAb,CAAjB;;AACA,MAAMR,QAAQ,GAAGO,eAAMC,MAAN,CAAa,IAAb,CAAjB;;AACA,sBACE,6BAAC,KAAD;AAAO,IAAA,OAAO,EAAEF,QAAQ,CAACL;AAAzB,kBACE,6BAAC,WAAD;AACE,IAAA,GAAG,EAAED,QADP;AAEE,IAAA,QAAQ,EAAC,GAFX;AAGE,IAAA,IAAI,EAAEI,IAHR;AAIE,IAAA,EAAE,EAAEE,QAAQ,CAACL,OAJf;AAKE,IAAA,QAAQ,EAAGN,KAAD,IAAWD,YAAY,CAAC;AAACC,MAAAA,KAAD;AAAQC,MAAAA;AAAR,KAAD,CALnC;AAME,IAAA,KAAK,EAAC;AANR,IADF,eASE,6BAAC,UAAD;AACE,IAAA,OAAO,EAAE,MAAMG,iBAAiB,CAACC,QAAD,CADlC;AAEE,IAAA,IAAI,EAAC,SAFP;AAGE,IAAA,IAAI,EAAC,SAHP;AAIE,IAAA,KAAK,EAAE;AAACS,MAAAA,KAAK,EAAE;AAAR;AAJT,KAKMJ,KALN,EATF,CADF;AAmBD,CAtBM;;;eAwBQF,e","sourcesContent":["import {Button} from '@sanity/ui'\nimport {uniqueId} from 'lodash'\nimport React from 'react'\nimport styled from 'styled-components'\n\nconst HiddenInput = styled.input`\n overflow: hidden;\n width: 0.1px;\n height: 0.1px;\n opacity: 0;\n position: absolute;\n z-index: -1;\n`\n\nconst Label = styled.label`\n position: relative;\n`\n\nconst handleSelect = ({event, onSelect}) => {\n if (onSelect) {\n onSelect(event.target.files)\n }\n}\n\nconst handleButtonClick = (inputRef) => {\n if (inputRef && inputRef.current) {\n inputRef.current.click()\n }\n}\n\nexport const FileInputButton = ({onSelect, type = 'file', ...props}) => {\n const _inputId = React.useRef(uniqueId('FileSelect'))\n const inputRef = React.useRef(null)\n return (\n <Label htmlFor={_inputId.current}>\n <HiddenInput\n ref={inputRef}\n tabindex=\"0\"\n type={type}\n id={_inputId.current}\n onChange={(event) => handleSelect({event, onSelect})}\n value=\"\"\n />\n <Button\n onClick={() => handleButtonClick(inputRef)}\n mode=\"default\"\n tone=\"primary\"\n style={{width: '100%'}}\n {...props}\n />\n </Label>\n )\n}\n\nexport default FileInputButton\n"],"file":"FileInputButton.js"}
1
+ {"version":3,"file":"FileInputButton.js","names":["HiddenInput","styled","input","Label","label","handleSelect","event","onSelect","target","files","handleButtonClick","inputRef","current","click","FileInputButton","type","props","_inputId","React","useRef","uniqueId","width"],"sources":["../../src/components/FileInputButton.js"],"sourcesContent":["import {Button} from '@sanity/ui'\nimport {uniqueId} from 'lodash'\nimport React from 'react'\nimport styled from 'styled-components'\n\nconst HiddenInput = styled.input`\n overflow: hidden;\n width: 0.1px;\n height: 0.1px;\n opacity: 0;\n position: absolute;\n z-index: -1;\n`\n\nconst Label = styled.label`\n position: relative;\n`\n\nconst handleSelect = ({event, onSelect}) => {\n if (onSelect) {\n onSelect(event.target.files)\n }\n}\n\nconst handleButtonClick = (inputRef) => {\n if (inputRef && inputRef.current) {\n inputRef.current.click()\n }\n}\n\nexport const FileInputButton = ({onSelect, type = 'file', ...props}) => {\n const _inputId = React.useRef(uniqueId('FileSelect'))\n const inputRef = React.useRef(null)\n return (\n <Label htmlFor={_inputId.current}>\n <HiddenInput\n ref={inputRef}\n tabindex=\"0\"\n type={type}\n id={_inputId.current}\n onChange={(event) => handleSelect({event, onSelect})}\n value=\"\"\n />\n <Button\n onClick={() => handleButtonClick(inputRef)}\n mode=\"default\"\n tone=\"primary\"\n style={{width: '100%'}}\n {...props}\n />\n </Label>\n )\n}\n\nexport default FileInputButton\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEA,IAAMA,WAAW,GAAGC,yBAAA,CAAOC,KAAV,qLAAjB;;AASA,IAAMC,KAAK,GAAGF,yBAAA,CAAOG,KAAV,gGAAX;;AAIA,IAAMC,YAAY,GAAG,QAAuB;EAAA,IAArBC,KAAqB,QAArBA,KAAqB;EAAA,IAAdC,QAAc,QAAdA,QAAc;;EAC1C,IAAIA,QAAJ,EAAc;IACZA,QAAQ,CAACD,KAAK,CAACE,MAAN,CAAaC,KAAd,CAAR;EACD;AACF,CAJD;;AAMA,IAAMC,iBAAiB,GAAIC,QAAD,IAAc;EACtC,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAzB,EAAkC;IAChCD,QAAQ,CAACC,OAAT,CAAiBC,KAAjB;EACD;AACF,CAJD;;AAMO,IAAMC,eAAe,GAAG,SAAyC;EAAA,IAAvCP,QAAuC,SAAvCA,QAAuC;EAAA,uBAA7BQ,IAA6B;EAAA,IAA7BA,IAA6B,2BAAtB,MAAsB;EAAA,IAAXC,KAAW;;EACtE,IAAMC,QAAQ,GAAGC,cAAA,CAAMC,MAAN,CAAa,IAAAC,gBAAA,EAAS,YAAT,CAAb,CAAjB;;EACA,IAAMT,QAAQ,GAAGO,cAAA,CAAMC,MAAN,CAAa,IAAb,CAAjB;;EACA,oBACE,6BAAC,KAAD;IAAO,OAAO,EAAEF,QAAQ,CAACL;EAAzB,gBACE,6BAAC,WAAD;IACE,GAAG,EAAED,QADP;IAEE,QAAQ,EAAC,GAFX;IAGE,IAAI,EAAEI,IAHR;IAIE,EAAE,EAAEE,QAAQ,CAACL,OAJf;IAKE,QAAQ,EAAGN,KAAD,IAAWD,YAAY,CAAC;MAACC,KAAD;MAAQC;IAAR,CAAD,CALnC;IAME,KAAK,EAAC;EANR,EADF,eASE,6BAAC,UAAD;IACE,OAAO,EAAE,MAAMG,iBAAiB,CAACC,QAAD,CADlC;IAEE,IAAI,EAAC,SAFP;IAGE,IAAI,EAAC,SAHP;IAIE,KAAK,EAAE;MAACU,KAAK,EAAE;IAAR;EAJT,GAKML,KALN,EATF,CADF;AAmBD,CAtBM;;;eAwBQF,e"}
@@ -57,9 +57,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
57
57
 
58
58
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
59
59
 
60
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
60
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
61
61
 
62
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
62
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
63
63
 
64
64
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
65
65
 
@@ -156,7 +156,7 @@ var _default = (0, _formBuilder.withDocument)(class MuxVideoInput extends _react
156
156
 
157
157
  this.pollInterval = setInterval(() => {
158
158
  (0, _assets.getAsset)(assetDocument.assetId).then(response => {
159
- var props = response.data; // TODO: consider a deep comparison on `props` with asset data and only patch only if it's changed
159
+ var props = response.data;
160
160
 
161
161
  _SanityClient.default.patch(assetDocument._id).set({
162
162
  status: props.status,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/Input.js"],"names":["NOOP","cachedSecrets","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","validateSecrets","secrets","getSecrets","Promise","resolve","isInitialSetup","needsSetup","then","exists","MuxVideoInput","Component","constructor","props","assetDocument","confirmRemove","deleteOnMuxChecked","deleteAssetDocumentChecked","error","hasFocus","isLoading","isSigned","showSetup","showBrowser","videoReadyToPlay","thumbLoading","handleFocus","setState","state","pollInterval","setInterval","assetId","response","data","client","patch","_id","set","status","commit","returnDocuments","catch","event","prevState","showStetup","result","onChange","PatchEvent","from","asset","_ref","document","setupAssetListener","preventDefault","stopPropagation","unsetAsset","reject","unset","delete","videoPlayer","current","currentTime","getVideoElement","options","time","thumbTime","width","height","fitMode","thumb","playbackId","newThumb","value","setupButton","React","createRef","video","removeVideoButton","componentDidMount","componentWillUnmount","subscription","unsubscribe","clearInterval","getAsset","pipe","handleRemoveVideo","Error","errors","messages","join","static_renditions","pollMux","config","mp4_support","playback_ids","policy","subscribe","renderSetup","handleCancelSaveSetup","handleSaveSetup","renderSetupButton","styles","setupButtonContainer","handleSetupButtonClicked","SetupIcon","renderSetupNotice","backgroundColor","borderRadius","renderAsset","isSignedAlert","handleVideoReadyToPlay","renderVideoButtons","readOnly","handleBrowseButton","handleOpenThumb","handleRemoveVideoButtonClicked","renderBrowser","handleCloseBrowser","handleSelectAsset","renderError","handleErrorClose","message","render","type","level","markers","cssAspectRatio","aspect_ratio","split","studioTheme","position","title","description","formField","blur","focus","handleOnUploadComplete","handleCloseThumbPreview","maxWidth","display","aspectRatio","handleSetThumbButton","handleCancelRemove","handleDeleteOnMuxCheckBoxClicked","margin","handleDeleteAssetDocumentCheckBoxClicked"],"mappings":";;;;;;;AAAA;;AAcA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG,MAAM;AACjB;AACD,CAFD;;AAIA,IAAMC,aAAa,GAAG;AACpBC,EAAAA,KAAK,EAAE,IADa;AAEpBC,EAAAA,SAAS,EAAE,IAFS;AAGpBC,EAAAA,gBAAgB,EAAE,KAHE;AAIpBC,EAAAA,YAAY,EAAE,IAJM;AAKpBC,EAAAA,iBAAiB,EAAE;AALC,CAAtB;;AAQA,SAASC,eAAT,CAAyBC,OAAzB,EAAkC;AAChC,MAAI,CAACA,OAAO,CAACN,KAAT,IAAkB,CAACM,OAAO,CAACL,SAA/B,EAA0C,OAAO,KAAP;AAE1C,SAAO,IAAP;AACD;;AAED,SAASM,UAAT,GAAsB;AACpB,MAAIR,aAAa,CAACC,KAAlB,EAAyB;AACvB,WAAOQ,OAAO,CAACC,OAAR,CAAgB;AACrBC,MAAAA,cAAc,EAAE,IADK;AAErBC,MAAAA,UAAU,EAAE,KAFS;AAGrBL,MAAAA,OAAO,EAAEP;AAHY,KAAhB,CAAP;AAKD;;AACD,SAAO,6BAAea,IAAf,CAAoB,QAAuB;AAAA,QAArBN,OAAqB,QAArBA,OAAqB;AAAA,QAAZO,MAAY,QAAZA,MAAY;AAChDd,IAAAA,aAAa,CAACC,KAAd,GAAsBM,OAAO,CAACN,KAA9B;AACAD,IAAAA,aAAa,CAACE,SAAd,GAA0BK,OAAO,CAACL,SAAlC;AACAF,IAAAA,aAAa,CAACG,gBAAd,GAAiCI,OAAO,CAACJ,gBAAzC;AACAH,IAAAA,aAAa,CAACI,YAAd,GAA6BG,OAAO,CAACH,YAArC;AACAJ,IAAAA,aAAa,CAACK,iBAAd,GAAkCE,OAAO,CAACF,iBAA1C;AAEA,WAAO;AACLM,MAAAA,cAAc,EAAE,CAACG,MADZ;AAELF,MAAAA,UAAU,EAAE,CAACN,eAAe,CAACN,aAAD,CAFvB;AAGLO,MAAAA,OAAO,EAAEP;AAHJ,KAAP;AAKD,GAZM,CAAP;AAaD;;eAEc,+BACb,MAAMe,aAAN,SAA4BC,gBAA5B,CAAsC;AAmBpCC,EAAAA,WAAW,CAACC,MAAD,EAAQ;AACjB,UAAMA,MAAN;;AADiB,mCAlBX;AACNC,MAAAA,aAAa,EAAE,IADT;AAENC,MAAAA,aAAa,EAAE,KAFT;AAGNC,MAAAA,kBAAkB,EAAE,KAHd;AAINC,MAAAA,0BAA0B,EAAE,IAJtB;AAKNC,MAAAA,KAAK,EAAE,IALD;AAMNC,MAAAA,QAAQ,EAAE,KANJ;AAONb,MAAAA,cAAc,EAAE,IAPV;AAQNc,MAAAA,SAAS,EAAE,SARL;AASNb,MAAAA,UAAU,EAAE,IATN;AAUNL,MAAAA,OAAO,EAAE,IAVH;AAWNmB,MAAAA,QAAQ,EAAE,KAXJ;AAYNC,MAAAA,SAAS,EAAE,KAZL;AAaNC,MAAAA,WAAW,EAAE,KAbP;AAcNC,MAAAA,gBAAgB,EAAE,KAdZ;AAeNC,MAAAA,YAAY,EAAE;AAfR,KAkBW;;AAAA,mCAkCX,MAAM;AACZ,WAAKC,WAAL;AACD,KApCkB;;AAAA,yCAsCL,MAAM;AAClB,WAAKC,QAAL,CAAc;AAACR,QAAAA,QAAQ,EAAE;AAAX,OAAd;AACD,KAxCkB;;AAAA,wCA0CN,MAAM;AACjB,WAAKQ,QAAL,CAAc;AAACR,QAAAA,QAAQ,EAAE;AAAX,OAAd;AACD,KA5CkB;;AAAA,qCAuHT,MAAM;AACd,UAAML,aAAa,GAAG,KAAKc,KAAL,CAAWd,aAAjC;;AACA,UAAI,CAACA,aAAL,EAAoB;AAClB;AACD;;AACD,UAAI,KAAKe,YAAT,EAAuB;AACrB;AACD;;AACD,WAAKA,YAAL,GAAoBC,WAAW,CAAC,MAAM;AACpC,8BAAShB,aAAa,CAACiB,OAAvB,EACGvB,IADH,CACSwB,QAAD,IAAc;AAClB,cAAMnB,KAAK,GAAGmB,QAAQ,CAACC,IAAvB,CADkB,CAGlB;;AACAC,gCACGC,KADH,CACSrB,aAAa,CAACsB,GADvB,EAEGC,GAFH,CAEO;AACHC,YAAAA,MAAM,EAAEzB,KAAK,CAACyB,MADX;AAEHL,YAAAA,IAAI,EAAEpB;AAFH,WAFP,EAMG0B,MANH,CAMU;AAACC,YAAAA,eAAe,EAAE;AAAlB,WANV;AAOD,SAZH,EAaGC,KAbH,CAaUvB,KAAD,IAAW;AAChB,eAAKS,QAAL,CAAc;AAACT,YAAAA;AAAD,WAAd;AACD,SAfH;AAgBD,OAjB8B,EAiB5B,IAjB4B,CAA/B;AAkBD,KAjJkB;;AAAA,sDAmJSwB,KAAD,IAAW;AACpC,WAAKf,QAAL,CAAegB,SAAD,KAAgB;AAACrB,QAAAA,SAAS,EAAE,CAACqB,SAAS,CAACC;AAAvB,OAAhB,CAAd;AACD,KArJkB;;AAAA,6CAuJD,SAA2E;AAAA,UAAzEhD,KAAyE,SAAzEA,KAAyE;AAAA,UAAlEC,SAAkE,SAAlEA,SAAkE;AAAA,UAAvDC,gBAAuD,SAAvDA,gBAAuD;AAAA,UAArCC,YAAqC,SAArCA,YAAqC;AAAA,UAAvBC,iBAAuB,SAAvBA,iBAAuB;AAC3FL,MAAAA,aAAa,CAACC,KAAd,GAAsBA,KAAtB;AACAD,MAAAA,aAAa,CAACE,SAAd,GAA0BA,SAA1B;AACAF,MAAAA,aAAa,CAACG,gBAAd,GAAiCA,gBAAjC;AACAH,MAAAA,aAAa,CAACI,YAAd,GAA6BA,YAA7B;AACAJ,MAAAA,aAAa,CAACK,iBAAd,GAAkCA,iBAAlC;AAEA,WAAK2B,QAAL,CAAc;AACZL,QAAAA,SAAS,EAAE,KADC;AAEZpB,QAAAA,OAAO,EAAEP,aAFG;AAGZY,QAAAA,UAAU,EAAE,CAACN,eAAe,CAACN,aAAD;AAHhB,OAAd;AAKD,KAnKkB;;AAAA,mDAqKK,MAAM;AAC5B,WAAKgC,QAAL,CAAc;AAACL,QAAAA,SAAS,EAAE;AAAZ,OAAd;AACD,KAvKkB;;AAAA,oDAyKOuB,MAAD,IAAY;AACnC,UAAOC,QAAP,GAAmB,KAAKjC,KAAxB,CAAOiC,QAAP;AACA,UAAOV,GAAP,GAAcS,MAAd,CAAOT,GAAP;AACAU,MAAAA,QAAQ,CACNC,oBAAWC,IAAX,CAAgB,CAAC,8BAAa;AAACC,QAAAA,KAAK,EAAE;AAACC,UAAAA,IAAI,EAAEd;AAAP;AAAR,OAAb,EAAmC,EAAnC,CAAD,EAAyC,qBAAI;AAACc,QAAAA,IAAI,EAAEd;AAAP,OAAJ,EAAiB,CAAC,OAAD,CAAjB,CAAzC,CAAhB,CADM,CAAR;AAGA,WAAKT,QAAL,CAAc;AAACb,QAAAA,aAAa,EAAE+B,MAAM,CAACM;AAAvB,OAAd,EAAgD,MAAM;AACpD,aAAKC,kBAAL;AACD,OAFD;AAGD,KAlLkB;;AAAA,4DAoLeV,KAAD,IAAW;AAC1CA,MAAAA,KAAK,CAACW,cAAN;AACAX,MAAAA,KAAK,CAACY,eAAN;AACA,WAAK3B,QAAL,CAAc;AAACZ,QAAAA,aAAa,EAAE;AAAhB,OAAd;AACD,KAxLkB;;AAAA,+CA0LC,MAAM;AACxB,UAAOD,aAAP,GAAwB,KAAKc,KAA7B,CAAOd,aAAP;AACA,WAAKa,QAAL,CAAc;AAACP,QAAAA,SAAS,EAAE;AAAZ,OAAd;;AACA,UAAMmC,UAAU,GAAG,MAAM;AACvB,eAAO,IAAInD,OAAJ,CAAY,CAACC,OAAD,EAAUmD,MAAV,KAAqB;AACtC,eAAK7B,QAAL,CACE;AACEb,YAAAA,aAAa,EAAE,IADjB;AAEEC,YAAAA,aAAa,EAAE,KAFjB;AAGEK,YAAAA,SAAS,EAAE;AAHb,WADF,EAME,MAAM;AACJ,gBAAI,KAAKQ,KAAL,CAAWZ,kBAAX,IAAiC,KAAKY,KAAL,CAAWX,0BAAhD,EAA4E;AAC1E,qBAAOiB,sBACJC,KADI,CACE,KAAKtB,KAAL,CAAWsC,QAAX,CAAoBf,GADtB,EAEJqB,KAFI,CAEE,CAAC,OAAD,CAFF,EAGJlB,MAHI,CAGG;AAACC,gBAAAA,eAAe,EAAE;AAAlB,eAHH,EAIJhC,IAJI,CAIC,MAAM;AACV,oBAAI,CAACM,aAAL,EAAoB;AAClB,yBAAOT,OAAO,EAAd;AACD;;AACD,uBAAO6B,sBACJwB,MADI,CACG5C,aAAa,CAACsB,GADjB,EAEJ5B,IAFI,CAEC,MAAM;AACVH,kBAAAA,OAAO;AACR,iBAJI,EAKJoC,KALI,CAKGvB,KAAD,IAAW;AAChBsC,kBAAAA,MAAM,CAACtC,KAAD,CAAN;AACD,iBAPI,CAAP;AAQD,eAhBI,CAAP;AAiBD;;AACD,mBAAO,KAAKL,KAAL,CAAWiC,QAAX,CAAoBC,oBAAWC,IAAX,CAAgB,wBAAhB,CAApB,CAAP;AACD,WA3BH;AA6BD,SA9BM,CAAP;AA+BD,OAhCD;;AAiCA,aAAOO,UAAU,GACd/C,IADI,CACC,MAAM;AACV,YAAI,KAAKoB,KAAL,CAAWZ,kBAAf,EAAmC;AACjC,iBAAO,yBAAYF,aAAa,CAACiB,OAA1B,EAAmCU,KAAnC,CAA0CvB,KAAD,IAAW;AACzD,iBAAKS,QAAL,CAAc;AAACT,cAAAA;AAAD,aAAd;AACD,WAFM,CAAP;AAGD;;AACD,eAAO,IAAP;AACD,OARI,EASJuB,KATI,CASGvB,KAAD,IAAW;AAChB,aAAKS,QAAL,CAAc;AAACT,UAAAA;AAAD,SAAd;AACD,OAXI,CAAP;AAYD,KA1OkB;;AAAA,gDA4OGwB,KAAD,IAAW;AAC9B,WAAKf,QAAL,CAAc;AACZZ,QAAAA,aAAa,EAAE,KADH;AAEZC,QAAAA,kBAAkB,EAAE,IAFR;AAGZC,QAAAA,0BAA0B,EAAE;AAHhB,OAAd;AAKD,KAlPkB;;AAAA,8DAoPiByB,KAAD,IAAW;AAC5C,WAAKf,QAAL,CAAegB,SAAD,KAAgB;AAC5B3B,QAAAA,kBAAkB,EAAE,CAAC2B,SAAS,CAAC3B;AADH,OAAhB,CAAd;AAGD,KAxPkB;;AAAA,sEA0PyB0B,KAAD,IAAW;AACpD,WAAKf,QAAL,CAAegB,SAAD,KAAgB;AAC5B1B,QAAAA,0BAA0B,EAAE,CAAC0B,SAAS,CAAC1B;AADX,OAAhB,CAAd;AAGD,KA9PkB;;AAAA,6CAgQAyB,KAAD,IAAW;AAC3B,UAAI,CAAC,KAAKiB,WAAL,CAAiBC,OAAtB,EAA+B;AAC7B;AACD;;AACD,wBAAkC,KAAKhC,KAAvC;AAAA,UAAOd,aAAP,eAAOA,aAAP;AAAA,UAAsBO,QAAtB,eAAsBA,QAAtB;AACA,UAAMwC,WAAW,GAAG,KAAKF,WAAL,CAAiBC,OAAjB,CAAyBE,eAAzB,GAA2CD,WAA/D;AACA,UAAME,OAAO,GAAG;AACdC,QAAAA,IAAI,EAAElD,aAAa,CAACmD,SADN;AAEdC,QAAAA,KAAK,EAAE,GAFO;AAGdC,QAAAA,MAAM,EAAE,GAHM;AAIdC,QAAAA,OAAO,EAAE,MAJK;AAKd/C,QAAAA,QALc;AAMdtB,QAAAA,YAAY,EAAEJ,aAAa,CAACI,YANd;AAOdC,QAAAA,iBAAiB,EAAEL,aAAa,CAACK;AAPnB,OAAhB;AAUA,UAAMqE,KAAK,GAAG,2BAAavD,aAAa,CAACwD,UAA3B,EAAuCP,OAAvC,CAAd;AACA,UAAMQ,QAAQ,GAAG,2BAAazD,aAAa,CAACwD,UAA3B,kCAA2CP,OAA3C;AAAoDC,QAAAA,IAAI,EAAEH;AAA1D,SAAjB;AAEA,WAAKlC,QAAL,CAAc;AAAC0C,QAAAA,KAAD;AAAQE,QAAAA;AAAR,OAAd;AACD,KApRkB;;AAAA,kDAsRK7B,KAAD,IAAW;AAChC,UAAI,CAAC,KAAKiB,WAAL,CAAiBC,OAAtB,EAA+B;AAC7B;AACD;;AAED,WAAKjC,QAAL,CAAc;AAACF,QAAAA,YAAY,EAAE;AAAf,OAAd;AACA,yBAAkC,KAAKG,KAAvC;AAAA,UAAOd,aAAP,gBAAOA,aAAP;AAAA,UAAsBO,QAAtB,gBAAsBA,QAAtB;AACA,UAAMwC,WAAW,GAAG,KAAKF,WAAL,CAAiBC,OAAjB,CAAyBE,eAAzB,GAA2CD,WAA/D;;AACA3B,4BACGC,KADH,CACSrB,aAAa,CAACsB,GADvB,EAEGC,GAFH,CAEO;AACH4B,QAAAA,SAAS,EAAEJ;AADR,OAFP,EAKGtB,MALH,CAKU;AAACC,QAAAA,eAAe,EAAE;AAAlB,OALV,EAMGhC,IANH,CAMSwB,QAAD,IAAc;AAClB,YAAM+B,OAAO,GAAG;AACdC,UAAAA,IAAI,EAAEH,WADQ;AAEdK,UAAAA,KAAK,EAAE,GAFO;AAGdC,UAAAA,MAAM,EAAE,GAHM;AAIdC,UAAAA,OAAO,EAAE,MAJK;AAKd/C,UAAAA,QALc;AAMdtB,UAAAA,YAAY,EAAEJ,aAAa,CAACI,YANd;AAOdC,UAAAA,iBAAiB,EAAEL,aAAa,CAACK;AAPnB,SAAhB;AAUA,YAAMqE,KAAK,GAAG,2BAAavD,aAAa,CAACwD,UAA3B,EAAuCP,OAAvC,CAAd;AAEA,aAAKpC,QAAL,CAAc;AAAC0C,UAAAA,KAAD;AAAQ5C,UAAAA,YAAY,EAAE;AAAtB,SAAd;AACD,OApBH,EAqBGgB,KArBH,CAqBUvB,KAAD,IAAW;AAChB,aAAKS,QAAL,CAAc;AAACT,UAAAA,KAAD;AAAQO,UAAAA,YAAY,EAAE;AAAtB,SAAd;AACD,OAvBH;AAwBD,KAtTkB;;AAAA,8CAwTCiB,KAAD,IAAW;AAC5B,UAAIA,KAAJ,EAAW;AACTA,QAAAA,KAAK,CAACW,cAAN;AACD;;AAED,WAAK1B,QAAL,CAAc;AACZT,QAAAA,KAAK,EAAE;AADK,OAAd;AAGD,KAhUkB;;AAAA,qDAkUQwB,KAAD,IAAW;AACnC,WAAKf,QAAL,CAAc;AAAC0C,QAAAA,KAAK,EAAE;AAAR,OAAd;AACD,KApUkB;;AAAA,gDAsUG3B,KAAD,IAAW;AAC9B,WAAKf,QAAL,CAAc;AAACJ,QAAAA,WAAW,EAAE;AAAd,OAAd;AACD,KAxUkB;;AAAA,gDA0UGmB,KAAD,IAAW;AAC9B,WAAKf,QAAL,CAAc;AAACJ,QAAAA,WAAW,EAAE;AAAd,OAAd;AACD,KA5UkB;;AAAA,+CA8UE0B,KAAD,IAAW;AAC7B,UAAOH,QAAP,GAAmB,KAAKjC,KAAxB,CAAOiC,QAAP;AAEAA,MAAAA,QAAQ,CACNC,oBAAWC,IAAX,CAAgB,CACd,8BAAa;AAACC,QAAAA,KAAK,EAAE;AAACC,UAAAA,IAAI,EAAED,KAAK,CAACb;AAAb;AAAR,OAAb,EAAyC,EAAzC,CADc,EAEd,qBAAI;AAACc,QAAAA,IAAI,EAAED,KAAK,CAACb;AAAb,OAAJ,EAAuB,CAAC,OAAD,CAAvB,CAFc,CAAhB,CADM,CAAR;AAOA,WAAKT,QAAL,CAAc;AAACJ,QAAAA,WAAW,EAAE,KAAd;AAAqBT,QAAAA,aAAa,EAAEmC;AAApC,OAAd,EAA0D,MAAM;AAC9D,aAAKG,kBAAL;AACD,OAFD;AAGD,KA3VkB;;AAAA,oDA6VM,MAAM;AAC7B,WAAKzB,QAAL,CAAc;AAACH,QAAAA,gBAAgB,EAAE;AAAnB,OAAd;AACD,KA/VkB;;AAEjBrB,IAAAA,UAAU,GACPK,IADH,CACQ,SAA2C;AAAA;;AAAA,UAAzCN,OAAyC,SAAzCA,OAAyC;AAAA,UAAhCI,cAAgC,SAAhCA,cAAgC;AAAA,UAAhBC,UAAgB,SAAhBA,UAAgB;AAC/C,WAAKoB,QAAL,CAAc;AACZzB,QAAAA,OADY;AAEZI,QAAAA,cAFY;AAGZC,QAAAA,UAHY;AAIZa,QAAAA,SAAS,kBAAEP,MAAK,CAAC2D,KAAR,iDAAE,aAAavB,KAJZ,CAImB;;AAJnB,OAAd;AAMD,KARH,EASGR,KATH,CASUvB,KAAD,IAAW,KAAKS,QAAL,CAAc;AAACT,MAAAA;AAAD,KAAd,CATpB;AAWA,SAAKuD,WAAL,gBAAmBC,eAAMC,SAAN,EAAnB;AACA,SAAK9C,YAAL,GAAoB,IAApB;AACA,SAAK+C,KAAL,gBAAaF,eAAMC,SAAN,EAAb;AACA,SAAKE,iBAAL,gBAAyBH,eAAMC,SAAN,EAAzB;AACA,SAAKhB,WAAL,gBAAmBe,eAAMC,SAAN,EAAnB;AACD;;AAEDG,EAAAA,iBAAiB,GAAG;AAClB,SAAK1B,kBAAL;AACD;;AAED2B,EAAAA,oBAAoB,GAAG;AACrB,QAAI,KAAKC,YAAT,EAAuB;AACrB,WAAKA,YAAL,CAAkBC,WAAlB;AACD;;AACD,QAAI,KAAKpD,YAAT,EAAuB;AACrBqD,MAAAA,aAAa,CAAC,KAAKrD,YAAN,CAAb;AACA,WAAKA,YAAL,GAAoB,IAApB;AACD;AACF;;AAcDsD,EAAAA,QAAQ,GAAG;AACT,QAAOX,KAAP,GAAgB,KAAK3D,KAArB,CAAO2D,KAAP;AACA,WAAOA,KAAK,GAAGA,KAAK,CAACvB,KAAT,GAAiB,IAA7B;AACD;;AAEDG,EAAAA,kBAAkB,GAAG;AACnB,QAAI,KAAK4B,YAAT,EAAuB;AACrB,WAAKA,YAAL,CAAkBC,WAAlB;AACD;;AACD,SAAKtD,QAAL,CAAc;AAACH,MAAAA,gBAAgB,EAAE;AAAnB,KAAd;AACA,QAAMyB,KAAK,GAAG,KAAKkC,QAAL,EAAd;;AACA,QAAI,CAAClC,KAAL,EAAY;AACV;AACD;;AACD,SAAK+B,YAAL,GAAoB,2BAAa/B,KAAb,EAAoB,CACtC,WADsC,EAEtC,MAFsC,EAGtC,SAHsC,EAItC,YAJsC,EAKtC,QALsC,CAApB,EAOjBmC,IAPiB,CAQhB,oBAAKtE,aAAD,IAAmB;AAAA;;AACrB,WAAKa,QAAL,CAAc;AAACb,QAAAA;AAAD,OAAd;;AACA,UAAIA,aAAa,IAAIA,aAAa,CAACwB,MAAd,KAAyB,SAA9C,EAAyD;AACvD4C,QAAAA,aAAa,CAAC,KAAKrD,YAAN,CAAb;AACA,aAAKA,YAAL,GAAoB,IAApB,CAFuD,CAGvD;AACA;;AACA,eAAO,KAAKwD,iBAAL,GAAyB7E,IAAzB,CAA8B,MAAM;AACzC,eAAKmB,QAAL,CAAc;AACZP,YAAAA,SAAS,EAAE,KADC;AAEZF,YAAAA,KAAK,EAAE,IAAIoE,KAAJ,CAAUxE,aAAa,CAACmB,IAAd,CAAmBsD,MAAnB,CAA0BC,QAA1B,CAAmCC,IAAnC,CAAwC,GAAxC,CAAV;AAFK,WAAd;AAID,SALM,CAAP;AAMD,OAboB,CAcrB;;;AACA,UACE,CAAA3E,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEwB,MAAf,MAA0B,WAA1B,IACA,CAAAxB,aAAa,SAAb,IAAAA,aAAa,WAAb,mCAAAA,aAAa,CAAEmB,IAAf,qGAAqByD,iBAArB,gFAAwCpD,MAAxC,MAAmD,WAFrD,EAGE;AACA,aAAKqD,OAAL;AACD,OApBoB,CAqBrB;AACA;AACA;AACA;;;AACA,UAAI7E,aAAa,IAAIA,aAAa,CAACwB,MAAd,KAAyB,OAA9C,EAAuD;AACrD,gBAAQsD,gBAAOC,WAAf;AACE,eAAK,UAAL;AACE,gBAAI,CAAA/E,aAAa,SAAb,IAAAA,aAAa,WAAb,oCAAAA,aAAa,CAAEmB,IAAf,uGAAqByD,iBAArB,gFAAwCpD,MAAxC,MAAmD,OAAvD,EAAgE;AAC9D4C,cAAAA,aAAa,CAAC,KAAKrD,YAAN,CAAb;AACA,mBAAKA,YAAL,GAAoB,IAApB;AACD;;AACD;;AACF,eAAK,MAAL;AACA;AACEqD,YAAAA,aAAa,CAAC,KAAKrD,YAAN,CAAb;AACA,iBAAKA,YAAL,GAAoB,IAApB;AACA;AAXJ;AAaD,OAvCoB,CAyCrB;;;AACA,UAAMR,QAAQ,GAAG,CAAAP,aAAa,SAAb,IAAAA,aAAa,WAAb,oCAAAA,aAAa,CAAEmB,IAAf,uGAAqB6D,YAArB,CAAkC,CAAlC,iFAAsCC,MAAtC,MAAiD,QAAlE;AACA,WAAKpE,QAAL,CAAc;AAACb,QAAAA,aAAD;AAAgBO,QAAAA,QAAhB;AAA0BD,QAAAA,SAAS,EAAE;AAArC,OAAd;AAEA,aAAO,cAAGN,aAAH,CAAP;AACD,KA9CD,CARgB,EAwDjBkF,SAxDiB,EAApB;AAyDD;;AA4ODC,EAAAA,WAAW,GAAG;AACZ,QAAO/F,OAAP,GAAkB,KAAK0B,KAAvB,CAAO1B,OAAP;AAEA,wBACE,6BAAC,UAAD;AACE,MAAA,MAAM,EAAC,qBADT;AAEE,MAAA,KAAK,EAAE,CAFT;AAGE,MAAA,OAAO,EAAE,KAAKgG,qBAHhB;AAIE,MAAA,OAAO,EAAE;AAJX,oBAME,6BAAC,cAAD;AACE,MAAA,OAAO,EAAEhG,OAAO,IAAI,IADtB;AAEE,MAAA,MAAM,EAAE,KAAKiG,eAFf;AAGE,MAAA,QAAQ,EAAE,KAAKD;AAHjB,MANF,CADF;AAcD;;AAEDE,EAAAA,iBAAiB,GAAG;AAClB,uBAA2C,KAAKxE,KAAhD;AAAA,QAAOR,SAAP,gBAAOA,SAAP;AAAA,QAAkBE,SAAlB,gBAAkBA,SAAlB;AAAA,QAA6Bf,UAA7B,gBAA6BA,UAA7B;AACA,QAAM0F,WAAW,GAAG,CAAC7E,SAAD,IAAcE,SAAlC;AACA,wBACE;AAAK,MAAA,SAAS,EAAE+E,eAAOC;AAAvB,oBACE,6BAAC,UAAD;AACE,MAAA,IAAI,EAAE/F,UAAU,GAAG,UAAH,GAAgB,UADlC;AAEE,MAAA,IAAI,EAAC,OAFP;AAGE,MAAA,OAAO,EAAE,KAAKgG,wBAHhB;AAIE,MAAA,IAAI,EAAEC,mBAJR;AAKE,MAAA,OAAO,EAAE,CALX;AAME,MAAA,MAAM,EAAE,CANV;AAOE,oBAAW;AAPb,MADF,EAUGP,WAAW,IAAI,KAAKA,WAAL,EAVlB,CADF;AAcD;;AAEDQ,EAAAA,iBAAiB,GAAG;AAClB,uBAAoC,KAAK7E,KAAzC;AAAA,QAAOR,SAAP,gBAAOA,SAAP;AAAA,QAAkBd,cAAlB,gBAAkBA,cAAlB;;AAEA,QAAIc,SAAJ,EAAe;AACb,aAAO,IAAP;AACD;;AAED,wBACE,6BAAC,SAAD;AAAO,MAAA,OAAO,EAAE,CAAhB;AAAmB,MAAA,KAAK,EAAE,CAA1B;AAA6B,MAAA,KAAK,EAAE;AAACsF,QAAAA,eAAe,EAAE,WAAlB;AAA+BC,QAAAA,YAAY,EAAE;AAA7C;AAApC,oBACE,6BAAC,gBAAD,OADF,eAEE,6BAAC,SAAD;AAAO,MAAA,KAAK,EAAE;AAAd,OACGrG,cAAc,iBACb,6BAAC,QAAD,uGAFJ,eAOE,6BAAC,QAAD,0EAPF,eAQE,6BAAC,QAAD,oEARF,CAFF,CADF;AAeD,GAhbmC,CAkbpC;;;AACAsG,EAAAA,WAAW,GAAG;AACZ,uBAAkC,KAAKhF,KAAvC;AAAA,QAAOd,aAAP,gBAAOA,aAAP;AAAA,QAAsBO,QAAtB,gBAAsBA,QAAtB;AACA,QAAMuF,WAAW,GAAG,CAAC,CAAC9F,aAAtB;;AACA,QAAI,CAAC8F,WAAL,EAAkB;AAChB,aAAO,IAAP;AACD;;AACD,QAAMC,aAAa,GAAGxF,QAAQ,gBAC5B,6BAAC,QAAD;AAAM,MAAA,OAAO,EAAE,CAAf;AAAkB,MAAA,MAAM,EAAE,CAA1B;AAA6B,MAAA,MAAM,EAAE,CAArC;AAAwC,MAAA,IAAI,EAAC;AAA7C,oBACE,6BAAC,QAAD;AAAM,MAAA,IAAI,EAAE;AAAZ,+CADF,CAD4B,GAI1B,IAJJ;AAKA,wBACE,6BAAC,SAAD;AAAO,MAAA,KAAK,EAAE,CAAd;AAAiB,MAAA,YAAY,EAAE;AAA/B,OACGwF,aADH,eAEE,6BAAC,cAAD;AACE,MAAA,aAAa,EAAE/F,aADjB;AAEE,MAAA,GAAG,EAAE,KAAK6C,WAFZ;AAGE,MAAA,OAAO,EAAE,KAAKmD,sBAHhB;AAIE,MAAA,QAAQ,EAAE,KAAKzB;AAJjB,MAFF,CADF;AAWD;;AAED0B,EAAAA,kBAAkB,GAAG;AACnB,uBAAuC,KAAKnF,KAA5C;AAAA,QAAOd,aAAP,gBAAOA,aAAP;AAAA,QAAsBC,aAAtB,gBAAsBA,aAAtB;AACA,QAAOiG,QAAP,GAAmB,KAAKnG,KAAxB,CAAOmG,QAAP;;AACA,QAAIlG,aAAa,IAAIA,aAAa,CAACwB,MAAd,KAAyB,OAA1C,IAAqD,CAAC0E,QAA1D,EAAoE;AAClE,aAAO,cACL,6BAAC,UAAD;AACE,QAAA,GAAG,EAAC,QADN;AAEE,QAAA,IAAI,EAAC,OAFP;AAGE,QAAA,IAAI,EAAC,SAHP;AAIE,QAAA,OAAO,EAAE,KAAKC,kBAJhB;AAKE,QAAA,IAAI,EAAC;AALP,QADK,eAQL,6BAAC,UAAD;AACE,QAAA,GAAG,EAAC,WADN;AAEE,QAAA,IAAI,EAAC,OAFP;AAGE,QAAA,IAAI,EAAC,SAHP;AAIE,QAAA,QAAQ,EAAE,KAAKrF,KAAL,CAAWJ,gBAAX,KAAgC,KAJ5C;AAKE,QAAA,OAAO,EAAE,KAAK0F,eALhB;AAME,QAAA,IAAI,EAAC;AANP,QARK,eAgBL,6BAAC,UAAD;AACE,QAAA,GAAG,EAAC,QADN;AAEE,QAAA,GAAG,EAAE,KAAKrC,iBAFZ;AAGE,QAAA,OAAO,EAAE9D,aAAa,GAAGrB,IAAH,GAAU,KAAKyH,8BAHvC;AAIE,QAAA,IAAI,EAAC,OAJP;AAKE,QAAA,IAAI,EAAC,UALP;AAME,QAAA,IAAI,EAAC;AANP,QAhBK,CAAP;AAyBD;;AACD,WAAO,IAAP;AACD;;AAEDC,EAAAA,aAAa,GAAG;AACd,wBACE,6BAAC,mBAAD;AAAkB,MAAA,KAAK,EAAC,cAAxB;AAAuC,MAAA,OAAO,EAAE,KAAKC,kBAArD;AAAyE,MAAA,MAAM;AAA/E,oBACE,6BAAC,oBAAD;AAAa,MAAA,QAAQ,EAAE,KAAKC;AAA5B,MADF,CADF;AAKD;;AAEDC,EAAAA,WAAW,GAAG;AACZ,QAAOrG,KAAP,GAAgB,KAAKU,KAArB,CAAOV,KAAP;;AACA,QAAI,CAACA,KAAL,EAAY;AACV,aAAO,IAAP;AACD;;AACD,wBACE,6BAAC,UAAD;AAAQ,MAAA,MAAM,EAAC,OAAf;AAAuB,MAAA,OAAO,EAAE,KAAKsG;AAArC,oBACE,6BAAC,gBAAD;AAAe,MAAA,IAAI,EAAC;AAApB,OAA6BtG,KAAK,CAACuG,OAAnC,CADF,CADF;AAKD;;AAEDC,EAAAA,MAAM,GAAG;AAAA;;AACP,sBAA+B,KAAK7G,KAApC;AAAA,QAAO8G,IAAP,eAAOA,IAAP;AAAA,QAAaC,KAAb,eAAaA,KAAb;AAAA,QAAoBC,OAApB,eAAoBA,OAApB;AACA,uBAUI,KAAKjG,KAVT;AAAA,QACER,SADF,gBACEA,SADF;AAAA,QAEElB,OAFF,gBAEEA,OAFF;AAAA,QAGEiB,QAHF,gBAGEA,QAHF;AAAA,QAIEZ,UAJF,gBAIEA,UAJF;AAAA,QAKEW,KALF,gBAKEA,KALF;AAAA,QAMEK,WANF,gBAMEA,WANF;AAAA,QAOER,aAPF,gBAOEA,aAPF;AAAA,QAQEsD,KARF,gBAQEA,KARF;AAAA,QASEvD,aATF,gBASEA,aATF;AAYA,QAAMgH,cAAc,GAAG,CAAAhH,aAAa,SAAb,IAAAA,aAAa,WAAb,oCAAAA,aAAa,CAAEmB,IAAf,uGAAqB8F,YAArB,0GAAmCC,KAAnC,CAAyC,GAAzC,mFAA+CvC,IAA/C,CAAoD,GAApD,MAA4D,MAAnF;AAEA,wBACE,6BAAC,iBAAD;AAAe,MAAA,KAAK,EAAEwC;AAAtB,oBACE,6BAAC,OAAD;AAAK,MAAA,KAAK,EAAE;AAACC,QAAAA,QAAQ,EAAE;AAAX;AAAZ,oBACE,6BAAC,QAAD;AAAM,MAAA,KAAK,EAAC,QAAZ;AAAqB,MAAA,OAAO,EAAC;AAA7B,oBACE,6BAAC,iBAAD;AACE,MAAA,KAAK,EAAEP,IAAI,CAACQ,KADd;AAEE,MAAA,OAAO,EAAEN,OAFX;AAGE,MAAA,WAAW,EAAEF,IAAI,CAACS,WAHpB;AAIE,MAAA,KAAK,EAAER,KAJT;AAKE,MAAA,SAAS,EAAEvB,eAAOgC;AALpB,MADF,EAQG,KAAKjC,iBAAL,EARH,CADF,EAYGhF,SAAS,KAAK,SAAd,iBACC,6BAAC,OAAD;AAAK,MAAA,YAAY,EAAE;AAAnB,oBACE,6BAAC,UAAD;AAAQ,MAAA,KAAK,EAAC,QAAd;AAAuB,MAAA,KAAK,EAAE;AAA9B,oBACE,6BAAC,gBAAD;AAAS,MAAA,MAAM;AAAf,MADF,eAEE,6BAAC,QAAD;AAAM,MAAA,IAAI,EAAE;AAAZ,8BAFF,CADF,CAbJ,EAqBGb,UAAU,IAAI,KAAKkG,iBAAL,EArBjB,EAuBG,CAAClG,UAAD,iBACC,6BAAC,iBAAD;AACE,MAAA,OAAO,EAAE,KAAKwG,kBAAL,EADX;AAEE,MAAA,QAAQ,EAAE5F,QAFZ,CAGE;AAHF;AAIE,MAAA,MAAM,EAAE,KAAKmH,IAJf,CAKE;AALF;AAME,MAAA,OAAO,EAAE,KAAKC,KANhB;AAOE,MAAA,oBAAoB,EAAE,KAAKhC,wBAP7B;AAQE,MAAA,gBAAgB,EAAE,KAAKiC,sBARzB;AASE,MAAA,OAAO,EAAEtI,OATX;AAUE,MAAA,QAAQ,EAAE,KAAK+G;AAVjB,OAYG,KAAKL,WAAL,EAZH,CAxBJ,EAwCGvC,KAAK,iBACJ,6BAAC,UAAD;AAAQ,MAAA,MAAM,EAAC,WAAf;AAA2B,MAAA,OAAO,EAAE,IAApC;AAA0C,MAAA,OAAO,EAAE,KAAKoE;AAAxD,oBACE,6BAAC,SAAD;AAAO,MAAA,KAAK,EAAE,CAAd;AAAiB,MAAA,OAAO,EAAE;AAA1B,oBACE,6BAAC,SAAD;AAAO,MAAA,KAAK,EAAE;AAAd,oBACE,6BAAC,SAAD;AAAO,MAAA,KAAK,EAAE;AAAd,oBACE,6BAAC,QAAD;AAAM,MAAA,IAAI,EAAE,CAAZ;AAAe,MAAA,MAAM,EAAC;AAAtB,kBADF,eAIE;AACE,MAAA,KAAK,EAAE;AACLC,QAAAA,QAAQ,EAAE,MADL;AAEL/B,QAAAA,YAAY,EAAE,WAFT;AAGLgC,QAAAA,OAAO,EAAE,OAHJ;AAILC,QAAAA,WAAW,EAAEd;AAJR,OADT;AAOE,MAAA,GAAG,EAAE,KAAKlG,KAAL,CAAWyC,KAPlB;AAQE,MAAA,KAAK,EAAE;AART,MAJF,CADF,eAgBE,6BAAC,SAAD;AAAO,MAAA,KAAK,EAAE;AAAd,oBACE,6BAAC,QAAD;AAAM,MAAA,IAAI,EAAE,CAAZ;AAAe,MAAA,MAAM,EAAC;AAAtB,cADF,eAIE;AACE,MAAA,KAAK,EAAE;AACLqE,QAAAA,QAAQ,EAAE,MADL;AAEL/B,QAAAA,YAAY,EAAE,WAFT;AAGLgC,QAAAA,OAAO,EAAE,OAHJ;AAILC,QAAAA,WAAW,EAAEd;AAJR,OADT;AAOE,MAAA,GAAG,EAAE,KAAKlG,KAAL,CAAW2C,QAPlB;AAQE,MAAA,KAAK,EAAE;AART,MAJF,CAhBF,CADF,eAiCE,6BAAC,UAAD;AACE,MAAA,GAAG,EAAC,WADN;AAEE,MAAA,IAAI,EAAC,OAFP;AAGE,MAAA,IAAI,EAAC,SAHP;AAIE,MAAA,QAAQ,EAAE,KAAK3C,KAAL,CAAWJ,gBAAX,KAAgC,KAJ5C;AAKE,MAAA,OAAO,EAAE,KAAKqH,oBALhB;AAME,MAAA,OAAO,EAAE,KAAKjH,KAAL,CAAWH,YANtB;AAOE,MAAA,IAAI,EAAC;AAPP,MAjCF,CADF,CAzCJ,EAwFGF,WAAW,IAAI,KAAK6F,aAAL,EAxFlB,EA0FGrG,aAAa,iBACZ,6BAAC,UAAD;AAAQ,MAAA,MAAM,EAAC,cAAf;AAA8B,MAAA,OAAO,EAAE,IAAvC;AAA6C,MAAA,OAAO,EAAE,KAAK+H;AAA3D,oBACE,6BAAC,OAAD;AAAK,MAAA,OAAO,EAAE;AAAd,oBACE,6BAAC,SAAD;AAAO,MAAA,KAAK,EAAE;AAAd,oBACE,6BAAC,QAAD;AAAM,MAAA,KAAK,EAAC;AAAZ,oBACE,6BAAC,YAAD;AACE,MAAA,OAAO,EAAE,KAAKlH,KAAL,CAAWZ,kBADtB;AAEE,MAAA,QAAQ,EAAE,KAAK+H;AAFjB,MADF,eAKE,6BAAC,QAAD;AAAM,MAAA,KAAK,EAAE;AAACC,QAAAA,MAAM,EAAE;AAAT;AAAb,6BALF,CADF,eAQE,6BAAC,QAAD;AAAM,MAAA,KAAK,EAAC;AAAZ,oBACE,6BAAC,YAAD;AACE,MAAA,QAAQ,EAAE,KAAKpH,KAAL,CAAWZ,kBADvB;AAEE,MAAA,OAAO,EACL,KAAKY,KAAL,CAAWZ,kBAAX,IAAiC,KAAKY,KAAL,CAAWX,0BAHhD;AAKE,MAAA,QAAQ,EAAE,KAAKgI;AALjB,MADF,eAQE,6BAAC,QAAD;AAAM,MAAA,KAAK,EAAE;AAACD,QAAAA,MAAM,EAAE;AAAT;AAAb,mCARF,CARF,eAkBE,6BAAC,QAAD;AAAM,MAAA,OAAO,EAAE,CAAf;AAAkB,MAAA,GAAG,EAAE;AAAvB,oBACE,6BAAC,UAAD;AACE,MAAA,IAAI,EAAC,OADP;AAEE,MAAA,IAAI,EAAC,SAFP;AAGE,MAAA,IAAI,EAAC,QAHP;AAIE,MAAA,OAAO,EAAE,KAAKF,kBAJhB;AAKE,MAAA,OAAO,EAAE,CAAC,CAAC1H;AALb,MADF,eAQE,6BAAC,UAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,IAAI,EAAC,UAFP;AAGE,MAAA,IAAI,EAAC,QAHP;AAIE,MAAA,OAAO,EAAE,KAAKiE,iBAJhB;AAKE,MAAA,OAAO,EAAE,CAAC,CAACjE;AALb,MARF,CAlBF,CADF,CADF,CA3FJ,EAoIGF,KAAK,IAAI,KAAKqG,WAAL,EApIZ,CADF,CADF;AA0ID;;AA1pBmC,CADzB,C","sourcesContent":["import {\n Box,\n Button,\n Card,\n Checkbox,\n Dialog,\n Flex,\n Grid,\n Inline,\n Stack,\n studioTheme,\n Text,\n ThemeProvider,\n} from '@sanity/ui'\nimport SetupIcon from 'part:@sanity/base/plugin-icon'\nimport {observePaths} from 'part:@sanity/base/preview'\nimport DialogContent from 'part:@sanity/components/dialogs/content'\nimport FullscreenDialog from 'part:@sanity/components/dialogs/fullscreen'\nimport FormField from 'part:@sanity/components/formfields/default'\nimport Spinner from 'part:@sanity/components/loading/spinner'\nimport {withDocument} from 'part:@sanity/form-builder'\nimport PatchEvent, {set, setIfMissing, unset} from 'part:@sanity/form-builder/patch-event'\nimport React, {Component} from 'react'\nimport {of} from 'rxjs'\nimport {tap} from 'rxjs/operators'\nimport {deleteAsset, getAsset} from '../actions/assets'\nimport {fetchSecrets} from '../actions/secrets'\nimport client from '../clients/SanityClient'\nimport getPosterSrc from '../util/getPosterSrc'\nimport styles from './Input.css'\nimport MuxLogo from './MuxLogo'\nimport SelectAsset from './SelectAsset'\nimport Setup from './Setup'\nimport Uploader from './Uploader'\nimport Video from './Video'\nimport config from '../config'\n\nconst NOOP = () => {\n /* intentional noop */\n}\n\nconst cachedSecrets = {\n token: null,\n secretKey: null,\n enableSignedUrls: false,\n signingKeyId: null,\n signingKeyPrivate: null,\n}\n\nfunction validateSecrets(secrets) {\n if (!secrets.token || !secrets.secretKey) return false\n\n return true\n}\n\nfunction getSecrets() {\n if (cachedSecrets.token) {\n return Promise.resolve({\n isInitialSetup: true,\n needsSetup: false,\n secrets: cachedSecrets,\n })\n }\n return fetchSecrets().then(({secrets, exists}) => {\n cachedSecrets.token = secrets.token\n cachedSecrets.secretKey = secrets.secretKey\n cachedSecrets.enableSignedUrls = secrets.enableSignedUrls\n cachedSecrets.signingKeyId = secrets.signingKeyId\n cachedSecrets.signingKeyPrivate = secrets.signingKeyPrivate\n\n return {\n isInitialSetup: !exists,\n needsSetup: !validateSecrets(cachedSecrets),\n secrets: cachedSecrets,\n }\n })\n}\n\nexport default withDocument(\n class MuxVideoInput extends Component {\n state = {\n assetDocument: null,\n confirmRemove: false,\n deleteOnMuxChecked: false,\n deleteAssetDocumentChecked: true,\n error: null,\n hasFocus: false,\n isInitialSetup: true,\n isLoading: 'secrets',\n needsSetup: true,\n secrets: null,\n isSigned: false,\n showSetup: false,\n showBrowser: false,\n videoReadyToPlay: false,\n thumbLoading: false,\n }\n\n constructor(props) {\n super(props)\n getSecrets()\n .then(({secrets, isInitialSetup, needsSetup}) => {\n this.setState({\n secrets,\n isInitialSetup,\n needsSetup,\n isLoading: props.value?.asset, // If there is an asset continue loading\n })\n })\n .catch((error) => this.setState({error}))\n\n this.setupButton = React.createRef()\n this.pollInterval = null\n this.video = React.createRef()\n this.removeVideoButton = React.createRef()\n this.videoPlayer = React.createRef()\n }\n\n componentDidMount() {\n this.setupAssetListener()\n }\n\n componentWillUnmount() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n }\n }\n\n focus = () => {\n this.handleFocus()\n }\n\n handleFocus = () => {\n this.setState({hasFocus: true})\n }\n\n handleBlur = () => {\n this.setState({hasFocus: false})\n }\n\n getAsset() {\n const {value} = this.props\n return value ? value.asset : null\n }\n\n setupAssetListener() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.setState({videoReadyToPlay: false})\n const asset = this.getAsset()\n if (!asset) {\n return\n }\n this.subscription = observePaths(asset, [\n 'thumbTime',\n 'data',\n 'assetId',\n 'playbackId',\n 'status',\n ])\n .pipe(\n tap((assetDocument) => {\n this.setState({assetDocument})\n if (assetDocument && assetDocument.status === 'errored') {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n // eslint-disable-next-line no-warning-comments\n // todo: use client.observable\n return this.handleRemoveVideo().then(() => {\n this.setState({\n isLoading: false,\n error: new Error(assetDocument.data.errors.messages.join(' ')),\n })\n })\n }\n // Poll MUX if it's preparing the main document or its own static renditions\n if (\n assetDocument?.status === 'preparing' ||\n assetDocument?.data?.static_renditions?.status === 'preparing'\n ) {\n this.pollMux()\n }\n // If MP4 support is enabled: MUX will prepare static_renditions only _after_ an asset\n // has been successfully uploaded.\n // A _ready_ asset doesn't mean static mp4s are generated and ready for use!\n // In these cases, wait for `static_renditions.status === 'ready'` before clearing the poll interval.\n if (assetDocument && assetDocument.status === 'ready') {\n switch (config.mp4_support) {\n case 'standard':\n if (assetDocument?.data?.static_renditions?.status === 'ready') {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n }\n break\n case 'none':\n default:\n clearInterval(this.pollInterval)\n this.pollInterval = null\n break\n }\n }\n\n // eslint-disable-next-line camelcase\n const isSigned = assetDocument?.data?.playback_ids[0]?.policy === 'signed'\n this.setState({assetDocument, isSigned, isLoading: false})\n\n return of(assetDocument)\n })\n )\n .subscribe()\n }\n\n pollMux = () => {\n const assetDocument = this.state.assetDocument\n if (!assetDocument) {\n return\n }\n if (this.pollInterval) {\n return\n }\n this.pollInterval = setInterval(() => {\n getAsset(assetDocument.assetId)\n .then((response) => {\n const props = response.data\n\n // TODO: consider a deep comparison on `props` with asset data and only patch only if it's changed\n client\n .patch(assetDocument._id)\n .set({\n status: props.status,\n data: props,\n })\n .commit({returnDocuments: false})\n })\n .catch((error) => {\n this.setState({error})\n })\n }, 2000)\n }\n\n handleSetupButtonClicked = (event) => {\n this.setState((prevState) => ({showSetup: !prevState.showStetup}))\n }\n\n handleSaveSetup = ({token, secretKey, enableSignedUrls, signingKeyId, signingKeyPrivate}) => {\n cachedSecrets.token = token\n cachedSecrets.secretKey = secretKey\n cachedSecrets.enableSignedUrls = enableSignedUrls\n cachedSecrets.signingKeyId = signingKeyId\n cachedSecrets.signingKeyPrivate = signingKeyPrivate\n\n this.setState({\n showSetup: false,\n secrets: cachedSecrets,\n needsSetup: !validateSecrets(cachedSecrets),\n })\n }\n\n handleCancelSaveSetup = () => {\n this.setState({showSetup: false})\n }\n\n handleOnUploadComplete = (result) => {\n const {onChange} = this.props\n const {_id} = result\n onChange(\n PatchEvent.from([setIfMissing({asset: {_ref: _id}}, []), set({_ref: _id}, ['asset'])])\n )\n this.setState({assetDocument: result.document}, () => {\n this.setupAssetListener()\n })\n }\n\n handleRemoveVideoButtonClicked = (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.setState({confirmRemove: true})\n }\n\n handleRemoveVideo = () => {\n const {assetDocument} = this.state\n this.setState({isLoading: true})\n const unsetAsset = () => {\n return new Promise((resolve, reject) => {\n this.setState(\n {\n assetDocument: null,\n confirmRemove: false,\n isLoading: false,\n },\n () => {\n if (this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked) {\n return client\n .patch(this.props.document._id)\n .unset(['video'])\n .commit({returnDocuments: false})\n .then(() => {\n if (!assetDocument) {\n return resolve()\n }\n return client\n .delete(assetDocument._id)\n .then(() => {\n resolve()\n })\n .catch((error) => {\n reject(error)\n })\n })\n }\n return this.props.onChange(PatchEvent.from(unset()))\n }\n )\n })\n }\n return unsetAsset()\n .then(() => {\n if (this.state.deleteOnMuxChecked) {\n return deleteAsset(assetDocument.assetId).catch((error) => {\n this.setState({error})\n })\n }\n return true\n })\n .catch((error) => {\n this.setState({error})\n })\n }\n\n handleCancelRemove = (event) => {\n this.setState({\n confirmRemove: false,\n deleteOnMuxChecked: true,\n deleteAssetDocumentChecked: true,\n })\n }\n\n handleDeleteOnMuxCheckBoxClicked = (event) => {\n this.setState((prevState) => ({\n deleteOnMuxChecked: !prevState.deleteOnMuxChecked,\n }))\n }\n\n handleDeleteAssetDocumentCheckBoxClicked = (event) => {\n this.setState((prevState) => ({\n deleteAssetDocumentChecked: !prevState.deleteAssetDocumentChecked,\n }))\n }\n\n handleOpenThumb = (event) => {\n if (!this.videoPlayer.current) {\n return\n }\n const {assetDocument, isSigned} = this.state\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\n const options = {\n time: assetDocument.thumbTime,\n width: 320,\n height: 320,\n fitMode: 'crop',\n isSigned,\n signingKeyId: cachedSecrets.signingKeyId,\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\n }\n\n const thumb = getPosterSrc(assetDocument.playbackId, options)\n const newThumb = getPosterSrc(assetDocument.playbackId, {...options, time: currentTime})\n\n this.setState({thumb, newThumb})\n }\n\n handleSetThumbButton = (event) => {\n if (!this.videoPlayer.current) {\n return\n }\n\n this.setState({thumbLoading: true})\n const {assetDocument, isSigned} = this.state\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\n client\n .patch(assetDocument._id)\n .set({\n thumbTime: currentTime,\n })\n .commit({returnDocuments: false})\n .then((response) => {\n const options = {\n time: currentTime,\n width: 320,\n height: 320,\n fitMode: 'crop',\n isSigned,\n signingKeyId: cachedSecrets.signingKeyId,\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\n }\n\n const thumb = getPosterSrc(assetDocument.playbackId, options)\n\n this.setState({thumb, thumbLoading: false})\n })\n .catch((error) => {\n this.setState({error, thumbLoading: false})\n })\n }\n\n handleErrorClose = (event) => {\n if (event) {\n event.preventDefault()\n }\n\n this.setState({\n error: null,\n })\n }\n\n handleCloseThumbPreview = (event) => {\n this.setState({thumb: null})\n }\n\n handleBrowseButton = (event) => {\n this.setState({showBrowser: true})\n }\n\n handleCloseBrowser = (event) => {\n this.setState({showBrowser: false})\n }\n\n handleSelectAsset = (asset) => {\n const {onChange} = this.props\n\n onChange(\n PatchEvent.from([\n setIfMissing({asset: {_ref: asset._id}}, []),\n set({_ref: asset._id}, ['asset']),\n ])\n )\n\n this.setState({showBrowser: false, assetDocument: asset}, () => {\n this.setupAssetListener()\n })\n }\n\n handleVideoReadyToPlay = () => {\n this.setState({videoReadyToPlay: true})\n }\n\n renderSetup() {\n const {secrets} = this.state\n\n return (\n <Dialog\n header=\"Mux API Credentials\"\n width={1}\n onClose={this.handleCancelSaveSetup}\n zOffset={1000}\n >\n <Setup\n secrets={secrets || null}\n onSave={this.handleSaveSetup}\n onCancel={this.handleCancelSaveSetup}\n />\n </Dialog>\n )\n }\n\n renderSetupButton() {\n const {isLoading, showSetup, needsSetup} = this.state\n const renderSetup = !isLoading && showSetup\n return (\n <div className={styles.setupButtonContainer}>\n <Button\n tone={needsSetup ? 'critical' : 'positive'}\n mode=\"bleed\"\n onClick={this.handleSetupButtonClicked}\n icon={SetupIcon}\n padding={3}\n radius={3}\n aria-label=\"Set up Mux credentials\"\n />\n {renderSetup && this.renderSetup()}\n </div>\n )\n }\n\n renderSetupNotice() {\n const {isLoading, isInitialSetup} = this.state\n\n if (isLoading) {\n return null\n }\n\n return (\n <Stack padding={4} space={5} style={{backgroundColor: '#efefefef', borderRadius: 3}}>\n <MuxLogo />\n <Stack space={4}>\n {isInitialSetup && (\n <Text>\n Looks like this is the first time you are using the Mux video plugin in this\n dataset. Great!\n </Text>\n )}\n <Text>Before you can upload video, you must set your Mux credentials.</Text>\n <Text>Click the plugin button in the field title to open Setup.</Text>\n </Stack>\n </Stack>\n )\n }\n\n // eslint-disable-next-line complexity\n renderAsset() {\n const {assetDocument, isSigned} = this.state\n const renderAsset = !!assetDocument\n if (!renderAsset) {\n return null\n }\n const isSignedAlert = isSigned ? (\n <Card padding={3} radius={2} shadow={1} tone=\"positive\">\n <Text size={1}>This Mux asset is using a signed url.</Text>\n </Card>\n ) : null\n return (\n <Stack space={2} marginBottom={2}>\n {isSignedAlert}\n <Video\n assetDocument={assetDocument}\n ref={this.videoPlayer}\n onReady={this.handleVideoReadyToPlay}\n onCancel={this.handleRemoveVideo}\n />\n </Stack>\n )\n }\n\n renderVideoButtons() {\n const {assetDocument, confirmRemove} = this.state\n const {readOnly} = this.props\n if (assetDocument && assetDocument.status === 'ready' && !readOnly) {\n return [\n <Button\n key=\"browse\"\n mode=\"ghost\"\n tone=\"primary\"\n onClick={this.handleBrowseButton}\n text=\"Browse\"\n />,\n <Button\n key=\"thumbnail\"\n mode=\"ghost\"\n tone=\"primary\"\n disabled={this.state.videoReadyToPlay === false}\n onClick={this.handleOpenThumb}\n text=\"Thumbnail\"\n />,\n <Button\n key=\"remove\"\n ref={this.removeVideoButton}\n onClick={confirmRemove ? NOOP : this.handleRemoveVideoButtonClicked}\n mode=\"ghost\"\n tone=\"critical\"\n text=\"Remove\"\n />,\n ]\n }\n return null\n }\n\n renderBrowser() {\n return (\n <FullscreenDialog title=\"Select video\" onClose={this.handleCloseBrowser} isOpen>\n <SelectAsset onSelect={this.handleSelectAsset} />\n </FullscreenDialog>\n )\n }\n\n renderError() {\n const {error} = this.state\n if (!error) {\n return null\n }\n return (\n <Dialog header=\"Error\" onClose={this.handleErrorClose}>\n <DialogContent size=\"small\">{error.message}</DialogContent>\n </Dialog>\n )\n }\n\n render() {\n const {type, level, markers} = this.props\n const {\n isLoading,\n secrets,\n hasFocus,\n needsSetup,\n error,\n showBrowser,\n confirmRemove,\n thumb,\n assetDocument,\n } = this.state\n\n const cssAspectRatio = assetDocument?.data?.aspect_ratio?.split(':')?.join('/') || 'auto'\n\n return (\n <ThemeProvider theme={studioTheme}>\n <Box style={{position: 'relative'}}>\n <Flex align=\"center\" justify=\"space-between\">\n <FormField\n label={type.title}\n markers={markers}\n description={type.description}\n level={level}\n className={styles.formField}\n />\n {this.renderSetupButton()}\n </Flex>\n\n {isLoading === 'secrets' && (\n <Box marginBottom={2}>\n <Inline align=\"center\" space={2}>\n <Spinner inline />\n <Text size={1}>Fetching credentials</Text>\n </Inline>\n </Box>\n )}\n\n {needsSetup && this.renderSetupNotice()}\n\n {!needsSetup && (\n <Uploader\n buttons={this.renderVideoButtons()}\n hasFocus={hasFocus}\n // eslint-disable-next-line react/jsx-handler-names\n onBlur={this.blur}\n // eslint-disable-next-line react/jsx-handler-names\n onFocus={this.focus}\n onSetupButtonClicked={this.handleSetupButtonClicked}\n onUploadComplete={this.handleOnUploadComplete}\n secrets={secrets}\n onBrowse={this.handleBrowseButton}\n >\n {this.renderAsset()}\n </Uploader>\n )}\n\n {thumb && (\n <Dialog header=\"Thumbnail\" zOffset={1000} onClose={this.handleCloseThumbPreview}>\n <Stack space={3} padding={3}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Current:\n </Text>\n <img\n style={{\n maxWidth: '100%',\n borderRadius: '0.1875rem',\n display: 'block',\n aspectRatio: cssAspectRatio,\n }}\n src={this.state.thumb}\n width={400}\n />\n </Stack>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n New:\n </Text>\n <img\n style={{\n maxWidth: '100%',\n borderRadius: '0.1875rem',\n display: 'block',\n aspectRatio: cssAspectRatio,\n }}\n src={this.state.newThumb}\n width={400}\n />\n </Stack>\n </Stack>\n <Button\n key=\"thumbnail\"\n mode=\"ghost\"\n tone=\"primary\"\n disabled={this.state.videoReadyToPlay === false}\n onClick={this.handleSetThumbButton}\n loading={this.state.thumbLoading}\n text=\"Set new thumbnail\"\n />\n </Stack>\n </Dialog>\n )}\n\n {showBrowser && this.renderBrowser()}\n\n {confirmRemove && (\n <Dialog header=\"Remove video\" zOffset={1000} onClose={this.handleCancelRemove}>\n <Box padding={4}>\n <Stack space={3}>\n <Flex align=\"center\">\n <Checkbox\n checked={this.state.deleteOnMuxChecked}\n onChange={this.handleDeleteOnMuxCheckBoxClicked}\n />\n <Text style={{margin: '0 10px'}}>Delete asset on Mux</Text>\n </Flex>\n <Flex align=\"center\">\n <Checkbox\n disabled={this.state.deleteOnMuxChecked}\n checked={\n this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked\n }\n onChange={this.handleDeleteAssetDocumentCheckBoxClicked}\n />\n <Text style={{margin: '0 10px'}}>Delete video from dataset</Text>\n </Flex>\n <Grid columns={2} gap={2}>\n <Button\n mode=\"ghost\"\n tone=\"default\"\n text=\"Cancel\"\n onClick={this.handleCancelRemove}\n loading={!!isLoading}\n />\n <Button\n mode=\"default\"\n tone=\"critical\"\n text=\"Remove\"\n onClick={this.handleRemoveVideo}\n loading={!!isLoading}\n />\n </Grid>\n </Stack>\n </Box>\n </Dialog>\n )}\n\n {error && this.renderError()}\n </Box>\n </ThemeProvider>\n )\n }\n }\n)\n"],"file":"Input.js"}
1
+ {"version":3,"file":"Input.js","names":["NOOP","cachedSecrets","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","validateSecrets","secrets","getSecrets","Promise","resolve","isInitialSetup","needsSetup","fetchSecrets","then","exists","withDocument","MuxVideoInput","Component","constructor","props","assetDocument","confirmRemove","deleteOnMuxChecked","deleteAssetDocumentChecked","error","hasFocus","isLoading","isSigned","showSetup","showBrowser","videoReadyToPlay","thumbLoading","handleFocus","setState","state","pollInterval","setInterval","getAsset","assetId","response","data","client","patch","_id","set","status","commit","returnDocuments","catch","event","prevState","showStetup","result","onChange","PatchEvent","from","setIfMissing","asset","_ref","document","setupAssetListener","preventDefault","stopPropagation","unsetAsset","reject","unset","delete","deleteAsset","videoPlayer","current","currentTime","getVideoElement","options","time","thumbTime","width","height","fitMode","thumb","getPosterSrc","playbackId","newThumb","value","setupButton","React","createRef","video","removeVideoButton","componentDidMount","componentWillUnmount","subscription","unsubscribe","clearInterval","observePaths","pipe","tap","handleRemoveVideo","Error","errors","messages","join","static_renditions","pollMux","config","mp4_support","playback_ids","policy","of","subscribe","renderSetup","handleCancelSaveSetup","handleSaveSetup","renderSetupButton","styles","setupButtonContainer","handleSetupButtonClicked","SetupIcon","renderSetupNotice","backgroundColor","borderRadius","renderAsset","isSignedAlert","handleVideoReadyToPlay","renderVideoButtons","readOnly","handleBrowseButton","handleOpenThumb","handleRemoveVideoButtonClicked","renderBrowser","handleCloseBrowser","handleSelectAsset","renderError","handleErrorClose","message","render","type","level","markers","cssAspectRatio","aspect_ratio","split","studioTheme","position","title","description","formField","blur","focus","handleOnUploadComplete","handleCloseThumbPreview","maxWidth","display","aspectRatio","handleSetThumbButton","handleCancelRemove","handleDeleteOnMuxCheckBoxClicked","margin","handleDeleteAssetDocumentCheckBoxClicked"],"sources":["../../src/components/Input.js"],"sourcesContent":["import {\n Box,\n Button,\n Card,\n Checkbox,\n Dialog,\n Flex,\n Grid,\n Inline,\n Stack,\n studioTheme,\n Text,\n ThemeProvider,\n} from '@sanity/ui'\nimport SetupIcon from 'part:@sanity/base/plugin-icon'\nimport {observePaths} from 'part:@sanity/base/preview'\nimport DialogContent from 'part:@sanity/components/dialogs/content'\nimport FullscreenDialog from 'part:@sanity/components/dialogs/fullscreen'\nimport FormField from 'part:@sanity/components/formfields/default'\nimport Spinner from 'part:@sanity/components/loading/spinner'\nimport {withDocument} from 'part:@sanity/form-builder'\nimport PatchEvent, {set, setIfMissing, unset} from 'part:@sanity/form-builder/patch-event'\nimport React, {Component} from 'react'\nimport {of} from 'rxjs'\nimport {tap} from 'rxjs/operators'\nimport {deleteAsset, getAsset} from '../actions/assets'\nimport {fetchSecrets} from '../actions/secrets'\nimport client from '../clients/SanityClient'\nimport getPosterSrc from '../util/getPosterSrc'\nimport styles from './Input.css'\nimport MuxLogo from './MuxLogo'\nimport SelectAsset from './SelectAsset'\nimport Setup from './Setup'\nimport Uploader from './Uploader'\nimport Video from './Video'\nimport config from '../config'\n\nconst NOOP = () => {\n /* intentional noop */\n}\n\nconst cachedSecrets = {\n token: null,\n secretKey: null,\n enableSignedUrls: false,\n signingKeyId: null,\n signingKeyPrivate: null,\n}\n\nfunction validateSecrets(secrets) {\n if (!secrets.token || !secrets.secretKey) return false\n\n return true\n}\n\nfunction getSecrets() {\n if (cachedSecrets.token) {\n return Promise.resolve({\n isInitialSetup: true,\n needsSetup: false,\n secrets: cachedSecrets,\n })\n }\n return fetchSecrets().then(({secrets, exists}) => {\n cachedSecrets.token = secrets.token\n cachedSecrets.secretKey = secrets.secretKey\n cachedSecrets.enableSignedUrls = secrets.enableSignedUrls\n cachedSecrets.signingKeyId = secrets.signingKeyId\n cachedSecrets.signingKeyPrivate = secrets.signingKeyPrivate\n\n return {\n isInitialSetup: !exists,\n needsSetup: !validateSecrets(cachedSecrets),\n secrets: cachedSecrets,\n }\n })\n}\n\nexport default withDocument(\n class MuxVideoInput extends Component {\n state = {\n assetDocument: null,\n confirmRemove: false,\n deleteOnMuxChecked: false,\n deleteAssetDocumentChecked: true,\n error: null,\n hasFocus: false,\n isInitialSetup: true,\n isLoading: 'secrets',\n needsSetup: true,\n secrets: null,\n isSigned: false,\n showSetup: false,\n showBrowser: false,\n videoReadyToPlay: false,\n thumbLoading: false,\n }\n\n constructor(props) {\n super(props)\n getSecrets()\n .then(({secrets, isInitialSetup, needsSetup}) => {\n this.setState({\n secrets,\n isInitialSetup,\n needsSetup,\n isLoading: props.value?.asset, // If there is an asset continue loading\n })\n })\n .catch((error) => this.setState({error}))\n\n this.setupButton = React.createRef()\n this.pollInterval = null\n this.video = React.createRef()\n this.removeVideoButton = React.createRef()\n this.videoPlayer = React.createRef()\n }\n\n componentDidMount() {\n this.setupAssetListener()\n }\n\n componentWillUnmount() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n }\n }\n\n focus = () => {\n this.handleFocus()\n }\n\n handleFocus = () => {\n this.setState({hasFocus: true})\n }\n\n handleBlur = () => {\n this.setState({hasFocus: false})\n }\n\n getAsset() {\n const {value} = this.props\n return value ? value.asset : null\n }\n\n setupAssetListener() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.setState({videoReadyToPlay: false})\n const asset = this.getAsset()\n if (!asset) {\n return\n }\n this.subscription = observePaths(asset, [\n 'thumbTime',\n 'data',\n 'assetId',\n 'playbackId',\n 'status',\n ])\n .pipe(\n tap((assetDocument) => {\n this.setState({assetDocument})\n if (assetDocument && assetDocument.status === 'errored') {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n // eslint-disable-next-line no-warning-comments\n // todo: use client.observable\n return this.handleRemoveVideo().then(() => {\n this.setState({\n isLoading: false,\n error: new Error(assetDocument.data.errors.messages.join(' ')),\n })\n })\n }\n // Poll MUX if it's preparing the main document or its own static renditions\n if (\n assetDocument?.status === 'preparing' ||\n assetDocument?.data?.static_renditions?.status === 'preparing'\n ) {\n this.pollMux()\n }\n // If MP4 support is enabled: MUX will prepare static_renditions only _after_ an asset\n // has been successfully uploaded.\n // A _ready_ asset doesn't mean static mp4s are generated and ready for use!\n // In these cases, wait for `static_renditions.status === 'ready'` before clearing the poll interval.\n if (assetDocument && assetDocument.status === 'ready') {\n switch (config.mp4_support) {\n case 'standard':\n if (assetDocument?.data?.static_renditions?.status === 'ready') {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n }\n break\n case 'none':\n default:\n clearInterval(this.pollInterval)\n this.pollInterval = null\n break\n }\n }\n\n // eslint-disable-next-line camelcase\n const isSigned = assetDocument?.data?.playback_ids[0]?.policy === 'signed'\n this.setState({assetDocument, isSigned, isLoading: false})\n\n return of(assetDocument)\n })\n )\n .subscribe()\n }\n\n pollMux = () => {\n const assetDocument = this.state.assetDocument\n if (!assetDocument) {\n return\n }\n if (this.pollInterval) {\n return\n }\n this.pollInterval = setInterval(() => {\n getAsset(assetDocument.assetId)\n .then((response) => {\n const props = response.data\n\n client\n .patch(assetDocument._id)\n .set({\n status: props.status,\n data: props,\n })\n .commit({returnDocuments: false})\n })\n .catch((error) => {\n this.setState({error})\n })\n }, 2000)\n }\n\n handleSetupButtonClicked = (event) => {\n this.setState((prevState) => ({showSetup: !prevState.showStetup}))\n }\n\n handleSaveSetup = ({token, secretKey, enableSignedUrls, signingKeyId, signingKeyPrivate}) => {\n cachedSecrets.token = token\n cachedSecrets.secretKey = secretKey\n cachedSecrets.enableSignedUrls = enableSignedUrls\n cachedSecrets.signingKeyId = signingKeyId\n cachedSecrets.signingKeyPrivate = signingKeyPrivate\n\n this.setState({\n showSetup: false,\n secrets: cachedSecrets,\n needsSetup: !validateSecrets(cachedSecrets),\n })\n }\n\n handleCancelSaveSetup = () => {\n this.setState({showSetup: false})\n }\n\n handleOnUploadComplete = (result) => {\n const {onChange} = this.props\n const {_id} = result\n onChange(\n PatchEvent.from([setIfMissing({asset: {_ref: _id}}, []), set({_ref: _id}, ['asset'])])\n )\n this.setState({assetDocument: result.document}, () => {\n this.setupAssetListener()\n })\n }\n\n handleRemoveVideoButtonClicked = (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.setState({confirmRemove: true})\n }\n\n handleRemoveVideo = () => {\n const {assetDocument} = this.state\n this.setState({isLoading: true})\n const unsetAsset = () => {\n return new Promise((resolve, reject) => {\n this.setState(\n {\n assetDocument: null,\n confirmRemove: false,\n isLoading: false,\n },\n () => {\n if (this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked) {\n return client\n .patch(this.props.document._id)\n .unset(['video'])\n .commit({returnDocuments: false})\n .then(() => {\n if (!assetDocument) {\n return resolve()\n }\n return client\n .delete(assetDocument._id)\n .then(() => {\n resolve()\n })\n .catch((error) => {\n reject(error)\n })\n })\n }\n return this.props.onChange(PatchEvent.from(unset()))\n }\n )\n })\n }\n return unsetAsset()\n .then(() => {\n if (this.state.deleteOnMuxChecked) {\n return deleteAsset(assetDocument.assetId).catch((error) => {\n this.setState({error})\n })\n }\n return true\n })\n .catch((error) => {\n this.setState({error})\n })\n }\n\n handleCancelRemove = (event) => {\n this.setState({\n confirmRemove: false,\n deleteOnMuxChecked: true,\n deleteAssetDocumentChecked: true,\n })\n }\n\n handleDeleteOnMuxCheckBoxClicked = (event) => {\n this.setState((prevState) => ({\n deleteOnMuxChecked: !prevState.deleteOnMuxChecked,\n }))\n }\n\n handleDeleteAssetDocumentCheckBoxClicked = (event) => {\n this.setState((prevState) => ({\n deleteAssetDocumentChecked: !prevState.deleteAssetDocumentChecked,\n }))\n }\n\n handleOpenThumb = (event) => {\n if (!this.videoPlayer.current) {\n return\n }\n const {assetDocument, isSigned} = this.state\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\n const options = {\n time: assetDocument.thumbTime,\n width: 320,\n height: 320,\n fitMode: 'crop',\n isSigned,\n signingKeyId: cachedSecrets.signingKeyId,\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\n }\n\n const thumb = getPosterSrc(assetDocument.playbackId, options)\n const newThumb = getPosterSrc(assetDocument.playbackId, {...options, time: currentTime})\n\n this.setState({thumb, newThumb})\n }\n\n handleSetThumbButton = (event) => {\n if (!this.videoPlayer.current) {\n return\n }\n\n this.setState({thumbLoading: true})\n const {assetDocument, isSigned} = this.state\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\n client\n .patch(assetDocument._id)\n .set({\n thumbTime: currentTime,\n })\n .commit({returnDocuments: false})\n .then((response) => {\n const options = {\n time: currentTime,\n width: 320,\n height: 320,\n fitMode: 'crop',\n isSigned,\n signingKeyId: cachedSecrets.signingKeyId,\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\n }\n\n const thumb = getPosterSrc(assetDocument.playbackId, options)\n\n this.setState({thumb, thumbLoading: false})\n })\n .catch((error) => {\n this.setState({error, thumbLoading: false})\n })\n }\n\n handleErrorClose = (event) => {\n if (event) {\n event.preventDefault()\n }\n\n this.setState({\n error: null,\n })\n }\n\n handleCloseThumbPreview = (event) => {\n this.setState({thumb: null})\n }\n\n handleBrowseButton = (event) => {\n this.setState({showBrowser: true})\n }\n\n handleCloseBrowser = (event) => {\n this.setState({showBrowser: false})\n }\n\n handleSelectAsset = (asset) => {\n const {onChange} = this.props\n\n onChange(\n PatchEvent.from([\n setIfMissing({asset: {_ref: asset._id}}, []),\n set({_ref: asset._id}, ['asset']),\n ])\n )\n\n this.setState({showBrowser: false, assetDocument: asset}, () => {\n this.setupAssetListener()\n })\n }\n\n handleVideoReadyToPlay = () => {\n this.setState({videoReadyToPlay: true})\n }\n\n renderSetup() {\n const {secrets} = this.state\n\n return (\n <Dialog\n header=\"Mux API Credentials\"\n width={1}\n onClose={this.handleCancelSaveSetup}\n zOffset={1000}\n >\n <Setup\n secrets={secrets || null}\n onSave={this.handleSaveSetup}\n onCancel={this.handleCancelSaveSetup}\n />\n </Dialog>\n )\n }\n\n renderSetupButton() {\n const {isLoading, showSetup, needsSetup} = this.state\n const renderSetup = !isLoading && showSetup\n return (\n <div className={styles.setupButtonContainer}>\n <Button\n tone={needsSetup ? 'critical' : 'positive'}\n mode=\"bleed\"\n onClick={this.handleSetupButtonClicked}\n icon={SetupIcon}\n padding={3}\n radius={3}\n aria-label=\"Set up Mux credentials\"\n />\n {renderSetup && this.renderSetup()}\n </div>\n )\n }\n\n renderSetupNotice() {\n const {isLoading, isInitialSetup} = this.state\n\n if (isLoading) {\n return null\n }\n\n return (\n <Stack padding={4} space={5} style={{backgroundColor: '#efefefef', borderRadius: 3}}>\n <MuxLogo />\n <Stack space={4}>\n {isInitialSetup && (\n <Text>\n Looks like this is the first time you are using the Mux video plugin in this\n dataset. Great!\n </Text>\n )}\n <Text>Before you can upload video, you must set your Mux credentials.</Text>\n <Text>Click the plugin button in the field title to open Setup.</Text>\n </Stack>\n </Stack>\n )\n }\n\n // eslint-disable-next-line complexity\n renderAsset() {\n const {assetDocument, isSigned} = this.state\n const renderAsset = !!assetDocument\n if (!renderAsset) {\n return null\n }\n const isSignedAlert = isSigned ? (\n <Card padding={3} radius={2} shadow={1} tone=\"positive\">\n <Text size={1}>This Mux asset is using a signed url.</Text>\n </Card>\n ) : null\n return (\n <Stack space={2} marginBottom={2}>\n {isSignedAlert}\n <Video\n assetDocument={assetDocument}\n ref={this.videoPlayer}\n onReady={this.handleVideoReadyToPlay}\n onCancel={this.handleRemoveVideo}\n />\n </Stack>\n )\n }\n\n renderVideoButtons() {\n const {assetDocument, confirmRemove} = this.state\n const {readOnly} = this.props\n if (assetDocument && assetDocument.status === 'ready' && !readOnly) {\n return [\n <Button\n key=\"browse\"\n mode=\"ghost\"\n tone=\"primary\"\n onClick={this.handleBrowseButton}\n text=\"Browse\"\n />,\n <Button\n key=\"thumbnail\"\n mode=\"ghost\"\n tone=\"primary\"\n disabled={this.state.videoReadyToPlay === false}\n onClick={this.handleOpenThumb}\n text=\"Thumbnail\"\n />,\n <Button\n key=\"remove\"\n ref={this.removeVideoButton}\n onClick={confirmRemove ? NOOP : this.handleRemoveVideoButtonClicked}\n mode=\"ghost\"\n tone=\"critical\"\n text=\"Remove\"\n />,\n ]\n }\n return null\n }\n\n renderBrowser() {\n return (\n <FullscreenDialog title=\"Select video\" onClose={this.handleCloseBrowser} isOpen>\n <SelectAsset onSelect={this.handleSelectAsset} />\n </FullscreenDialog>\n )\n }\n\n renderError() {\n const {error} = this.state\n if (!error) {\n return null\n }\n return (\n <Dialog header=\"Error\" onClose={this.handleErrorClose}>\n <DialogContent size=\"small\">{error.message}</DialogContent>\n </Dialog>\n )\n }\n\n render() {\n const {type, level, markers} = this.props\n const {\n isLoading,\n secrets,\n hasFocus,\n needsSetup,\n error,\n showBrowser,\n confirmRemove,\n thumb,\n assetDocument,\n } = this.state\n\n const cssAspectRatio = assetDocument?.data?.aspect_ratio?.split(':')?.join('/') || 'auto'\n\n return (\n <ThemeProvider theme={studioTheme}>\n <Box style={{position: 'relative'}}>\n <Flex align=\"center\" justify=\"space-between\">\n <FormField\n label={type.title}\n markers={markers}\n description={type.description}\n level={level}\n className={styles.formField}\n />\n {this.renderSetupButton()}\n </Flex>\n\n {isLoading === 'secrets' && (\n <Box marginBottom={2}>\n <Inline align=\"center\" space={2}>\n <Spinner inline />\n <Text size={1}>Fetching credentials</Text>\n </Inline>\n </Box>\n )}\n\n {needsSetup && this.renderSetupNotice()}\n\n {!needsSetup && (\n <Uploader\n buttons={this.renderVideoButtons()}\n hasFocus={hasFocus}\n // eslint-disable-next-line react/jsx-handler-names\n onBlur={this.blur}\n // eslint-disable-next-line react/jsx-handler-names\n onFocus={this.focus}\n onSetupButtonClicked={this.handleSetupButtonClicked}\n onUploadComplete={this.handleOnUploadComplete}\n secrets={secrets}\n onBrowse={this.handleBrowseButton}\n >\n {this.renderAsset()}\n </Uploader>\n )}\n\n {thumb && (\n <Dialog header=\"Thumbnail\" zOffset={1000} onClose={this.handleCloseThumbPreview}>\n <Stack space={3} padding={3}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Current:\n </Text>\n <img\n style={{\n maxWidth: '100%',\n borderRadius: '0.1875rem',\n display: 'block',\n aspectRatio: cssAspectRatio,\n }}\n src={this.state.thumb}\n width={400}\n />\n </Stack>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n New:\n </Text>\n <img\n style={{\n maxWidth: '100%',\n borderRadius: '0.1875rem',\n display: 'block',\n aspectRatio: cssAspectRatio,\n }}\n src={this.state.newThumb}\n width={400}\n />\n </Stack>\n </Stack>\n <Button\n key=\"thumbnail\"\n mode=\"ghost\"\n tone=\"primary\"\n disabled={this.state.videoReadyToPlay === false}\n onClick={this.handleSetThumbButton}\n loading={this.state.thumbLoading}\n text=\"Set new thumbnail\"\n />\n </Stack>\n </Dialog>\n )}\n\n {showBrowser && this.renderBrowser()}\n\n {confirmRemove && (\n <Dialog header=\"Remove video\" zOffset={1000} onClose={this.handleCancelRemove}>\n <Box padding={4}>\n <Stack space={3}>\n <Flex align=\"center\">\n <Checkbox\n checked={this.state.deleteOnMuxChecked}\n onChange={this.handleDeleteOnMuxCheckBoxClicked}\n />\n <Text style={{margin: '0 10px'}}>Delete asset on Mux</Text>\n </Flex>\n <Flex align=\"center\">\n <Checkbox\n disabled={this.state.deleteOnMuxChecked}\n checked={\n this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked\n }\n onChange={this.handleDeleteAssetDocumentCheckBoxClicked}\n />\n <Text style={{margin: '0 10px'}}>Delete video from dataset</Text>\n </Flex>\n <Grid columns={2} gap={2}>\n <Button\n mode=\"ghost\"\n tone=\"default\"\n text=\"Cancel\"\n onClick={this.handleCancelRemove}\n loading={!!isLoading}\n />\n <Button\n mode=\"default\"\n tone=\"critical\"\n text=\"Remove\"\n onClick={this.handleRemoveVideo}\n loading={!!isLoading}\n />\n </Grid>\n </Stack>\n </Box>\n </Dialog>\n )}\n\n {error && this.renderError()}\n </Box>\n </ThemeProvider>\n )\n }\n }\n)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/MuxLogo.js"],"names":["MuxLogo"],"mappings":";;;;;;;AAAA;;;;AAEe,SAASA,OAAT,GAAmB;AAChC,sBACE;AACE,IAAA,MAAM,EAAC,+yQADT;AAEE,IAAA,GAAG,EAAC,g4HAFN;AAGE,IAAA,GAAG,EAAC;AAHN,IADF;AAOD","sourcesContent":["import React from 'react'\n\nexport default function MuxLogo() {\n return (\n <img\n srcSet=\"data:image/png;base64,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 2x\"\n src=\"data:image/png;base64,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\"\n alt=\"Mux Logo\"\n />\n )\n}\n"],"file":"MuxLogo.js"}
1
+ {"version":3,"file":"MuxLogo.js","names":["MuxLogo"],"sources":["../../src/components/MuxLogo.js"],"sourcesContent":["import React from 'react'\n\nexport default function MuxLogo() {\n return (\n <img\n srcSet=\"data:image/png;base64,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 2x\"\n src=\"data:image/png;base64,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\"\n alt=\"Mux Logo\"\n />\n )\n}\n"],"mappings":";;;;;;;AAAA;;;;AAEe,SAASA,OAAT,GAAmB;EAChC,oBACE;IACE,MAAM,EAAC,+yQADT;IAEE,GAAG,EAAC,g4HAFN;IAGE,GAAG,EAAC;EAHN,EADF;AAOD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/Preview.js"],"names":["MuxVideoPreview","props","React","useState","undefined","secrets","setSecrets","posterSrc","setPosterSrc","useEffect","then","data","value","status","signingKeyId","signingKeyPrivate","playbackId","playbackIds","id","time","thumbTime","fitMode","width","height","isSigned","policy","styles","poster","backgroundImage","filename","propTypes","PropTypes","object","defaultProps"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEA,IAAMA,eAAe,GAAIC,KAAD,IAAW;AACjC,wBAA8BC,eAAMC,QAAN,CAAeC,SAAf,CAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,yBAAkCJ,eAAMC,QAAN,CAAeC,SAAf,CAAlC;AAAA;AAAA,MAAOG,SAAP;AAAA,MAAkBC,YAAlB;;AAEAN,iBAAMO,SAAN,CAAgB,MAAM;AACpB,iCAAeC,IAAf,CAAqBC,IAAD,IAAUL,UAAU,CAACK,IAAI,CAACN,OAAN,CAAxC;AACD,GAFD,EAEG,EAFH;;AAIAH,iBAAMO,SAAN,CAAgB,MAAM;AACpB,QAAIR,KAAK,CAACW,KAAN,KAAgB,IAAhB,IAAwBP,OAAO,KAAKD,SAAxC,EAAmD;AAEnD,QAAIH,KAAK,CAACW,KAAN,CAAYC,MAAZ,KAAuB,OAA3B,EAAoC;AAEpC,QAAOC,YAAP,GAA0CT,OAA1C,CAAOS,YAAP;AAAA,QAAqBC,iBAArB,GAA0CV,OAA1C,CAAqBU,iBAArB;AACA,QAAMC,UAAU,GAAGf,KAAK,CAACW,KAAN,CAAYK,WAAZ,CAAwB,CAAxB,CAAnB;AAEAT,IAAAA,YAAY,CACV,2BAAaQ,UAAU,CAACE,EAAxB,EAA4B;AAC1BC,MAAAA,IAAI,EAAElB,KAAK,CAACW,KAAN,CAAYQ,SADQ;AAE1BC,MAAAA,OAAO,EAAE,MAFiB;AAG1BC,MAAAA,KAAK,EAAE,GAHmB;AAI1BC,MAAAA,MAAM,EAAE,GAJkB;AAK1BC,MAAAA,QAAQ,EAAER,UAAU,CAACS,MAAX,KAAsB,QALN;AAM1BX,MAAAA,YAN0B;AAO1BC,MAAAA;AAP0B,KAA5B,CADU,CAAZ;AAWD,GAnBD,EAmBG,CAACd,KAAK,CAACW,KAAP,EAAcP,OAAd,CAnBH;;AAqBA,MAAI,CAACJ,KAAK,CAACW,KAAX,EAAkB,OAAO,IAAP;;AAElB,MAAIL,SAAS,KAAKH,SAAlB,EAA6B;AAC3B,wBAAO;AAAK,MAAA,SAAS,EAAEsB,iBAAOC,MAAvB;AAA+B,MAAA,KAAK,EAAE;AAACC,QAAAA,eAAe,gBAASrB,SAAT;AAAhB;AAAtC,MAAP;AACD;;AAED,qBAAuCN,KAAK,CAACW,KAA7C;AAAA,MAAOiB,QAAP,gBAAOA,QAAP;AAAA,MAAiBb,UAAjB,gBAAiBA,UAAjB;AAAA,MAA6BH,MAA7B,gBAA6BA,MAA7B;AAEA,sBACE,6BAAC,6BAAD;AACE,IAAA,KAAK,EAAEgB,QAAQ,IAAIb,UAAZ,IAA0B,EADnC;AAEE,IAAA,QAAQ,EAAEH,MAAM,qBAAcA,MAAd,IAAyB;AAF3C,IADF;AAMD,CA3CD;;AA6CAb,eAAe,CAAC8B,SAAhB,GAA4B;AAC1BlB,EAAAA,KAAK,EAAEmB,mBAAUC;AADS,CAA5B;AAIAhC,eAAe,CAACiC,YAAhB,GAA+B;AAC7BrB,EAAAA,KAAK,EAAE;AADsB,CAA/B;eAIeZ,e","sourcesContent":["import {SanityDefaultPreview} from 'part:@sanity/base/preview'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport {fetchSecrets} from '../actions/secrets'\nimport getPosterSrc from '../util/getPosterSrc'\nimport styles from './Preview.css'\n\nconst MuxVideoPreview = (props) => {\n const [secrets, setSecrets] = React.useState(undefined)\n const [posterSrc, setPosterSrc] = React.useState(undefined)\n\n React.useEffect(() => {\n fetchSecrets().then((data) => setSecrets(data.secrets))\n }, [])\n\n React.useEffect(() => {\n if (props.value === null || secrets === undefined) return\n\n if (props.value.status !== 'ready') return\n\n const {signingKeyId, signingKeyPrivate} = secrets\n const playbackId = props.value.playbackIds[0]\n\n setPosterSrc(\n getPosterSrc(playbackId.id, {\n time: props.value.thumbTime,\n fitMode: 'crop',\n width: 640,\n height: 360,\n isSigned: playbackId.policy === 'signed',\n signingKeyId,\n signingKeyPrivate,\n })\n )\n }, [props.value, secrets])\n\n if (!props.value) return null\n\n if (posterSrc !== undefined) {\n return <div className={styles.poster} style={{backgroundImage: `url(${posterSrc})`}} />\n }\n\n const {filename, playbackId, status} = props.value\n\n return (\n <SanityDefaultPreview\n title={filename || playbackId || ''}\n subtitle={status ? `status: ${status}` : null}\n />\n )\n}\n\nMuxVideoPreview.propTypes = {\n value: PropTypes.object,\n}\n\nMuxVideoPreview.defaultProps = {\n value: null,\n}\n\nexport default MuxVideoPreview\n"],"file":"Preview.js"}
1
+ {"version":3,"file":"Preview.js","names":["MuxVideoPreview","props","React","useState","undefined","secrets","setSecrets","posterSrc","setPosterSrc","useEffect","fetchSecrets","then","data","value","status","signingKeyId","signingKeyPrivate","playbackId","playbackIds","getPosterSrc","id","time","thumbTime","fitMode","width","height","isSigned","policy","styles","poster","backgroundImage","filename","propTypes","PropTypes","object","defaultProps"],"sources":["../../src/components/Preview.js"],"sourcesContent":["import {SanityDefaultPreview} from 'part:@sanity/base/preview'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport {fetchSecrets} from '../actions/secrets'\nimport getPosterSrc from '../util/getPosterSrc'\nimport styles from './Preview.css'\n\nconst MuxVideoPreview = (props) => {\n const [secrets, setSecrets] = React.useState(undefined)\n const [posterSrc, setPosterSrc] = React.useState(undefined)\n\n React.useEffect(() => {\n fetchSecrets().then((data) => setSecrets(data.secrets))\n }, [])\n\n React.useEffect(() => {\n if (props.value === null || secrets === undefined) return\n\n if (props.value.status !== 'ready') return\n\n const {signingKeyId, signingKeyPrivate} = secrets\n const playbackId = props.value.playbackIds[0]\n\n setPosterSrc(\n getPosterSrc(playbackId.id, {\n time: props.value.thumbTime,\n fitMode: 'crop',\n width: 640,\n height: 360,\n isSigned: playbackId.policy === 'signed',\n signingKeyId,\n signingKeyPrivate,\n })\n )\n }, [props.value, secrets])\n\n if (!props.value) return null\n\n if (posterSrc !== undefined) {\n return <div className={styles.poster} style={{backgroundImage: `url(${posterSrc})`}} />\n }\n\n const {filename, playbackId, status} = props.value\n\n return (\n <SanityDefaultPreview\n title={filename || playbackId || ''}\n subtitle={status ? `status: ${status}` : null}\n />\n )\n}\n\nMuxVideoPreview.propTypes = {\n value: PropTypes.object,\n}\n\nMuxVideoPreview.defaultProps = {\n value: null,\n}\n\nexport default MuxVideoPreview\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEA,IAAMA,eAAe,GAAIC,KAAD,IAAW;EACjC,sBAA8BC,cAAA,CAAMC,QAAN,CAAeC,SAAf,CAA9B;EAAA;EAAA,IAAOC,OAAP;EAAA,IAAgBC,UAAhB;;EACA,uBAAkCJ,cAAA,CAAMC,QAAN,CAAeC,SAAf,CAAlC;EAAA;EAAA,IAAOG,SAAP;EAAA,IAAkBC,YAAlB;;EAEAN,cAAA,CAAMO,SAAN,CAAgB,MAAM;IACpB,IAAAC,qBAAA,IAAeC,IAAf,CAAqBC,IAAD,IAAUN,UAAU,CAACM,IAAI,CAACP,OAAN,CAAxC;EACD,CAFD,EAEG,EAFH;;EAIAH,cAAA,CAAMO,SAAN,CAAgB,MAAM;IACpB,IAAIR,KAAK,CAACY,KAAN,KAAgB,IAAhB,IAAwBR,OAAO,KAAKD,SAAxC,EAAmD;IAEnD,IAAIH,KAAK,CAACY,KAAN,CAAYC,MAAZ,KAAuB,OAA3B,EAAoC;IAEpC,IAAOC,YAAP,GAA0CV,OAA1C,CAAOU,YAAP;IAAA,IAAqBC,iBAArB,GAA0CX,OAA1C,CAAqBW,iBAArB;IACA,IAAMC,UAAU,GAAGhB,KAAK,CAACY,KAAN,CAAYK,WAAZ,CAAwB,CAAxB,CAAnB;IAEAV,YAAY,CACV,IAAAW,qBAAA,EAAaF,UAAU,CAACG,EAAxB,EAA4B;MAC1BC,IAAI,EAAEpB,KAAK,CAACY,KAAN,CAAYS,SADQ;MAE1BC,OAAO,EAAE,MAFiB;MAG1BC,KAAK,EAAE,GAHmB;MAI1BC,MAAM,EAAE,GAJkB;MAK1BC,QAAQ,EAAET,UAAU,CAACU,MAAX,KAAsB,QALN;MAM1BZ,YAN0B;MAO1BC;IAP0B,CAA5B,CADU,CAAZ;EAWD,CAnBD,EAmBG,CAACf,KAAK,CAACY,KAAP,EAAcR,OAAd,CAnBH;;EAqBA,IAAI,CAACJ,KAAK,CAACY,KAAX,EAAkB,OAAO,IAAP;;EAElB,IAAIN,SAAS,KAAKH,SAAlB,EAA6B;IAC3B,oBAAO;MAAK,SAAS,EAAEwB,gBAAA,CAAOC,MAAvB;MAA+B,KAAK,EAAE;QAACC,eAAe,gBAASvB,SAAT;MAAhB;IAAtC,EAAP;EACD;;EAED,mBAAuCN,KAAK,CAACY,KAA7C;EAAA,IAAOkB,QAAP,gBAAOA,QAAP;EAAA,IAAiBd,UAAjB,gBAAiBA,UAAjB;EAAA,IAA6BH,MAA7B,gBAA6BA,MAA7B;EAEA,oBACE,6BAAC,6BAAD;IACE,KAAK,EAAEiB,QAAQ,IAAId,UAAZ,IAA0B,EADnC;IAEE,QAAQ,EAAEH,MAAM,qBAAcA,MAAd,IAAyB;EAF3C,EADF;AAMD,CA3CD;;AA6CAd,eAAe,CAACgC,SAAhB,GAA4B;EAC1BnB,KAAK,EAAEoB,kBAAA,CAAUC;AADS,CAA5B;AAIAlC,eAAe,CAACmC,YAAhB,GAA+B;EAC7BtB,KAAK,EAAE;AADsB,CAA/B;eAIeb,e"}