@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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// French Republican calendar conversion.
|
|
2
|
+
//
|
|
3
|
+
// Rule: the calendar as it was actually applied (1792–1805). A Republican year
|
|
4
|
+
// begins on the civil day, at the Paris meridian, during which the true autumnal
|
|
5
|
+
// (September) equinox occurs. We simply extrapolate that same rule to any date.
|
|
6
|
+
//
|
|
7
|
+
// Year N starts on the September equinox of Gregorian year (1791 + N):
|
|
8
|
+
// An I -> equinox of 1792 (22 September 1792).
|
|
9
|
+
//
|
|
10
|
+
// The gap between two consecutive equinox-based new years is 365 or 366 days, so
|
|
11
|
+
// the number of complementary days (5 or 6) falls out automatically — no separate
|
|
12
|
+
// leap-year rule is needed.
|
|
13
|
+
import { gregorianToJdn, republicanYearStartJdn, toRoman, MONTH_NAMES, COMPLEMENTARY_DAY_NAMES, DECADE_DAY_NAMES } from './utils.js';
|
|
14
|
+
/**
|
|
15
|
+
* Converts a `Date` to the French Republican calendar.
|
|
16
|
+
*
|
|
17
|
+
* @param date - The date to convert.
|
|
18
|
+
* @returns The equivalent {@link FrenchRepublicanDate}.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* The date's local calendar day (`getFullYear` / `getMonth` / `getDate`) is
|
|
22
|
+
* used as the Gregorian date, so the result reflects the runtime's local
|
|
23
|
+
* timezone. Build the `Date` in the timezone you care about if this matters.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* toFrenchRepublican(new Date(1799, 10, 9)).formatted // => '18 Brumaire an VIII'
|
|
27
|
+
*/
|
|
28
|
+
export function toFrenchRepublican(date) {
|
|
29
|
+
const year = date.getFullYear();
|
|
30
|
+
const month = date.getMonth() + 1;
|
|
31
|
+
const day = date.getDate();
|
|
32
|
+
const jdn = gregorianToJdn(year, month, day);
|
|
33
|
+
// The Republican year that contains this date started at the equinox of some
|
|
34
|
+
// Gregorian year g. Guess g = the date's Gregorian year, then step back if the
|
|
35
|
+
// date falls before that year's new year (i.e. it's in Jan..Sep).
|
|
36
|
+
let g = year;
|
|
37
|
+
let startJdn = republicanYearStartJdn(g);
|
|
38
|
+
if (jdn < startJdn) {
|
|
39
|
+
g -= 1;
|
|
40
|
+
startJdn = republicanYearStartJdn(g);
|
|
41
|
+
}
|
|
42
|
+
const republicanYear = g - 1791;
|
|
43
|
+
const yearRoman = toRoman(republicanYear);
|
|
44
|
+
const dayOfYear = jdn - startJdn; // 0-based
|
|
45
|
+
if (dayOfYear >= 360) {
|
|
46
|
+
// Complementary day (sansculottide): dayOfYear 360..365 -> index 0..5.
|
|
47
|
+
const complementaryIndex = dayOfYear - 360;
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
49
|
+
const dayName = COMPLEMENTARY_DAY_NAMES[complementaryIndex];
|
|
50
|
+
return {
|
|
51
|
+
year: republicanYear,
|
|
52
|
+
yearRoman,
|
|
53
|
+
isComplementary: true,
|
|
54
|
+
monthIndex: null,
|
|
55
|
+
monthName: null,
|
|
56
|
+
dayOfMonth: complementaryIndex + 1,
|
|
57
|
+
dayName,
|
|
58
|
+
decade: null,
|
|
59
|
+
dayOfYear,
|
|
60
|
+
formatted: `${dayName}, an ${yearRoman}`
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const monthIndex = Math.floor(dayOfYear / 30); // 0..11
|
|
64
|
+
const dayOfMonth = (dayOfYear % 30) + 1; // 1..30
|
|
65
|
+
const decadeDayIndex = (dayOfMonth - 1) % 10; // 0..9
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
67
|
+
const monthName = MONTH_NAMES[monthIndex];
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
69
|
+
const dayName = DECADE_DAY_NAMES[decadeDayIndex];
|
|
70
|
+
return {
|
|
71
|
+
year: republicanYear,
|
|
72
|
+
yearRoman,
|
|
73
|
+
isComplementary: false,
|
|
74
|
+
monthIndex,
|
|
75
|
+
monthName,
|
|
76
|
+
dayOfMonth,
|
|
77
|
+
dayName,
|
|
78
|
+
decade: Math.floor((dayOfMonth - 1) / 10) + 1, // 1..3
|
|
79
|
+
dayOfYear,
|
|
80
|
+
formatted: `${dayOfMonth} ${monthName} an ${yearRoman}`
|
|
81
|
+
};
|
|
82
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { toFrenchRepublican } from './index.js';
|
|
3
|
+
import { RepublicanMonth, ComplementaryDay, DecadeDay } from './types.js';
|
|
4
|
+
describe('toFrenchRepublican', () => {
|
|
5
|
+
it('maps the first day of the calendar (An I) to 1 Vendémiaire', () => {
|
|
6
|
+
const result = toFrenchRepublican(new Date(1792, 8, 22));
|
|
7
|
+
expect(result).toMatchObject({
|
|
8
|
+
year: 1,
|
|
9
|
+
yearRoman: 'I',
|
|
10
|
+
isComplementary: false,
|
|
11
|
+
monthIndex: 0,
|
|
12
|
+
monthName: RepublicanMonth.VENDEMIAIRE,
|
|
13
|
+
dayOfMonth: 1,
|
|
14
|
+
dayName: DecadeDay.PRIMIDI,
|
|
15
|
+
decade: 1,
|
|
16
|
+
dayOfYear: 0,
|
|
17
|
+
formatted: '1 Vendémiaire an I'
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
it('converts a well-known historical date (18 Brumaire an VIII)', () => {
|
|
21
|
+
const result = toFrenchRepublican(new Date(1799, 10, 9));
|
|
22
|
+
expect(result.formatted).toBe('18 Brumaire an VIII');
|
|
23
|
+
expect(result.year).toBe(8);
|
|
24
|
+
expect(result.yearRoman).toBe('VIII');
|
|
25
|
+
expect(result.monthName).toBe(RepublicanMonth.BRUMAIRE);
|
|
26
|
+
expect(result.dayOfMonth).toBe(18);
|
|
27
|
+
});
|
|
28
|
+
it('converts 9 Thermidor an II (fall of Robespierre)', () => {
|
|
29
|
+
const result = toFrenchRepublican(new Date(1794, 6, 27));
|
|
30
|
+
expect(result.formatted).toBe('9 Thermidor an II');
|
|
31
|
+
expect(result.monthName).toBe(RepublicanMonth.THERMIDOR);
|
|
32
|
+
});
|
|
33
|
+
describe('regular days', () => {
|
|
34
|
+
it('computes the décade (1–3) from the day of the month', () => {
|
|
35
|
+
// 18 Brumaire -> second décade, Octidi (8th day of the décade).
|
|
36
|
+
const result = toFrenchRepublican(new Date(1799, 10, 9));
|
|
37
|
+
expect(result.isComplementary).toBe(false);
|
|
38
|
+
expect(result.decade).toBe(2);
|
|
39
|
+
expect(result.dayName).toBe(DecadeDay.OCTIDI);
|
|
40
|
+
});
|
|
41
|
+
it('never yields a day of month outside 1–30', () => {
|
|
42
|
+
const result = toFrenchRepublican(new Date(2026, 7, 25));
|
|
43
|
+
expect(result.isComplementary).toBe(false);
|
|
44
|
+
expect(result.dayOfMonth).toBeGreaterThanOrEqual(1);
|
|
45
|
+
expect(result.dayOfMonth).toBeLessThanOrEqual(30);
|
|
46
|
+
expect(result.dayOfYear).toBeLessThan(360);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('complementary days (sansculottides)', () => {
|
|
50
|
+
it('nulls out the month fields on a complementary day', () => {
|
|
51
|
+
const result = toFrenchRepublican(new Date(1795, 8, 17));
|
|
52
|
+
expect(result).toMatchObject({
|
|
53
|
+
isComplementary: true,
|
|
54
|
+
monthIndex: null,
|
|
55
|
+
monthName: null,
|
|
56
|
+
decade: null,
|
|
57
|
+
dayOfMonth: 1,
|
|
58
|
+
dayName: ComplementaryDay.VERTU,
|
|
59
|
+
formatted: 'Jour de la vertu, an III'
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
it('exposes the 6th complementary day in a sextile year (An III)', () => {
|
|
63
|
+
// An III is a leap (sextile) year, so it has a sixth sansculottide.
|
|
64
|
+
const result = toFrenchRepublican(new Date(1795, 8, 22));
|
|
65
|
+
expect(result.isComplementary).toBe(true);
|
|
66
|
+
expect(result.dayOfMonth).toBe(6);
|
|
67
|
+
expect(result.dayName).toBe(ComplementaryDay.REVOLUTION);
|
|
68
|
+
expect(result.dayOfYear).toBe(365);
|
|
69
|
+
});
|
|
70
|
+
it('rolls over to the next year on the following equinox', () => {
|
|
71
|
+
const lastDay = toFrenchRepublican(new Date(1795, 8, 22));
|
|
72
|
+
const newYear = toFrenchRepublican(new Date(1795, 8, 23));
|
|
73
|
+
expect(lastDay.year).toBe(3);
|
|
74
|
+
expect(newYear.year).toBe(4);
|
|
75
|
+
expect(newYear.formatted).toBe('1 Vendémiaire an IV');
|
|
76
|
+
expect(newYear.dayOfYear).toBe(0);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe('year handling', () => {
|
|
80
|
+
it('steps back a Gregorian year for dates before the new year', () => {
|
|
81
|
+
// January 1800 still belongs to An VIII (started at the 1799 equinox).
|
|
82
|
+
const result = toFrenchRepublican(new Date(1800, 0, 1));
|
|
83
|
+
expect(result.year).toBe(8);
|
|
84
|
+
});
|
|
85
|
+
it('extrapolates the rule to modern dates', () => {
|
|
86
|
+
const result = toFrenchRepublican(new Date(2026, 7, 25));
|
|
87
|
+
expect(result.year).toBe(234);
|
|
88
|
+
expect(result.yearRoman).toBe('CCXXXIV');
|
|
89
|
+
expect(result.formatted).toBe('8 Fructidor an CCXXXIV');
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
describe('Republican calendar enums', () => {
|
|
94
|
+
it('lists the twelve months in order', () => {
|
|
95
|
+
const months = Object.values(RepublicanMonth);
|
|
96
|
+
expect(months).toHaveLength(12);
|
|
97
|
+
expect(months[0]).toBe('Vendémiaire');
|
|
98
|
+
expect(months[11]).toBe('Fructidor');
|
|
99
|
+
});
|
|
100
|
+
it('lists the six complementary days in order', () => {
|
|
101
|
+
const days = Object.values(ComplementaryDay);
|
|
102
|
+
expect(days).toHaveLength(6);
|
|
103
|
+
expect(days[0]).toBe('Jour de la vertu');
|
|
104
|
+
expect(days[5]).toBe('Jour de la Révolution');
|
|
105
|
+
});
|
|
106
|
+
it('lists the ten décade days in order', () => {
|
|
107
|
+
const days = Object.values(DecadeDay);
|
|
108
|
+
expect(days).toHaveLength(10);
|
|
109
|
+
expect(days[0]).toBe('Primidi');
|
|
110
|
+
expect(days[9]).toBe('Décadi');
|
|
111
|
+
});
|
|
112
|
+
});
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The twelve 30-day months of the Republican year, in order.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum RepublicanMonth {
|
|
5
|
+
VENDEMIAIRE = "Vend\u00E9miaire",
|
|
6
|
+
BRUMAIRE = "Brumaire",
|
|
7
|
+
FRIMAIRE = "Frimaire",
|
|
8
|
+
NIVOSE = "Niv\u00F4se",
|
|
9
|
+
PLUVIOSE = "Pluvi\u00F4se",
|
|
10
|
+
VENTOSE = "Vent\u00F4se",
|
|
11
|
+
GERMINAL = "Germinal",
|
|
12
|
+
FLOREAL = "Flor\u00E9al",
|
|
13
|
+
PRAIRIAL = "Prairial",
|
|
14
|
+
MESSIDOR = "Messidor",
|
|
15
|
+
THERMIDOR = "Thermidor",
|
|
16
|
+
FRUCTIDOR = "Fructidor"
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The complementary days ("les sansculottides"), in order. The 6th only exists
|
|
20
|
+
* in sextile years.
|
|
21
|
+
*/
|
|
22
|
+
export declare enum ComplementaryDay {
|
|
23
|
+
VERTU = "Jour de la vertu",
|
|
24
|
+
GENIE = "Jour du g\u00E9nie",
|
|
25
|
+
TRAVAIL = "Jour du travail",
|
|
26
|
+
OPINION = "Jour de l'opinion",
|
|
27
|
+
RECOMPENSES = "Jour des r\u00E9compenses",
|
|
28
|
+
REVOLUTION = "Jour de la R\u00E9volution"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The ten days of a décade, in order. Each month is three décades.
|
|
32
|
+
*/
|
|
33
|
+
export declare enum DecadeDay {
|
|
34
|
+
PRIMIDI = "Primidi",
|
|
35
|
+
DUODI = "Duodi",
|
|
36
|
+
TRIDI = "Tridi",
|
|
37
|
+
QUARTIDI = "Quartidi",
|
|
38
|
+
QUINTIDI = "Quintidi",
|
|
39
|
+
SEXTIDI = "Sextidi",
|
|
40
|
+
SEPTIDI = "Septidi",
|
|
41
|
+
OCTIDI = "Octidi",
|
|
42
|
+
NONIDI = "Nonidi",
|
|
43
|
+
DECADI = "D\u00E9cadi"
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Fields shared by every Republican date, whether or not it is a complementary
|
|
47
|
+
* day.
|
|
48
|
+
*/
|
|
49
|
+
type FrenchRepublicanDateCommon = {
|
|
50
|
+
/** Republican year (An I = 1), counted from the 1792 equinox. */
|
|
51
|
+
year: number;
|
|
52
|
+
/** Republican year in Roman numerals (e.g. `'VIII'`). */
|
|
53
|
+
yearRoman: string;
|
|
54
|
+
/** 1-based day number within the month or the complementary period. */
|
|
55
|
+
dayOfMonth: number;
|
|
56
|
+
/** 0-based day index within the Republican year (0–365). */
|
|
57
|
+
dayOfYear: number;
|
|
58
|
+
/** Human-readable French label (e.g. `'18 Brumaire an VIII'`). */
|
|
59
|
+
formatted: string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* A regular day, falling inside one of the twelve 30-day months.
|
|
63
|
+
*/
|
|
64
|
+
export type FrenchRepublicanMonthDate = FrenchRepublicanDateCommon & {
|
|
65
|
+
isComplementary: false;
|
|
66
|
+
/** 0-based month index (0–11). */
|
|
67
|
+
monthIndex: number;
|
|
68
|
+
monthName: RepublicanMonth;
|
|
69
|
+
/** Name of the day within its décade. */
|
|
70
|
+
dayName: DecadeDay;
|
|
71
|
+
/** 1-based décade within the month (1–3). */
|
|
72
|
+
decade: number;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* A complementary day ("sansculottide"), falling outside any month at the end
|
|
76
|
+
* of the year.
|
|
77
|
+
*/
|
|
78
|
+
export type FrenchRepublicanComplementaryDate = FrenchRepublicanDateCommon & {
|
|
79
|
+
isComplementary: true;
|
|
80
|
+
monthIndex: null;
|
|
81
|
+
monthName: null;
|
|
82
|
+
dayName: ComplementaryDay;
|
|
83
|
+
decade: null;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* A date expressed in the French Republican calendar. Discriminated on
|
|
87
|
+
* `isComplementary`: month fields are populated for a regular day and `null`
|
|
88
|
+
* for a complementary day.
|
|
89
|
+
*/
|
|
90
|
+
export type FrenchRepublicanDate = FrenchRepublicanMonthDate | FrenchRepublicanComplementaryDate;
|
|
91
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The twelve 30-day months of the Republican year, in order.
|
|
3
|
+
*/
|
|
4
|
+
export var RepublicanMonth;
|
|
5
|
+
(function (RepublicanMonth) {
|
|
6
|
+
RepublicanMonth["VENDEMIAIRE"] = "Vend\u00E9miaire";
|
|
7
|
+
RepublicanMonth["BRUMAIRE"] = "Brumaire";
|
|
8
|
+
RepublicanMonth["FRIMAIRE"] = "Frimaire";
|
|
9
|
+
RepublicanMonth["NIVOSE"] = "Niv\u00F4se";
|
|
10
|
+
RepublicanMonth["PLUVIOSE"] = "Pluvi\u00F4se";
|
|
11
|
+
RepublicanMonth["VENTOSE"] = "Vent\u00F4se";
|
|
12
|
+
RepublicanMonth["GERMINAL"] = "Germinal";
|
|
13
|
+
RepublicanMonth["FLOREAL"] = "Flor\u00E9al";
|
|
14
|
+
RepublicanMonth["PRAIRIAL"] = "Prairial";
|
|
15
|
+
RepublicanMonth["MESSIDOR"] = "Messidor";
|
|
16
|
+
RepublicanMonth["THERMIDOR"] = "Thermidor";
|
|
17
|
+
RepublicanMonth["FRUCTIDOR"] = "Fructidor";
|
|
18
|
+
})(RepublicanMonth || (RepublicanMonth = {}));
|
|
19
|
+
/**
|
|
20
|
+
* The complementary days ("les sansculottides"), in order. The 6th only exists
|
|
21
|
+
* in sextile years.
|
|
22
|
+
*/
|
|
23
|
+
export var ComplementaryDay;
|
|
24
|
+
(function (ComplementaryDay) {
|
|
25
|
+
ComplementaryDay["VERTU"] = "Jour de la vertu";
|
|
26
|
+
ComplementaryDay["GENIE"] = "Jour du g\u00E9nie";
|
|
27
|
+
ComplementaryDay["TRAVAIL"] = "Jour du travail";
|
|
28
|
+
ComplementaryDay["OPINION"] = "Jour de l'opinion";
|
|
29
|
+
ComplementaryDay["RECOMPENSES"] = "Jour des r\u00E9compenses";
|
|
30
|
+
ComplementaryDay["REVOLUTION"] = "Jour de la R\u00E9volution";
|
|
31
|
+
})(ComplementaryDay || (ComplementaryDay = {}));
|
|
32
|
+
/**
|
|
33
|
+
* The ten days of a décade, in order. Each month is three décades.
|
|
34
|
+
*/
|
|
35
|
+
export var DecadeDay;
|
|
36
|
+
(function (DecadeDay) {
|
|
37
|
+
DecadeDay["PRIMIDI"] = "Primidi";
|
|
38
|
+
DecadeDay["DUODI"] = "Duodi";
|
|
39
|
+
DecadeDay["TRIDI"] = "Tridi";
|
|
40
|
+
DecadeDay["QUARTIDI"] = "Quartidi";
|
|
41
|
+
DecadeDay["QUINTIDI"] = "Quintidi";
|
|
42
|
+
DecadeDay["SEXTIDI"] = "Sextidi";
|
|
43
|
+
DecadeDay["SEPTIDI"] = "Septidi";
|
|
44
|
+
DecadeDay["OCTIDI"] = "Octidi";
|
|
45
|
+
DecadeDay["NONIDI"] = "Nonidi";
|
|
46
|
+
DecadeDay["DECADI"] = "D\u00E9cadi";
|
|
47
|
+
})(DecadeDay || (DecadeDay = {}));
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { RepublicanMonth, ComplementaryDay, DecadeDay } from './types.js';
|
|
2
|
+
/** The twelve month names, indexed by 0-based month index. */
|
|
3
|
+
export declare const MONTH_NAMES: RepublicanMonth[];
|
|
4
|
+
/** The six complementary day names, indexed by 0-based complementary index. */
|
|
5
|
+
export declare const COMPLEMENTARY_DAY_NAMES: ComplementaryDay[];
|
|
6
|
+
/** The ten décade day names, indexed by 0-based day-of-décade index. */
|
|
7
|
+
export declare const DECADE_DAY_NAMES: DecadeDay[];
|
|
8
|
+
/**
|
|
9
|
+
* Julian Day Number (integer, noon-based) for a proleptic Gregorian date.
|
|
10
|
+
*
|
|
11
|
+
* @param year - Gregorian year.
|
|
12
|
+
* @param month - Month, 1–12.
|
|
13
|
+
* @param day - Day of month, 1–31.
|
|
14
|
+
* @returns The Julian Day Number.
|
|
15
|
+
*/
|
|
16
|
+
export declare function gregorianToJdn(year: number, month: number, day: number): number;
|
|
17
|
+
/**
|
|
18
|
+
* JDN of 1 Vendémiaire — the civil day (Paris meridian) hosting the September
|
|
19
|
+
* equinox of the given Gregorian year.
|
|
20
|
+
*
|
|
21
|
+
* @param gregorianYear - The Gregorian year whose equinox opens the Republican year.
|
|
22
|
+
* @returns The Julian Day Number of that year's 1 Vendémiaire.
|
|
23
|
+
*/
|
|
24
|
+
export declare function republicanYearStartJdn(gregorianYear: number): number;
|
|
25
|
+
/**
|
|
26
|
+
* Formats a positive integer as a Roman numeral. Non-positive inputs are
|
|
27
|
+
* returned as their decimal string.
|
|
28
|
+
*
|
|
29
|
+
* @param n - The number to format.
|
|
30
|
+
* @returns The Roman numeral (e.g. `8` -> `'VIII'`).
|
|
31
|
+
*/
|
|
32
|
+
export declare function toRoman(n: number): string;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { RepublicanMonth, ComplementaryDay, DecadeDay } from './types.js';
|
|
2
|
+
// Ordered lookup tables derived from the enums (declaration order).
|
|
3
|
+
/** The twelve month names, indexed by 0-based month index. */
|
|
4
|
+
export const MONTH_NAMES = Object.values(RepublicanMonth);
|
|
5
|
+
/** The six complementary day names, indexed by 0-based complementary index. */
|
|
6
|
+
export const COMPLEMENTARY_DAY_NAMES = Object.values(ComplementaryDay);
|
|
7
|
+
/** The ten décade day names, indexed by 0-based day-of-décade index. */
|
|
8
|
+
export const DECADE_DAY_NAMES = Object.values(DecadeDay);
|
|
9
|
+
// Paris Observatory meridian: 2°20'14" E ≈ +9m21s, expressed in days.
|
|
10
|
+
// The Republican astronomers used the Paris meridian to decide which civil day
|
|
11
|
+
// hosts the equinox, so we keep using it for every year.
|
|
12
|
+
const PARIS_MERIDIAN_OFFSET_DAYS = (2 + 20 / 60 + 14 / 3600) / 360;
|
|
13
|
+
const DEG_TO_RAD = Math.PI / 180;
|
|
14
|
+
// --- Julian Day -------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Julian Day Number (integer, noon-based) for a proleptic Gregorian date.
|
|
17
|
+
*
|
|
18
|
+
* @param year - Gregorian year.
|
|
19
|
+
* @param month - Month, 1–12.
|
|
20
|
+
* @param day - Day of month, 1–31.
|
|
21
|
+
* @returns The Julian Day Number.
|
|
22
|
+
*/
|
|
23
|
+
export function gregorianToJdn(year, month, day) {
|
|
24
|
+
const a = Math.floor((14 - month) / 12);
|
|
25
|
+
const y = year + 4800 - a;
|
|
26
|
+
const m = month + 12 * a - 3;
|
|
27
|
+
return (day
|
|
28
|
+
+ Math.floor((153 * m + 2) / 5)
|
|
29
|
+
+ 365 * y
|
|
30
|
+
+ Math.floor(y / 4)
|
|
31
|
+
- Math.floor(y / 100)
|
|
32
|
+
+ Math.floor(y / 400)
|
|
33
|
+
- 32045);
|
|
34
|
+
}
|
|
35
|
+
// --- Astronomy: September equinox (Meeus, "Astronomical Algorithms", ch. 27) --
|
|
36
|
+
// Periodic-term table 27.A: rows of [A, B (deg), C (deg)].
|
|
37
|
+
const EQUINOX_TERMS = [
|
|
38
|
+
[485, 324.96, 1934.136], [203, 337.23, 32964.467], [199, 342.08, 20.186],
|
|
39
|
+
[182, 27.85, 445267.112], [156, 73.14, 45036.886], [136, 171.52, 22518.443],
|
|
40
|
+
[77, 222.54, 65928.934], [74, 296.72, 3034.906], [70, 243.58, 9037.513],
|
|
41
|
+
[58, 119.81, 33718.147], [52, 297.17, 150.678], [50, 21.02, 2281.226],
|
|
42
|
+
[45, 247.54, 29929.562], [44, 325.15, 31555.956], [29, 60.93, 4443.417],
|
|
43
|
+
[18, 155.12, 67555.328], [17, 288.79, 4562.452], [16, 198.04, 62894.029],
|
|
44
|
+
[14, 199.76, 31436.921], [12, 95.39, 14577.848], [12, 287.11, 31931.756],
|
|
45
|
+
[12, 320.81, 34777.259], [9, 227.73, 1222.114], [8, 15.45, 16859.074]
|
|
46
|
+
];
|
|
47
|
+
// Instant of the September equinox for a Gregorian year, as a Julian Ephemeris
|
|
48
|
+
// Day (JDE) in Dynamical Time (TD). Valid roughly for years 1000..3000.
|
|
49
|
+
function septemberEquinoxJde(year) {
|
|
50
|
+
const y = (year - 2000) / 1000;
|
|
51
|
+
const jde0 = 2451810.21715
|
|
52
|
+
+ 365242.01767 * y
|
|
53
|
+
- 0.11575 * y * y
|
|
54
|
+
+ 0.00337 * y * y * y
|
|
55
|
+
+ 0.00078 * y * y * y * y;
|
|
56
|
+
const t = (jde0 - 2451545.0) / 36525;
|
|
57
|
+
const w = (35999.373 * t - 2.47) * DEG_TO_RAD;
|
|
58
|
+
const deltaLambda = 1 + 0.0334 * Math.cos(w) + 0.0007 * Math.cos(2 * w);
|
|
59
|
+
let s = 0;
|
|
60
|
+
for (const [a, b, c] of EQUINOX_TERMS) {
|
|
61
|
+
s += a * Math.cos((b + c * t) * DEG_TO_RAD);
|
|
62
|
+
}
|
|
63
|
+
return jde0 + (0.00001 * s) / deltaLambda;
|
|
64
|
+
}
|
|
65
|
+
// TD - UT, in seconds. Espenak & Meeus (2006) polynomial approximations,
|
|
66
|
+
// covering the range that matters here (18th–22nd century) with a parabolic
|
|
67
|
+
// fallback outside it.
|
|
68
|
+
function deltaTSeconds(year) {
|
|
69
|
+
let t;
|
|
70
|
+
if (year >= 2005 && year < 2050) {
|
|
71
|
+
t = year - 2000;
|
|
72
|
+
return 62.92 + 0.32217 * t + 0.005589 * t * t;
|
|
73
|
+
}
|
|
74
|
+
if (year >= 1986 && year < 2005) {
|
|
75
|
+
t = year - 2000;
|
|
76
|
+
return (63.86 + 0.3345 * t - 0.060374 * t * t + 0.0017275 * t ** 3
|
|
77
|
+
+ 0.000651814 * t ** 4 + 0.00002373599 * t ** 5);
|
|
78
|
+
}
|
|
79
|
+
if (year >= 1961 && year < 1986) {
|
|
80
|
+
t = year - 1975;
|
|
81
|
+
return 45.45 + 1.067 * t - (t * t) / 260 - (t ** 3) / 718;
|
|
82
|
+
}
|
|
83
|
+
if (year >= 1941 && year < 1961) {
|
|
84
|
+
t = year - 1950;
|
|
85
|
+
return 29.07 + 0.407 * t - (t * t) / 233 + (t ** 3) / 2547;
|
|
86
|
+
}
|
|
87
|
+
if (year >= 1920 && year < 1941) {
|
|
88
|
+
t = year - 1920;
|
|
89
|
+
return 21.20 + 0.84493 * t - 0.076100 * t * t + 0.0020936 * t ** 3;
|
|
90
|
+
}
|
|
91
|
+
if (year >= 1900 && year < 1920) {
|
|
92
|
+
t = year - 1900;
|
|
93
|
+
return (-2.79 + 1.494119 * t - 0.0598939 * t * t
|
|
94
|
+
+ 0.0061966 * t ** 3 - 0.000197 * t ** 4);
|
|
95
|
+
}
|
|
96
|
+
if (year >= 1860 && year < 1900) {
|
|
97
|
+
t = year - 1860;
|
|
98
|
+
return (7.62 + 0.5737 * t - 0.251754 * t * t + 0.01680668 * t ** 3
|
|
99
|
+
- 0.0004473624 * t ** 4 + (t ** 5) / 233174);
|
|
100
|
+
}
|
|
101
|
+
if (year >= 1800 && year < 1860) {
|
|
102
|
+
t = year - 1800;
|
|
103
|
+
return (13.72 - 0.332447 * t + 0.0068612 * t * t + 0.0041116 * t ** 3
|
|
104
|
+
- 0.00037436 * t ** 4 + 0.0000121272 * t ** 5
|
|
105
|
+
- 0.0000001699 * t ** 6 + 0.000000000875 * t ** 7);
|
|
106
|
+
}
|
|
107
|
+
if (year >= 1700 && year < 1800) {
|
|
108
|
+
t = year - 1700;
|
|
109
|
+
return 8.83 + 0.1603 * t - 0.0059285 * t * t + 0.00013336 * t ** 3 - (t ** 4) / 1174000;
|
|
110
|
+
}
|
|
111
|
+
if (year >= 2050 && year < 2150) {
|
|
112
|
+
return -20 + 32 * ((year - 1820) / 100) ** 2 - 0.5628 * (2150 - year);
|
|
113
|
+
}
|
|
114
|
+
const u = (year - 1820) / 100;
|
|
115
|
+
return -20 + 32 * u * u;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* JDN of 1 Vendémiaire — the civil day (Paris meridian) hosting the September
|
|
119
|
+
* equinox of the given Gregorian year.
|
|
120
|
+
*
|
|
121
|
+
* @param gregorianYear - The Gregorian year whose equinox opens the Republican year.
|
|
122
|
+
* @returns The Julian Day Number of that year's 1 Vendémiaire.
|
|
123
|
+
*/
|
|
124
|
+
export function republicanYearStartJdn(gregorianYear) {
|
|
125
|
+
const jde = septemberEquinoxJde(gregorianYear); // TD
|
|
126
|
+
const ut = jde - deltaTSeconds(gregorianYear) / 86400;
|
|
127
|
+
const parisMeanTime = ut + PARIS_MERIDIAN_OFFSET_DAYS;
|
|
128
|
+
return Math.floor(parisMeanTime + 0.5);
|
|
129
|
+
}
|
|
130
|
+
// --- Roman numerals (years were written in Roman numerals: "an VIII") --------
|
|
131
|
+
/**
|
|
132
|
+
* Formats a positive integer as a Roman numeral. Non-positive inputs are
|
|
133
|
+
* returned as their decimal string.
|
|
134
|
+
*
|
|
135
|
+
* @param n - The number to format.
|
|
136
|
+
* @returns The Roman numeral (e.g. `8` -> `'VIII'`).
|
|
137
|
+
*/
|
|
138
|
+
export function toRoman(n) {
|
|
139
|
+
if (n <= 0)
|
|
140
|
+
return String(n);
|
|
141
|
+
const table = [
|
|
142
|
+
[1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'],
|
|
143
|
+
[100, 'C'], [90, 'XC'], [50, 'L'], [40, 'XL'],
|
|
144
|
+
[10, 'X'], [9, 'IX'], [5, 'V'], [4, 'IV'], [1, 'I']
|
|
145
|
+
];
|
|
146
|
+
let remaining = n;
|
|
147
|
+
let result = '';
|
|
148
|
+
for (const [value, symbol] of table) {
|
|
149
|
+
while (remaining >= value) {
|
|
150
|
+
result += symbol;
|
|
151
|
+
remaining -= value;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
@@ -41,6 +41,7 @@ export class Duration {
|
|
|
41
41
|
else if (type === 'mo' || type === 'mth' || type === 'months') {
|
|
42
42
|
this.type = 'months';
|
|
43
43
|
}
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
44
45
|
else if (type === 'y' || type === 'years') {
|
|
45
46
|
this.type = 'years';
|
|
46
47
|
}
|
|
@@ -64,6 +65,7 @@ export class Duration {
|
|
|
64
65
|
return this.value * 1000 * 60 * 60 * 24 * 7;
|
|
65
66
|
if (this.type === 'months')
|
|
66
67
|
return this.value * 1000 * 60 * 60 * 24 * 30;
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
67
69
|
if (this.type === 'years')
|
|
68
70
|
return this.value * 1000 * 60 * 60 * 24 * 365;
|
|
69
71
|
return this.value; // defaults to milliseconds
|
package/agnostic/time/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
export * as dates from './dates/index.js'
|
|
1
2
|
export * as duration from './duration/index.js'
|
|
3
|
+
export * as timeout from './timeout/index.js'
|
|
2
4
|
export * as transitions from './transitions/index.js'
|
|
3
5
|
export * as wait from './wait/index.js'
|
|
4
|
-
export * as timeout from './timeout/index.js'
|
|
5
|
-
export * as dates from './dates/index.js'
|
package/agnostic/time/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
export * as dates from './dates/index.js'
|
|
1
2
|
export * as duration from './duration/index.js'
|
|
3
|
+
export * as timeout from './timeout/index.js'
|
|
2
4
|
export * as transitions from './transitions/index.js'
|
|
3
5
|
export * as wait from './wait/index.js'
|
|
4
|
-
export * as timeout from './timeout/index.js'
|
|
5
|
-
export * as dates from './dates/index.js'
|
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export async function timeout(timeoutMs, callback) {
|
|
10
10
|
let hasRejected = false;
|
|
11
|
-
|
|
12
|
-
return await new Promise(async (resolve, reject) => {
|
|
11
|
+
return await new Promise((resolve, reject) => {
|
|
13
12
|
const rejectTimeout = setTimeout(() => {
|
|
14
|
-
// eslint-disable-next-line prefer-promise-reject-errors
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
15
14
|
reject(false);
|
|
16
15
|
hasRejected = true;
|
|
17
16
|
}, timeoutMs);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
void (async () => {
|
|
18
|
+
const callbackResult = await callback();
|
|
19
|
+
if (hasRejected)
|
|
20
|
+
return;
|
|
21
|
+
clearTimeout(rejectTimeout);
|
|
22
|
+
resolve(callbackResult);
|
|
23
|
+
})();
|
|
24
24
|
});
|
|
25
25
|
}
|
|
@@ -89,13 +89,14 @@ const c5 = (2 * PI) / 4.5;
|
|
|
89
89
|
const bounceOut = function (x) {
|
|
90
90
|
const n1 = 7.5625;
|
|
91
91
|
const d1 = 2.75;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
92
|
+
let t = x;
|
|
93
|
+
if (t < 1 / d1)
|
|
94
|
+
return n1 * t * t;
|
|
95
|
+
if (t < 2 / d1)
|
|
96
|
+
return n1 * (t -= 1.5 / d1) * t + 0.75;
|
|
97
|
+
if (t < 2.5 / d1)
|
|
98
|
+
return n1 * (t -= 2.25 / d1) * t + 0.9375;
|
|
99
|
+
return n1 * (t -= 2.625 / d1) * t + 0.984375;
|
|
99
100
|
};
|
|
100
101
|
/**
|
|
101
102
|
* Predefined easing functions used internally by transitions.
|
|
@@ -32,6 +32,7 @@ import cssModule from './styles.module.css';
|
|
|
32
32
|
* @returns A split-panel container with pointer interaction handlers and ratio state applied.
|
|
33
33
|
*/
|
|
34
34
|
export const BeforeAfterControlled = ({ mode = 'horizontal', ratio = 0, before, after, className, children, actionHandlers }) => {
|
|
35
|
+
// eslint-disable-next-line no-param-reassign
|
|
35
36
|
ratio = clamp(ratio, 0, 1);
|
|
36
37
|
// State & refs
|
|
37
38
|
const rootRef = useRef(null);
|
|
@@ -26,7 +26,9 @@ export const BeforeAfter = ({ mode = 'horizontal', actionHandlers, stateHandlers
|
|
|
26
26
|
const isControlled = ratio !== undefined;
|
|
27
27
|
const effectiveRatio = isControlled ? ratio : internalRatio;
|
|
28
28
|
const handleDrag = (x, y) => {
|
|
29
|
+
// eslint-disable-next-line no-param-reassign
|
|
29
30
|
x = 1.02 * x - 0.01;
|
|
31
|
+
// eslint-disable-next-line no-param-reassign
|
|
30
32
|
y = 1.02 * y - 0.01;
|
|
31
33
|
actionHandlers?.dragged?.(x, y);
|
|
32
34
|
if (!isControlled) {
|
|
@@ -35,7 +37,9 @@ export const BeforeAfter = ({ mode = 'horizontal', actionHandlers, stateHandlers
|
|
|
35
37
|
}
|
|
36
38
|
};
|
|
37
39
|
const handleClick = (x, y) => {
|
|
40
|
+
// eslint-disable-next-line no-param-reassign
|
|
38
41
|
x = 1.02 * x - 0.01;
|
|
42
|
+
// eslint-disable-next-line no-param-reassign
|
|
39
43
|
y = 1.02 * y - 0.01;
|
|
40
44
|
actionHandlers?.clicked?.(x, y);
|
|
41
45
|
if (!isControlled) {
|
|
@@ -49,7 +49,7 @@ export const Drawer = ({ openerContent, closerContent, initialIsOpened = false,
|
|
|
49
49
|
setInternalIsOpened(false);
|
|
50
50
|
};
|
|
51
51
|
const handleROCompResize = ({ entry }) => {
|
|
52
|
-
const { width, height } = entry
|
|
52
|
+
const { width, height } = entry.contentRect;
|
|
53
53
|
setContentDimensions({ width, height });
|
|
54
54
|
};
|
|
55
55
|
// Rendering
|