@design-edito/tools 0.5.22 → 0.5.24
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/arrays/index.d.ts +3 -3
- package/agnostic/arrays/index.js +3 -3
- package/agnostic/colors/index.d.ts +2 -2
- package/agnostic/colors/index.js +2 -2
- package/agnostic/css/index.d.ts +1 -1
- package/agnostic/css/index.js +1 -1
- 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 +2 -2
- package/agnostic/html/hyper-json/smart-tags/isolated/index.js +2 -2
- package/agnostic/index.d.ts +4 -4
- package/agnostic/index.js +4 -4
- package/agnostic/misc/index.d.ts +3 -3
- package/agnostic/misc/index.js +3 -3
- package/agnostic/numbers/index.d.ts +1 -1
- package/agnostic/numbers/index.js +1 -1
- package/agnostic/objects/index.d.ts +3 -3
- package/agnostic/objects/index.js +3 -3
- package/agnostic/random/index.d.ts +1 -1
- package/agnostic/random/index.js +1 -1
- package/agnostic/strings/index.d.ts +3 -3
- package/agnostic/strings/index.js +3 -3
- package/agnostic/time/dates/index.d.ts +1 -1
- package/agnostic/time/dates/index.js +1 -1
- package/agnostic/time/index.d.ts +1 -1
- package/agnostic/time/index.js +1 -1
- package/components/Sequencer/index.d.ts +41 -8
- package/components/Sequencer/index.js +120 -10
- package/components/Sequencer/types.d.ts +57 -0
- package/components/Sequencer/types.js +32 -0
- package/components/index.d.ts +3 -3
- package/components/index.js +3 -3
- package/node/@aws-s3/storage/file/index.d.ts +2 -2
- package/node/@aws-s3/storage/file/index.js +2 -2
- package/node/@google-cloud/storage/file/index.d.ts +3 -3
- package/node/@google-cloud/storage/file/index.js +3 -3
- package/node/@google-cloud/storage/index.d.ts +1 -1
- package/node/@google-cloud/storage/index.js +1 -1
- package/node/cloud-storage/operations/index.d.ts +1 -1
- package/node/cloud-storage/operations/index.js +1 -1
- package/node/ftps/file/index.d.ts +1 -1
- package/node/ftps/file/index.js +1 -1
- package/node/index.d.ts +1 -1
- package/node/index.js +1 -1
- package/node/sftp/file/index.d.ts +2 -2
- package/node/sftp/file/index.js +2 -2
- package/node/sftp/index.d.ts +1 -1
- package/node/sftp/index.js +1 -1
- package/package.json +5 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * as dedupe from './dedupe/index.js'
|
|
2
|
-
export * as findDuplicates from './find-duplicates/index.js'
|
|
3
1
|
export * as isArrayOf from './is-array-of/index.js'
|
|
2
|
+
export * as findDuplicates from './find-duplicates/index.js'
|
|
3
|
+
export * as make from './make/index.js'
|
|
4
4
|
export * as randomPick from './random-pick/index.js'
|
|
5
5
|
export * as shuffle from './shuffle/index.js'
|
|
6
|
-
export * as
|
|
6
|
+
export * as dedupe from './dedupe/index.js'
|
package/agnostic/arrays/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * as dedupe from './dedupe/index.js'
|
|
2
|
-
export * as findDuplicates from './find-duplicates/index.js'
|
|
3
1
|
export * as isArrayOf from './is-array-of/index.js'
|
|
2
|
+
export * as findDuplicates from './find-duplicates/index.js'
|
|
3
|
+
export * as make from './make/index.js'
|
|
4
4
|
export * as randomPick from './random-pick/index.js'
|
|
5
5
|
export * as shuffle from './shuffle/index.js'
|
|
6
|
-
export * as
|
|
6
|
+
export * as dedupe from './dedupe/index.js'
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * as
|
|
1
|
+
export * as contrast from './contrast/index.js'
|
|
2
2
|
export * as convert from './convert/index.js'
|
|
3
|
+
export * as channels from './channels/index.js'
|
|
3
4
|
export * as distance from './distance/index.js'
|
|
4
5
|
export * as grayscale from './grayscale/index.js'
|
|
5
6
|
export * as invert from './invert/index.js'
|
|
6
7
|
export * as lerp from './lerp/index.js'
|
|
7
|
-
export * as contrast from './contrast/index.js'
|
|
8
8
|
export * as luminance from './luminance/index.js'
|
|
9
9
|
export * as palette from './palette/index.js'
|
|
10
10
|
export * as rotate from './rotate/index.js'
|
package/agnostic/colors/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * as
|
|
1
|
+
export * as contrast from './contrast/index.js'
|
|
2
2
|
export * as convert from './convert/index.js'
|
|
3
|
+
export * as channels from './channels/index.js'
|
|
3
4
|
export * as distance from './distance/index.js'
|
|
4
5
|
export * as grayscale from './grayscale/index.js'
|
|
5
6
|
export * as invert from './invert/index.js'
|
|
6
7
|
export * as lerp from './lerp/index.js'
|
|
7
|
-
export * as contrast from './contrast/index.js'
|
|
8
8
|
export * as luminance from './luminance/index.js'
|
|
9
9
|
export * as palette from './palette/index.js'
|
|
10
10
|
export * as rotate from './rotate/index.js'
|
package/agnostic/css/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as bem from './bem/index.js'
|
|
2
2
|
export * as clss from './clss/index.js'
|
|
3
3
|
export * as generateNiceColor from './generate-nice-color/index.js'
|
|
4
|
-
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
5
4
|
export * as scale from './scale/index.js'
|
|
5
|
+
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
6
6
|
export * as stylesSet from './styles-set/index.js'
|
package/agnostic/css/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as bem from './bem/index.js'
|
|
2
2
|
export * as clss from './clss/index.js'
|
|
3
3
|
export * as generateNiceColor from './generate-nice-color/index.js'
|
|
4
|
-
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
5
4
|
export * as scale from './scale/index.js'
|
|
5
|
+
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
6
6
|
export * as stylesSet from './styles-set/index.js'
|
|
@@ -2,32 +2,32 @@ export * as add from './add/index.js'
|
|
|
2
2
|
export * as addclass from './addclass/index.js'
|
|
3
3
|
export * as and from './and/index.js'
|
|
4
4
|
export * as append from './append/index.js'
|
|
5
|
-
export * as clone from './clone/index.js'
|
|
6
|
-
export * as call from './call/index.js'
|
|
7
5
|
export * as at from './at/index.js'
|
|
6
|
+
export * as call from './call/index.js'
|
|
7
|
+
export * as clone from './clone/index.js'
|
|
8
8
|
export * as deleteproperties from './deleteproperties/index.js'
|
|
9
|
-
export * as equals from './equals/index.js'
|
|
10
|
-
export * as getproperties from './getproperties/index.js'
|
|
11
9
|
export * as getattribute from './getattribute/index.js'
|
|
10
|
+
export * as getproperties from './getproperties/index.js'
|
|
12
11
|
export * as getproperty from './getproperty/index.js'
|
|
13
12
|
export * as hjparse from './hjparse/index.js'
|
|
13
|
+
export * as equals from './equals/index.js'
|
|
14
14
|
export * as hjstringify from './hjstringify/index.js'
|
|
15
15
|
export * as if from './if/index.js'
|
|
16
|
-
export * as
|
|
16
|
+
export * as initialize from './initialize/index.js'
|
|
17
17
|
export * as length from './length/index.js'
|
|
18
|
-
export * as
|
|
18
|
+
export * as join from './join/index.js'
|
|
19
19
|
export * as map from './map/index.js'
|
|
20
|
+
export * as negate from './negate/index.js'
|
|
20
21
|
export * as notrailing from './notrailing/index.js'
|
|
21
22
|
export * as or from './or/index.js'
|
|
22
23
|
export * as pickrandom from './pickrandom/index.js'
|
|
23
24
|
export * as populate from './populate/index.js'
|
|
24
|
-
export * as initialize from './initialize/index.js'
|
|
25
|
-
export * as push from './push/index.js'
|
|
26
25
|
export * as print from './print/index.js'
|
|
26
|
+
export * as push from './push/index.js'
|
|
27
27
|
export * as pusheach from './pusheach/index.js'
|
|
28
|
+
export * as removeattribute from './removeattribute/index.js'
|
|
28
29
|
export * as recordtoarray from './recordtoarray/index.js'
|
|
29
30
|
export * as removeclass from './removeclass/index.js'
|
|
30
|
-
export * as removeattribute from './removeattribute/index.js'
|
|
31
31
|
export * as renameproperty from './renameproperty/index.js'
|
|
32
32
|
export * as replace from './replace/index.js'
|
|
33
33
|
export * as select from './select/index.js'
|
|
@@ -36,17 +36,17 @@ export * as setattribute from './setattribute/index.js'
|
|
|
36
36
|
export * as setproperty from './setproperty/index.js'
|
|
37
37
|
export * as sorton from './sorton/index.js'
|
|
38
38
|
export * as split from './split/index.js'
|
|
39
|
-
export * as spread from './spread/index.js'
|
|
40
39
|
export * as toarray from './toarray/index.js'
|
|
41
40
|
export * as toboolean from './toboolean/index.js'
|
|
41
|
+
export * as spread from './spread/index.js'
|
|
42
42
|
export * as toelement from './toelement/index.js'
|
|
43
43
|
export * as toggleclass from './toggleclass/index.js'
|
|
44
44
|
export * as tonodelist from './tonodelist/index.js'
|
|
45
|
+
export * as tonumber from './tonumber/index.js'
|
|
45
46
|
export * as tonull from './tonull/index.js'
|
|
46
47
|
export * as torecord from './torecord/index.js'
|
|
47
48
|
export * as toref from './toref/index.js'
|
|
48
|
-
export * as tonumber from './tonumber/index.js'
|
|
49
49
|
export * as tostring from './tostring/index.js'
|
|
50
|
-
export * as totext from './totext/index.js'
|
|
51
|
-
export * as trim from './trim/index.js'
|
|
52
50
|
export * as transformselected from './transformselected/index.js'
|
|
51
|
+
export * as trim from './trim/index.js'
|
|
52
|
+
export * as totext from './totext/index.js'
|
|
@@ -2,32 +2,32 @@ export * as add from './add/index.js'
|
|
|
2
2
|
export * as addclass from './addclass/index.js'
|
|
3
3
|
export * as and from './and/index.js'
|
|
4
4
|
export * as append from './append/index.js'
|
|
5
|
-
export * as clone from './clone/index.js'
|
|
6
|
-
export * as call from './call/index.js'
|
|
7
5
|
export * as at from './at/index.js'
|
|
6
|
+
export * as call from './call/index.js'
|
|
7
|
+
export * as clone from './clone/index.js'
|
|
8
8
|
export * as deleteproperties from './deleteproperties/index.js'
|
|
9
|
-
export * as equals from './equals/index.js'
|
|
10
|
-
export * as getproperties from './getproperties/index.js'
|
|
11
9
|
export * as getattribute from './getattribute/index.js'
|
|
10
|
+
export * as getproperties from './getproperties/index.js'
|
|
12
11
|
export * as getproperty from './getproperty/index.js'
|
|
13
12
|
export * as hjparse from './hjparse/index.js'
|
|
13
|
+
export * as equals from './equals/index.js'
|
|
14
14
|
export * as hjstringify from './hjstringify/index.js'
|
|
15
15
|
export * as if from './if/index.js'
|
|
16
|
-
export * as
|
|
16
|
+
export * as initialize from './initialize/index.js'
|
|
17
17
|
export * as length from './length/index.js'
|
|
18
|
-
export * as
|
|
18
|
+
export * as join from './join/index.js'
|
|
19
19
|
export * as map from './map/index.js'
|
|
20
|
+
export * as negate from './negate/index.js'
|
|
20
21
|
export * as notrailing from './notrailing/index.js'
|
|
21
22
|
export * as or from './or/index.js'
|
|
22
23
|
export * as pickrandom from './pickrandom/index.js'
|
|
23
24
|
export * as populate from './populate/index.js'
|
|
24
|
-
export * as initialize from './initialize/index.js'
|
|
25
|
-
export * as push from './push/index.js'
|
|
26
25
|
export * as print from './print/index.js'
|
|
26
|
+
export * as push from './push/index.js'
|
|
27
27
|
export * as pusheach from './pusheach/index.js'
|
|
28
|
+
export * as removeattribute from './removeattribute/index.js'
|
|
28
29
|
export * as recordtoarray from './recordtoarray/index.js'
|
|
29
30
|
export * as removeclass from './removeclass/index.js'
|
|
30
|
-
export * as removeattribute from './removeattribute/index.js'
|
|
31
31
|
export * as renameproperty from './renameproperty/index.js'
|
|
32
32
|
export * as replace from './replace/index.js'
|
|
33
33
|
export * as select from './select/index.js'
|
|
@@ -36,17 +36,17 @@ export * as setattribute from './setattribute/index.js'
|
|
|
36
36
|
export * as setproperty from './setproperty/index.js'
|
|
37
37
|
export * as sorton from './sorton/index.js'
|
|
38
38
|
export * as split from './split/index.js'
|
|
39
|
-
export * as spread from './spread/index.js'
|
|
40
39
|
export * as toarray from './toarray/index.js'
|
|
41
40
|
export * as toboolean from './toboolean/index.js'
|
|
41
|
+
export * as spread from './spread/index.js'
|
|
42
42
|
export * as toelement from './toelement/index.js'
|
|
43
43
|
export * as toggleclass from './toggleclass/index.js'
|
|
44
44
|
export * as tonodelist from './tonodelist/index.js'
|
|
45
|
+
export * as tonumber from './tonumber/index.js'
|
|
45
46
|
export * as tonull from './tonull/index.js'
|
|
46
47
|
export * as torecord from './torecord/index.js'
|
|
47
48
|
export * as toref from './toref/index.js'
|
|
48
|
-
export * as tonumber from './tonumber/index.js'
|
|
49
49
|
export * as tostring from './tostring/index.js'
|
|
50
|
-
export * as totext from './totext/index.js'
|
|
51
|
-
export * as trim from './trim/index.js'
|
|
52
50
|
export * as transformselected from './transformselected/index.js'
|
|
51
|
+
export * as trim from './trim/index.js'
|
|
52
|
+
export * as totext from './totext/index.js'
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export * as any from './any/index.js'
|
|
2
|
-
export * as array from './array/index.js'
|
|
3
2
|
export * as boolean from './boolean/index.js'
|
|
3
|
+
export * as array from './array/index.js'
|
|
4
4
|
export * as element from './element/index.js'
|
|
5
5
|
export * as get from './get/index.js'
|
|
6
6
|
export * as guess from './guess/index.js'
|
|
7
7
|
export * as nodelist from './nodelist/index.js'
|
|
8
8
|
export * as number from './number/index.js'
|
|
9
|
-
export * as null from './null/index.js'
|
|
10
9
|
export * as record from './record/index.js'
|
|
11
10
|
export * as ref from './ref/index.js'
|
|
12
11
|
export * as text from './text/index.js'
|
|
13
12
|
export * as string from './string/index.js'
|
|
13
|
+
export * as null from './null/index.js'
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export * as any from './any/index.js'
|
|
2
|
-
export * as array from './array/index.js'
|
|
3
2
|
export * as boolean from './boolean/index.js'
|
|
3
|
+
export * as array from './array/index.js'
|
|
4
4
|
export * as element from './element/index.js'
|
|
5
5
|
export * as get from './get/index.js'
|
|
6
6
|
export * as guess from './guess/index.js'
|
|
7
7
|
export * as nodelist from './nodelist/index.js'
|
|
8
8
|
export * as number from './number/index.js'
|
|
9
|
-
export * as null from './null/index.js'
|
|
10
9
|
export * as record from './record/index.js'
|
|
11
10
|
export * as ref from './ref/index.js'
|
|
12
11
|
export * as text from './text/index.js'
|
|
13
12
|
export * as string from './string/index.js'
|
|
13
|
+
export * as null from './null/index.js'
|
package/agnostic/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export * as arrays from './arrays/index.js'
|
|
2
2
|
export * as booleans from './booleans/index.js'
|
|
3
|
-
export * as errors from './errors/index.js'
|
|
4
|
-
export * as colors from './colors/index.js'
|
|
5
3
|
export * as css from './css/index.js'
|
|
4
|
+
export * as colors from './colors/index.js'
|
|
6
5
|
export * as html from './html/index.js'
|
|
6
|
+
export * as errors from './errors/index.js'
|
|
7
7
|
export * as misc from './misc/index.js'
|
|
8
8
|
export * as numbers from './numbers/index.js'
|
|
9
9
|
export * as objects from './objects/index.js'
|
|
10
10
|
export * as optim from './optim/index.js'
|
|
11
|
-
export * as random from './random/index.js'
|
|
12
11
|
export * as regexps from './regexps/index.js'
|
|
13
|
-
export * as
|
|
12
|
+
export * as random from './random/index.js'
|
|
14
13
|
export * as strings from './strings/index.js'
|
|
14
|
+
export * as sanitization from './sanitization/index.js'
|
|
15
15
|
export * as subtitles from './subtitles/index.js'
|
|
16
16
|
export * as time from './time/index.js'
|
|
17
17
|
export * as typescript from './typescript/index.js'
|
package/agnostic/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export * as arrays from './arrays/index.js'
|
|
2
2
|
export * as booleans from './booleans/index.js'
|
|
3
|
-
export * as errors from './errors/index.js'
|
|
4
|
-
export * as colors from './colors/index.js'
|
|
5
3
|
export * as css from './css/index.js'
|
|
4
|
+
export * as colors from './colors/index.js'
|
|
6
5
|
export * as html from './html/index.js'
|
|
6
|
+
export * as errors from './errors/index.js'
|
|
7
7
|
export * as misc from './misc/index.js'
|
|
8
8
|
export * as numbers from './numbers/index.js'
|
|
9
9
|
export * as objects from './objects/index.js'
|
|
10
10
|
export * as optim from './optim/index.js'
|
|
11
|
-
export * as random from './random/index.js'
|
|
12
11
|
export * as regexps from './regexps/index.js'
|
|
13
|
-
export * as
|
|
12
|
+
export * as random from './random/index.js'
|
|
14
13
|
export * as strings from './strings/index.js'
|
|
14
|
+
export * as sanitization from './sanitization/index.js'
|
|
15
15
|
export * as subtitles from './subtitles/index.js'
|
|
16
16
|
export * as time from './time/index.js'
|
|
17
17
|
export * as typescript from './typescript/index.js'
|
package/agnostic/misc/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
export * as assert from './assert/index.js'
|
|
1
2
|
export * as cast from './cast/index.js'
|
|
2
3
|
export * as connection from './connection/index.js'
|
|
3
4
|
export * as crawler from './crawler/index.js'
|
|
4
|
-
export * as crossenv from './crossenv/index.js'
|
|
5
5
|
export * as dataSize from './data-size/index.js'
|
|
6
|
-
export * as assert from './assert/index.js'
|
|
7
6
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
8
7
|
export * as isNullish from './is-nullish/index.js'
|
|
9
|
-
export * as logs from './logs/index.js'
|
|
10
8
|
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
9
|
+
export * as logs from './logs/index.js'
|
|
11
10
|
export * as normalizeExtension from './normalize-extension/index.js'
|
|
11
|
+
export * as crossenv from './crossenv/index.js'
|
|
12
12
|
export * as outcome from './outcome/index.js'
|
package/agnostic/misc/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
export * as assert from './assert/index.js'
|
|
1
2
|
export * as cast from './cast/index.js'
|
|
2
3
|
export * as connection from './connection/index.js'
|
|
3
4
|
export * as crawler from './crawler/index.js'
|
|
4
|
-
export * as crossenv from './crossenv/index.js'
|
|
5
5
|
export * as dataSize from './data-size/index.js'
|
|
6
|
-
export * as assert from './assert/index.js'
|
|
7
6
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
8
7
|
export * as isNullish from './is-nullish/index.js'
|
|
9
|
-
export * as logs from './logs/index.js'
|
|
10
8
|
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
9
|
+
export * as logs from './logs/index.js'
|
|
11
10
|
export * as normalizeExtension from './normalize-extension/index.js'
|
|
11
|
+
export * as crossenv from './crossenv/index.js'
|
|
12
12
|
export * as outcome from './outcome/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
export * as absoluteModulo from './absolute-modulo/index.js'
|
|
1
2
|
export * as approximateRational from './approximate-rational/index.js'
|
|
2
3
|
export * as clamp from './clamp/index.js'
|
|
3
4
|
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
4
5
|
export * as interpolate from './interpolate/index.js'
|
|
5
6
|
export * as round from './round/index.js'
|
|
6
|
-
export * as absoluteModulo from './absolute-modulo/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
export * as absoluteModulo from './absolute-modulo/index.js'
|
|
1
2
|
export * as approximateRational from './approximate-rational/index.js'
|
|
2
3
|
export * as clamp from './clamp/index.js'
|
|
3
4
|
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
4
5
|
export * as interpolate from './interpolate/index.js'
|
|
5
6
|
export * as round from './round/index.js'
|
|
6
|
-
export * as absoluteModulo from './absolute-modulo/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 isRecord from './is-record/index.js'
|
|
6
4
|
export * as recordFormat from './record-format/index.js'
|
|
7
|
-
export * as
|
|
5
|
+
export * as isRecord from './is-record/index.js'
|
|
8
6
|
export * as recordMap from './record-map/index.js'
|
|
7
|
+
export * as sortKeys from './sort-keys/index.js'
|
|
9
8
|
export * as validation from './validation/index.js'
|
|
9
|
+
export * as enums from './enums/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 isRecord from './is-record/index.js'
|
|
6
4
|
export * as recordFormat from './record-format/index.js'
|
|
7
|
-
export * as
|
|
5
|
+
export * as isRecord from './is-record/index.js'
|
|
8
6
|
export * as recordMap from './record-map/index.js'
|
|
7
|
+
export * as sortKeys from './sort-keys/index.js'
|
|
9
8
|
export * as validation from './validation/index.js'
|
|
9
|
+
export * as enums from './enums/index.js'
|
package/agnostic/random/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as charCodes from './char-codes/index.js'
|
|
2
|
-
export * as parseTable from './parse-table/index.js'
|
|
3
|
-
export * as normalizeIndent from './normalize-indent/index.js'
|
|
4
2
|
export * as matches from './matches/index.js'
|
|
3
|
+
export * as parseTable from './parse-table/index.js'
|
|
5
4
|
export * as replaceAll from './replace-all/index.js'
|
|
5
|
+
export * as normalizeIndent from './normalize-indent/index.js'
|
|
6
6
|
export * as splitTrim from './split-trim/index.js'
|
|
7
|
-
export * as trim from './trim/index.js'
|
|
8
7
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
8
|
+
export * as trim from './trim/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as charCodes from './char-codes/index.js'
|
|
2
|
-
export * as parseTable from './parse-table/index.js'
|
|
3
|
-
export * as normalizeIndent from './normalize-indent/index.js'
|
|
4
2
|
export * as matches from './matches/index.js'
|
|
3
|
+
export * as parseTable from './parse-table/index.js'
|
|
5
4
|
export * as replaceAll from './replace-all/index.js'
|
|
5
|
+
export * as normalizeIndent from './normalize-indent/index.js'
|
|
6
6
|
export * as splitTrim from './split-trim/index.js'
|
|
7
|
-
export * as trim from './trim/index.js'
|
|
8
7
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
8
|
+
export * as trim from './trim/index.js'
|
package/agnostic/time/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as duration from './duration/index.js'
|
|
2
|
-
export * as dates from './dates/index.js'
|
|
3
2
|
export * as timeout from './timeout/index.js'
|
|
4
3
|
export * as transitions from './transitions/index.js'
|
|
5
4
|
export * as wait from './wait/index.js'
|
|
5
|
+
export * as dates from './dates/index.js'
|
package/agnostic/time/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as duration from './duration/index.js'
|
|
2
|
-
export * as dates from './dates/index.js'
|
|
3
2
|
export * as timeout from './timeout/index.js'
|
|
4
3
|
export * as transitions from './transitions/index.js'
|
|
5
4
|
export * as wait from './wait/index.js'
|
|
5
|
+
export * as dates from './dates/index.js'
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type FunctionComponent, type PropsWithChildren } from 'react';
|
|
2
2
|
import type { WithClassName } from '../utils/types.js';
|
|
3
|
+
import type { ViewportBehaviours } from '../utils/viewport-behaviours/types.js';
|
|
4
|
+
import type { SequencerAction } from './types.js';
|
|
3
5
|
/**
|
|
4
6
|
* @property totalSteps - How many steps the sequence has. Falls back to the number of
|
|
5
7
|
* **element** children: text and whitespace never count, which matters more than it
|
|
@@ -13,9 +15,16 @@ import type { WithClassName } from '../utils/types.js';
|
|
|
13
15
|
* @property step - The position, taken over by the consumer. Provided, the tempo stops
|
|
14
16
|
* advancing anything: the counter is theirs.
|
|
15
17
|
* @property defaultStep - The position to start from. Ignored when `step` is provided.
|
|
16
|
-
* @property play - Whether the sequence advances
|
|
17
|
-
*
|
|
18
|
-
*
|
|
18
|
+
* @property play - Whether the sequence advances, taken over by the consumer. Provided,
|
|
19
|
+
* it is the whole answer and the instructions no longer reach it, the way `step` takes
|
|
20
|
+
* the counter over from the tempo.
|
|
21
|
+
* @property defaultPlay - Whether it starts advancing. `false` by default, and the
|
|
22
|
+
* starting point a `'play'` instruction moves from — not a setting, hence `default…`.
|
|
23
|
+
* @property behavioursSuspended - Holds back the instructions that **start** something,
|
|
24
|
+
* and lets through those that stop it. For a consumer withholding the sequence behind
|
|
25
|
+
* something — a warning to accept, typically. What was held back is replayed the moment
|
|
26
|
+
* this goes false, so lifting the veil on an already-visible sequence does what was
|
|
27
|
+
* asked. `':force'` does not override it.
|
|
19
28
|
* @property tempo - Speed in beats per minute: one step every `60000 / tempo` ms, so `60`
|
|
20
29
|
* is a step per second. Clamped to a minimum of `1`.
|
|
21
30
|
* @property loop - Whether the sequence wraps round. **`false` by default**, so a
|
|
@@ -24,11 +33,15 @@ import type { WithClassName } from '../utils/types.js';
|
|
|
24
33
|
* active step it resolves to. Never on mount.
|
|
25
34
|
* @property onIsPlayingChanged - Called once the effective play state changed — which
|
|
26
35
|
* includes it dropping to `false` on its own at the end.
|
|
27
|
-
* @property onIsEndedChanged - Called when the sequence
|
|
28
|
-
*
|
|
36
|
+
* @property onIsEndedChanged - Called when the sequence ends, or leaves that state.
|
|
37
|
+
* **The end is the counter leaving the last step, not arriving on it** — the last step
|
|
38
|
+
* is owed its beat like every other one, and a sequence paused on it has not ended. A
|
|
39
|
+
* looping sequence never ends, so never emits.
|
|
29
40
|
* @property onLooped - Called on each wrap, only while `loop` is `true`.
|
|
30
41
|
* @property onReachedFirstStep - Called when the position becomes `0`.
|
|
31
|
-
* @property onReachedLastStep - Called when the position becomes the last one.
|
|
42
|
+
* @property onReachedLastStep - Called when the position becomes the last one. This is
|
|
43
|
+
* the arrival, where `onIsEndedChanged` is the departure: on a playing sequence they are
|
|
44
|
+
* one beat apart.
|
|
32
45
|
*/
|
|
33
46
|
export type Props = PropsWithChildren<WithClassName<{
|
|
34
47
|
totalSteps?: number;
|
|
@@ -36,6 +49,7 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
36
49
|
step?: number;
|
|
37
50
|
defaultStep?: number;
|
|
38
51
|
play?: boolean;
|
|
52
|
+
defaultPlay?: boolean;
|
|
39
53
|
tempo?: number;
|
|
40
54
|
loop?: boolean;
|
|
41
55
|
onStepChanged?: (step: number, activeStep: number) => void;
|
|
@@ -44,7 +58,9 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
44
58
|
onLooped?: () => void;
|
|
45
59
|
onReachedFirstStep?: () => void;
|
|
46
60
|
onReachedLastStep?: () => void;
|
|
47
|
-
}
|
|
61
|
+
}>> & ViewportBehaviours<SequencerAction> & {
|
|
62
|
+
behavioursSuspended?: boolean;
|
|
63
|
+
};
|
|
48
64
|
/**
|
|
49
65
|
* A sequencer over its children, which it classifies and never moves.
|
|
50
66
|
*
|
|
@@ -57,7 +73,24 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
57
73
|
* modifiers, silently.
|
|
58
74
|
*
|
|
59
75
|
* Children that are not elements — text, whitespace — are rendered untouched and take no
|
|
60
|
-
* part: they carry no class, so they simply stay visible throughout.
|
|
76
|
+
* part: they carry no class, so they simply stay visible throughout. **A fragment is
|
|
77
|
+
* opened rather than counted**: it groups without rendering an element of its own, so
|
|
78
|
+
* there would be nothing to class and nothing to show for the step it would consume.
|
|
79
|
+
*
|
|
80
|
+
* @remarks
|
|
81
|
+
* **Viewport-driven behaviour is declared, not named by a prop.** `whenVisible` and
|
|
82
|
+
* `whenHidden` take a verb or a list of them, out of {@link SequencerAction} — `'play'`,
|
|
83
|
+
* `'jump-start'`, `'jump-by:1'` — each optionally suffixed by `':once'` and `':force'`.
|
|
84
|
+
* The old `playOnVisible`, `pauseOnHidden`, `resetOnVisible` and `resetOnHidden` are
|
|
85
|
+
* those four instructions written the long way: `whenHidden={['pause', 'jump-start']}`
|
|
86
|
+
* is the pair of them, and the order of a list is the order of execution. See
|
|
87
|
+
* `components/utils/viewport-behaviours` for the grammar, and the `visibility…` props
|
|
88
|
+
* for what « visible » means and how long it has to have been true.
|
|
89
|
+
*
|
|
90
|
+
* **Nothing surrenders here.** The layer lets a reader's hand switch an instruction off
|
|
91
|
+
* for the rest of the mount, and this component has no control for a hand to touch — so
|
|
92
|
+
* `':force'` has nothing to override, and the single `'playback'` domain is a formality.
|
|
93
|
+
* A gate still holds `'play'` back, which is a different brake. @see {@link SequencerDomain}
|
|
61
94
|
*
|
|
62
95
|
* ### On the root
|
|
63
96
|
* `--playing`, `--at-start`, `--at-end`, `--ended`, plus `data-step`, `data-active-step`,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Children, cloneElement, isValidElement, useEffect, useState } from 'react';
|
|
2
|
+
import { Children, cloneElement, Fragment, isValidElement, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { absoluteModulo } from '../../agnostic/numbers/absolute-modulo/index.js';
|
|
4
4
|
import { clamp } from '../../agnostic/numbers/clamp/index.js';
|
|
5
5
|
import { clss } from '../../agnostic/css/clss/index.js';
|
|
6
6
|
import { mergeClassNames, useChangeDispatch } from '../utils/index.js';
|
|
7
|
+
import { useViewportBehaviours } from '../utils/viewport-behaviours/index.js';
|
|
7
8
|
import { sequencer as publicClassName } from '../public-classnames.js';
|
|
8
9
|
import cssModule from './styles.module.css';
|
|
9
10
|
/**
|
|
@@ -37,6 +38,29 @@ function parseSteps(raw) {
|
|
|
37
38
|
return null;
|
|
38
39
|
return steps;
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* The children, with fragments opened.
|
|
43
|
+
*
|
|
44
|
+
* **`Children.toArray` does not go through a `<>…</>`**: a fragment is one element to it,
|
|
45
|
+
* and one that cannot be classed either — `cloneElement` on it would hand `className` to
|
|
46
|
+
* `React.Fragment`, which warns and drops it. So a consumer whose children arrive wrapped
|
|
47
|
+
* in one gets a sequence of exactly one step, stuck on position `0`.
|
|
48
|
+
*
|
|
49
|
+
* That consumer is not hypothetical: lm-link renders an article's `<nodelist>` through
|
|
50
|
+
* `lm-html`, which returns `<>{children}</>` — every sequence written in hyper-json
|
|
51
|
+
* therefore arrives wrapped. Opening them here rather than asking each consumer to
|
|
52
|
+
* flatten is the only place the fix belongs: a fragment is a grouping with no rendered
|
|
53
|
+
* element of its own, so it has no business consuming a step.
|
|
54
|
+
*/
|
|
55
|
+
function flattenChildren(nodes) {
|
|
56
|
+
return Children.toArray(nodes).flatMap((child) => {
|
|
57
|
+
if (!isValidElement(child) || child.type !== Fragment)
|
|
58
|
+
return [child];
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- a fragment's props are its children and its key, whatever else they are
|
|
60
|
+
const { children } = child.props;
|
|
61
|
+
return flattenChildren(children);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
40
64
|
/** The steps a child answers to: what it declares, or where it sits. */
|
|
41
65
|
function stepsOf(child, elementIndex) {
|
|
42
66
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- a React element's props are a record, whatever else they are
|
|
@@ -55,7 +79,24 @@ function stepsOf(child, elementIndex) {
|
|
|
55
79
|
* modifiers, silently.
|
|
56
80
|
*
|
|
57
81
|
* Children that are not elements — text, whitespace — are rendered untouched and take no
|
|
58
|
-
* part: they carry no class, so they simply stay visible throughout.
|
|
82
|
+
* part: they carry no class, so they simply stay visible throughout. **A fragment is
|
|
83
|
+
* opened rather than counted**: it groups without rendering an element of its own, so
|
|
84
|
+
* there would be nothing to class and nothing to show for the step it would consume.
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* **Viewport-driven behaviour is declared, not named by a prop.** `whenVisible` and
|
|
88
|
+
* `whenHidden` take a verb or a list of them, out of {@link SequencerAction} — `'play'`,
|
|
89
|
+
* `'jump-start'`, `'jump-by:1'` — each optionally suffixed by `':once'` and `':force'`.
|
|
90
|
+
* The old `playOnVisible`, `pauseOnHidden`, `resetOnVisible` and `resetOnHidden` are
|
|
91
|
+
* those four instructions written the long way: `whenHidden={['pause', 'jump-start']}`
|
|
92
|
+
* is the pair of them, and the order of a list is the order of execution. See
|
|
93
|
+
* `components/utils/viewport-behaviours` for the grammar, and the `visibility…` props
|
|
94
|
+
* for what « visible » means and how long it has to have been true.
|
|
95
|
+
*
|
|
96
|
+
* **Nothing surrenders here.** The layer lets a reader's hand switch an instruction off
|
|
97
|
+
* for the rest of the mount, and this component has no control for a hand to touch — so
|
|
98
|
+
* `':force'` has nothing to override, and the single `'playback'` domain is a formality.
|
|
99
|
+
* A gate still holds `'play'` back, which is a different brake. @see {@link SequencerDomain}
|
|
59
100
|
*
|
|
60
101
|
* ### On the root
|
|
61
102
|
* `--playing`, `--at-start`, `--at-end`, `--ended`, plus `data-step`, `data-active-step`,
|
|
@@ -73,11 +114,13 @@ function stepsOf(child, elementIndex) {
|
|
|
73
114
|
* therefore `--is-first` at 1 and `--not-first` at 6, and the answer is the same on every
|
|
74
115
|
* lap without anything being reset.
|
|
75
116
|
*/
|
|
76
|
-
export const Sequencer = ({ totalSteps, stepMap, step, defaultStep, play, tempo = 60, loop, onStepChanged, onIsPlayingChanged, onIsEndedChanged, onLooped, onReachedFirstStep, onReachedLastStep, className, children }) => {
|
|
117
|
+
export const Sequencer = ({ totalSteps, stepMap, step, defaultStep, play, defaultPlay, tempo = 60, loop, onStepChanged, onIsPlayingChanged, onIsEndedChanged, onLooped, onReachedFirstStep, onReachedLastStep, behavioursSuspended, visibilityThreshold, visibilityRoot, visibilityRootMargin, visibilityOnAfterMs, visibilityOffAfterMs, whenVisible, whenHidden, onVisibilityChanged, className, children }) => {
|
|
77
118
|
const [internalStep, setInternalStep] = useState(step ?? defaultStep ?? 0);
|
|
119
|
+
const [internalPlay, setInternalPlay] = useState(defaultPlay ?? false);
|
|
78
120
|
const [hasLapped, setHasLapped] = useState(0);
|
|
121
|
+
const rootRef = useRef(null);
|
|
79
122
|
// Children, split once: what takes part and what merely renders.
|
|
80
|
-
const childrenArr =
|
|
123
|
+
const childrenArr = flattenChildren(children);
|
|
81
124
|
const elements = childrenArr.filter(isValidElement);
|
|
82
125
|
const stepsCount = Math.max(totalSteps ?? elements.length, 0);
|
|
83
126
|
// The two numbers
|
|
@@ -88,11 +131,14 @@ export const Sequencer = ({ totalSteps, stepMap, step, defaultStep, play, tempo
|
|
|
88
131
|
: clamp(rawStep, 0, stepsCount - 1))
|
|
89
132
|
: 0;
|
|
90
133
|
const activeStep = stepMap?.[position] ?? position;
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
134
|
+
// **The end is the counter leaving the last step, not arriving on it.** The last step
|
|
135
|
+
// is owed its beat like every other one, so the counter runs one past the end while
|
|
136
|
+
// the position clamps to it — which is also what keeps the whole thing derived: nothing
|
|
137
|
+
// has to be unset when `loop` or `step` changes under it, and `onReachedLastStep` stays
|
|
138
|
+
// the arrival that this is not. A sequence merely paused on the last step has not
|
|
139
|
+
// ended, and a consumer driving `step` says so by naming the position after the last.
|
|
140
|
+
const isEnded = loop !== true && stepsCount > 0 && rawStep >= stepsCount;
|
|
141
|
+
const isPlaying = (play ?? internalPlay) && !isEnded;
|
|
96
142
|
useEffect(() => {
|
|
97
143
|
if (!isPlaying || step !== undefined || stepsCount <= 0)
|
|
98
144
|
return;
|
|
@@ -110,6 +156,70 @@ export const Sequencer = ({ totalSteps, stepMap, step, defaultStep, play, tempo
|
|
|
110
156
|
setHasLapped(lap);
|
|
111
157
|
onLooped?.();
|
|
112
158
|
}, [lap, loop]);
|
|
159
|
+
// Viewport behaviours
|
|
160
|
+
// A jump names a position and lands on it **within the current lap**: the counter is
|
|
161
|
+
// absolute, so setting it to a bare position on a looping sequence would count as a
|
|
162
|
+
// wrap backwards and fire `onLooped` for a move nobody made. `jump-by` is left alone
|
|
163
|
+
// on purpose — stepping past the last position really is a wrap, and says so.
|
|
164
|
+
const jumpToPosition = (target) => {
|
|
165
|
+
if (step !== undefined || stepsCount <= 0)
|
|
166
|
+
return;
|
|
167
|
+
const resolved = target < 0 ? stepsCount + target : target;
|
|
168
|
+
const bounded = loop === true
|
|
169
|
+
? absoluteModulo(resolved, stepsCount)
|
|
170
|
+
: clamp(resolved, 0, stepsCount - 1);
|
|
171
|
+
setInternalStep(lap * stepsCount + bounded);
|
|
172
|
+
};
|
|
173
|
+
const jumpBy = (offset) => {
|
|
174
|
+
if (step !== undefined || stepsCount <= 0)
|
|
175
|
+
return;
|
|
176
|
+
setInternalStep(current => current + offset);
|
|
177
|
+
};
|
|
178
|
+
// What each verb does. Rebuilt on every render — it closes over the setters — which is
|
|
179
|
+
// why the generic layer reads it through a ref rather than a dependency list.
|
|
180
|
+
//
|
|
181
|
+
// `play` and `pause` need no guard against a controlled `play`: the effective state
|
|
182
|
+
// reads the prop first, so the internal one they write is simply never consulted.
|
|
183
|
+
const actions = {
|
|
184
|
+
play: { kind: 'start', domain: 'playback', run: () => setInternalPlay(true) },
|
|
185
|
+
pause: { kind: 'stop', domain: 'playback', run: () => setInternalPlay(false) },
|
|
186
|
+
// A jump starts nothing on its own — it moves a counter, playing or not — so a gate
|
|
187
|
+
// has no reason to hold it back.
|
|
188
|
+
'jump-to': {
|
|
189
|
+
kind: 'stop',
|
|
190
|
+
domain: 'playback',
|
|
191
|
+
run: arg => {
|
|
192
|
+
const target = Number(arg);
|
|
193
|
+
if (!Number.isFinite(target))
|
|
194
|
+
return;
|
|
195
|
+
jumpToPosition(target);
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
'jump-start': { kind: 'stop', domain: 'playback', run: () => jumpToPosition(0) },
|
|
199
|
+
'jump-end': { kind: 'stop', domain: 'playback', run: () => jumpToPosition(-1) },
|
|
200
|
+
'jump-by': {
|
|
201
|
+
kind: 'stop',
|
|
202
|
+
domain: 'playback',
|
|
203
|
+
run: arg => {
|
|
204
|
+
const offset = Number(arg);
|
|
205
|
+
if (!Number.isFinite(offset))
|
|
206
|
+
return;
|
|
207
|
+
jumpBy(offset);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
// The surrender half of the result is dropped, and that is the whole of what this
|
|
212
|
+
// component's lack of controls changes: nothing here can be taken over by hand.
|
|
213
|
+
useViewportBehaviours(rootRef, {
|
|
214
|
+
visibilityThreshold,
|
|
215
|
+
visibilityRoot,
|
|
216
|
+
visibilityRootMargin,
|
|
217
|
+
visibilityOnAfterMs,
|
|
218
|
+
visibilityOffAfterMs,
|
|
219
|
+
whenVisible,
|
|
220
|
+
whenHidden,
|
|
221
|
+
onVisibilityChanged
|
|
222
|
+
}, actions, behavioursSuspended === true);
|
|
113
223
|
// State dispatch
|
|
114
224
|
useChangeDispatch(position, () => onStepChanged?.(position, activeStep));
|
|
115
225
|
useChangeDispatch(isPlaying, onIsPlayingChanged);
|
|
@@ -137,7 +247,7 @@ export const Sequencer = ({ totalSteps, stepMap, step, defaultStep, play, tempo
|
|
|
137
247
|
return positions;
|
|
138
248
|
};
|
|
139
249
|
let elementIndex = -1;
|
|
140
|
-
return _jsx("div", { className: rootClss, "data-step": position, "data-active-step": activeStep, "data-total-steps": stepsCount, "data-tempo": tempo, children: childrenArr.map((child, childPos) => {
|
|
250
|
+
return _jsx("div", { ref: rootRef, className: rootClss, "data-step": position, "data-active-step": activeStep, "data-total-steps": stepsCount, "data-tempo": tempo, children: childrenArr.map((child, childPos) => {
|
|
141
251
|
if (!isValidElement(child))
|
|
142
252
|
return child;
|
|
143
253
|
elementIndex += 1;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The verbs a sequence answers to, as the table keys them.
|
|
3
|
+
*
|
|
4
|
+
* `jump-to` and `jump-by` are the two taking an argument, and the table is keyed by the
|
|
5
|
+
* verb alone — the argument is parsed out of the instruction before the lookup.
|
|
6
|
+
*
|
|
7
|
+
* The family is `Video`'s, word for word: a sequence and a player move a counter, and
|
|
8
|
+
* two vocabularies for that one gesture is exactly what the viewport-behaviours layer
|
|
9
|
+
* exists to stop. `jump-start` is the old `resetOnVisible` under the shared name.
|
|
10
|
+
*/
|
|
11
|
+
export declare const SEQUENCER_VERBS: readonly ["play", "pause", "jump-to", "jump-start", "jump-end", "jump-by"];
|
|
12
|
+
export type SequencerVerb = typeof SEQUENCER_VERBS[number];
|
|
13
|
+
/**
|
|
14
|
+
* How to read the argument of each verb that takes one.
|
|
15
|
+
*
|
|
16
|
+
* **Exported because a consumer has to validate what it is handed**, and a type gives a
|
|
17
|
+
* runtime validator nothing to compare against: lm-link reads an article's props out of
|
|
18
|
+
* static XML and has to reject `'jump-to:banana'` before it reaches the component.
|
|
19
|
+
*
|
|
20
|
+
* A digit string, and deliberately not `Number`: that would take `'1e3'` and `'0x10'`,
|
|
21
|
+
* which nobody means to write in an article.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SEQUENCER_VERB_ARGUMENTS: {
|
|
24
|
+
readonly 'jump-to': (arg: string) => boolean;
|
|
25
|
+
readonly 'jump-by': (arg: string) => boolean;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* The instructions a consumer writes in `whenVisible` / `whenHidden`.
|
|
29
|
+
*
|
|
30
|
+
* **A jump names a position, never an active step** — the counter, the thing `step` and
|
|
31
|
+
* `defaultStep` already name. What that position *means* stays `stepMap`'s answer, which
|
|
32
|
+
* is the one place the component's two numbers could be confused for one another.
|
|
33
|
+
*
|
|
34
|
+
* `'jump-to:2'` goes to position 2, and **a negative value counts from the end**:
|
|
35
|
+
* `'jump-to:-1'` is the last position, `-1` rather than `-0` because `-0 === 0` in
|
|
36
|
+
* JavaScript and would collide with the start. `'jump-start'` and `'jump-end'` are the
|
|
37
|
+
* shorthands for `'jump-to:0'` and `'jump-to:-1'`.
|
|
38
|
+
*
|
|
39
|
+
* `'jump-by:1'` is the next position and `'jump-by:-1'` the previous one — signed and
|
|
40
|
+
* relative, where `jump-to` is absolute. The two forms of `-1` therefore do not say the
|
|
41
|
+
* same thing, which is the price of keeping one family rather than adding `next` and
|
|
42
|
+
* `prev` beside it.
|
|
43
|
+
*
|
|
44
|
+
* Every one of them takes the `':once'` and `':force'` suffixes, which are the generic
|
|
45
|
+
* layer's and are not restated here.
|
|
46
|
+
*/
|
|
47
|
+
export type SequencerAction = Exclude<SequencerVerb, 'jump-to' | 'jump-by'> | `jump-to:${number}` | `jump-by:${number}`;
|
|
48
|
+
/**
|
|
49
|
+
* What a verb competes with — one domain, and it is a formality.
|
|
50
|
+
*
|
|
51
|
+
* **This component has no controls**: nothing to click, so nothing a reader can take
|
|
52
|
+
* over and nothing that ever surrenders. The field is part of {@link ActionSpec} and is
|
|
53
|
+
* declared honestly rather than split into domains no hand could ever tell apart. The
|
|
54
|
+
* consequence is that `':force'` has no trigger here — it overrides a surrender, and
|
|
55
|
+
* there are none.
|
|
56
|
+
*/
|
|
57
|
+
export type SequencerDomain = 'playback';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The verbs a sequence answers to, as the table keys them.
|
|
3
|
+
*
|
|
4
|
+
* `jump-to` and `jump-by` are the two taking an argument, and the table is keyed by the
|
|
5
|
+
* verb alone — the argument is parsed out of the instruction before the lookup.
|
|
6
|
+
*
|
|
7
|
+
* The family is `Video`'s, word for word: a sequence and a player move a counter, and
|
|
8
|
+
* two vocabularies for that one gesture is exactly what the viewport-behaviours layer
|
|
9
|
+
* exists to stop. `jump-start` is the old `resetOnVisible` under the shared name.
|
|
10
|
+
*/
|
|
11
|
+
export const SEQUENCER_VERBS = [
|
|
12
|
+
'play',
|
|
13
|
+
'pause',
|
|
14
|
+
'jump-to',
|
|
15
|
+
'jump-start',
|
|
16
|
+
'jump-end',
|
|
17
|
+
'jump-by'
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* How to read the argument of each verb that takes one.
|
|
21
|
+
*
|
|
22
|
+
* **Exported because a consumer has to validate what it is handed**, and a type gives a
|
|
23
|
+
* runtime validator nothing to compare against: lm-link reads an article's props out of
|
|
24
|
+
* static XML and has to reject `'jump-to:banana'` before it reaches the component.
|
|
25
|
+
*
|
|
26
|
+
* A digit string, and deliberately not `Number`: that would take `'1e3'` and `'0x10'`,
|
|
27
|
+
* which nobody means to write in an article.
|
|
28
|
+
*/
|
|
29
|
+
export const SEQUENCER_VERB_ARGUMENTS = {
|
|
30
|
+
'jump-to': (arg) => /^-?\d+$/v.test(arg),
|
|
31
|
+
'jump-by': (arg) => /^-?\d+$/v.test(arg)
|
|
32
|
+
};
|
package/components/index.d.ts
CHANGED
|
@@ -3,10 +3,10 @@ export * as button from './Button/index.js'
|
|
|
3
3
|
export * as clippable from './Clippable/index.js'
|
|
4
4
|
export * as disclaimer from './Disclaimer/index.js'
|
|
5
5
|
export * as drawer from './Drawer/index.js'
|
|
6
|
-
export * as eventListener from './EventListener/index.js'
|
|
7
6
|
export * as gallery from './Gallery/index.js'
|
|
8
|
-
export * as image from './Image/index.js'
|
|
9
7
|
export * as iframe from './Iframe/index.js'
|
|
8
|
+
export * as eventListener from './EventListener/index.js'
|
|
9
|
+
export * as image from './Image/index.js'
|
|
10
10
|
export * as input from './Input/index.js'
|
|
11
11
|
export * as intersectionObserver from './IntersectionObserver/index.js'
|
|
12
12
|
export * as jsonEditor from './JsonEditor/index.js'
|
|
@@ -15,8 +15,8 @@ export * as listLoader from './ListLoader/index.js'
|
|
|
15
15
|
export * as overlayer from './Overlayer/index.js'
|
|
16
16
|
export * as paginator from './Paginator/index.js'
|
|
17
17
|
export * as resizeObserver from './ResizeObserver/index.js'
|
|
18
|
-
export * as scrllgngn from './Scrllgngn/index.js'
|
|
19
18
|
export * as scrollListener from './ScrollListener/index.js'
|
|
19
|
+
export * as scrllgngn from './Scrllgngn/index.js'
|
|
20
20
|
export * as select from './Select/index.js'
|
|
21
21
|
export * as sequencer from './Sequencer/index.js'
|
|
22
22
|
export * as shadowRoot from './ShadowRoot/index.js'
|
package/components/index.js
CHANGED
|
@@ -3,10 +3,10 @@ export * as button from './Button/index.js'
|
|
|
3
3
|
export * as clippable from './Clippable/index.js'
|
|
4
4
|
export * as disclaimer from './Disclaimer/index.js'
|
|
5
5
|
export * as drawer from './Drawer/index.js'
|
|
6
|
-
export * as eventListener from './EventListener/index.js'
|
|
7
6
|
export * as gallery from './Gallery/index.js'
|
|
8
|
-
export * as image from './Image/index.js'
|
|
9
7
|
export * as iframe from './Iframe/index.js'
|
|
8
|
+
export * as eventListener from './EventListener/index.js'
|
|
9
|
+
export * as image from './Image/index.js'
|
|
10
10
|
export * as input from './Input/index.js'
|
|
11
11
|
export * as intersectionObserver from './IntersectionObserver/index.js'
|
|
12
12
|
export * as jsonEditor from './JsonEditor/index.js'
|
|
@@ -15,8 +15,8 @@ export * as listLoader from './ListLoader/index.js'
|
|
|
15
15
|
export * as overlayer from './Overlayer/index.js'
|
|
16
16
|
export * as paginator from './Paginator/index.js'
|
|
17
17
|
export * as resizeObserver from './ResizeObserver/index.js'
|
|
18
|
-
export * as scrllgngn from './Scrllgngn/index.js'
|
|
19
18
|
export * as scrollListener from './ScrollListener/index.js'
|
|
19
|
+
export * as scrllgngn from './Scrllgngn/index.js'
|
|
20
20
|
export * as select from './Select/index.js'
|
|
21
21
|
export * as sequencer from './Sequencer/index.js'
|
|
22
22
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * as copy from './copy/index.js'
|
|
2
1
|
export * as download from './download/index.js'
|
|
2
|
+
export * as copy from './copy/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 copy from './copy/index.js'
|
|
2
1
|
export * as download from './download/index.js'
|
|
2
|
+
export * as copy from './copy/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 exists from './exists/index.js'
|
|
4
3
|
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
4
|
+
export * as exists from './exists/index.js'
|
|
5
5
|
export * as getMetadata from './get-metadata/index.js'
|
|
6
6
|
export * as getPermissions from './get-permissions/index.js'
|
|
7
7
|
export * as move from './move/index.js'
|
|
8
8
|
export * as remove from './remove/index.js'
|
|
9
|
-
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
10
9
|
export * as stat from './stat/index.js'
|
|
11
|
-
export * as
|
|
10
|
+
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
12
11
|
export * as upload from './upload/index.js'
|
|
12
|
+
export * as updateMetadata from './update-metadata/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 exists from './exists/index.js'
|
|
4
3
|
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
4
|
+
export * as exists from './exists/index.js'
|
|
5
5
|
export * as getMetadata from './get-metadata/index.js'
|
|
6
6
|
export * as getPermissions from './get-permissions/index.js'
|
|
7
7
|
export * as move from './move/index.js'
|
|
8
8
|
export * as remove from './remove/index.js'
|
|
9
|
-
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
10
9
|
export * as stat from './stat/index.js'
|
|
11
|
-
export * as
|
|
10
|
+
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
12
11
|
export * as upload from './upload/index.js'
|
|
12
|
+
export * as updateMetadata from './update-metadata/index.js'
|
|
@@ -5,7 +5,7 @@ export * as existsFile from './exists-file/index.js'
|
|
|
5
5
|
export * as listDir from './list-dir/index.js'
|
|
6
6
|
export * as moveDir from './move-dir/index.js'
|
|
7
7
|
export * as moveFile from './move-file/index.js'
|
|
8
|
-
export * as removeDir from './remove-dir/index.js'
|
|
9
8
|
export * as removeFile from './remove-file/index.js'
|
|
9
|
+
export * as removeDir from './remove-dir/index.js'
|
|
10
10
|
export * as statFile from './stat-file/index.js'
|
|
11
11
|
export * as uploadFile from './upload-file/index.js'
|
|
@@ -5,7 +5,7 @@ export * as existsFile from './exists-file/index.js'
|
|
|
5
5
|
export * as listDir from './list-dir/index.js'
|
|
6
6
|
export * as moveDir from './move-dir/index.js'
|
|
7
7
|
export * as moveFile from './move-file/index.js'
|
|
8
|
-
export * as removeDir from './remove-dir/index.js'
|
|
9
8
|
export * as removeFile from './remove-file/index.js'
|
|
9
|
+
export * as removeDir from './remove-dir/index.js'
|
|
10
10
|
export * as statFile from './stat-file/index.js'
|
|
11
11
|
export * as uploadFile from './upload-file/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
|
-
export * as download from './download/index.js'
|
|
3
2
|
export * as exists from './exists/index.js'
|
|
3
|
+
export * as download from './download/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
5
|
export * as remove from './remove/index.js'
|
|
6
6
|
export * as stat from './stat/index.js'
|
package/node/ftps/file/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
|
-
export * as download from './download/index.js'
|
|
3
2
|
export * as exists from './exists/index.js'
|
|
3
|
+
export * as download from './download/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
5
|
export * as remove from './remove/index.js'
|
|
6
6
|
export * as stat from './stat/index.js'
|
package/node/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export * as googleCloud from './@google-cloud/index.js'
|
|
|
5
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
|
-
export * as ftps from './ftps/index.js'
|
|
9
8
|
export * as images from './images/index.js'
|
|
10
9
|
export * as process from './process/index.js'
|
|
10
|
+
export * as ftps from './ftps/index.js'
|
|
11
11
|
export * as sftp from './sftp/index.js'
|
package/node/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export * as googleCloud from './@google-cloud/index.js'
|
|
|
5
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
|
-
export * as ftps from './ftps/index.js'
|
|
9
8
|
export * as images from './images/index.js'
|
|
10
9
|
export * as process from './process/index.js'
|
|
10
|
+
export * as ftps from './ftps/index.js'
|
|
11
11
|
export * as sftp from './sftp/index.js'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
2
|
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
|
-
export * as remove from './remove/index.js'
|
|
5
4
|
export * as move from './move/index.js'
|
|
6
|
-
export * as
|
|
5
|
+
export * as remove from './remove/index.js'
|
|
7
6
|
export * as stat from './stat/index.js'
|
|
7
|
+
export * as upload from './upload/index.js'
|
package/node/sftp/file/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
2
|
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
|
-
export * as remove from './remove/index.js'
|
|
5
4
|
export * as move from './move/index.js'
|
|
6
|
-
export * as
|
|
5
|
+
export * as remove from './remove/index.js'
|
|
7
6
|
export * as stat from './stat/index.js'
|
|
7
|
+
export * as upload from './upload/index.js'
|
package/node/sftp/index.d.ts
CHANGED
package/node/sftp/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design-edito/tools",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.24",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Maxime Fabas",
|
|
6
6
|
"license": "ISC",
|
|
@@ -1558,6 +1558,10 @@
|
|
|
1558
1558
|
"./components/Sequencer/index.js": {
|
|
1559
1559
|
"import": "./components/Sequencer/index.js"
|
|
1560
1560
|
},
|
|
1561
|
+
"./components/Sequencer/types.js": {
|
|
1562
|
+
"import": "./components/Sequencer/types.js",
|
|
1563
|
+
"types": "./components/Sequencer/types.d.ts"
|
|
1564
|
+
},
|
|
1561
1565
|
"./components/ShadowRoot": {
|
|
1562
1566
|
"import": "./components/ShadowRoot/index.js",
|
|
1563
1567
|
"types": "./components/ShadowRoot/index.d.ts"
|