@design-edito/tools 0.4.23 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agnostic/arrays/find-duplicates/index.d.ts +1 -1
- package/agnostic/arrays/find-duplicates/index.js +3 -2
- package/agnostic/arrays/is-array-of/index.d.ts +1 -1
- package/agnostic/arrays/is-array-of/index.js +3 -1
- package/agnostic/arrays/make/index.d.ts +1 -1
- package/agnostic/arrays/random-pick/index.js +2 -1
- package/agnostic/arrays/shuffle/index.js +1 -1
- package/agnostic/booleans/is-falsy/index.d.ts +3 -3
- package/agnostic/booleans/is-falsy/index.js +2 -3
- package/agnostic/colors/channels/index.d.ts +16 -16
- package/agnostic/colors/channels/index.js +15 -15
- package/agnostic/colors/contrast/index.d.ts +6 -6
- package/agnostic/colors/contrast/index.js +6 -8
- package/agnostic/colors/contrast/index.test.js +1 -1
- package/agnostic/colors/convert/index.d.ts +43 -43
- package/agnostic/colors/convert/index.js +60 -55
- package/agnostic/colors/distance/index.d.ts +5 -5
- package/agnostic/colors/distance/index.js +5 -4
- package/agnostic/colors/grayscale/index.d.ts +3 -3
- package/agnostic/colors/grayscale/index.js +3 -3
- package/agnostic/colors/index.d.ts +3 -3
- package/agnostic/colors/index.js +3 -3
- package/agnostic/colors/invert/index.d.ts +4 -4
- package/agnostic/colors/invert/index.js +3 -3
- package/agnostic/colors/lerp/index.d.ts +6 -7
- package/agnostic/colors/lerp/index.js +5 -6
- package/agnostic/colors/luminance/index.d.ts +4 -4
- package/agnostic/colors/luminance/index.js +3 -3
- package/agnostic/colors/palette/index.d.ts +3 -3
- package/agnostic/colors/palette/index.js +4 -3
- package/agnostic/colors/rotate/index.d.ts +4 -4
- package/agnostic/colors/rotate/index.js +4 -4
- package/agnostic/colors/tidy/index.d.ts +2 -2
- package/agnostic/colors/tidy/index.js +2 -2
- package/agnostic/colors/typechecks/index.d.ts +21 -21
- package/agnostic/colors/typechecks/index.js +22 -21
- package/agnostic/colors/types.d.ts +33 -33
- package/agnostic/css/bem/index.d.ts +11 -11
- package/agnostic/css/bem/index.js +9 -8
- package/agnostic/css/clss/index.d.ts +1 -1
- package/agnostic/css/clss/index.js +1 -1
- package/agnostic/css/index.d.ts +1 -1
- package/agnostic/css/index.js +1 -1
- package/agnostic/css/is-valid-css-class-name/index.d.ts +2 -2
- package/agnostic/css/is-valid-css-class-name/index.js +3 -3
- package/agnostic/css/scale/index.d.ts +18 -18
- package/agnostic/css/scale/index.js +18 -18
- package/agnostic/css/styles-set/index.d.ts +1 -1
- package/agnostic/css/styles-set/index.js +0 -2
- package/agnostic/errors/register/index.d.ts +1 -1
- package/agnostic/errors/register/index.js +3 -0
- package/agnostic/errors/unknown-to-string/index.d.ts +2 -2
- package/agnostic/errors/unknown-to-string/index.js +2 -3
- package/agnostic/html/deep-select/index.d.ts +3 -3
- package/agnostic/html/deep-select/index.js +11 -7
- package/agnostic/html/get-node-ancestors/index.d.ts +3 -3
- package/agnostic/html/get-node-ancestors/index.js +3 -3
- package/agnostic/html/get-position-inside-parent/index.d.ts +2 -2
- package/agnostic/html/get-position-inside-parent/index.js +2 -2
- package/agnostic/html/hyper-json/cast/index.d.ts +1 -1
- package/agnostic/html/hyper-json/cast/index.js +6 -5
- package/agnostic/html/hyper-json/method/index.d.ts +2 -2
- package/agnostic/html/hyper-json/serialize/index.d.ts +1 -1
- package/agnostic/html/hyper-json/serialize/index.js +9 -5
- package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +0 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +1 -2
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjparse/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.js +4 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +6 -6
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +6 -6
- package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +2 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +3 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +3 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +4 -2
- package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +5 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +3 -2
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +1 -1
- package/agnostic/html/hyper-json/smart-tags/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/any/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/array/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/get/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +3 -1
- 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/html/hyper-json/smart-tags/isolated/nodelist/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/isolated/null/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/record/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +3 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +2 -2
- package/agnostic/html/hyper-json/transformer/index.d.ts +5 -5
- package/agnostic/html/hyper-json/tree/index.d.ts +1 -1
- package/agnostic/html/hyper-json/tree/index.js +14 -8
- package/agnostic/html/hyper-json/types/index.d.ts +11 -11
- package/agnostic/html/hyper-json/utils/index.d.ts +3 -3
- package/agnostic/html/hyper-json/utils/index.js +8 -3
- package/agnostic/html/index.d.ts +4 -4
- package/agnostic/html/index.js +4 -4
- package/agnostic/html/insert-node/index.d.ts +4 -4
- package/agnostic/html/insert-node/index.js +4 -4
- package/agnostic/html/replace-in-element/index.d.ts +3 -3
- package/agnostic/html/replace-in-element/index.js +4 -4
- package/agnostic/html/selector-to-element/index.d.ts +2 -2
- package/agnostic/html/selector-to-element/index.js +11 -11
- package/agnostic/html/string-to-nodes/index.d.ts +3 -3
- package/agnostic/html/string-to-nodes/index.js +3 -3
- package/agnostic/html/watch-selection/index.d.ts +4 -5
- package/agnostic/html/watch-selection/index.js +5 -6
- package/agnostic/misc/assert/index.js +3 -1
- package/agnostic/misc/cast/index.d.ts +16 -16
- package/agnostic/misc/cast/index.js +18 -18
- package/agnostic/misc/connection/index.d.ts +5 -5
- package/agnostic/misc/connection/index.js +4 -2
- package/agnostic/misc/crawler/index.d.ts +18 -18
- package/agnostic/misc/crawler/index.js +10 -9
- package/agnostic/misc/crawler/index.test.js +2 -2
- package/agnostic/misc/crossenv/detect-runtime/index.d.ts +1 -1
- package/agnostic/misc/crossenv/detect-runtime/index.js +10 -11
- package/agnostic/misc/crossenv/window/index.d.ts +6 -6
- package/agnostic/misc/crossenv/window/index.js +6 -5
- package/agnostic/misc/data-size/index.js +2 -0
- package/agnostic/misc/index.d.ts +2 -2
- package/agnostic/misc/index.js +2 -2
- package/agnostic/misc/is-constructor-function/index.d.ts +2 -2
- package/agnostic/misc/is-constructor-function/index.js +3 -2
- package/agnostic/misc/is-constructor-function/index.test.js +2 -2
- package/agnostic/misc/is-nullish/index.d.ts +5 -5
- package/agnostic/misc/is-nullish/index.js +5 -4
- package/agnostic/misc/logs/index.d.ts +1 -1
- package/agnostic/misc/logs/index.js +1 -1
- package/agnostic/misc/logs/logger/index.js +2 -2
- package/agnostic/misc/lorem-ipsum/index.js +4 -4
- package/agnostic/misc/normalize-extension/index.d.ts +3 -3
- package/agnostic/misc/normalize-extension/index.js +4 -4
- package/agnostic/misc/outcome/index.d.ts +14 -14
- package/agnostic/misc/outcome/index.js +6 -4
- package/agnostic/numbers/absolute-modulo/index.d.ts +3 -3
- package/agnostic/numbers/absolute-modulo/index.js +3 -3
- package/agnostic/numbers/approximate-rational/index.d.ts +6 -6
- package/agnostic/numbers/approximate-rational/index.js +9 -9
- package/agnostic/numbers/clamp/index.d.ts +4 -4
- package/agnostic/numbers/clamp/index.js +4 -4
- package/agnostic/numbers/geometric-progressions/index.d.ts +5 -5
- package/agnostic/numbers/geometric-progressions/index.js +7 -5
- package/agnostic/numbers/geometric-progressions/index.test.js +2 -2
- package/agnostic/numbers/index.d.ts +1 -1
- package/agnostic/numbers/index.js +1 -1
- package/agnostic/numbers/interpolate/index.d.ts +8 -8
- package/agnostic/numbers/interpolate/index.js +8 -8
- package/agnostic/numbers/round/index.d.ts +9 -9
- package/agnostic/numbers/round/index.js +9 -9
- package/agnostic/objects/deep-get-property/index.d.ts +4 -4
- package/agnostic/objects/deep-get-property/index.js +3 -3
- package/agnostic/objects/enums/is-in-enum/index.d.ts +3 -3
- package/agnostic/objects/enums/is-in-enum/index.js +3 -3
- package/agnostic/objects/flatten-getters/index.d.ts +2 -2
- package/agnostic/objects/flatten-getters/index.js +3 -2
- package/agnostic/objects/index.d.ts +2 -2
- package/agnostic/objects/index.js +2 -2
- package/agnostic/objects/is-object/index.d.ts +4 -4
- package/agnostic/objects/is-object/index.js +4 -4
- package/agnostic/objects/is-record/index.d.ts +2 -2
- package/agnostic/objects/is-record/index.js +2 -2
- package/agnostic/objects/record-format/index.d.ts +9 -9
- package/agnostic/objects/record-format/index.js +8 -3
- package/agnostic/objects/record-map/index.d.ts +4 -4
- package/agnostic/objects/record-map/index.js +5 -3
- package/agnostic/objects/sort-keys/index.d.ts +3 -3
- package/agnostic/objects/sort-keys/index.js +4 -3
- package/agnostic/objects/validation/index.d.ts +3 -3
- package/agnostic/objects/validation/index.js +4 -3
- package/agnostic/optim/memoize/index.d.ts +2 -2
- package/agnostic/optim/memoize/index.js +4 -2
- package/agnostic/optim/throttle-debounce/index.d.ts +2 -2
- package/agnostic/optim/throttle-debounce/index.js +7 -6
- package/agnostic/optim/throttle-debounce/types.d.ts +2 -1
- package/agnostic/random/random/index.d.ts +7 -8
- package/agnostic/random/random/index.js +3 -3
- package/agnostic/random/uuid/index.d.ts +6 -6
- package/agnostic/random/uuid/index.js +6 -6
- package/agnostic/regexps/index.d.ts +30 -60
- package/agnostic/regexps/index.js +27 -26
- package/agnostic/sanitization/file-name/index.d.ts +3 -3
- package/agnostic/sanitization/file-name/index.js +10 -10
- package/agnostic/sanitization/html/index.d.ts +6 -6
- package/agnostic/sanitization/html/index.js +9 -6
- package/agnostic/sanitization/index.d.ts +1 -1
- package/agnostic/sanitization/index.js +1 -1
- package/agnostic/sanitization/path/index.d.ts +2 -2
- package/agnostic/sanitization/path/index.js +2 -2
- package/agnostic/sanitization/user-input/index.js +1 -0
- package/agnostic/strings/char-codes/index.js +2 -6
- package/agnostic/strings/index.d.ts +1 -1
- package/agnostic/strings/index.js +1 -1
- package/agnostic/strings/normalize-indent/index.js +2 -2
- package/agnostic/strings/parse-table/index.d.ts +13 -13
- package/agnostic/strings/parse-table/index.js +31 -16
- package/agnostic/strings/replace-all/index.d.ts +1 -1
- package/agnostic/strings/replace-all/index.js +1 -0
- package/agnostic/strings/to-alphanum/index.js +2 -2
- package/agnostic/strings/trim/index.js +2 -2
- package/agnostic/time/dates/format-date/index.js +3 -1
- package/agnostic/time/dates/index.d.ts +1 -0
- package/agnostic/time/dates/index.js +1 -0
- package/agnostic/time/dates/to-french-republican/index.d.ts +16 -0
- package/agnostic/time/dates/to-french-republican/index.js +82 -0
- package/agnostic/time/dates/to-french-republican/index.test.d.ts +1 -0
- package/agnostic/time/dates/to-french-republican/index.test.js +112 -0
- package/agnostic/time/dates/to-french-republican/types.d.ts +91 -0
- package/agnostic/time/dates/to-french-republican/types.js +47 -0
- package/agnostic/time/dates/to-french-republican/utils.d.ts +32 -0
- package/agnostic/time/dates/to-french-republican/utils.js +155 -0
- package/agnostic/time/duration/index.js +2 -0
- package/agnostic/time/index.d.ts +2 -2
- package/agnostic/time/index.js +2 -2
- package/agnostic/time/timeout/index.js +9 -9
- package/agnostic/time/transitions/index.js +8 -7
- package/components/BeforeAfter/index.controlled.js +1 -0
- package/components/BeforeAfter/index.js +4 -0
- package/components/Button/index.d.ts +1 -1
- package/components/Clippable/index.js +1 -0
- package/components/Drawer/index.js +1 -1
- package/components/Gallery/index.js +2 -1
- package/components/Gallery/utils.js +5 -1
- package/components/Iframe/index.js +3 -0
- package/components/Image/index.js +2 -0
- package/components/Input/index.controlled.js +3 -2
- package/components/IntersectionObserver/index.js +5 -2
- package/components/JsonEditor/index.js +1 -1
- package/components/Overlayer/index.d.ts +1 -1
- package/components/ScrollListener/utils.d.ts +29 -0
- package/components/Select/index.controlled.js +3 -2
- package/components/Sequencer/index.controlled.js +1 -1
- package/components/Subtitles/index.js +3 -1
- package/components/Subtitles/types.d.ts +14 -0
- package/components/Subtitles/utils.d.ts +19 -15
- package/components/Subtitles/utils.js +29 -24
- package/components/Textarea/index.controlled.js +3 -2
- package/components/UIModule/index.js +3 -1
- package/components/Video/index.controlled.d.ts +1 -1
- package/components/Video/index.controlled.js +11 -10
- package/components/Video/index.js +27 -20
- package/components/Video/utils.d.ts +1 -1
- package/components/Video/utils.js +11 -2
- package/components/index.d.ts +2 -2
- package/components/index.js +2 -2
- package/components/utils/types.d.ts +5 -0
- package/node/@aws-s3/storage/directory/copy-dir/index.d.ts +9 -9
- package/node/@aws-s3/storage/directory/copy-dir/index.js +15 -12
- package/node/@aws-s3/storage/directory/list/index.d.ts +5 -5
- package/node/@aws-s3/storage/directory/list/index.js +5 -5
- package/node/@aws-s3/storage/directory/move-dir/index.d.ts +6 -6
- package/node/@aws-s3/storage/directory/move-dir/index.js +11 -7
- package/node/@aws-s3/storage/directory/remove-dir/index.d.ts +5 -5
- package/node/@aws-s3/storage/directory/remove-dir/index.js +5 -5
- package/node/@aws-s3/storage/file/copy/index.d.ts +8 -8
- package/node/@aws-s3/storage/file/copy/index.js +12 -9
- package/node/@aws-s3/storage/file/download/index.d.ts +6 -6
- package/node/@aws-s3/storage/file/download/index.js +6 -5
- package/node/@aws-s3/storage/file/exists/index.d.ts +6 -6
- package/node/@aws-s3/storage/file/exists/index.js +15 -12
- package/node/@aws-s3/storage/file/move/index.d.ts +9 -9
- package/node/@aws-s3/storage/file/move/index.js +18 -15
- package/node/@aws-s3/storage/file/remove/index.d.ts +5 -5
- package/node/@aws-s3/storage/file/remove/index.js +16 -11
- package/node/@aws-s3/storage/file/stat/index.d.ts +5 -5
- package/node/@aws-s3/storage/file/stat/index.js +10 -7
- package/node/@aws-s3/storage/file/upload/index.d.ts +7 -7
- package/node/@aws-s3/storage/file/upload/index.js +11 -9
- package/node/@express/@multer/index.d.ts +12 -12
- package/node/@express/@multer/index.js +27 -25
- package/node/@google-cloud/storage/bucket/get-metadata/index.d.ts +4 -4
- package/node/@google-cloud/storage/bucket/get-metadata/index.js +3 -3
- package/node/@google-cloud/storage/directory/copy-dir/index.d.ts +7 -7
- package/node/@google-cloud/storage/directory/copy-dir/index.js +6 -6
- package/node/@google-cloud/storage/directory/index.d.ts +1 -1
- package/node/@google-cloud/storage/directory/index.js +1 -1
- package/node/@google-cloud/storage/directory/list/index.d.ts +6 -6
- package/node/@google-cloud/storage/directory/list/index.js +5 -5
- package/node/@google-cloud/storage/directory/move-dir/index.d.ts +6 -6
- package/node/@google-cloud/storage/directory/move-dir/index.js +5 -5
- package/node/@google-cloud/storage/directory/remove-dir/index.d.ts +7 -7
- package/node/@google-cloud/storage/directory/remove-dir/index.js +6 -6
- package/node/@google-cloud/storage/file/copy/index.d.ts +9 -9
- package/node/@google-cloud/storage/file/copy/index.js +8 -8
- package/node/@google-cloud/storage/file/download/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/download/index.js +5 -5
- package/node/@google-cloud/storage/file/exists/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/exists/index.js +6 -6
- package/node/@google-cloud/storage/file/generate-signed-url/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/generate-signed-url/index.js +6 -6
- package/node/@google-cloud/storage/file/get-metadata/index.d.ts +5 -5
- package/node/@google-cloud/storage/file/get-metadata/index.js +4 -4
- package/node/@google-cloud/storage/file/get-permissions/index.d.ts +6 -6
- package/node/@google-cloud/storage/file/get-permissions/index.js +4 -4
- package/node/@google-cloud/storage/file/index.d.ts +1 -1
- package/node/@google-cloud/storage/file/index.js +1 -1
- package/node/@google-cloud/storage/file/move/index.d.ts +10 -10
- package/node/@google-cloud/storage/file/move/index.js +9 -9
- package/node/@google-cloud/storage/file/remove/index.d.ts +5 -5
- package/node/@google-cloud/storage/file/remove/index.js +4 -4
- package/node/@google-cloud/storage/file/revoke-signed-urls/index.d.ts +5 -5
- package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +5 -5
- package/node/@google-cloud/storage/file/stat/index.d.ts +5 -5
- package/node/@google-cloud/storage/file/stat/index.js +4 -4
- package/node/@google-cloud/storage/file/update-metadata/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/update-metadata/index.js +5 -5
- package/node/@google-cloud/storage/file/upload/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/upload/index.js +5 -5
- package/node/cloud-storage/clients/index.d.ts +8 -8
- package/node/cloud-storage/clients/index.js +8 -8
- package/node/cloud-storage/operations/copy-dir/index.d.ts +22 -22
- package/node/cloud-storage/operations/copy-dir/index.js +5 -5
- package/node/cloud-storage/operations/copy-file/index.d.ts +22 -22
- package/node/cloud-storage/operations/copy-file/index.js +5 -5
- package/node/cloud-storage/operations/download-file/index.d.ts +19 -19
- package/node/cloud-storage/operations/download-file/index.js +6 -6
- package/node/cloud-storage/operations/exists-file/index.d.ts +15 -26
- package/node/cloud-storage/operations/exists-file/index.js +4 -4
- package/node/cloud-storage/operations/list-dir/index.d.ts +15 -25
- package/node/cloud-storage/operations/list-dir/index.js +4 -4
- package/node/cloud-storage/operations/move-dir/index.d.ts +22 -22
- package/node/cloud-storage/operations/move-dir/index.js +5 -5
- package/node/cloud-storage/operations/move-file/index.d.ts +22 -22
- package/node/cloud-storage/operations/move-file/index.js +5 -5
- package/node/cloud-storage/operations/remove-dir/index.d.ts +18 -18
- package/node/cloud-storage/operations/remove-dir/index.js +4 -4
- package/node/cloud-storage/operations/remove-file/index.d.ts +18 -18
- package/node/cloud-storage/operations/remove-file/index.js +4 -4
- package/node/cloud-storage/operations/stat-file/index.d.ts +16 -16
- package/node/cloud-storage/operations/stat-file/index.js +4 -4
- package/node/cloud-storage/operations/upload-file/index.d.ts +23 -23
- package/node/cloud-storage/operations/upload-file/index.js +5 -5
- package/node/encryption/@aes-256-gcm/buffer/index.d.ts +6 -6
- package/node/encryption/@aes-256-gcm/buffer/index.js +6 -6
- package/node/encryption/@aes-256-gcm/uint8-array/index.d.ts +8 -8
- package/node/encryption/@aes-256-gcm/uint8-array/index.js +8 -8
- package/node/encryption/key/index.d.ts +6 -6
- package/node/encryption/key/index.js +6 -6
- package/node/files/read-write/index.d.ts +16 -16
- package/node/files/subpaths/index.d.ts +8 -8
- package/node/files/subpaths/index.js +11 -13
- package/node/ftps/directory/copy-dir/index.d.ts +6 -6
- package/node/ftps/directory/copy-dir/index.js +6 -6
- package/node/ftps/directory/list/index.d.ts +4 -4
- package/node/ftps/directory/list/index.js +3 -3
- package/node/ftps/directory/move-dir/index.d.ts +6 -6
- package/node/ftps/directory/move-dir/index.js +5 -5
- package/node/ftps/directory/remove-dir/index.d.ts +6 -6
- package/node/ftps/directory/remove-dir/index.js +8 -7
- package/node/ftps/file/copy/index.d.ts +6 -6
- package/node/ftps/file/copy/index.js +5 -5
- package/node/ftps/file/download/index.d.ts +6 -6
- package/node/ftps/file/download/index.js +5 -5
- package/node/ftps/file/exists/index.d.ts +3 -3
- package/node/ftps/file/exists/index.js +3 -3
- package/node/ftps/file/move/index.d.ts +8 -8
- package/node/ftps/file/move/index.js +11 -9
- package/node/ftps/file/remove/index.d.ts +5 -5
- package/node/ftps/file/remove/index.js +4 -4
- package/node/ftps/file/stat/index.d.ts +4 -4
- package/node/ftps/file/stat/index.js +4 -4
- package/node/ftps/file/upload/index.d.ts +7 -7
- package/node/ftps/file/upload/index.js +5 -5
- package/node/images/create/index.d.ts +2 -2
- package/node/images/create/index.js +1 -1
- package/node/images/format/index.d.ts +8 -8
- package/node/images/metadata/index.d.ts +2 -2
- package/node/images/transform/index.d.ts +2 -2
- package/node/images/transform/index.js +12 -2
- package/node/images/transform/operations/blur/index.d.ts +2 -2
- package/node/images/transform/operations/blur/index.js +1 -0
- package/node/images/transform/operations/brighten/index.d.ts +2 -2
- package/node/images/transform/operations/brighten/index.js +1 -0
- package/node/images/transform/operations/extend/index.d.ts +2 -2
- package/node/images/transform/operations/extend/index.js +1 -0
- package/node/images/transform/operations/extract/index.d.ts +2 -2
- package/node/images/transform/operations/extract/index.js +1 -0
- package/node/images/transform/operations/flatten/index.d.ts +2 -2
- package/node/images/transform/operations/flatten/index.js +1 -0
- package/node/images/transform/operations/flip/index.d.ts +2 -2
- package/node/images/transform/operations/flip/index.js +1 -0
- package/node/images/transform/operations/flop/index.d.ts +2 -2
- package/node/images/transform/operations/flop/index.js +1 -0
- package/node/images/transform/operations/hue/index.d.ts +2 -2
- package/node/images/transform/operations/hue/index.js +1 -0
- package/node/images/transform/operations/index.d.ts +2 -2
- package/node/images/transform/operations/index.js +2 -2
- package/node/images/transform/operations/level/index.d.ts +2 -2
- package/node/images/transform/operations/level/index.js +1 -0
- package/node/images/transform/operations/lighten/index.d.ts +2 -2
- package/node/images/transform/operations/lighten/index.js +1 -0
- package/node/images/transform/operations/normalize/index.d.ts +2 -2
- package/node/images/transform/operations/normalize/index.js +1 -0
- package/node/images/transform/operations/overlay/index.d.ts +2 -2
- package/node/images/transform/operations/resize/index.d.ts +2 -2
- package/node/images/transform/operations/resize/index.js +1 -0
- package/node/images/transform/operations/rotate/index.d.ts +2 -2
- package/node/images/transform/operations/rotate/index.js +1 -0
- package/node/images/transform/operations/saturate/index.d.ts +2 -2
- package/node/images/transform/operations/saturate/index.js +1 -0
- package/node/images/types.d.ts +41 -2
- package/node/images/utils/index.d.ts +10 -5
- package/node/process/index.d.ts +1 -1
- package/node/process/index.js +1 -1
- package/node/process/on-exit/index.js +2 -4
- package/node/process/prompt-continue/index.d.ts +3 -3
- package/node/process/prompt-continue/index.js +4 -3
- package/node/process/spawner/index.js +7 -6
- package/node/sftp/directory/copy-dir/index.d.ts +6 -6
- package/node/sftp/directory/copy-dir/index.js +6 -6
- package/node/sftp/directory/list/index.d.ts +3 -3
- package/node/sftp/directory/list/index.js +4 -4
- package/node/sftp/directory/move-dir/index.d.ts +7 -7
- package/node/sftp/directory/move-dir/index.js +7 -7
- package/node/sftp/directory/remove-dir/index.d.ts +5 -5
- package/node/sftp/directory/remove-dir/index.js +8 -7
- package/node/sftp/file/copy/index.d.ts +6 -6
- package/node/sftp/file/copy/index.js +5 -5
- package/node/sftp/file/download/index.d.ts +7 -7
- package/node/sftp/file/download/index.js +5 -5
- package/node/sftp/file/exists/index.d.ts +3 -3
- package/node/sftp/file/exists/index.js +3 -3
- package/node/sftp/file/index.d.ts +1 -1
- package/node/sftp/file/index.js +1 -1
- package/node/sftp/file/move/index.d.ts +7 -7
- package/node/sftp/file/move/index.js +7 -7
- package/node/sftp/file/remove/index.d.ts +4 -4
- package/node/sftp/file/remove/index.js +4 -4
- package/node/sftp/file/stat/index.d.ts +3 -3
- package/node/sftp/file/stat/index.js +6 -5
- package/node/sftp/file/upload/index.d.ts +6 -6
- package/node/sftp/file/upload/index.js +5 -5
- package/package.json +40 -39
|
@@ -56,6 +56,7 @@ export const Gallery = ({ paddingLeft, paddingRight, padding, prevButtonContent,
|
|
|
56
56
|
animationFrame = null;
|
|
57
57
|
const { scrollLeft, clientWidth, scrollWidth } = scrollerElt;
|
|
58
58
|
const center = scrollLeft + clientWidth / 2;
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- scrollerElt.children (HTMLCollection) always contains Element/HTMLElement nodes
|
|
59
60
|
const children = Array.from(scrollerElt.children);
|
|
60
61
|
let closestIndex = 0;
|
|
61
62
|
let closestDistance = Infinity;
|
|
@@ -138,7 +139,7 @@ export const Gallery = ({ paddingLeft, paddingRight, padding, prevButtonContent,
|
|
|
138
139
|
? actualPaddingRight
|
|
139
140
|
: undefined
|
|
140
141
|
};
|
|
141
|
-
return _jsx("div", { className:
|
|
142
|
+
return _jsx("div", { className: slotClss, style: { ...style }, "data-slot": pos, children: child }, pos);
|
|
142
143
|
}) }), _jsxs("div", { className: actionsClss, children: [_jsx("div", { className: prevBtnClss, onClick: handlePrevClick, children: prevButtonContent ?? 'prev' }), _jsx("div", { className: nextBtnClss, onClick: handleNextClick, children: nextButtonContent ?? 'next' })] }), _jsx("div", { className: paginationClss, children: Children.map(children, (_, pos) => {
|
|
143
144
|
const pageClss = c('page', { active: pos === activeIndex });
|
|
144
145
|
return _jsx("div", { className: pageClss, "data-page": pos, onClick: () => handlePaginationClick(pos), children: typeof paginationContent === 'string'
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export const forceActivateSlot = (div, targetPos, smooth = true) => {
|
|
2
2
|
if (div === null)
|
|
3
3
|
return;
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- div.children (HTMLCollection) always contains Element/HTMLElement nodes
|
|
4
5
|
const children = Array.from(div.children);
|
|
5
6
|
if (children[targetPos] === undefined)
|
|
6
7
|
return;
|
|
@@ -8,5 +9,8 @@ export const forceActivateSlot = (div, targetPos, smooth = true) => {
|
|
|
8
9
|
const halfClientWidth = div.clientWidth / 2;
|
|
9
10
|
const halfOffsetWidth = div.offsetWidth / 2;
|
|
10
11
|
const offset = target.offsetLeft - (halfClientWidth - halfOffsetWidth);
|
|
11
|
-
div.scrollTo({
|
|
12
|
+
div.scrollTo({
|
|
13
|
+
left: offset,
|
|
14
|
+
behavior: smooth ? 'smooth' : 'instant'
|
|
15
|
+
});
|
|
12
16
|
};
|
|
@@ -50,9 +50,12 @@ export const Iframe = ({ autoHeight = false, className, srcDoc, style, ...iframe
|
|
|
50
50
|
|| event.source !== iframe.contentWindow
|
|
51
51
|
|| typeof event.data !== 'object'
|
|
52
52
|
|| event.data === null
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
53
54
|
|| event.data.type !== innerMessageType
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
54
56
|
|| typeof event.data.height !== 'number')
|
|
55
57
|
return;
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-type-assertion -- event.data.height was already checked to be a number above; event.data is typed any by MessageEvent
|
|
56
59
|
setHeight(event.data.height);
|
|
57
60
|
};
|
|
58
61
|
window.addEventListener('message', handleMessage);
|
|
@@ -40,8 +40,10 @@ export const Image = ({ sources, disclaimer, theatre, className, ...intrinsicImg
|
|
|
40
40
|
if (Array.isArray(sources)) {
|
|
41
41
|
if (sources.length === 0)
|
|
42
42
|
return [];
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- first element sampled just above; array is expected to be homogeneous
|
|
43
44
|
if (typeof sources[0] === 'string')
|
|
44
45
|
return sources.map(srcSet => ({ srcSet }));
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- first element was checked not to be a string just above; array is expected to be homogeneous
|
|
45
47
|
return sources;
|
|
46
48
|
}
|
|
47
49
|
return [];
|
|
@@ -36,14 +36,15 @@ export const ControlledInput = ({ label, error, value, className, ...rest }) =>
|
|
|
36
36
|
const c = clss(publicClassName, { cssModule });
|
|
37
37
|
const rootClss = mergeClassNames(c(null), className);
|
|
38
38
|
return _jsxs(_Fragment, { children: [isNotFalsy(label) && _jsx("label", { className: c('label'), htmlFor: id, children: label }), _jsx("input", { ...rest, id: id, className: rootClss, value: value ?? '', onChange: e => {
|
|
39
|
+
const { target } = e;
|
|
39
40
|
rest.onChange?.(e);
|
|
40
41
|
if (value === undefined)
|
|
41
42
|
return;
|
|
42
43
|
if (typeof value === 'number') {
|
|
43
|
-
|
|
44
|
+
target.value = `${value}`;
|
|
44
45
|
}
|
|
45
46
|
else if (typeof value === 'string') {
|
|
46
|
-
|
|
47
|
+
target.value = value;
|
|
47
48
|
}
|
|
48
49
|
else {
|
|
49
50
|
// value is readonly string[]
|
|
@@ -40,8 +40,11 @@ export const IntersectionObserverComponent = ({ onIntersected, root, rootMargin,
|
|
|
40
40
|
}, []);
|
|
41
41
|
useEffect(() => {
|
|
42
42
|
const rootEl = rootRef.current;
|
|
43
|
-
if (rootEl === null)
|
|
44
|
-
|
|
43
|
+
if (rootEl === null) {
|
|
44
|
+
// eslint-disable-next-line no-console
|
|
45
|
+
console.warn('rootRef.current should not be null');
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
45
48
|
const observer = new IntersectionObserver(observation, { root, rootMargin, threshold });
|
|
46
49
|
observerRef.current = observer;
|
|
47
50
|
observer.observe(rootEl);
|
|
@@ -102,7 +102,7 @@ export const ValueEditor = ({ defaultValue = {}, onChange, path = [] }) => {
|
|
|
102
102
|
array: Array.isArray(value),
|
|
103
103
|
record: !Array.isArray(value) && isNonNullObject(value)
|
|
104
104
|
});
|
|
105
|
-
const pathStringDataAttr =
|
|
105
|
+
const pathStringDataAttr = path.map(e => e.toString()).join('.');
|
|
106
106
|
return _jsxs("span", { className: valueEditorClss, "data-path": pathStringDataAttr, children: [_jsxs(Select, { className: c('type'), onChange: handleTypeSelectChange, children: [_jsx("option", { value: 'string', selected: typeof value === 'string', children: "string" }), _jsx("option", { value: 'number', selected: typeof value === 'number', children: "number" }), _jsx("option", { value: 'boolean', selected: typeof value === 'boolean', children: "boolean" }), _jsx("option", { value: 'null', selected: value === null, children: "null" }), _jsx("option", { value: 'record', selected: isNonNullObject(value) && !Array.isArray(value), children: "record" }), _jsx("option", { value: 'array', selected: Array.isArray(value), children: "array" })] }), typeof value === 'string' && _jsx(StringEditor, { type: 'textarea', defaultValue: value, onChange: handleStringValueChange }), typeof value === 'number' && _jsx(NumberEditor, { defaultValue: value, onChange: handleNumberValueChange }), typeof value === 'boolean' && _jsx(BooleanEditor, { defaultValue: value, onChange: handleBooleanValueChange }), value === null && _jsx(NullEditor, { defaultValue: value }), isNonNullObject(value) && !Array.isArray(value) && _jsx(RecordEditor, { defaultValue: value, onChange: handleRecordValueChange, path: path }), Array.isArray(value) && _jsx(ArrayEditor, { defaultValue: value, onChange: handleArrayValueChange, path: path })] });
|
|
107
107
|
};
|
|
108
108
|
/* * * * * * * * * * * * * * * * *
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { FunctionComponent, PropsWithChildren, ReactNode } from 'react';
|
|
2
2
|
import type { WithClassName } from '../utils/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Describes a single overlay positioned over the base content.
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type { RefObject, Dispatch, SetStateAction } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Scroll-related measurements for the document and viewport.
|
|
4
|
+
*
|
|
5
|
+
* @property win - Window inner dimensions.
|
|
6
|
+
* @property html - Document root element dimensions.
|
|
7
|
+
* @property scroll - Current scroll position.
|
|
8
|
+
* @property viewport - Current viewport bounds in document coordinates.
|
|
9
|
+
*/
|
|
2
10
|
export type GlobalScrollData = {
|
|
3
11
|
win: {
|
|
4
12
|
height: number;
|
|
@@ -19,18 +27,39 @@ export type GlobalScrollData = {
|
|
|
19
27
|
maxY: number;
|
|
20
28
|
};
|
|
21
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Position and size of a tracked element relative to the document.
|
|
32
|
+
*
|
|
33
|
+
* @property offsetX - Horizontal offset in pixels.
|
|
34
|
+
* @property offsetY - Vertical offset in pixels.
|
|
35
|
+
* @property width - Element width in pixels.
|
|
36
|
+
* @property height - Element height in pixels.
|
|
37
|
+
*/
|
|
22
38
|
export type LocalScrollData = {
|
|
23
39
|
offsetX: number;
|
|
24
40
|
offsetY: number;
|
|
25
41
|
width: number;
|
|
26
42
|
height: number;
|
|
27
43
|
};
|
|
44
|
+
/**
|
|
45
|
+
* Combined scroll state passed to each registered {@link ScrollListener}.
|
|
46
|
+
*
|
|
47
|
+
* @property global - Document-level scroll data.
|
|
48
|
+
* @property local - Element-level position data.
|
|
49
|
+
*/
|
|
28
50
|
export type ScrollState = {
|
|
29
51
|
global: GlobalScrollData;
|
|
30
52
|
local: LocalScrollData;
|
|
31
53
|
};
|
|
32
54
|
export declare const globalDocumentScrollListener: () => GlobalScrollData;
|
|
33
55
|
export declare const localElementScrollListener: (div: HTMLDivElement) => LocalScrollData;
|
|
56
|
+
/**
|
|
57
|
+
* An entry registered with the global scroll listener.
|
|
58
|
+
*
|
|
59
|
+
* @property id - Unique identifier for this registration.
|
|
60
|
+
* @property rootRef - Ref to the tracked DOM element.
|
|
61
|
+
* @property setData - State setter to update the component's scroll state.
|
|
62
|
+
*/
|
|
34
63
|
export type RegisterEntry = {
|
|
35
64
|
id: string;
|
|
36
65
|
rootRef: RefObject<HTMLDivElement | null>;
|
|
@@ -36,14 +36,15 @@ export const ControlledSelect = ({ label, error, value, className, children, ...
|
|
|
36
36
|
const c = clss(publicClassName, { cssModule });
|
|
37
37
|
const rootClss = mergeClassNames(c(null), className);
|
|
38
38
|
return _jsxs(_Fragment, { children: [isNotFalsy(label) && _jsx("label", { className: c('label'), htmlFor: id, children: label }), _jsx("select", { ...rest, className: rootClss, id: id, value: value, onChange: e => {
|
|
39
|
+
const { target } = e;
|
|
39
40
|
rest.onChange?.(e);
|
|
40
41
|
if (value === undefined)
|
|
41
42
|
return;
|
|
42
43
|
if (typeof value === 'number') {
|
|
43
|
-
|
|
44
|
+
target.value = `${value}`;
|
|
44
45
|
}
|
|
45
46
|
else if (typeof value === 'string') {
|
|
46
|
-
|
|
47
|
+
target.value = value;
|
|
47
48
|
}
|
|
48
49
|
else {
|
|
49
50
|
// value is readonly string[]
|
|
@@ -55,7 +55,7 @@ export const SequencerControlled = ({ step = 0, activateOnStep, _modifiers, _dat
|
|
|
55
55
|
? childPos === step
|
|
56
56
|
: Array.isArray(thisStepActivateOnStep)
|
|
57
57
|
? thisStepActivateOnStep.includes(childPos)
|
|
58
|
-
:
|
|
58
|
+
: false;
|
|
59
59
|
const isNext = !isPrevious && !isCurrent;
|
|
60
60
|
const childClss = c('child', {
|
|
61
61
|
current: isCurrent,
|
|
@@ -60,6 +60,7 @@ export const Subtitles = ({ src, srtFileContent, subsGroups, timecodeMs, isEnded
|
|
|
60
60
|
setLoadError(error instanceof Error
|
|
61
61
|
? error
|
|
62
62
|
: new Error(unknownToString(error)));
|
|
63
|
+
// eslint-disable-next-line no-console
|
|
63
64
|
console.error(error);
|
|
64
65
|
onLoadFailed?.(toError(error));
|
|
65
66
|
}
|
|
@@ -69,6 +70,7 @@ export const Subtitles = ({ src, srtFileContent, subsGroups, timecodeMs, isEnded
|
|
|
69
70
|
}, [onLoadFailed, onLoaded]);
|
|
70
71
|
useEffect(() => {
|
|
71
72
|
fetchAndParseSubs(src, srtFileContent)
|
|
73
|
+
// eslint-disable-next-line no-console
|
|
72
74
|
.catch((error) => { console.error(error); });
|
|
73
75
|
}, [fetchAndParseSubs, src, srtFileContent]);
|
|
74
76
|
// Rendering
|
|
@@ -77,7 +79,7 @@ export const Subtitles = ({ src, srtFileContent, subsGroups, timecodeMs, isEnded
|
|
|
77
79
|
loading: isLoading,
|
|
78
80
|
error: loadError !== null
|
|
79
81
|
}), className);
|
|
80
|
-
const prevSubs = parsedSubs.filter(({ start }) => start
|
|
82
|
+
const prevSubs = parsedSubs.filter(({ start }) => start !== undefined && start < (timecodeMs ?? 0));
|
|
81
83
|
const lastPrevSub = prevSubs[prevSubs.length - 1];
|
|
82
84
|
const highestSubId = Math.max(...parsedSubs.map(sub => sub.id));
|
|
83
85
|
const subsGroupsWithBoundaries = computeSubGroupsWithBoundaries(subsGroups, highestSubId);
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single parsed subtitle entry from an SRT file.
|
|
3
|
+
*
|
|
4
|
+
* @property id - Sequential subtitle number.
|
|
5
|
+
* @property start - Start time in milliseconds.
|
|
6
|
+
* @property end - End time in milliseconds.
|
|
7
|
+
* @property content - Subtitle text content.
|
|
8
|
+
*/
|
|
1
9
|
export type ParsedSub = {
|
|
2
10
|
id: number;
|
|
3
11
|
start?: number;
|
|
4
12
|
end?: number;
|
|
5
13
|
content?: string;
|
|
6
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* The inclusive ID boundaries of a subtitle group.
|
|
17
|
+
*
|
|
18
|
+
* @property startId - ID of the first subtitle in the group.
|
|
19
|
+
* @property endId - ID of the last subtitle in the group.
|
|
20
|
+
*/
|
|
7
21
|
export type SubGroupBoundaries = {
|
|
8
22
|
startId: number;
|
|
9
23
|
endId: number;
|
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
import type { ParsedSub, SubGroupBoundaries } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* @
|
|
3
|
+
* Converts an SRT timecode (hh:mm:ss,ms) to milliseconds.
|
|
4
|
+
*
|
|
5
|
+
* @param timecode - Timecode string (e.g. '00:01:23,456').
|
|
6
|
+
* @returns The time in milliseconds.
|
|
6
7
|
*/
|
|
7
8
|
export declare const getTimecodeToMs: (timecode: string) => number;
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @
|
|
10
|
+
* Parses a raw SRT subtitle text into a list of {@link ParsedSub} objects.
|
|
11
|
+
*
|
|
12
|
+
* @param rawSubs - Raw subtitle content in SRT format.
|
|
13
|
+
* @returns Array of parsed subtitle entries.
|
|
12
14
|
*/
|
|
13
15
|
export declare const parseSubs: (rawSubs: string) => ParsedSub[];
|
|
14
16
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* @param
|
|
18
|
-
* @
|
|
17
|
+
* Computes subtitle groups with their boundaries (startId, endId).
|
|
18
|
+
*
|
|
19
|
+
* @param subsGroups - Array of group-end subtitle IDs.
|
|
20
|
+
* @param highestSubId - Highest subtitle ID in the track.
|
|
21
|
+
* @returns Array of {@link SubGroupBoundaries}.
|
|
19
22
|
*/
|
|
20
23
|
export declare const computeSubGroupsWithBoundaries: (subsGroups: number[] | undefined, highestSubId: number) => SubGroupBoundaries[];
|
|
21
24
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
26
|
-
* @
|
|
25
|
+
* Returns the current subtitle group based on the last preceding subtitle ID and playback state.
|
|
26
|
+
*
|
|
27
|
+
* @param subsGroupsWithBoundaries - Array of groups with their boundaries.
|
|
28
|
+
* @param lastPrevSubId - ID of the last subtitle that has already passed.
|
|
29
|
+
* @param isEnded - Whether playback has ended.
|
|
30
|
+
* @returns The current group, or `undefined` if none matches.
|
|
27
31
|
*/
|
|
28
32
|
export declare const getCurrentGroup: (subsGroupsWithBoundaries: SubGroupBoundaries[], lastPrevSubId: number | undefined, isEnded: boolean | undefined) => SubGroupBoundaries | undefined;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* @
|
|
2
|
+
* Converts an SRT timecode (hh:mm:ss,ms) to milliseconds.
|
|
3
|
+
*
|
|
4
|
+
* @param timecode - Timecode string (e.g. '00:01:23,456').
|
|
5
|
+
* @returns The time in milliseconds.
|
|
5
6
|
*/
|
|
6
7
|
export const getTimecodeToMs = (timecode) => {
|
|
7
8
|
const [hours = '0', minutes = '0', secondsAndMs = '0,0'] = timecode.split(':');
|
|
@@ -13,13 +14,14 @@ export const getTimecodeToMs = (timecode) => {
|
|
|
13
14
|
return result;
|
|
14
15
|
};
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* @
|
|
17
|
+
* Parses a raw SRT subtitle text into a list of {@link ParsedSub} objects.
|
|
18
|
+
*
|
|
19
|
+
* @param rawSubs - Raw subtitle content in SRT format.
|
|
20
|
+
* @returns Array of parsed subtitle entries.
|
|
19
21
|
*/
|
|
20
22
|
export const parseSubs = (rawSubs) => {
|
|
21
|
-
const numberRegex = /^\d
|
|
22
|
-
const timecodeRegex = /^[0-9]+:[0-9]+:[0-9]+,[0-9]+\s*-->\s*[0-9]+:[0-9]+:[0-9]+,[0-9]
|
|
23
|
+
const numberRegex = /^\d+$/v;
|
|
24
|
+
const timecodeRegex = /^[0-9]+:[0-9]+:[0-9]+,[0-9]+\s*-->\s*[0-9]+:[0-9]+:[0-9]+,[0-9]+$/v;
|
|
23
25
|
const parsedSubs = [];
|
|
24
26
|
rawSubs.split('\n').forEach(line => {
|
|
25
27
|
if (line.trim() === '')
|
|
@@ -49,10 +51,10 @@ export const parseSubs = (rawSubs) => {
|
|
|
49
51
|
}
|
|
50
52
|
// content
|
|
51
53
|
if (lastParsedSub?.id !== undefined
|
|
52
|
-
&& lastParsedSub
|
|
53
|
-
&& lastParsedSub
|
|
54
|
-
if (lastParsedSub
|
|
55
|
-
lastParsedSub.content +=
|
|
54
|
+
&& lastParsedSub.start !== undefined
|
|
55
|
+
&& lastParsedSub.end !== undefined) {
|
|
56
|
+
if (lastParsedSub.content !== undefined) {
|
|
57
|
+
lastParsedSub.content += `\n${line}`;
|
|
56
58
|
return;
|
|
57
59
|
}
|
|
58
60
|
lastParsedSub.content = line;
|
|
@@ -61,21 +63,23 @@ export const parseSubs = (rawSubs) => {
|
|
|
61
63
|
return parsedSubs;
|
|
62
64
|
};
|
|
63
65
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* @param
|
|
67
|
-
* @
|
|
66
|
+
* Computes subtitle groups with their boundaries (startId, endId).
|
|
67
|
+
*
|
|
68
|
+
* @param subsGroups - Array of group-end subtitle IDs.
|
|
69
|
+
* @param highestSubId - Highest subtitle ID in the track.
|
|
70
|
+
* @returns Array of {@link SubGroupBoundaries}.
|
|
68
71
|
*/
|
|
69
72
|
export const computeSubGroupsWithBoundaries = (subsGroups, highestSubId) => {
|
|
70
73
|
const fallback = [{ startId: 1, endId: highestSubId }];
|
|
71
74
|
if (subsGroups === undefined || subsGroups.length === 0)
|
|
72
75
|
return fallback;
|
|
73
76
|
const emptySubGroupBoundaries = [];
|
|
74
|
-
return subsGroups
|
|
77
|
+
return subsGroups.reduce((acc, curr, currIndex) => {
|
|
75
78
|
const lastInAcc = acc[acc.length - 1];
|
|
76
79
|
const startId = lastInAcc === undefined ? 1 : lastInAcc.endId + 1;
|
|
77
80
|
const endId = curr;
|
|
78
|
-
if (currIndex ===
|
|
81
|
+
if (currIndex === subsGroups.length - 1
|
|
82
|
+
&& endId !== highestSubId) {
|
|
79
83
|
return [
|
|
80
84
|
...acc,
|
|
81
85
|
{ startId, endId },
|
|
@@ -83,14 +87,15 @@ export const computeSubGroupsWithBoundaries = (subsGroups, highestSubId) => {
|
|
|
83
87
|
];
|
|
84
88
|
}
|
|
85
89
|
return [...acc, { startId, endId }];
|
|
86
|
-
}, emptySubGroupBoundaries)
|
|
90
|
+
}, emptySubGroupBoundaries);
|
|
87
91
|
};
|
|
88
92
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* @param
|
|
92
|
-
* @param
|
|
93
|
-
* @
|
|
93
|
+
* Returns the current subtitle group based on the last preceding subtitle ID and playback state.
|
|
94
|
+
*
|
|
95
|
+
* @param subsGroupsWithBoundaries - Array of groups with their boundaries.
|
|
96
|
+
* @param lastPrevSubId - ID of the last subtitle that has already passed.
|
|
97
|
+
* @param isEnded - Whether playback has ended.
|
|
98
|
+
* @returns The current group, or `undefined` if none matches.
|
|
94
99
|
*/
|
|
95
100
|
export const getCurrentGroup = (subsGroupsWithBoundaries, lastPrevSubId, isEnded) => {
|
|
96
101
|
const previousGroups = subsGroupsWithBoundaries.filter(group => group.startId <= (lastPrevSubId ?? 0));
|
|
@@ -57,14 +57,15 @@ export const ControlledTextarea = ({ label, error, autoHeight = false, value, cl
|
|
|
57
57
|
const c = clss(publicClassName, { cssModule });
|
|
58
58
|
const rootClss = mergeClassNames(c(null), className);
|
|
59
59
|
return _jsxs(_Fragment, { children: [isNotFalsy(label) && _jsx("label", { className: c('label'), htmlFor: id, children: label }), _jsx("textarea", { ...rest, ref: textareaRef, className: rootClss, id: id, value: value, onChange: e => {
|
|
60
|
+
const { target } = e;
|
|
60
61
|
rest.onChange?.(e);
|
|
61
62
|
if (value === undefined)
|
|
62
63
|
return;
|
|
63
64
|
if (typeof value === 'number') {
|
|
64
|
-
|
|
65
|
+
target.value = `${value}`;
|
|
65
66
|
}
|
|
66
67
|
else if (typeof value === 'string') {
|
|
67
|
-
|
|
68
|
+
target.value = value;
|
|
68
69
|
}
|
|
69
70
|
else {
|
|
70
71
|
// value is readonly string[]
|
|
@@ -94,6 +94,7 @@ export const UIModule = ({ src, props, stateHandlers, className }) => {
|
|
|
94
94
|
}
|
|
95
95
|
if ('update' in data && typeof data.update !== 'function')
|
|
96
96
|
return setLoadedModule(errs.updFunc);
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- shape fully validated by the checks above
|
|
97
98
|
const module = data;
|
|
98
99
|
setLoadedModule(module);
|
|
99
100
|
try {
|
|
@@ -109,7 +110,7 @@ export const UIModule = ({ src, props, stateHandlers, className }) => {
|
|
|
109
110
|
: new Error(unknownToString(err));
|
|
110
111
|
setLoadedModule(e);
|
|
111
112
|
}
|
|
112
|
-
}).catch(err => {
|
|
113
|
+
}).catch((err) => {
|
|
113
114
|
setLoading(false);
|
|
114
115
|
setLoadedModule(err instanceof Error ? err : new Error(unknownToString(err)));
|
|
115
116
|
setModuleTarget(null);
|
|
@@ -133,6 +134,7 @@ export const UIModule = ({ src, props, stateHandlers, className }) => {
|
|
|
133
134
|
}, [src]);
|
|
134
135
|
// Fx dep. `loadedModule` - log load errors
|
|
135
136
|
useEffect(() => {
|
|
137
|
+
// eslint-disable-next-line no-console
|
|
136
138
|
if (loadedModule instanceof Error)
|
|
137
139
|
console.error(loadedModule);
|
|
138
140
|
}, [loadedModule]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FunctionComponent, type PropsWithChildren, type VideoHTMLAttributes, type ReactEventHandler } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { WithClassName } from '../utils/types.js';
|
|
3
3
|
import { type Props as SubsProps } from '../Subtitles/index.js';
|
|
4
4
|
/**
|
|
5
5
|
* Describes a single video source.
|
|
@@ -54,16 +54,15 @@ export const ControlledVideo = ({ sources, tracks, subtitles, playBtnContent, pa
|
|
|
54
54
|
if (videoRef.current === null)
|
|
55
55
|
return;
|
|
56
56
|
const video = videoRef.current;
|
|
57
|
-
setTotalTime(
|
|
57
|
+
setTotalTime(video.duration);
|
|
58
58
|
intrinsicVideoAttributes.onLoadedMetadata?.(e);
|
|
59
59
|
}, [intrinsicVideoAttributes.onLoadedMetadata]);
|
|
60
60
|
const handleOnTimeUpdateEvent = useCallback((e) => {
|
|
61
61
|
const video = e.currentTarget;
|
|
62
|
-
const newTimeMs = secondsToMs(
|
|
62
|
+
const newTimeMs = secondsToMs(video.currentTime);
|
|
63
63
|
setCurrentTimeMs(newTimeMs);
|
|
64
|
-
if (intrinsicVideoAttributes
|
|
64
|
+
if (intrinsicVideoAttributes.onTimeUpdate !== undefined)
|
|
65
65
|
intrinsicVideoAttributes.onTimeUpdate(e);
|
|
66
|
-
}
|
|
67
66
|
}, [intrinsicVideoAttributes.onTimeUpdate]);
|
|
68
67
|
const handleOnPlayEvent = useCallback((e) => {
|
|
69
68
|
/* We must never play a video that has controlled time */
|
|
@@ -75,11 +74,11 @@ export const ControlledVideo = ({ sources, tracks, subtitles, playBtnContent, pa
|
|
|
75
74
|
}, [isTimeControlled, intrinsicVideoAttributes.onPlay]);
|
|
76
75
|
// Custom action handlers
|
|
77
76
|
const handlePlayButtonClick = useCallback((e) => {
|
|
78
|
-
const isPlaying = videoRef.current !== null ?
|
|
77
|
+
const isPlaying = videoRef.current !== null ? videoRef.current.paused : false;
|
|
79
78
|
actionHandlers?.playButtonClick?.(e, isPlaying, videoRef.current);
|
|
80
79
|
}, [actionHandlers?.playButtonClick]);
|
|
81
80
|
const handlePauseButtonClick = useCallback((e) => {
|
|
82
|
-
const isPlaying = videoRef.current !== null ?
|
|
81
|
+
const isPlaying = videoRef.current !== null ? videoRef.current.paused : false;
|
|
83
82
|
actionHandlers?.pauseButtonClick?.(e, isPlaying, videoRef.current);
|
|
84
83
|
}, [actionHandlers?.pauseButtonClick]);
|
|
85
84
|
const handleLoudButtonClick = useCallback((e) => {
|
|
@@ -125,7 +124,7 @@ export const ControlledVideo = ({ sources, tracks, subtitles, playBtnContent, pa
|
|
|
125
124
|
'muted': !isLoud,
|
|
126
125
|
..._modifiers
|
|
127
126
|
}), className);
|
|
128
|
-
const appliedVolume = volume
|
|
127
|
+
const appliedVolume = volume;
|
|
129
128
|
const rootAttributes = {
|
|
130
129
|
'data-play-on': isPlaying ? '' : undefined,
|
|
131
130
|
'data-play-off': !isPlaying ? '' : undefined,
|
|
@@ -151,8 +150,10 @@ export const ControlledVideo = ({ sources, tracks, subtitles, playBtnContent, pa
|
|
|
151
150
|
if (Array.isArray(sources)) {
|
|
152
151
|
if (sources.length === 0)
|
|
153
152
|
return [];
|
|
153
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- first element sampled just above; array is expected to be homogeneous
|
|
154
154
|
if (typeof sources[0] === 'string')
|
|
155
155
|
return sources.map(src => ({ src }));
|
|
156
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- first element was checked not to be a string just above; array is expected to be homogeneous
|
|
156
157
|
return sources;
|
|
157
158
|
}
|
|
158
159
|
return [];
|
|
@@ -165,8 +166,10 @@ export const ControlledVideo = ({ sources, tracks, subtitles, playBtnContent, pa
|
|
|
165
166
|
if (Array.isArray(tracks)) {
|
|
166
167
|
if (tracks.length === 0)
|
|
167
168
|
return [];
|
|
169
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- first element sampled just above; array is expected to be homogeneous
|
|
168
170
|
if (typeof tracks[0] === 'string')
|
|
169
171
|
return tracks.map(src => ({ src }));
|
|
172
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- first element was checked not to be a string just above; array is expected to be homogeneous
|
|
170
173
|
return tracks;
|
|
171
174
|
}
|
|
172
175
|
return [];
|
|
@@ -208,9 +211,7 @@ export const ControlledVideo = ({ sources, tracks, subtitles, playBtnContent, pa
|
|
|
208
211
|
}
|
|
209
212
|
}, [play, isTimeControlled]);
|
|
210
213
|
useEffect(() => {
|
|
211
|
-
|
|
212
|
-
forceVolume(videoRef.current, volume);
|
|
213
|
-
}
|
|
214
|
+
forceVolume(videoRef.current, volume);
|
|
214
215
|
}, [volume]);
|
|
215
216
|
useEffect(() => {
|
|
216
217
|
if (givenCurrentTimeMs !== undefined && videoRef.current !== null) {
|
|
@@ -55,20 +55,20 @@ export const Video = ({ loop, disclaimer, autoPlayWhenVisible, autoPauseWhenHidd
|
|
|
55
55
|
}
|
|
56
56
|
setPlay(true);
|
|
57
57
|
hasBeenAutoPlayed.current = true;
|
|
58
|
-
}, [controlledProps
|
|
58
|
+
}, [controlledProps.onPlay, shouldDisclaimerBeOn]);
|
|
59
59
|
const handleOnPauseEvent = useCallback((e) => {
|
|
60
60
|
setPlay(false);
|
|
61
61
|
controlledProps.onPause?.(e);
|
|
62
|
-
}, [controlledProps
|
|
62
|
+
}, [controlledProps.onPause]);
|
|
63
63
|
const handleOnVolumeChangeEvent = useCallback((e) => {
|
|
64
|
-
setMute(
|
|
65
|
-
setVolume(
|
|
64
|
+
setMute(e.currentTarget.muted);
|
|
65
|
+
setVolume(e.currentTarget.volume);
|
|
66
66
|
controlledProps.onVolumeChange?.(e);
|
|
67
|
-
}, [controlledProps
|
|
67
|
+
}, [controlledProps.onVolumeChange]);
|
|
68
68
|
const handleOnRateChangeEvent = useCallback((e) => {
|
|
69
|
-
setPlaybackRate(
|
|
69
|
+
setPlaybackRate(e.currentTarget.playbackRate);
|
|
70
70
|
controlledProps.onRateChange?.(e);
|
|
71
|
-
}, [controlledProps
|
|
71
|
+
}, [controlledProps.onRateChange]);
|
|
72
72
|
const handleOnFullscreenChangeEvent = useCallback((e) => {
|
|
73
73
|
if (document.fullscreenElement === null || shouldDisclaimerBeOn) {
|
|
74
74
|
setFullscreen(false);
|
|
@@ -77,7 +77,7 @@ export const Video = ({ loop, disclaimer, autoPlayWhenVisible, autoPauseWhenHidd
|
|
|
77
77
|
const handleOnLoadedMetadataEvent = useCallback((e) => {
|
|
78
78
|
muteAttributeWorkaround(e.currentTarget, controlledProps.muted ?? false);
|
|
79
79
|
controlledProps.onLoadedMetadata?.(e);
|
|
80
|
-
}, [controlledProps
|
|
80
|
+
}, [controlledProps.onLoadedMetadata, controlledProps.muted]);
|
|
81
81
|
// User actions
|
|
82
82
|
const handlePlayButtonClick = useCallback((e, isPlaying, video) => {
|
|
83
83
|
controlledProps.actionHandlers?.playButtonClick?.(e, isPlaying, video);
|
|
@@ -111,20 +111,28 @@ export const Video = ({ loop, disclaimer, autoPlayWhenVisible, autoPauseWhenHidd
|
|
|
111
111
|
const onIntersected = useCallback(({ ioEntry }) => {
|
|
112
112
|
if (ioEntry === undefined)
|
|
113
113
|
return;
|
|
114
|
-
const { isIntersecting
|
|
115
|
-
if (autoPauseWhenHidden === true && !isIntersecting)
|
|
114
|
+
const { isIntersecting } = ioEntry;
|
|
115
|
+
if (autoPauseWhenHidden === true && !isIntersecting)
|
|
116
116
|
setPlay(false);
|
|
117
|
-
|
|
118
|
-
if (autoLoudWhenVisible === true && isIntersecting) {
|
|
117
|
+
if (autoLoudWhenVisible === true && isIntersecting)
|
|
119
118
|
setMute(false);
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
if (autoPlayWhenVisible === true
|
|
120
|
+
&& !shouldDisclaimerBeOn
|
|
121
|
+
&& !hasBeenAutoPlayed.current
|
|
122
|
+
&& isIntersecting)
|
|
122
123
|
setPlay(true);
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
if (autoMuteWhenHidden === true
|
|
125
|
+
&& !shouldDisclaimerBeOn
|
|
126
|
+
&& !hasBeenAutoPlayed.current
|
|
127
|
+
&& !isIntersecting)
|
|
125
128
|
setMute(true);
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
}, [
|
|
130
|
+
autoPlayWhenVisible,
|
|
131
|
+
autoPauseWhenHidden,
|
|
132
|
+
autoMuteWhenHidden,
|
|
133
|
+
autoLoudWhenVisible,
|
|
134
|
+
shouldDisclaimerBeOn
|
|
135
|
+
]);
|
|
128
136
|
const handleDiclaimerDismiss = useCallback((prevIsOn) => {
|
|
129
137
|
setIsDisclaimerOn(false);
|
|
130
138
|
if (controlledProps.autoPlay === true && !hasBeenAutoPlayed.current) {
|
|
@@ -133,9 +141,8 @@ export const Video = ({ loop, disclaimer, autoPlayWhenVisible, autoPauseWhenHidd
|
|
|
133
141
|
disclaimer?.actionHandlers?.dismissClick?.(prevIsOn);
|
|
134
142
|
}, [controlledProps.autoPlay, disclaimer?.actionHandlers?.dismissClick]);
|
|
135
143
|
useEffect(() => {
|
|
136
|
-
if (isDisclaimerOn !== shouldDisclaimerBeOn)
|
|
144
|
+
if (isDisclaimerOn !== shouldDisclaimerBeOn)
|
|
137
145
|
setIsDisclaimerOn(shouldDisclaimerBeOn);
|
|
138
|
-
}
|
|
139
146
|
}, [isDisclaimerOn, shouldDisclaimerBeOn]);
|
|
140
147
|
useEffect(() => {
|
|
141
148
|
if (shouldDisclaimerBeOn) {
|
|
@@ -5,7 +5,7 @@ export declare const forceLoud: (video: HTMLVideoElement | null) => void;
|
|
|
5
5
|
export declare const forceVolume: (video: HTMLVideoElement | null, volume: number) => void;
|
|
6
6
|
export declare const forceCurrentTime: (video: HTMLVideoElement | null, time: number, setCurrentTime: Dispatch<SetStateAction<number>>) => void;
|
|
7
7
|
export declare const forcePlay: (video: HTMLVideoElement | null) => Promise<boolean>;
|
|
8
|
-
export declare const forcePause: (video: HTMLVideoElement | null) =>
|
|
8
|
+
export declare const forcePause: (video: HTMLVideoElement | null) => boolean;
|
|
9
9
|
export declare const forcePlaybackRate: (video: HTMLVideoElement | null, rate: number) => void;
|
|
10
10
|
export declare const forceFullscreen: (video: HTMLVideoElement | null) => Promise<boolean>;
|
|
11
11
|
export declare const forceExitFullscreen: (video: HTMLVideoElement | null) => Promise<boolean>;
|