sanity-plugin-mux-input 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/build/actions/assets.js +37 -0
  4. package/build/actions/assets.js.map +1 -0
  5. package/build/actions/secrets.js +125 -0
  6. package/build/actions/secrets.js.map +1 -0
  7. package/build/actions/upload.js +280 -0
  8. package/build/actions/upload.js.map +1 -0
  9. package/build/clients/SanityClient.js +19 -0
  10. package/build/clients/SanityClient.js.map +1 -0
  11. package/build/clients/upChunkObservable.js +66 -0
  12. package/build/clients/upChunkObservable.js.map +1 -0
  13. package/build/components/FileInputButton.js +84 -0
  14. package/build/components/FileInputButton.js.map +1 -0
  15. package/build/components/Input.css +30 -0
  16. package/build/components/Input.js +823 -0
  17. package/build/components/Input.js.map +1 -0
  18. package/build/components/MuxLogo.js +19 -0
  19. package/build/components/MuxLogo.js.map +1 -0
  20. package/build/components/Preview.css +16 -0
  21. package/build/components/Preview.js +95 -0
  22. package/build/components/Preview.js.map +1 -0
  23. package/build/components/SelectAsset.css +56 -0
  24. package/build/components/SelectAsset.js +162 -0
  25. package/build/components/SelectAsset.js.map +1 -0
  26. package/build/components/Setup.css +7 -0
  27. package/build/components/Setup.js +311 -0
  28. package/build/components/Setup.js.map +1 -0
  29. package/build/components/UploadPlaceholder.css +81 -0
  30. package/build/components/UploadPlaceholder.js +92 -0
  31. package/build/components/UploadPlaceholder.js.map +1 -0
  32. package/build/components/Uploader.css +28 -0
  33. package/build/components/Uploader.js +534 -0
  34. package/build/components/Uploader.js.map +1 -0
  35. package/build/components/Video.css +21 -0
  36. package/build/components/Video.js +360 -0
  37. package/build/components/Video.js.map +1 -0
  38. package/build/config.js +17 -0
  39. package/build/config.js.map +1 -0
  40. package/build/index.js +22 -0
  41. package/build/index.js.map +1 -0
  42. package/build/schema/mux.video.js +41 -0
  43. package/build/schema/mux.video.js.map +1 -0
  44. package/build/schema/mux.videoAsset.js +29 -0
  45. package/build/schema/mux.videoAsset.js.map +1 -0
  46. package/build/util/extractFiles.js +70 -0
  47. package/build/util/extractFiles.js.map +1 -0
  48. package/build/util/formatTime.js +28 -0
  49. package/build/util/formatTime.js.map +1 -0
  50. package/build/util/generateJwt.js +30 -0
  51. package/build/util/generateJwt.js.map +1 -0
  52. package/build/util/getPosterSrc.js +46 -0
  53. package/build/util/getPosterSrc.js.map +1 -0
  54. package/build/util/getStoryboardSrc.js +26 -0
  55. package/build/util/getStoryboardSrc.js.map +1 -0
  56. package/build/util/getVideoSrc.js +23 -0
  57. package/build/util/getVideoSrc.js.map +1 -0
  58. package/config.dist.json +3 -0
  59. package/package.json +85 -0
  60. package/sanity.json +16 -0
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createUpChunkObservable = createUpChunkObservable;
7
+
8
+ var UpChunk = _interopRequireWildcard(require("@mux/upchunk"));
9
+
10
+ var _rxjs = require("rxjs");
11
+
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+
16
+ function createUpChunkObservable(uuid, uploadUrl, source) {
17
+ return new _rxjs.Observable(subscriber => {
18
+ var upchunk = UpChunk.createUpload({
19
+ endpoint: uploadUrl,
20
+ file: source,
21
+ chunkSize: 5120 // Uploads the file in ~5mb chunks
22
+
23
+ });
24
+
25
+ var successHandler = () => {
26
+ subscriber.next({
27
+ type: 'success',
28
+ id: uuid
29
+ });
30
+ subscriber.complete();
31
+ };
32
+
33
+ var errorHandler = data => subscriber.error(new Error(data.detail.message));
34
+
35
+ var progressHandler = data => {
36
+ return subscriber.next({
37
+ type: 'progress',
38
+ percent: data.detail
39
+ });
40
+ };
41
+
42
+ var offlineHandler = data => {
43
+ upchunk.pause();
44
+ subscriber.next({
45
+ type: 'pause',
46
+ id: uuid
47
+ });
48
+ };
49
+
50
+ var onlineHandler = data => {
51
+ upchunk.resume();
52
+ subscriber.next({
53
+ type: 'resume',
54
+ id: uuid
55
+ });
56
+ };
57
+
58
+ upchunk.on('success', successHandler);
59
+ upchunk.on('error', errorHandler);
60
+ upchunk.on('progress', progressHandler);
61
+ upchunk.on('offline', offlineHandler);
62
+ upchunk.on('online', onlineHandler);
63
+ return () => upchunk.abort();
64
+ });
65
+ }
66
+ //# sourceMappingURL=upChunkObservable.js.map
@@ -0,0 +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'\r\nimport {Observable} from 'rxjs'\r\n\r\nexport function createUpChunkObservable(uuid, uploadUrl, source) {\r\n return new Observable((subscriber) => {\r\n const upchunk = UpChunk.createUpload({\r\n endpoint: uploadUrl,\r\n file: source,\r\n chunkSize: 5120, // Uploads the file in ~5mb chunks\r\n })\r\n\r\n const successHandler = () => {\r\n subscriber.next({\r\n type: 'success',\r\n id: uuid,\r\n })\r\n subscriber.complete()\r\n }\r\n\r\n const errorHandler = (data) => subscriber.error(new Error(data.detail.message))\r\n\r\n const progressHandler = (data) => {\r\n return subscriber.next({type: 'progress', percent: data.detail})\r\n }\r\n\r\n const offlineHandler = (data) => {\r\n upchunk.pause()\r\n subscriber.next({\r\n type: 'pause',\r\n id: uuid,\r\n })\r\n }\r\n\r\n const onlineHandler = (data) => {\r\n upchunk.resume()\r\n subscriber.next({\r\n type: 'resume',\r\n id: uuid,\r\n })\r\n }\r\n\r\n upchunk.on('success', successHandler)\r\n upchunk.on('error', errorHandler)\r\n upchunk.on('progress', progressHandler)\r\n upchunk.on('offline', offlineHandler)\r\n upchunk.on('online', onlineHandler)\r\n\r\n return () => upchunk.abort()\r\n })\r\n}\r\n"],"file":"upChunkObservable.js"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.FileInputButton = void 0;
7
+
8
+ var _ui = require("@sanity/ui");
9
+
10
+ var _lodash = require("lodash");
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+
16
+ var _excluded = ["onSelect", "type"];
17
+
18
+ var _templateObject, _templateObject2;
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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); }
23
+
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
+
26
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
+
28
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
29
+
30
+ var HiddenInput = _styledComponents.default.input(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n overflow: hidden;\n width: 0.1px;\n height: 0.1px;\n opacity: 0;\n position: absolute;\n z-index: -1;\n"])));
31
+
32
+ var Label = _styledComponents.default.label(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n"])));
33
+
34
+ var handleSelect = _ref => {
35
+ var event = _ref.event,
36
+ onSelect = _ref.onSelect;
37
+
38
+ if (onSelect) {
39
+ onSelect(event.target.files);
40
+ }
41
+ };
42
+
43
+ var handleButtonClick = inputRef => {
44
+ if (inputRef && inputRef.current) {
45
+ inputRef.current.click();
46
+ }
47
+ };
48
+
49
+ var FileInputButton = _ref2 => {
50
+ var onSelect = _ref2.onSelect,
51
+ _ref2$type = _ref2.type,
52
+ type = _ref2$type === void 0 ? 'file' : _ref2$type,
53
+ props = _objectWithoutProperties(_ref2, _excluded);
54
+
55
+ var _inputId = _react.default.useRef((0, _lodash.uniqueId)('FileSelect'));
56
+
57
+ var inputRef = _react.default.useRef(null);
58
+
59
+ return /*#__PURE__*/_react.default.createElement(Label, {
60
+ htmlFor: _inputId.current
61
+ }, /*#__PURE__*/_react.default.createElement(HiddenInput, {
62
+ ref: inputRef,
63
+ tabindex: "0",
64
+ type: type,
65
+ id: _inputId.current,
66
+ onChange: event => handleSelect({
67
+ event,
68
+ onSelect
69
+ }),
70
+ value: ""
71
+ }), /*#__PURE__*/_react.default.createElement(_ui.Button, _extends({
72
+ onClick: () => handleButtonClick(inputRef),
73
+ mode: "default",
74
+ tone: "primary",
75
+ style: {
76
+ width: '100%'
77
+ }
78
+ }, props)));
79
+ };
80
+
81
+ exports.FileInputButton = FileInputButton;
82
+ var _default = FileInputButton;
83
+ exports.default = _default;
84
+ //# sourceMappingURL=FileInputButton.js.map
@@ -0,0 +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'\r\nimport {uniqueId} from 'lodash'\r\nimport React from 'react'\r\nimport styled from 'styled-components'\r\n\r\nconst HiddenInput = styled.input`\r\n overflow: hidden;\r\n width: 0.1px;\r\n height: 0.1px;\r\n opacity: 0;\r\n position: absolute;\r\n z-index: -1;\r\n`\r\n\r\nconst Label = styled.label`\r\n position: relative;\r\n`\r\n\r\nconst handleSelect = ({event, onSelect}) => {\r\n if (onSelect) {\r\n onSelect(event.target.files)\r\n }\r\n}\r\n\r\nconst handleButtonClick = (inputRef) => {\r\n if (inputRef && inputRef.current) {\r\n inputRef.current.click()\r\n }\r\n}\r\n\r\nexport const FileInputButton = ({onSelect, type = 'file', ...props}) => {\r\n const _inputId = React.useRef(uniqueId('FileSelect'))\r\n const inputRef = React.useRef(null)\r\n return (\r\n <Label htmlFor={_inputId.current}>\r\n <HiddenInput\r\n ref={inputRef}\r\n tabindex=\"0\"\r\n type={type}\r\n id={_inputId.current}\r\n onChange={(event) => handleSelect({event, onSelect})}\r\n value=\"\"\r\n />\r\n <Button\r\n onClick={() => handleButtonClick(inputRef)}\r\n mode=\"default\"\r\n tone=\"primary\"\r\n style={{width: '100%'}}\r\n {...props}\r\n />\r\n </Label>\r\n )\r\n}\r\n\r\nexport default FileInputButton\r\n"],"file":"FileInputButton.js"}
@@ -0,0 +1,30 @@
1
+ @import 'part:@sanity/base/theme/variables-style';
2
+
3
+ .formField {
4
+ display: inline-block;
5
+ }
6
+
7
+ .setupButtonContainer {
8
+ position: relative;
9
+ display: block;
10
+ font-size: 0.8em;
11
+ transform: translate(0%, -10%);
12
+ }
13
+
14
+ .cancelRemoveVideoButton {
15
+ display: inline-block;
16
+ position: relative;
17
+ left: var(--small-padding);
18
+ }
19
+
20
+ .confirmDeletePopoverButtons {
21
+ margin-bottom: var(--medium-padding);
22
+ }
23
+
24
+ .thumbPreview {
25
+ border: 1px solid var(--gray);
26
+ }
27
+
28
+ .deleteCheckboxRow:not(:last-child) {
29
+ margin-bottom: 0.5rem;
30
+ }