1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports.settings = exports.name = void 0;
|
9 |
|
10 | var _element = require("@wordpress/element");
|
11 |
|
12 | var _blob = require("@wordpress/blob");
|
13 |
|
14 | var _blocks = require("@wordpress/blocks");
|
15 |
|
16 | var _blockEditor = require("@wordpress/block-editor");
|
17 |
|
18 | var _i18n = require("@wordpress/i18n");
|
19 |
|
20 | var _edit = _interopRequireDefault(require("./edit"));
|
21 |
|
22 | var _icon = _interopRequireDefault(require("./icon"));
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 | var name = 'core/video';
|
32 | exports.name = name;
|
33 | var settings = {
|
34 | title: (0, _i18n.__)('Video'),
|
35 | description: (0, _i18n.__)('Embed a video from your media library or upload a new one.'),
|
36 | icon: _icon.default,
|
37 | keywords: [(0, _i18n.__)('movie')],
|
38 | category: 'common',
|
39 | attributes: {
|
40 | autoplay: {
|
41 | type: 'boolean',
|
42 | source: 'attribute',
|
43 | selector: 'video',
|
44 | attribute: 'autoplay'
|
45 | },
|
46 | caption: {
|
47 | type: 'string',
|
48 | source: 'html',
|
49 | selector: 'figcaption'
|
50 | },
|
51 | controls: {
|
52 | type: 'boolean',
|
53 | source: 'attribute',
|
54 | selector: 'video',
|
55 | attribute: 'controls',
|
56 | default: true
|
57 | },
|
58 | id: {
|
59 | type: 'number'
|
60 | },
|
61 | loop: {
|
62 | type: 'boolean',
|
63 | source: 'attribute',
|
64 | selector: 'video',
|
65 | attribute: 'loop'
|
66 | },
|
67 | muted: {
|
68 | type: 'boolean',
|
69 | source: 'attribute',
|
70 | selector: 'video',
|
71 | attribute: 'muted'
|
72 | },
|
73 | poster: {
|
74 | type: 'string',
|
75 | source: 'attribute',
|
76 | selector: 'video',
|
77 | attribute: 'poster'
|
78 | },
|
79 | preload: {
|
80 | type: 'string',
|
81 | source: 'attribute',
|
82 | selector: 'video',
|
83 | attribute: 'preload',
|
84 | default: 'metadata'
|
85 | },
|
86 | src: {
|
87 | type: 'string',
|
88 | source: 'attribute',
|
89 | selector: 'video',
|
90 | attribute: 'src'
|
91 | }
|
92 | },
|
93 | transforms: {
|
94 | from: [{
|
95 | type: 'files',
|
96 | isMatch: function isMatch(files) {
|
97 | return files.length === 1 && files[0].type.indexOf('video/') === 0;
|
98 | },
|
99 | transform: function transform(files) {
|
100 | var file = files[0];
|
101 |
|
102 |
|
103 |
|
104 | var block = (0, _blocks.createBlock)('core/video', {
|
105 | src: (0, _blob.createBlobURL)(file)
|
106 | });
|
107 | return block;
|
108 | }
|
109 | }, {
|
110 | type: 'shortcode',
|
111 | tag: 'video',
|
112 | attributes: {
|
113 | src: {
|
114 | type: 'string',
|
115 | shortcode: function shortcode(_ref) {
|
116 | var src = _ref.named.src;
|
117 | return src;
|
118 | }
|
119 | },
|
120 | poster: {
|
121 | type: 'string',
|
122 | shortcode: function shortcode(_ref2) {
|
123 | var poster = _ref2.named.poster;
|
124 | return poster;
|
125 | }
|
126 | },
|
127 | loop: {
|
128 | type: 'string',
|
129 | shortcode: function shortcode(_ref3) {
|
130 | var loop = _ref3.named.loop;
|
131 | return loop;
|
132 | }
|
133 | },
|
134 | autoplay: {
|
135 | type: 'string',
|
136 | shortcode: function shortcode(_ref4) {
|
137 | var autoplay = _ref4.named.autoplay;
|
138 | return autoplay;
|
139 | }
|
140 | },
|
141 | preload: {
|
142 | type: 'string',
|
143 | shortcode: function shortcode(_ref5) {
|
144 | var preload = _ref5.named.preload;
|
145 | return preload;
|
146 | }
|
147 | }
|
148 | }
|
149 | }]
|
150 | },
|
151 | supports: {
|
152 | align: true
|
153 | },
|
154 | edit: _edit.default,
|
155 | save: function save(_ref6) {
|
156 | var attributes = _ref6.attributes;
|
157 | var autoplay = attributes.autoplay,
|
158 | caption = attributes.caption,
|
159 | controls = attributes.controls,
|
160 | loop = attributes.loop,
|
161 | muted = attributes.muted,
|
162 | poster = attributes.poster,
|
163 | preload = attributes.preload,
|
164 | src = attributes.src;
|
165 | return (0, _element.createElement)("figure", null, src && (0, _element.createElement)("video", {
|
166 | autoPlay: autoplay,
|
167 | controls: controls,
|
168 | loop: loop,
|
169 | muted: muted,
|
170 | poster: poster,
|
171 | preload: preload !== 'metadata' ? preload : undefined,
|
172 | src: src
|
173 | }), !_blockEditor.RichText.isEmpty(caption) && (0, _element.createElement)(_blockEditor.RichText.Content, {
|
174 | tagName: "figcaption",
|
175 | value: caption
|
176 | }));
|
177 | }
|
178 | };
|
179 | exports.settings = settings;
|
180 |
|
\ | No newline at end of file |