@design-edito/tools 0.5.15 → 0.5.16
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/agnostic/colors/index.d.ts +4 -4
- package/agnostic/colors/index.js +4 -4
- package/agnostic/css/index.d.ts +2 -2
- package/agnostic/css/index.js +2 -2
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +13 -13
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +13 -13
- package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +5 -5
- package/agnostic/html/hyper-json/smart-tags/isolated/index.js +5 -5
- package/agnostic/html/index.d.ts +3 -3
- package/agnostic/html/index.js +3 -3
- package/agnostic/index.d.ts +3 -3
- package/agnostic/index.js +3 -3
- package/agnostic/misc/index.d.ts +5 -5
- package/agnostic/misc/index.js +5 -5
- package/agnostic/numbers/index.d.ts +3 -3
- package/agnostic/numbers/index.js +3 -3
- package/agnostic/objects/index.d.ts +2 -2
- package/agnostic/objects/index.js +2 -2
- package/agnostic/optim/index.d.ts +1 -1
- package/agnostic/optim/index.js +1 -1
- package/agnostic/strings/index.d.ts +3 -3
- package/agnostic/strings/index.js +3 -3
- package/agnostic/time/index.d.ts +1 -1
- package/agnostic/time/index.js +1 -1
- package/components/Video/index.controlled.d.ts +15 -0
- package/components/Video/index.controlled.js +19 -4
- package/components/Video/index.d.ts +13 -1
- package/components/Video/index.js +18 -2
- package/components/index.d.ts +2 -2
- package/components/index.js +2 -2
- package/node/@aws-s3/storage/directory/index.d.ts +1 -1
- package/node/@aws-s3/storage/directory/index.js +1 -1
- package/node/@aws-s3/storage/file/index.d.ts +2 -2
- package/node/@aws-s3/storage/file/index.js +2 -2
- package/node/@aws-s3/storage/index.d.ts +1 -1
- package/node/@aws-s3/storage/index.js +1 -1
- package/node/@google-cloud/storage/file/index.d.ts +3 -3
- package/node/@google-cloud/storage/file/index.js +3 -3
- package/node/cloud-storage/operations/index.d.ts +2 -2
- package/node/cloud-storage/operations/index.js +2 -2
- package/node/ftps/directory/index.d.ts +1 -1
- package/node/ftps/directory/index.js +1 -1
- package/node/ftps/file/index.d.ts +2 -2
- package/node/ftps/file/index.js +2 -2
- package/node/images/transform/operations/index.d.ts +7 -7
- package/node/images/transform/operations/index.js +7 -7
- package/node/index.d.ts +1 -1
- package/node/index.js +1 -1
- package/node/process/index.d.ts +1 -1
- package/node/process/index.js +1 -1
- package/node/sftp/directory/index.d.ts +1 -1
- package/node/sftp/directory/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export * as channels from './channels/index.js'
|
|
2
|
-
export * as contrast from './contrast/index.js'
|
|
3
1
|
export * as convert from './convert/index.js'
|
|
2
|
+
export * as contrast from './contrast/index.js'
|
|
4
3
|
export * as distance from './distance/index.js'
|
|
5
4
|
export * as grayscale from './grayscale/index.js'
|
|
6
5
|
export * as invert from './invert/index.js'
|
|
7
6
|
export * as lerp from './lerp/index.js'
|
|
8
|
-
export * as luminance from './luminance/index.js'
|
|
9
7
|
export * as palette from './palette/index.js'
|
|
10
|
-
export * as
|
|
8
|
+
export * as luminance from './luminance/index.js'
|
|
11
9
|
export * as rotate from './rotate/index.js'
|
|
10
|
+
export * as tidy from './tidy/index.js'
|
|
12
11
|
export * as typechecks from './typechecks/index.js'
|
|
12
|
+
export * as channels from './channels/index.js'
|
package/agnostic/colors/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export * as channels from './channels/index.js'
|
|
2
|
-
export * as contrast from './contrast/index.js'
|
|
3
1
|
export * as convert from './convert/index.js'
|
|
2
|
+
export * as contrast from './contrast/index.js'
|
|
4
3
|
export * as distance from './distance/index.js'
|
|
5
4
|
export * as grayscale from './grayscale/index.js'
|
|
6
5
|
export * as invert from './invert/index.js'
|
|
7
6
|
export * as lerp from './lerp/index.js'
|
|
8
|
-
export * as luminance from './luminance/index.js'
|
|
9
7
|
export * as palette from './palette/index.js'
|
|
10
|
-
export * as
|
|
8
|
+
export * as luminance from './luminance/index.js'
|
|
11
9
|
export * as rotate from './rotate/index.js'
|
|
10
|
+
export * as tidy from './tidy/index.js'
|
|
12
11
|
export * as typechecks from './typechecks/index.js'
|
|
12
|
+
export * as channels from './channels/index.js'
|
package/agnostic/css/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * as clss from './clss/index.js'
|
|
2
1
|
export * as bem from './bem/index.js'
|
|
3
|
-
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
4
2
|
export * as generateNiceColor from './generate-nice-color/index.js'
|
|
3
|
+
export * as clss from './clss/index.js'
|
|
4
|
+
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
5
5
|
export * as scale from './scale/index.js'
|
|
6
6
|
export * as stylesSet from './styles-set/index.js'
|
package/agnostic/css/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * as clss from './clss/index.js'
|
|
2
1
|
export * as bem from './bem/index.js'
|
|
3
|
-
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
4
2
|
export * as generateNiceColor from './generate-nice-color/index.js'
|
|
3
|
+
export * as clss from './clss/index.js'
|
|
4
|
+
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
5
5
|
export * as scale from './scale/index.js'
|
|
6
6
|
export * as stylesSet from './styles-set/index.js'
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
export * as add from './add/index.js'
|
|
2
1
|
export * as addclass from './addclass/index.js'
|
|
3
2
|
export * as and from './and/index.js'
|
|
4
|
-
export * as call from './call/index.js'
|
|
5
3
|
export * as append from './append/index.js'
|
|
6
4
|
export * as at from './at/index.js'
|
|
7
|
-
export * as
|
|
5
|
+
export * as add from './add/index.js'
|
|
6
|
+
export * as call from './call/index.js'
|
|
8
7
|
export * as deleteproperties from './deleteproperties/index.js'
|
|
8
|
+
export * as clone from './clone/index.js'
|
|
9
9
|
export * as equals from './equals/index.js'
|
|
10
10
|
export * as getattribute from './getattribute/index.js'
|
|
11
11
|
export * as getproperties from './getproperties/index.js'
|
|
12
|
+
export * as getproperty from './getproperty/index.js'
|
|
12
13
|
export * as hjparse from './hjparse/index.js'
|
|
13
14
|
export * as hjstringify from './hjstringify/index.js'
|
|
14
|
-
export * as getproperty from './getproperty/index.js'
|
|
15
|
-
export * as if from './if/index.js'
|
|
16
15
|
export * as initialize from './initialize/index.js'
|
|
16
|
+
export * as if from './if/index.js'
|
|
17
17
|
export * as join from './join/index.js'
|
|
18
|
-
export * as map from './map/index.js'
|
|
19
18
|
export * as length from './length/index.js'
|
|
19
|
+
export * as map from './map/index.js'
|
|
20
20
|
export * as negate from './negate/index.js'
|
|
21
|
-
export * as notrailing from './notrailing/index.js'
|
|
22
21
|
export * as or from './or/index.js'
|
|
22
|
+
export * as notrailing from './notrailing/index.js'
|
|
23
23
|
export * as pickrandom from './pickrandom/index.js'
|
|
24
24
|
export * as populate from './populate/index.js'
|
|
25
25
|
export * as print from './print/index.js'
|
|
@@ -27,26 +27,26 @@ export * as push from './push/index.js'
|
|
|
27
27
|
export * as pusheach from './pusheach/index.js'
|
|
28
28
|
export * as recordtoarray from './recordtoarray/index.js'
|
|
29
29
|
export * as removeattribute from './removeattribute/index.js'
|
|
30
|
+
export * as removeclass from './removeclass/index.js'
|
|
30
31
|
export * as renameproperty from './renameproperty/index.js'
|
|
31
32
|
export * as replace from './replace/index.js'
|
|
32
|
-
export * as removeclass from './removeclass/index.js'
|
|
33
33
|
export * as select from './select/index.js'
|
|
34
|
-
export * as
|
|
34
|
+
export * as setproperty from './setproperty/index.js'
|
|
35
35
|
export * as setattribute from './setattribute/index.js'
|
|
36
|
+
export * as set from './set/index.js'
|
|
36
37
|
export * as sorton from './sorton/index.js'
|
|
37
|
-
export * as setproperty from './setproperty/index.js'
|
|
38
38
|
export * as split from './split/index.js'
|
|
39
39
|
export * as spread from './spread/index.js'
|
|
40
40
|
export * as toarray from './toarray/index.js'
|
|
41
|
-
export * as toboolean from './toboolean/index.js'
|
|
42
41
|
export * as toelement from './toelement/index.js'
|
|
43
42
|
export * as toggleclass from './toggleclass/index.js'
|
|
44
43
|
export * as tonodelist from './tonodelist/index.js'
|
|
45
44
|
export * as tonull from './tonull/index.js'
|
|
46
45
|
export * as tonumber from './tonumber/index.js'
|
|
46
|
+
export * as toboolean from './toboolean/index.js'
|
|
47
47
|
export * as torecord from './torecord/index.js'
|
|
48
|
+
export * as tostring from './tostring/index.js'
|
|
48
49
|
export * as toref from './toref/index.js'
|
|
49
50
|
export * as totext from './totext/index.js'
|
|
50
|
-
export * as tostring from './tostring/index.js'
|
|
51
|
-
export * as trim from './trim/index.js'
|
|
52
51
|
export * as transformselected from './transformselected/index.js'
|
|
52
|
+
export * as trim from './trim/index.js'
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
export * as add from './add/index.js'
|
|
2
1
|
export * as addclass from './addclass/index.js'
|
|
3
2
|
export * as and from './and/index.js'
|
|
4
|
-
export * as call from './call/index.js'
|
|
5
3
|
export * as append from './append/index.js'
|
|
6
4
|
export * as at from './at/index.js'
|
|
7
|
-
export * as
|
|
5
|
+
export * as add from './add/index.js'
|
|
6
|
+
export * as call from './call/index.js'
|
|
8
7
|
export * as deleteproperties from './deleteproperties/index.js'
|
|
8
|
+
export * as clone from './clone/index.js'
|
|
9
9
|
export * as equals from './equals/index.js'
|
|
10
10
|
export * as getattribute from './getattribute/index.js'
|
|
11
11
|
export * as getproperties from './getproperties/index.js'
|
|
12
|
+
export * as getproperty from './getproperty/index.js'
|
|
12
13
|
export * as hjparse from './hjparse/index.js'
|
|
13
14
|
export * as hjstringify from './hjstringify/index.js'
|
|
14
|
-
export * as getproperty from './getproperty/index.js'
|
|
15
|
-
export * as if from './if/index.js'
|
|
16
15
|
export * as initialize from './initialize/index.js'
|
|
16
|
+
export * as if from './if/index.js'
|
|
17
17
|
export * as join from './join/index.js'
|
|
18
|
-
export * as map from './map/index.js'
|
|
19
18
|
export * as length from './length/index.js'
|
|
19
|
+
export * as map from './map/index.js'
|
|
20
20
|
export * as negate from './negate/index.js'
|
|
21
|
-
export * as notrailing from './notrailing/index.js'
|
|
22
21
|
export * as or from './or/index.js'
|
|
22
|
+
export * as notrailing from './notrailing/index.js'
|
|
23
23
|
export * as pickrandom from './pickrandom/index.js'
|
|
24
24
|
export * as populate from './populate/index.js'
|
|
25
25
|
export * as print from './print/index.js'
|
|
@@ -27,26 +27,26 @@ export * as push from './push/index.js'
|
|
|
27
27
|
export * as pusheach from './pusheach/index.js'
|
|
28
28
|
export * as recordtoarray from './recordtoarray/index.js'
|
|
29
29
|
export * as removeattribute from './removeattribute/index.js'
|
|
30
|
+
export * as removeclass from './removeclass/index.js'
|
|
30
31
|
export * as renameproperty from './renameproperty/index.js'
|
|
31
32
|
export * as replace from './replace/index.js'
|
|
32
|
-
export * as removeclass from './removeclass/index.js'
|
|
33
33
|
export * as select from './select/index.js'
|
|
34
|
-
export * as
|
|
34
|
+
export * as setproperty from './setproperty/index.js'
|
|
35
35
|
export * as setattribute from './setattribute/index.js'
|
|
36
|
+
export * as set from './set/index.js'
|
|
36
37
|
export * as sorton from './sorton/index.js'
|
|
37
|
-
export * as setproperty from './setproperty/index.js'
|
|
38
38
|
export * as split from './split/index.js'
|
|
39
39
|
export * as spread from './spread/index.js'
|
|
40
40
|
export * as toarray from './toarray/index.js'
|
|
41
|
-
export * as toboolean from './toboolean/index.js'
|
|
42
41
|
export * as toelement from './toelement/index.js'
|
|
43
42
|
export * as toggleclass from './toggleclass/index.js'
|
|
44
43
|
export * as tonodelist from './tonodelist/index.js'
|
|
45
44
|
export * as tonull from './tonull/index.js'
|
|
46
45
|
export * as tonumber from './tonumber/index.js'
|
|
46
|
+
export * as toboolean from './toboolean/index.js'
|
|
47
47
|
export * as torecord from './torecord/index.js'
|
|
48
|
+
export * as tostring from './tostring/index.js'
|
|
48
49
|
export * as toref from './toref/index.js'
|
|
49
50
|
export * as totext from './totext/index.js'
|
|
50
|
-
export * as tostring from './tostring/index.js'
|
|
51
|
-
export * as trim from './trim/index.js'
|
|
52
51
|
export * as transformselected from './transformselected/index.js'
|
|
52
|
+
export * as trim from './trim/index.js'
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export * as array from './array/index.js'
|
|
2
|
-
export * as boolean from './boolean/index.js'
|
|
3
2
|
export * as any from './any/index.js'
|
|
4
|
-
export * as
|
|
3
|
+
export * as boolean from './boolean/index.js'
|
|
5
4
|
export * as get from './get/index.js'
|
|
6
|
-
export * as
|
|
5
|
+
export * as element from './element/index.js'
|
|
7
6
|
export * as guess from './guess/index.js'
|
|
8
|
-
export * as
|
|
9
|
-
export * as number from './number/index.js'
|
|
7
|
+
export * as nodelist from './nodelist/index.js'
|
|
10
8
|
export * as record from './record/index.js'
|
|
9
|
+
export * as null from './null/index.js'
|
|
11
10
|
export * as ref from './ref/index.js'
|
|
12
11
|
export * as string from './string/index.js'
|
|
13
12
|
export * as text from './text/index.js'
|
|
13
|
+
export * as number from './number/index.js'
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export * as array from './array/index.js'
|
|
2
|
-
export * as boolean from './boolean/index.js'
|
|
3
2
|
export * as any from './any/index.js'
|
|
4
|
-
export * as
|
|
3
|
+
export * as boolean from './boolean/index.js'
|
|
5
4
|
export * as get from './get/index.js'
|
|
6
|
-
export * as
|
|
5
|
+
export * as element from './element/index.js'
|
|
7
6
|
export * as guess from './guess/index.js'
|
|
8
|
-
export * as
|
|
9
|
-
export * as number from './number/index.js'
|
|
7
|
+
export * as nodelist from './nodelist/index.js'
|
|
10
8
|
export * as record from './record/index.js'
|
|
9
|
+
export * as null from './null/index.js'
|
|
11
10
|
export * as ref from './ref/index.js'
|
|
12
11
|
export * as string from './string/index.js'
|
|
13
12
|
export * as text from './text/index.js'
|
|
13
|
+
export * as number from './number/index.js'
|
package/agnostic/html/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * as deepSelect from './deep-select/index.js'
|
|
2
1
|
export * as getNodeAncestors from './get-node-ancestors/index.js'
|
|
3
2
|
export * as getPositionInsideParent from './get-position-inside-parent/index.js'
|
|
4
3
|
export * as hyperJson from './hyper-json/index.js'
|
|
5
4
|
export * as insertNode from './insert-node/index.js'
|
|
5
|
+
export * as deepSelect from './deep-select/index.js'
|
|
6
6
|
export * as placeholders from './placeholders/index.js'
|
|
7
7
|
export * as replaceInElement from './replace-in-element/index.js'
|
|
8
|
-
export * as watchSelection from './watch-selection/index.js'
|
|
9
|
-
export * as stringToNodes from './string-to-nodes/index.js'
|
|
10
8
|
export * as selectorToElement from './selector-to-element/index.js'
|
|
9
|
+
export * as stringToNodes from './string-to-nodes/index.js'
|
|
10
|
+
export * as watchSelection from './watch-selection/index.js'
|
package/agnostic/html/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * as deepSelect from './deep-select/index.js'
|
|
2
1
|
export * as getNodeAncestors from './get-node-ancestors/index.js'
|
|
3
2
|
export * as getPositionInsideParent from './get-position-inside-parent/index.js'
|
|
4
3
|
export * as hyperJson from './hyper-json/index.js'
|
|
5
4
|
export * as insertNode from './insert-node/index.js'
|
|
5
|
+
export * as deepSelect from './deep-select/index.js'
|
|
6
6
|
export * as placeholders from './placeholders/index.js'
|
|
7
7
|
export * as replaceInElement from './replace-in-element/index.js'
|
|
8
|
-
export * as watchSelection from './watch-selection/index.js'
|
|
9
|
-
export * as stringToNodes from './string-to-nodes/index.js'
|
|
10
8
|
export * as selectorToElement from './selector-to-element/index.js'
|
|
9
|
+
export * as stringToNodes from './string-to-nodes/index.js'
|
|
10
|
+
export * as watchSelection from './watch-selection/index.js'
|
package/agnostic/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export * as arrays from './arrays/index.js'
|
|
2
1
|
export * as booleans from './booleans/index.js'
|
|
3
2
|
export * as colors from './colors/index.js'
|
|
4
3
|
export * as css from './css/index.js'
|
|
5
4
|
export * as errors from './errors/index.js'
|
|
5
|
+
export * as arrays from './arrays/index.js'
|
|
6
|
+
export * as html from './html/index.js'
|
|
6
7
|
export * as misc from './misc/index.js'
|
|
7
8
|
export * as numbers from './numbers/index.js'
|
|
8
9
|
export * as objects from './objects/index.js'
|
|
@@ -10,8 +11,7 @@ export * as optim from './optim/index.js'
|
|
|
10
11
|
export * as random from './random/index.js'
|
|
11
12
|
export * as regexps from './regexps/index.js'
|
|
12
13
|
export * as sanitization from './sanitization/index.js'
|
|
13
|
-
export * as html from './html/index.js'
|
|
14
14
|
export * as strings from './strings/index.js'
|
|
15
|
-
export * as subtitles from './subtitles/index.js'
|
|
16
15
|
export * as time from './time/index.js'
|
|
16
|
+
export * as subtitles from './subtitles/index.js'
|
|
17
17
|
export * as typescript from './typescript/index.js'
|
package/agnostic/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export * as arrays from './arrays/index.js'
|
|
2
1
|
export * as booleans from './booleans/index.js'
|
|
3
2
|
export * as colors from './colors/index.js'
|
|
4
3
|
export * as css from './css/index.js'
|
|
5
4
|
export * as errors from './errors/index.js'
|
|
5
|
+
export * as arrays from './arrays/index.js'
|
|
6
|
+
export * as html from './html/index.js'
|
|
6
7
|
export * as misc from './misc/index.js'
|
|
7
8
|
export * as numbers from './numbers/index.js'
|
|
8
9
|
export * as objects from './objects/index.js'
|
|
@@ -10,8 +11,7 @@ export * as optim from './optim/index.js'
|
|
|
10
11
|
export * as random from './random/index.js'
|
|
11
12
|
export * as regexps from './regexps/index.js'
|
|
12
13
|
export * as sanitization from './sanitization/index.js'
|
|
13
|
-
export * as html from './html/index.js'
|
|
14
14
|
export * as strings from './strings/index.js'
|
|
15
|
-
export * as subtitles from './subtitles/index.js'
|
|
16
15
|
export * as time from './time/index.js'
|
|
16
|
+
export * as subtitles from './subtitles/index.js'
|
|
17
17
|
export * as typescript from './typescript/index.js'
|
package/agnostic/misc/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * as assert from './assert/index.js'
|
|
2
2
|
export * as cast from './cast/index.js'
|
|
3
3
|
export * as crawler from './crawler/index.js'
|
|
4
|
-
export * as crossenv from './crossenv/index.js'
|
|
5
|
-
export * as connection from './connection/index.js'
|
|
6
4
|
export * as dataSize from './data-size/index.js'
|
|
7
|
-
export * as
|
|
8
|
-
export * as logs from './logs/index.js'
|
|
5
|
+
export * as connection from './connection/index.js'
|
|
9
6
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
10
|
-
export * as
|
|
7
|
+
export * as logs from './logs/index.js'
|
|
11
8
|
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
9
|
+
export * as crossenv from './crossenv/index.js'
|
|
12
10
|
export * as outcome from './outcome/index.js'
|
|
11
|
+
export * as isNullish from './is-nullish/index.js'
|
|
12
|
+
export * as normalizeExtension from './normalize-extension/index.js'
|
package/agnostic/misc/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * as assert from './assert/index.js'
|
|
2
2
|
export * as cast from './cast/index.js'
|
|
3
3
|
export * as crawler from './crawler/index.js'
|
|
4
|
-
export * as crossenv from './crossenv/index.js'
|
|
5
|
-
export * as connection from './connection/index.js'
|
|
6
4
|
export * as dataSize from './data-size/index.js'
|
|
7
|
-
export * as
|
|
8
|
-
export * as logs from './logs/index.js'
|
|
5
|
+
export * as connection from './connection/index.js'
|
|
9
6
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
10
|
-
export * as
|
|
7
|
+
export * as logs from './logs/index.js'
|
|
11
8
|
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
9
|
+
export * as crossenv from './crossenv/index.js'
|
|
12
10
|
export * as outcome from './outcome/index.js'
|
|
11
|
+
export * as isNullish from './is-nullish/index.js'
|
|
12
|
+
export * as normalizeExtension from './normalize-extension/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * as
|
|
1
|
+
export * as absoluteModulo from './absolute-modulo/index.js'
|
|
2
2
|
export * as approximateRational from './approximate-rational/index.js'
|
|
3
|
+
export * as clamp from './clamp/index.js'
|
|
3
4
|
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
4
|
-
export * as round from './round/index.js'
|
|
5
5
|
export * as interpolate from './interpolate/index.js'
|
|
6
|
-
export * as
|
|
6
|
+
export * as round from './round/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * as
|
|
1
|
+
export * as absoluteModulo from './absolute-modulo/index.js'
|
|
2
2
|
export * as approximateRational from './approximate-rational/index.js'
|
|
3
|
+
export * as clamp from './clamp/index.js'
|
|
3
4
|
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
4
|
-
export * as round from './round/index.js'
|
|
5
5
|
export * as interpolate from './interpolate/index.js'
|
|
6
|
-
export * as
|
|
6
|
+
export * as round from './round/index.js'
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export * as deepGetProperty from './deep-get-property/index.js'
|
|
2
|
-
export * as enums from './enums/index.js'
|
|
3
2
|
export * as flattenGetters from './flatten-getters/index.js'
|
|
4
3
|
export * as isObject from './is-object/index.js'
|
|
5
|
-
export * as recordFormat from './record-format/index.js'
|
|
6
4
|
export * as isRecord from './is-record/index.js'
|
|
5
|
+
export * as recordFormat from './record-format/index.js'
|
|
7
6
|
export * as recordMap from './record-map/index.js'
|
|
7
|
+
export * as enums from './enums/index.js'
|
|
8
8
|
export * as sortKeys from './sort-keys/index.js'
|
|
9
9
|
export * as validation from './validation/index.js'
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export * as deepGetProperty from './deep-get-property/index.js'
|
|
2
|
-
export * as enums from './enums/index.js'
|
|
3
2
|
export * as flattenGetters from './flatten-getters/index.js'
|
|
4
3
|
export * as isObject from './is-object/index.js'
|
|
5
|
-
export * as recordFormat from './record-format/index.js'
|
|
6
4
|
export * as isRecord from './is-record/index.js'
|
|
5
|
+
export * as recordFormat from './record-format/index.js'
|
|
7
6
|
export * as recordMap from './record-map/index.js'
|
|
7
|
+
export * as enums from './enums/index.js'
|
|
8
8
|
export * as sortKeys from './sort-keys/index.js'
|
|
9
9
|
export * as validation from './validation/index.js'
|
package/agnostic/optim/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * as matches from './matches/index.js'
|
|
2
1
|
export * as charCodes from './char-codes/index.js'
|
|
3
|
-
export * as
|
|
2
|
+
export * as matches from './matches/index.js'
|
|
4
3
|
export * as normalizeIndent from './normalize-indent/index.js'
|
|
4
|
+
export * as parseTable from './parse-table/index.js'
|
|
5
5
|
export * as replaceAll from './replace-all/index.js'
|
|
6
|
+
export * as splitTrim from './split-trim/index.js'
|
|
6
7
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
7
8
|
export * as trim from './trim/index.js'
|
|
8
|
-
export * as splitTrim from './split-trim/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * as matches from './matches/index.js'
|
|
2
1
|
export * as charCodes from './char-codes/index.js'
|
|
3
|
-
export * as
|
|
2
|
+
export * as matches from './matches/index.js'
|
|
4
3
|
export * as normalizeIndent from './normalize-indent/index.js'
|
|
4
|
+
export * as parseTable from './parse-table/index.js'
|
|
5
5
|
export * as replaceAll from './replace-all/index.js'
|
|
6
|
+
export * as splitTrim from './split-trim/index.js'
|
|
6
7
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
7
8
|
export * as trim from './trim/index.js'
|
|
8
|
-
export * as splitTrim from './split-trim/index.js'
|
package/agnostic/time/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as timeout from './timeout/index.js'
|
|
2
1
|
export * as dates from './dates/index.js'
|
|
3
2
|
export * as duration from './duration/index.js'
|
|
3
|
+
export * as timeout from './timeout/index.js'
|
|
4
4
|
export * as transitions from './transitions/index.js'
|
|
5
5
|
export * as wait from './wait/index.js'
|
package/agnostic/time/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as timeout from './timeout/index.js'
|
|
2
1
|
export * as dates from './dates/index.js'
|
|
3
2
|
export * as duration from './duration/index.js'
|
|
3
|
+
export * as timeout from './timeout/index.js'
|
|
4
4
|
export * as transitions from './transitions/index.js'
|
|
5
5
|
export * as wait from './wait/index.js'
|
|
@@ -66,6 +66,8 @@ type TrackData = {
|
|
|
66
66
|
* the component reacts, with the target and current rates.
|
|
67
67
|
* @property onFullscreenButtonClicked - Called when the fullscreen button is
|
|
68
68
|
* clicked, before the component reacts, with the fullscreen state as it was.
|
|
69
|
+
* @property onSubtitlesButtonClicked - Called when the subtitles button is clicked,
|
|
70
|
+
* before the component reacts, with the subtitles state as it was.
|
|
69
71
|
* @property onTimelineClicked - Called when the timeline is clicked, before the
|
|
70
72
|
* component reacts, with the target and current times (in seconds). The component
|
|
71
73
|
* seeks to the target right after, unless the time is controlled.
|
|
@@ -77,6 +79,8 @@ type TrackData = {
|
|
|
77
79
|
* @property onIsEndedChanged - Called after playback reached the end, and again
|
|
78
80
|
* once it left it — a seek back or a new play. Never on mount.
|
|
79
81
|
* @property onIsLoudChanged - Called once the mute state has changed (`true` = unmuted).
|
|
82
|
+
* @property onIsSubtitlesOnChanged - Called once the subtitles have been shown or
|
|
83
|
+
* hidden. Never on mount.
|
|
80
84
|
* @property onVolumeChanged - Called once the volume has changed (`0` to `1`).
|
|
81
85
|
* @property onPlaybackRateChanged - Called once the playback rate has changed.
|
|
82
86
|
* @property onCurrentTimeMsChanged - Called once the current time has changed, in
|
|
@@ -96,6 +100,13 @@ type TrackData = {
|
|
|
96
100
|
* gets, each taking its whole part and handing the rest down. So `'{{mm}}:{{ss}}'` on
|
|
97
101
|
* an hour-long video reads `62:05` rather than dropping the hour — nothing is ever
|
|
98
102
|
* lost for not having been asked for.
|
|
103
|
+
* @property subtitlesBtnContent - Glyph for the subtitles button, like the five other
|
|
104
|
+
* button contents. The button renders only when `subtitles` is set: with no cues there
|
|
105
|
+
* is nothing to toggle, and unlike `Disclaimer`'s missing toggler this withholds no
|
|
106
|
+
* behaviour — a stylesheet has nothing it could do with it either.
|
|
107
|
+
* @property subtitlesOn - Whether the subtitles show. Controlled: the component never
|
|
108
|
+
* changes it, it reports a click through `onSubtitlesButtonClicked` and leaves the
|
|
109
|
+
* decision to the parent. `Video` holds it for you.
|
|
99
110
|
* @property className - Additional CSS class for the root element.
|
|
100
111
|
* @property children - React content inserted into the <video> tag (fallback, etc).
|
|
101
112
|
*
|
|
@@ -110,7 +121,9 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
110
121
|
loudBtnContent?: React.ReactNode;
|
|
111
122
|
muteBtnContent?: React.ReactNode;
|
|
112
123
|
fullscreenBtnContent?: React.ReactNode;
|
|
124
|
+
subtitlesBtnContent?: React.ReactNode;
|
|
113
125
|
play?: boolean;
|
|
126
|
+
subtitlesOn?: boolean;
|
|
114
127
|
fullscreen?: boolean;
|
|
115
128
|
volume?: number;
|
|
116
129
|
mute?: boolean;
|
|
@@ -124,10 +137,12 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
124
137
|
onVolumeRangeChanged?: (e: React.ChangeEvent<HTMLInputElement>, targetVolume: number, currentVolume: number, video: HTMLVideoElement | null) => void;
|
|
125
138
|
onRateRangeChanged?: (e: React.ChangeEvent<HTMLInputElement>, targetRate: number, currentRate: number, video: HTMLVideoElement | null) => void;
|
|
126
139
|
onFullscreenButtonClicked?: (e: React.MouseEvent<HTMLButtonElement>, isFullscreen: boolean, video: HTMLVideoElement | null) => void;
|
|
140
|
+
onSubtitlesButtonClicked?: (e: React.MouseEvent<HTMLButtonElement>, isSubtitlesOn: boolean, video: HTMLVideoElement | null) => void;
|
|
127
141
|
onTimelineClicked?: (e: React.MouseEvent<HTMLDivElement>, targetTime: number, currentTime: number, video: HTMLVideoElement | null) => void;
|
|
128
142
|
onIsPlayingChanged?: (isPlaying: boolean) => void;
|
|
129
143
|
onIsFullscreenChanged?: (isFullscreen: boolean) => void;
|
|
130
144
|
onIsLoudChanged?: (isLoud: boolean) => void;
|
|
145
|
+
onIsSubtitlesOnChanged?: (isSubtitlesOn: boolean) => void;
|
|
131
146
|
onIsEndedChanged?: (isEnded: boolean) => void;
|
|
132
147
|
onVolumeChanged?: (volume: number) => void;
|
|
133
148
|
onPlaybackRateChanged?: (playbackRate: number) => void;
|
|
@@ -50,11 +50,14 @@ import { forceExitFullscreen, forceFullscreen, forceLoud, forceMute, forcePause,
|
|
|
50
50
|
* @returns A `<figure>` element containing the video, its controls, optional
|
|
51
51
|
* subtitles.
|
|
52
52
|
*/
|
|
53
|
-
export const ControlledVideo = ({ sources, tracks, subtitles, playBtnContent, pauseBtnContent, loudBtnContent, muteBtnContent, fullscreenBtnContent, play, fullscreen,
|
|
53
|
+
export const ControlledVideo = ({ sources, tracks, subtitles, playBtnContent, pauseBtnContent, loudBtnContent, muteBtnContent, fullscreenBtnContent, subtitlesBtnContent, play, fullscreen,
|
|
54
|
+
// Les sous-titres sont montrés tant que personne n'a dit le contraire : un article qui
|
|
55
|
+
// en fournit veut qu'on les lise.
|
|
56
|
+
subtitlesOn = true, mute, muted, volume = 1, playbackRate = 1, currentTimeMs: givenCurrentTimeMs,
|
|
54
57
|
// Milliseconds by default, which is what this component has always rendered — a
|
|
55
58
|
// default that changes under a consumer is a change nobody asked for. An article
|
|
56
59
|
// usually wants `'{{mm}}:{{ss}}'` and says so.
|
|
57
|
-
timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked, onLoudButtonClicked, onMuteButtonClicked, onVolumeRangeChanged, onRateRangeChanged, onFullscreenButtonClicked, onTimelineClicked, onIsPlayingChanged, onIsFullscreenChanged, onIsLoudChanged, onIsEndedChanged, onVolumeChanged, onPlaybackRateChanged, onCurrentTimeMsChanged, onFullscreenChange, children, className, ...intrinsicVideoAttributes }) => {
|
|
60
|
+
timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked, onLoudButtonClicked, onMuteButtonClicked, onVolumeRangeChanged, onRateRangeChanged, onFullscreenButtonClicked, onSubtitlesButtonClicked, onTimelineClicked, onIsPlayingChanged, onIsFullscreenChanged, onIsLoudChanged, onIsSubtitlesOnChanged, onIsEndedChanged, onVolumeChanged, onPlaybackRateChanged, onCurrentTimeMsChanged, onFullscreenChange, children, className, ...intrinsicVideoAttributes }) => {
|
|
58
61
|
const videoRef = useRef(null);
|
|
59
62
|
const [totalTime, setTotalTime] = useState(0);
|
|
60
63
|
const totalTimeMs = useMemo(() => secondsToMs(totalTime), [totalTime]);
|
|
@@ -131,6 +134,9 @@ timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked,
|
|
|
131
134
|
const handleFullscreenButtonClick = useCallback((e) => {
|
|
132
135
|
onFullscreenButtonClicked?.(e, isFullscreen, videoRef.current);
|
|
133
136
|
}, [onFullscreenButtonClicked, isFullscreen]);
|
|
137
|
+
const handleSubtitlesButtonClick = useCallback((e) => {
|
|
138
|
+
onSubtitlesButtonClicked?.(e, subtitlesOn, videoRef.current);
|
|
139
|
+
}, [onSubtitlesButtonClicked, subtitlesOn]);
|
|
134
140
|
const handleVolumeRangeChange = useCallback((e) => {
|
|
135
141
|
const targetVolume = Number(e.currentTarget.value) / 100;
|
|
136
142
|
onVolumeRangeChanged?.(e, targetVolume, volume, videoRef.current);
|
|
@@ -159,7 +165,12 @@ timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked,
|
|
|
159
165
|
'fullscreen-on': isFullscreen,
|
|
160
166
|
'fullscreen-off': !isFullscreen,
|
|
161
167
|
'loud': isLoud,
|
|
162
|
-
'muted': !isLoud
|
|
168
|
+
'muted': !isLoud,
|
|
169
|
+
// Rien des deux quand aucun sous-titre n'est fourni : l'absence n'est pas un état
|
|
170
|
+
// caché, c'est l'absence d'un état. Une feuille qui veut viser ce cas le reconnaît à
|
|
171
|
+
// ce qu'aucun des deux modifieurs n'est là.
|
|
172
|
+
'subtitles-on': subtitles !== undefined && subtitlesOn,
|
|
173
|
+
'subtitles-off': subtitles !== undefined && !subtitlesOn
|
|
163
174
|
}), className);
|
|
164
175
|
// Guarded: the duration is unknown until the metadata lands, and an unguarded
|
|
165
176
|
// division would expose the string 'NaN' on every render until then.
|
|
@@ -172,6 +183,8 @@ timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked,
|
|
|
172
183
|
'data-fullscreen-off': !isFullscreen ? '' : undefined,
|
|
173
184
|
'data-loud': isLoud ? '' : undefined,
|
|
174
185
|
'data-muted': !isLoud ? '' : undefined,
|
|
186
|
+
'data-subtitles-on': subtitles !== undefined && subtitlesOn ? '' : undefined,
|
|
187
|
+
'data-subtitles-off': subtitles !== undefined && !subtitlesOn ? '' : undefined,
|
|
175
188
|
'data-volume': volume.toFixed(8),
|
|
176
189
|
'data-volume-percent': volumePercent,
|
|
177
190
|
'data-playback-rate': playbackRate,
|
|
@@ -228,6 +241,7 @@ timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked,
|
|
|
228
241
|
const muteBtnClss = c('mute-btn');
|
|
229
242
|
const volumePcntClss = c('volume-percent');
|
|
230
243
|
const fullscreenBtnClss = c('fullscreen-btn');
|
|
244
|
+
const subtitlesBtnClss = c('subtitles-btn');
|
|
231
245
|
const volumeRangeClss = c('volume-range');
|
|
232
246
|
const playbackRateRangeClss = c('playback-rate-range');
|
|
233
247
|
const playbackRateClss = c('playback-rate');
|
|
@@ -300,6 +314,7 @@ timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked,
|
|
|
300
314
|
useChangeDispatch(isElementPlaying, onIsPlayingChanged);
|
|
301
315
|
useChangeDispatch(isFullscreen, onIsFullscreenChanged);
|
|
302
316
|
useChangeDispatch(isLoud, onIsLoudChanged);
|
|
317
|
+
useChangeDispatch(subtitlesOn, onIsSubtitlesOnChanged);
|
|
303
318
|
useChangeDispatch(isEnded, onIsEndedChanged);
|
|
304
319
|
useChangeDispatch(volume, onVolumeChanged);
|
|
305
320
|
useChangeDispatch(playbackRate, onPlaybackRateChanged);
|
|
@@ -307,5 +322,5 @@ timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked,
|
|
|
307
322
|
? _jsx("source", { src: source }, index)
|
|
308
323
|
: _jsx("source", { src: source.src, type: source.type }, index)), parsedTracks.map((track, index) => typeof track === 'string'
|
|
309
324
|
? _jsx("track", { src: track }, index)
|
|
310
|
-
: _jsx("track", { src: track.src, kind: track.kind, srcLang: track.srclang, label: track.label, default: track.default }, index)), children] }), _jsxs("div", { className: videoControlsClss, children: [_jsx("button", { className: playBtnClss, onClick: handlePlayButtonClick, children: playBtnContent }), _jsx("button", { className: pauseBtnClss, onClick: handlePauseButtonClick, children: pauseBtnContent }), _jsx("button", { className: loudBtnClss, onClick: handleLoudButtonClick, children: loudBtnContent }), _jsx("button", { className: muteBtnClss, onClick: handleMuteButtonClick, children: muteBtnContent }), _jsx("input", { type: 'range', className: volumeRangeClss, value: volumePercent, onChange: handleVolumeRangeChange, min: 0, max: 100, step: 1 }), _jsx("span", { className: volumePcntClss, children: Math.round(volumePercent) }), _jsx("button", { className: fullscreenBtnClss, onClick: handleFullscreenButtonClick, children: fullscreenBtnContent }), _jsx("input", { type: 'range', className: playbackRateRangeClss, value: playbackRate, onChange: handleRateRangeChange, min: 0.25, max: 4, step: 0.25 }), _jsx("span", { className: playbackRateClss, children: playbackRate })] }), _jsxs("div", { className: timeControlsClss, children: [_jsx("span", { className: currentTimeClss, children: formatDuration(currentTimeMs, timeFormat) }), _jsx("span", { className: totalTimeClss, children: formatDuration(totalTimeMs, timeFormat) }), _jsx("div", { className: timelineClss, onClick: handleTimelineClick })] }), subtitles !== undefined && _jsx(Subtitles, { ...subtitles, timecodeMs: currentTimeMs, isEnded: isEnded })] });
|
|
325
|
+
: _jsx("track", { src: track.src, kind: track.kind, srcLang: track.srclang, label: track.label, default: track.default }, index)), children] }), _jsxs("div", { className: videoControlsClss, children: [_jsx("button", { className: playBtnClss, onClick: handlePlayButtonClick, children: playBtnContent }), _jsx("button", { className: pauseBtnClss, onClick: handlePauseButtonClick, children: pauseBtnContent }), _jsx("button", { className: loudBtnClss, onClick: handleLoudButtonClick, children: loudBtnContent }), _jsx("button", { className: muteBtnClss, onClick: handleMuteButtonClick, children: muteBtnContent }), _jsx("input", { type: 'range', className: volumeRangeClss, value: volumePercent, onChange: handleVolumeRangeChange, min: 0, max: 100, step: 1 }), _jsx("span", { className: volumePcntClss, children: Math.round(volumePercent) }), _jsx("button", { className: fullscreenBtnClss, onClick: handleFullscreenButtonClick, children: fullscreenBtnContent }), subtitles !== undefined && _jsx("button", { className: subtitlesBtnClss, onClick: handleSubtitlesButtonClick, children: subtitlesBtnContent }), _jsx("input", { type: 'range', className: playbackRateRangeClss, value: playbackRate, onChange: handleRateRangeChange, min: 0.25, max: 4, step: 0.25 }), _jsx("span", { className: playbackRateClss, children: playbackRate })] }), _jsxs("div", { className: timeControlsClss, children: [_jsx("span", { className: currentTimeClss, children: formatDuration(currentTimeMs, timeFormat) }), _jsx("span", { className: totalTimeClss, children: formatDuration(totalTimeMs, timeFormat) }), _jsx("div", { className: timelineClss, onClick: handleTimelineClick })] }), subtitles !== undefined && _jsx(Subtitles, { ...subtitles, timecodeMs: currentTimeMs, isEnded: isEnded })] });
|
|
311
326
|
};
|
|
@@ -31,11 +31,16 @@ import { type Props as ControlledProps } from './index.controlled.js';
|
|
|
31
31
|
* `autoPlay`, `autoPlayWhenVisible` and the play button have no effect for as
|
|
32
32
|
* long as this prop is provided.
|
|
33
33
|
* @property wrapperClassName - Optional additional class name(s) applied to the root wrapper element.
|
|
34
|
+
* @property defaultSubtitlesOn - Whether the subtitles start shown. `true` by default —
|
|
35
|
+
* an article that supplies cues means them to be read. The reader's button takes it from
|
|
36
|
+
* there, so this is a starting point and not a setting: `default…` and never `initial…`,
|
|
37
|
+
* as everywhere else here.
|
|
34
38
|
* @property className - Optional additional class name(s) applied to the root element.
|
|
35
39
|
* @property children - React children rendered inside the `<video>` element itself
|
|
36
40
|
* (e.g. fallback content).
|
|
37
41
|
*/
|
|
38
|
-
export type Props = WithViewportObservation<Omit<ControlledProps, 'play' | 'fullscreen' | 'volume' | 'mute' | 'playbackRate'>> & {
|
|
42
|
+
export type Props = WithViewportObservation<Omit<ControlledProps, 'play' | 'fullscreen' | 'volume' | 'mute' | 'playbackRate' | 'subtitlesOn'>> & {
|
|
43
|
+
defaultSubtitlesOn?: boolean;
|
|
39
44
|
autoPlayWhenVisible?: boolean;
|
|
40
45
|
autoPlayOnceVisible?: boolean;
|
|
41
46
|
autoPauseWhenHidden?: boolean;
|
|
@@ -73,6 +78,13 @@ export type Props = WithViewportObservation<Omit<ControlledProps, 'play' | 'full
|
|
|
73
78
|
* automatic play the component still owed. Setting both flavours of the same
|
|
74
79
|
* behaviour is the same as setting the `…When…` one alone.
|
|
75
80
|
*
|
|
81
|
+
* **`loop` reaches the element untouched**, like every other native media attribute
|
|
82
|
+
* this component does not drive itself. It was once destructured out of the props and
|
|
83
|
+
* never forwarded, which silently dropped it — so if a native attribute ever stops
|
|
84
|
+
* arriving, look at the destructuring here before looking at the caller. One
|
|
85
|
+
* consequence worth knowing: a looping element never fires `ended`, so the `--ended`
|
|
86
|
+
* modifier and the `isEnded` it feeds to `Subtitles` simply never come.
|
|
87
|
+
*
|
|
76
88
|
* Browsers refuse an unmuted `play()` outside a user gesture, so pairing an
|
|
77
89
|
* `autoLoud…` with an `autoPlay…` will usually have the playback rejected. The
|
|
78
90
|
* refusal is caught rather than ignored — the element is read back once the attempt
|
|
@@ -34,6 +34,13 @@ import { ControlledVideo } from './index.controlled.js';
|
|
|
34
34
|
* automatic play the component still owed. Setting both flavours of the same
|
|
35
35
|
* behaviour is the same as setting the `…When…` one alone.
|
|
36
36
|
*
|
|
37
|
+
* **`loop` reaches the element untouched**, like every other native media attribute
|
|
38
|
+
* this component does not drive itself. It was once destructured out of the props and
|
|
39
|
+
* never forwarded, which silently dropped it — so if a native attribute ever stops
|
|
40
|
+
* arriving, look at the destructuring here before looking at the caller. One
|
|
41
|
+
* consequence worth knowing: a looping element never fires `ended`, so the `--ended`
|
|
42
|
+
* modifier and the `isEnded` it feeds to `Subtitles` simply never come.
|
|
43
|
+
*
|
|
37
44
|
* Browsers refuse an unmuted `play()` outside a user gesture, so pairing an
|
|
38
45
|
* `autoLoud…` with an `autoPlay…` will usually have the playback rejected. The
|
|
39
46
|
* refusal is caught rather than ignored — the element is read back once the attempt
|
|
@@ -41,13 +48,14 @@ import { ControlledVideo } from './index.controlled.js';
|
|
|
41
48
|
* The media still won't play, though: autoplay muted, and leave unmuting to the
|
|
42
49
|
* reader.
|
|
43
50
|
*/
|
|
44
|
-
export const Video = ({
|
|
51
|
+
export const Video = ({ defaultSubtitlesOn = true, autoPlayWhenVisible, autoPlayOnceVisible, autoPauseWhenHidden, autoPauseOnceHidden, autoMuteWhenHidden, autoMuteOnceHidden, autoLoudWhenVisible, autoLoudOnceVisible, threshold, root, rootMargin, onVisibilityChanged, wrapperClassName, onPlayButtonClicked, onPauseButtonClicked, onLoudButtonClicked, onMuteButtonClicked, onVolumeRangeChanged, onRateRangeChanged, onFullscreenButtonClicked, onSubtitlesButtonClicked, ...controlledProps }) => {
|
|
45
52
|
// State & refs
|
|
46
53
|
const [play, setPlay] = useState(false);
|
|
47
54
|
const [volume, setVolume] = useState(1);
|
|
48
55
|
const [mute, setMute] = useState(false);
|
|
49
56
|
const [playbackRate, setPlaybackRate] = useState(1);
|
|
50
57
|
const [fullscreen, setFullscreen] = useState(false);
|
|
58
|
+
const [subtitlesOn, setSubtitlesOn] = useState(defaultSubtitlesOn);
|
|
51
59
|
// One flag per `…Once…` behaviour, and each is armed by that behaviour's own
|
|
52
60
|
// automatic trigger. A single shared flag conflated four questions, and being set
|
|
53
61
|
// on any `play` event — a user click included — meant the first press cancelled
|
|
@@ -143,6 +151,14 @@ export const Video = ({ loop, autoPlayWhenVisible, autoPlayOnceVisible, autoPaus
|
|
|
143
151
|
onFullscreenButtonClicked?.(e, isFullscreen, video);
|
|
144
152
|
setFullscreen(!isFullscreen);
|
|
145
153
|
}, [onFullscreenButtonClicked]);
|
|
154
|
+
// Un seul bouton pour les deux sens, contrairement à lecture/pause et son/muet qui en
|
|
155
|
+
// ont un chacun : ceux-là existent en paire dans le DOM et la feuille en montre un,
|
|
156
|
+
// parce qu'ils portent deux glyphes opposés. Les sous-titres n'en portent qu'un, dont
|
|
157
|
+
// seul l'habillage change — inutile d'en rendre deux pour n'en montrer jamais qu'un.
|
|
158
|
+
const handleSubtitlesButtonClick = useCallback((e, isSubtitlesOn, video) => {
|
|
159
|
+
onSubtitlesButtonClicked?.(e, isSubtitlesOn, video);
|
|
160
|
+
setSubtitlesOn(!isSubtitlesOn);
|
|
161
|
+
}, [onSubtitlesButtonClicked]);
|
|
146
162
|
// Intersection Observer
|
|
147
163
|
const onIntersected = useCallback(({ ioEntry }) => {
|
|
148
164
|
if (ioEntry === undefined)
|
|
@@ -188,7 +204,7 @@ export const Video = ({ loop, autoPlayWhenVisible, autoPlayOnceVisible, autoPaus
|
|
|
188
204
|
// Render
|
|
189
205
|
const c = clss(publicClassName, { cssModule });
|
|
190
206
|
const rootClss = mergeClassNames(c(), wrapperClassName);
|
|
191
|
-
const videoContent = _jsx(ControlledVideo, { ...controlledProps, play: play && !isTimeControlled, volume: volume, mute: mute, playbackRate: playbackRate, fullscreen: fullscreen, onPlay: handleOnPlayEvent, onPause: handleOnPauseEvent, onIsPlayingChanged: handleIsPlayingChanged, onVolumeChange: handleOnVolumeChangeEvent, onRateChange: handleOnRateChangeEvent, onLoadedMetadata: handleOnLoadedMetadataEvent, onFullscreenChange: handleFullscreenChange, onPlayButtonClicked: handlePlayButtonClick, onPauseButtonClicked: handlePauseButtonClick, onLoudButtonClicked: handleLoudButtonClick, onMuteButtonClicked: handleMuteButtonClick, onVolumeRangeChanged: handleVolumeRangeChange, onRateRangeChanged: handleRateRangeChange, onFullscreenButtonClicked: handleFullscreenButtonClick });
|
|
207
|
+
const videoContent = _jsx(ControlledVideo, { ...controlledProps, play: play && !isTimeControlled, volume: volume, mute: mute, playbackRate: playbackRate, fullscreen: fullscreen, subtitlesOn: subtitlesOn, onPlay: handleOnPlayEvent, onPause: handleOnPauseEvent, onIsPlayingChanged: handleIsPlayingChanged, onVolumeChange: handleOnVolumeChangeEvent, onRateChange: handleOnRateChangeEvent, onLoadedMetadata: handleOnLoadedMetadataEvent, onFullscreenChange: handleFullscreenChange, onPlayButtonClicked: handlePlayButtonClick, onPauseButtonClicked: handlePauseButtonClick, onLoudButtonClicked: handleLoudButtonClick, onMuteButtonClicked: handleMuteButtonClick, onVolumeRangeChanged: handleVolumeRangeChange, onRateRangeChanged: handleRateRangeChange, onFullscreenButtonClicked: handleFullscreenButtonClick, onSubtitlesButtonClicked: handleSubtitlesButtonClick });
|
|
192
208
|
return _jsx("div", { className: rootClss, children: needsObserve
|
|
193
209
|
? _jsx(IntersectionObserverComponent, { threshold: threshold, root: root, rootMargin: rootMargin, onIntersected: onIntersected, children: videoContent })
|
|
194
210
|
: videoContent });
|
package/components/index.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export * as gallery from './Gallery/index.js'
|
|
|
8
8
|
export * as iframe from './Iframe/index.js'
|
|
9
9
|
export * as image from './Image/index.js'
|
|
10
10
|
export * as input from './Input/index.js'
|
|
11
|
-
export * as jsonEditor from './JsonEditor/index.js'
|
|
12
11
|
export * as intersectionObserver from './IntersectionObserver/index.js'
|
|
12
|
+
export * as jsonEditor from './JsonEditor/index.js'
|
|
13
13
|
export * as lightbox from './Lightbox/index.js'
|
|
14
14
|
export * as listLoader from './ListLoader/index.js'
|
|
15
15
|
export * as overlayer from './Overlayer/index.js'
|
|
@@ -17,8 +17,8 @@ export * as paginator from './Paginator/index.js'
|
|
|
17
17
|
export * as resizeObserver from './ResizeObserver/index.js'
|
|
18
18
|
export * as scrllgngn from './Scrllgngn/index.js'
|
|
19
19
|
export * as scrollListener from './ScrollListener/index.js'
|
|
20
|
-
export * as sequencer from './Sequencer/index.js'
|
|
21
20
|
export * as select from './Select/index.js'
|
|
21
|
+
export * as sequencer from './Sequencer/index.js'
|
|
22
22
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
23
23
|
export * as subtitles from './Subtitles/index.js'
|
|
24
24
|
export * as textarea from './Textarea/index.js'
|
package/components/index.js
CHANGED
|
@@ -8,8 +8,8 @@ export * as gallery from './Gallery/index.js'
|
|
|
8
8
|
export * as iframe from './Iframe/index.js'
|
|
9
9
|
export * as image from './Image/index.js'
|
|
10
10
|
export * as input from './Input/index.js'
|
|
11
|
-
export * as jsonEditor from './JsonEditor/index.js'
|
|
12
11
|
export * as intersectionObserver from './IntersectionObserver/index.js'
|
|
12
|
+
export * as jsonEditor from './JsonEditor/index.js'
|
|
13
13
|
export * as lightbox from './Lightbox/index.js'
|
|
14
14
|
export * as listLoader from './ListLoader/index.js'
|
|
15
15
|
export * as overlayer from './Overlayer/index.js'
|
|
@@ -17,8 +17,8 @@ export * as paginator from './Paginator/index.js'
|
|
|
17
17
|
export * as resizeObserver from './ResizeObserver/index.js'
|
|
18
18
|
export * as scrllgngn from './Scrllgngn/index.js'
|
|
19
19
|
export * as scrollListener from './ScrollListener/index.js'
|
|
20
|
-
export * as sequencer from './Sequencer/index.js'
|
|
21
20
|
export * as select from './Select/index.js'
|
|
21
|
+
export * as sequencer from './Sequencer/index.js'
|
|
22
22
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
23
23
|
export * as subtitles from './Subtitles/index.js'
|
|
24
24
|
export * as textarea from './Textarea/index.js'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * as download from './download/index.js'
|
|
2
1
|
export * as copy from './copy/index.js'
|
|
2
|
+
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
|
-
export * as remove from './remove/index.js'
|
|
6
5
|
export * as stat from './stat/index.js'
|
|
6
|
+
export * as remove from './remove/index.js'
|
|
7
7
|
export * as upload from './upload/index.js'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * as download from './download/index.js'
|
|
2
1
|
export * as copy from './copy/index.js'
|
|
2
|
+
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
|
-
export * as remove from './remove/index.js'
|
|
6
5
|
export * as stat from './stat/index.js'
|
|
6
|
+
export * as remove from './remove/index.js'
|
|
7
7
|
export * as upload from './upload/index.js'
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
2
|
export * as download from './download/index.js'
|
|
3
|
-
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
4
3
|
export * as exists from './exists/index.js'
|
|
5
|
-
export * as getPermissions from './get-permissions/index.js'
|
|
6
4
|
export * as getMetadata from './get-metadata/index.js'
|
|
7
|
-
export * as
|
|
5
|
+
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
8
6
|
export * as move from './move/index.js'
|
|
7
|
+
export * as getPermissions from './get-permissions/index.js'
|
|
9
8
|
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
9
|
+
export * as remove from './remove/index.js'
|
|
10
10
|
export * as stat from './stat/index.js'
|
|
11
11
|
export * as updateMetadata from './update-metadata/index.js'
|
|
12
12
|
export * as upload from './upload/index.js'
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
2
|
export * as download from './download/index.js'
|
|
3
|
-
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
4
3
|
export * as exists from './exists/index.js'
|
|
5
|
-
export * as getPermissions from './get-permissions/index.js'
|
|
6
4
|
export * as getMetadata from './get-metadata/index.js'
|
|
7
|
-
export * as
|
|
5
|
+
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
8
6
|
export * as move from './move/index.js'
|
|
7
|
+
export * as getPermissions from './get-permissions/index.js'
|
|
9
8
|
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
9
|
+
export * as remove from './remove/index.js'
|
|
10
10
|
export * as stat from './stat/index.js'
|
|
11
11
|
export * as updateMetadata from './update-metadata/index.js'
|
|
12
12
|
export * as upload from './upload/index.js'
|
|
@@ -2,10 +2,10 @@ export * as copyDir from './copy-dir/index.js'
|
|
|
2
2
|
export * as copyFile from './copy-file/index.js'
|
|
3
3
|
export * as downloadFile from './download-file/index.js'
|
|
4
4
|
export * as existsFile from './exists-file/index.js'
|
|
5
|
-
export * as moveDir from './move-dir/index.js'
|
|
6
5
|
export * as listDir from './list-dir/index.js'
|
|
6
|
+
export * as moveDir from './move-dir/index.js'
|
|
7
7
|
export * as moveFile from './move-file/index.js'
|
|
8
|
+
export * as removeFile from './remove-file/index.js'
|
|
8
9
|
export * as removeDir from './remove-dir/index.js'
|
|
9
10
|
export * as statFile from './stat-file/index.js'
|
|
10
11
|
export * as uploadFile from './upload-file/index.js'
|
|
11
|
-
export * as removeFile from './remove-file/index.js'
|
|
@@ -2,10 +2,10 @@ export * as copyDir from './copy-dir/index.js'
|
|
|
2
2
|
export * as copyFile from './copy-file/index.js'
|
|
3
3
|
export * as downloadFile from './download-file/index.js'
|
|
4
4
|
export * as existsFile from './exists-file/index.js'
|
|
5
|
-
export * as moveDir from './move-dir/index.js'
|
|
6
5
|
export * as listDir from './list-dir/index.js'
|
|
6
|
+
export * as moveDir from './move-dir/index.js'
|
|
7
7
|
export * as moveFile from './move-file/index.js'
|
|
8
|
+
export * as removeFile from './remove-file/index.js'
|
|
8
9
|
export * as removeDir from './remove-dir/index.js'
|
|
9
10
|
export * as statFile from './stat-file/index.js'
|
|
10
11
|
export * as uploadFile from './upload-file/index.js'
|
|
11
|
-
export * as removeFile from './remove-file/index.js'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * as download from './download/index.js'
|
|
2
1
|
export * as copy from './copy/index.js'
|
|
2
|
+
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
|
+
export * as move from './move/index.js'
|
|
4
5
|
export * as remove from './remove/index.js'
|
|
5
6
|
export * as stat from './stat/index.js'
|
|
6
|
-
export * as move from './move/index.js'
|
|
7
7
|
export * as upload from './upload/index.js'
|
package/node/ftps/file/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * as download from './download/index.js'
|
|
2
1
|
export * as copy from './copy/index.js'
|
|
2
|
+
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
|
+
export * as move from './move/index.js'
|
|
4
5
|
export * as remove from './remove/index.js'
|
|
5
6
|
export * as stat from './stat/index.js'
|
|
6
|
-
export * as move from './move/index.js'
|
|
7
7
|
export * as upload from './upload/index.js'
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export * as blur from './blur/index.js'
|
|
2
|
-
export * as extend from './extend/index.js'
|
|
3
|
-
export * as extract from './extract/index.js'
|
|
4
1
|
export * as brighten from './brighten/index.js'
|
|
2
|
+
export * as extend from './extend/index.js'
|
|
5
3
|
export * as flatten from './flatten/index.js'
|
|
4
|
+
export * as extract from './extract/index.js'
|
|
6
5
|
export * as flip from './flip/index.js'
|
|
7
6
|
export * as flop from './flop/index.js'
|
|
8
|
-
export * as level from './level/index.js'
|
|
9
|
-
export * as lighten from './lighten/index.js'
|
|
10
7
|
export * as hue from './hue/index.js'
|
|
11
|
-
export * as
|
|
8
|
+
export * as blur from './blur/index.js'
|
|
9
|
+
export * as lighten from './lighten/index.js'
|
|
12
10
|
export * as normalize from './normalize/index.js'
|
|
11
|
+
export * as overlay from './overlay/index.js'
|
|
13
12
|
export * as resize from './resize/index.js'
|
|
14
|
-
export * as saturate from './saturate/index.js'
|
|
15
13
|
export * as rotate from './rotate/index.js'
|
|
14
|
+
export * as saturate from './saturate/index.js'
|
|
15
|
+
export * as level from './level/index.js'
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export * as blur from './blur/index.js'
|
|
2
|
-
export * as extend from './extend/index.js'
|
|
3
|
-
export * as extract from './extract/index.js'
|
|
4
1
|
export * as brighten from './brighten/index.js'
|
|
2
|
+
export * as extend from './extend/index.js'
|
|
5
3
|
export * as flatten from './flatten/index.js'
|
|
4
|
+
export * as extract from './extract/index.js'
|
|
6
5
|
export * as flip from './flip/index.js'
|
|
7
6
|
export * as flop from './flop/index.js'
|
|
8
|
-
export * as level from './level/index.js'
|
|
9
|
-
export * as lighten from './lighten/index.js'
|
|
10
7
|
export * as hue from './hue/index.js'
|
|
11
|
-
export * as
|
|
8
|
+
export * as blur from './blur/index.js'
|
|
9
|
+
export * as lighten from './lighten/index.js'
|
|
12
10
|
export * as normalize from './normalize/index.js'
|
|
11
|
+
export * as overlay from './overlay/index.js'
|
|
13
12
|
export * as resize from './resize/index.js'
|
|
14
|
-
export * as saturate from './saturate/index.js'
|
|
15
13
|
export * as rotate from './rotate/index.js'
|
|
14
|
+
export * as saturate from './saturate/index.js'
|
|
15
|
+
export * as level from './level/index.js'
|
package/node/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as awsS3 from './@aws-s3/index.js'
|
|
2
2
|
export * as designEdito from './@design-edito/index.js'
|
|
3
3
|
export * as express from './@express/index.js'
|
|
4
|
-
export * as cloudStorage from './cloud-storage/index.js'
|
|
5
4
|
export * as googleCloud from './@google-cloud/index.js'
|
|
5
|
+
export * as cloudStorage from './cloud-storage/index.js'
|
|
6
6
|
export * as encryption from './encryption/index.js'
|
|
7
7
|
export * as files from './files/index.js'
|
|
8
8
|
export * as ftps from './ftps/index.js'
|
package/node/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as awsS3 from './@aws-s3/index.js'
|
|
2
2
|
export * as designEdito from './@design-edito/index.js'
|
|
3
3
|
export * as express from './@express/index.js'
|
|
4
|
-
export * as cloudStorage from './cloud-storage/index.js'
|
|
5
4
|
export * as googleCloud from './@google-cloud/index.js'
|
|
5
|
+
export * as cloudStorage from './cloud-storage/index.js'
|
|
6
6
|
export * as encryption from './encryption/index.js'
|
|
7
7
|
export * as files from './files/index.js'
|
|
8
8
|
export * as ftps from './ftps/index.js'
|
package/node/process/index.d.ts
CHANGED
package/node/process/index.js
CHANGED