yummies 5.4.6 → 5.4.8
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/async.cjs +70 -0
- package/async.d.cts +28 -0
- package/async.d.cts.map +1 -0
- package/async.d.ts +28 -0
- package/async.d.ts.map +1 -0
- package/async.js +62 -0
- package/common.cjs +18 -0
- package/common.d.cts +15 -0
- package/common.d.cts.map +1 -0
- package/common.d.ts +15 -0
- package/common.d.ts.map +1 -0
- package/common.js +14 -0
- package/complex/counter.cjs +21 -0
- package/complex/counter.d.cts +15 -0
- package/complex/counter.d.cts.map +1 -0
- package/complex/counter.d.ts +15 -0
- package/complex/counter.d.ts.map +1 -0
- package/complex/counter.js +17 -0
- package/complex/global-config.cjs +46 -0
- package/complex/global-config.d.cts +11 -0
- package/complex/global-config.d.cts.map +1 -0
- package/complex/global-config.d.ts +11 -0
- package/complex/global-config.d.ts.map +1 -0
- package/complex/global-config.js +41 -0
- package/complex/index.cjs +19 -0
- package/complex/index.d.cts +4 -0
- package/complex/index.d.cts.map +1 -0
- package/complex/index.d.ts +4 -0
- package/complex/index.d.ts.map +1 -0
- package/complex/index.js +3 -0
- package/complex/modules-factory.cjs +50 -0
- package/complex/modules-factory.d.cts +49 -0
- package/complex/modules-factory.d.cts.map +1 -0
- package/complex/modules-factory.d.ts +49 -0
- package/complex/modules-factory.d.ts.map +1 -0
- package/complex/modules-factory.js +46 -0
- package/cookie.cjs +13 -0
- package/cookie.d.cts +3 -0
- package/cookie.d.cts.map +1 -0
- package/cookie.d.ts +3 -0
- package/cookie.d.ts.map +1 -0
- package/cookie.js +9 -0
- package/css.cjs +28 -0
- package/css.d.cts +36 -0
- package/css.d.cts.map +1 -0
- package/css.d.ts +36 -0
- package/css.d.ts.map +1 -0
- package/css.js +20 -0
- package/data.cjs +58 -0
- package/data.d.cts +4 -0
- package/data.d.cts.map +1 -0
- package/data.d.ts +4 -0
- package/data.d.ts.map +1 -0
- package/data.js +52 -0
- package/date-time.cjs +171 -0
- package/date-time.d.cts +28 -0
- package/date-time.d.cts.map +1 -0
- package/date-time.d.ts +28 -0
- package/date-time.d.ts.map +1 -0
- package/date-time.js +160 -0
- package/device.cjs +28 -0
- package/device.d.cts +8 -0
- package/device.d.cts.map +1 -0
- package/device.d.ts +8 -0
- package/device.d.ts.map +1 -0
- package/device.js +21 -0
- package/encodings.cjs +270 -0
- package/encodings.d.cts +2 -0
- package/encodings.d.cts.map +1 -0
- package/encodings.d.ts +2 -0
- package/encodings.d.ts.map +1 -0
- package/encodings.js +267 -0
- package/errors.cjs +34 -0
- package/errors.d.cts +19 -0
- package/errors.d.cts.map +1 -0
- package/errors.d.ts +19 -0
- package/errors.d.ts.map +1 -0
- package/errors.js +30 -0
- package/file.cjs +29 -0
- package/file.d.cts +3 -0
- package/file.d.cts.map +1 -0
- package/file.d.ts +3 -0
- package/file.d.ts.map +1 -0
- package/file.js +24 -0
- package/format/_exports.cjs +20 -0
- package/format/_exports.d.cts +5 -0
- package/format/_exports.d.cts.map +1 -0
- package/format/_exports.d.ts +5 -0
- package/format/_exports.d.ts.map +1 -0
- package/format/_exports.js +4 -0
- package/format/constants.cjs +6 -0
- package/format/constants.d.cts +4 -0
- package/format/constants.d.cts.map +1 -0
- package/format/constants.d.ts +4 -0
- package/format/constants.d.ts.map +1 -0
- package/{src/format/constants.ts → format/constants.js} +0 -2
- package/format/index.cjs +40 -0
- package/format/index.d.cts +3 -0
- package/format/index.d.cts.map +1 -0
- package/format/index.d.ts +3 -0
- package/format/index.d.ts.map +1 -0
- package/{src/format/index.ts → format/index.js} +1 -2
- package/format/number.cjs +48 -0
- package/format/number.d.cts +36 -0
- package/format/number.d.cts.map +1 -0
- package/format/number.d.ts +36 -0
- package/format/number.d.ts.map +1 -0
- package/format/number.js +44 -0
- package/format/percent.cjs +27 -0
- package/format/percent.d.cts +15 -0
- package/format/percent.d.cts.map +1 -0
- package/format/percent.d.ts +15 -0
- package/format/percent.d.ts.map +1 -0
- package/format/percent.js +23 -0
- package/format/skip-spaces.cjs +8 -0
- package/format/skip-spaces.d.cts +5 -0
- package/format/skip-spaces.d.cts.map +1 -0
- package/format/skip-spaces.d.ts +5 -0
- package/format/skip-spaces.d.ts.map +1 -0
- package/format/skip-spaces.js +4 -0
- package/html.cjs +202 -0
- package/html.d.cts +44 -0
- package/html.d.cts.map +1 -0
- package/html.d.ts +44 -0
- package/html.d.ts.map +1 -0
- package/html.js +182 -0
- package/id.cjs +76 -0
- package/id.d.cts +63 -0
- package/id.d.cts.map +1 -0
- package/id.d.ts +63 -0
- package/id.d.ts.map +1 -0
- package/{src/id.ts → id.js} +6 -16
- package/imports.cjs +45 -0
- package/imports.d.cts +15 -0
- package/imports.d.cts.map +1 -0
- package/imports.d.ts +15 -0
- package/imports.d.ts.map +1 -0
- package/imports.js +40 -0
- package/math.cjs +23 -0
- package/math.d.cts +13 -0
- package/math.d.cts.map +1 -0
- package/math.d.ts +13 -0
- package/math.d.ts.map +1 -0
- package/math.js +17 -0
- package/media.cjs +115 -0
- package/media.d.cts +20 -0
- package/media.d.cts.map +1 -0
- package/media.d.ts +20 -0
- package/media.d.ts.map +1 -0
- package/media.js +103 -0
- package/mobx/apply-observable.cjs +16 -0
- package/mobx/apply-observable.d.cts +4 -0
- package/mobx/apply-observable.d.cts.map +1 -0
- package/mobx/apply-observable.d.ts +4 -0
- package/mobx/apply-observable.d.ts.map +1 -0
- package/mobx/apply-observable.js +12 -0
- package/mobx/create-enhanced-atom.cjs +16 -0
- package/mobx/create-enhanced-atom.d.cts +11 -0
- package/mobx/create-enhanced-atom.d.cts.map +1 -0
- package/mobx/create-enhanced-atom.d.ts +11 -0
- package/mobx/create-enhanced-atom.d.ts.map +1 -0
- package/mobx/create-enhanced-atom.js +12 -0
- package/mobx/deep-observable-struct.cjs +61 -0
- package/mobx/deep-observable-struct.d.cts +7 -0
- package/mobx/deep-observable-struct.d.cts.map +1 -0
- package/mobx/deep-observable-struct.d.ts +7 -0
- package/mobx/deep-observable-struct.d.ts.map +1 -0
- package/mobx/deep-observable-struct.js +57 -0
- package/mobx/get-mobx-administration.cjs +6 -0
- package/mobx/get-mobx-administration.d.cts +6 -0
- package/mobx/get-mobx-administration.d.cts.map +1 -0
- package/mobx/get-mobx-administration.d.ts +6 -0
- package/mobx/get-mobx-administration.d.ts.map +1 -0
- package/mobx/get-mobx-administration.js +2 -0
- package/mobx/index.cjs +21 -0
- package/mobx/index.d.cts +6 -0
- package/mobx/index.d.cts.map +1 -0
- package/mobx/index.d.ts +6 -0
- package/mobx/index.d.ts.map +1 -0
- package/mobx/index.js +5 -0
- package/mobx/lazy-observe.cjs +47 -0
- package/mobx/lazy-observe.d.cts +8 -0
- package/mobx/lazy-observe.d.cts.map +1 -0
- package/mobx/lazy-observe.d.ts +8 -0
- package/mobx/lazy-observe.d.ts.map +1 -0
- package/mobx/lazy-observe.js +43 -0
- package/ms.cjs +22 -0
- package/ms.d.cts +19 -0
- package/ms.d.cts.map +1 -0
- package/ms.d.ts +19 -0
- package/ms.d.ts.map +1 -0
- package/ms.js +18 -0
- package/number.cjs +16 -0
- package/number.d.cts +8 -0
- package/number.d.cts.map +1 -0
- package/number.d.ts +8 -0
- package/number.d.ts.map +1 -0
- package/number.js +13 -0
- package/package.json +163 -5
- package/parser/_exports.cjs +19 -0
- package/parser/_exports.d.cts +4 -0
- package/parser/_exports.d.cts.map +1 -0
- package/parser/_exports.d.ts +4 -0
- package/parser/_exports.d.ts.map +1 -0
- package/parser/_exports.js +3 -0
- package/parser/index.cjs +40 -0
- package/parser/index.d.cts +3 -0
- package/parser/index.d.cts.map +1 -0
- package/parser/index.d.ts +3 -0
- package/parser/index.d.ts.map +1 -0
- package/{src/parser/index.ts → parser/index.js} +1 -2
- package/parser/number.cjs +48 -0
- package/parser/number.d.cts +21 -0
- package/parser/number.d.cts.map +1 -0
- package/parser/number.d.ts +21 -0
- package/parser/number.d.ts.map +1 -0
- package/parser/number.js +44 -0
- package/parser/percent.cjs +8 -0
- package/parser/percent.d.cts +4 -0
- package/parser/percent.d.cts.map +1 -0
- package/parser/percent.d.ts +4 -0
- package/parser/percent.d.ts.map +1 -0
- package/parser/percent.js +4 -0
- package/parser/string.cjs +18 -0
- package/parser/string.d.cts +7 -0
- package/parser/string.d.cts.map +1 -0
- package/parser/string.d.ts +7 -0
- package/parser/string.d.ts.map +1 -0
- package/parser/string.js +14 -0
- package/price.cjs +21 -0
- package/price.d.cts +6 -0
- package/price.d.cts.map +1 -0
- package/price.d.ts +6 -0
- package/price.d.ts.map +1 -0
- package/price.js +17 -0
- package/random.cjs +25 -0
- package/random.d.cts +9 -0
- package/random.d.cts.map +1 -0
- package/random.d.ts +9 -0
- package/random.d.ts.map +1 -0
- package/random.js +14 -0
- package/react/hooks/index.cjs +37 -0
- package/react/hooks/index.d.cts +22 -0
- package/react/hooks/index.d.cts.map +1 -0
- package/react/hooks/index.d.ts +22 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/index.js +21 -0
- package/react/hooks/use-abort-controller.cjs +15 -0
- package/react/hooks/use-abort-controller.d.cts +2 -0
- package/react/hooks/use-abort-controller.d.cts.map +1 -0
- package/react/hooks/use-abort-controller.d.ts +2 -0
- package/react/hooks/use-abort-controller.d.ts.map +1 -0
- package/react/hooks/use-abort-controller.js +11 -0
- package/react/hooks/use-abort-signal.cjs +8 -0
- package/react/hooks/use-abort-signal.d.cts +2 -0
- package/react/hooks/use-abort-signal.d.cts.map +1 -0
- package/react/hooks/use-abort-signal.d.ts +2 -0
- package/react/hooks/use-abort-signal.d.ts.map +1 -0
- package/react/hooks/use-abort-signal.js +4 -0
- package/react/hooks/use-click-outside.cjs +17 -0
- package/react/hooks/use-click-outside.d.cts +9 -0
- package/react/hooks/use-click-outside.d.cts.map +1 -0
- package/react/hooks/use-click-outside.d.ts +9 -0
- package/react/hooks/use-click-outside.d.ts.map +1 -0
- package/react/hooks/use-click-outside.js +13 -0
- package/react/hooks/use-constant.cjs +19 -0
- package/react/hooks/use-constant.d.cts +9 -0
- package/react/hooks/use-constant.d.cts.map +1 -0
- package/react/hooks/use-constant.d.ts +9 -0
- package/react/hooks/use-constant.d.ts.map +1 -0
- package/{src/react/hooks/use-constant.ts → react/hooks/use-constant.js} +6 -9
- package/react/hooks/use-define-ref.cjs +19 -0
- package/react/hooks/use-define-ref.d.cts +10 -0
- package/react/hooks/use-define-ref.d.cts.map +1 -0
- package/react/hooks/use-define-ref.d.ts +10 -0
- package/react/hooks/use-define-ref.d.ts.map +1 -0
- package/{src/react/hooks/use-define-ref.ts → react/hooks/use-define-ref.js} +7 -10
- package/react/hooks/use-element-ref.cjs +12 -0
- package/react/hooks/use-element-ref.d.cts +2 -0
- package/react/hooks/use-element-ref.d.cts.map +1 -0
- package/react/hooks/use-element-ref.d.ts +2 -0
- package/react/hooks/use-element-ref.d.ts.map +1 -0
- package/react/hooks/use-element-ref.js +8 -0
- package/react/hooks/use-event-listener.cjs +17 -0
- package/react/hooks/use-event-listener.d.cts +8 -0
- package/react/hooks/use-event-listener.d.cts.map +1 -0
- package/react/hooks/use-event-listener.d.ts +8 -0
- package/react/hooks/use-event-listener.d.ts.map +1 -0
- package/react/hooks/use-event-listener.js +13 -0
- package/react/hooks/use-event.cjs +23 -0
- package/react/hooks/use-event.d.cts +3 -0
- package/react/hooks/use-event.d.cts.map +1 -0
- package/react/hooks/use-event.d.ts +3 -0
- package/react/hooks/use-event.d.ts.map +1 -0
- package/react/hooks/use-event.js +19 -0
- package/react/hooks/use-flag.cjs +19 -0
- package/react/hooks/use-flag.d.cts +8 -0
- package/react/hooks/use-flag.d.cts.map +1 -0
- package/react/hooks/use-flag.d.ts +8 -0
- package/react/hooks/use-flag.d.ts.map +1 -0
- package/react/hooks/use-flag.js +15 -0
- package/react/hooks/use-force-update.cjs +11 -0
- package/react/hooks/use-force-update.d.cts +2 -0
- package/react/hooks/use-force-update.d.cts.map +1 -0
- package/react/hooks/use-force-update.d.ts +2 -0
- package/react/hooks/use-force-update.d.ts.map +1 -0
- package/react/hooks/use-force-update.js +7 -0
- package/react/hooks/use-initial-height.cjs +15 -0
- package/react/hooks/use-initial-height.d.cts +5 -0
- package/react/hooks/use-initial-height.d.cts.map +1 -0
- package/react/hooks/use-initial-height.d.ts +5 -0
- package/react/hooks/use-initial-height.d.ts.map +1 -0
- package/react/hooks/use-initial-height.js +11 -0
- package/react/hooks/use-instance.cjs +31 -0
- package/react/hooks/use-instance.d.cts +27 -0
- package/react/hooks/use-instance.d.cts.map +1 -0
- package/react/hooks/use-instance.d.ts +27 -0
- package/react/hooks/use-instance.d.ts.map +1 -0
- package/{src/react/hooks/use-instance.ts → react/hooks/use-instance.js} +9 -31
- package/react/hooks/use-intersection-observer.cjs +14 -0
- package/react/hooks/use-intersection-observer.d.cts +2 -0
- package/react/hooks/use-intersection-observer.d.cts.map +1 -0
- package/react/hooks/use-intersection-observer.d.ts +2 -0
- package/react/hooks/use-intersection-observer.d.ts.map +1 -0
- package/react/hooks/use-intersection-observer.js +10 -0
- package/react/hooks/use-last-defined-value.cjs +12 -0
- package/react/hooks/use-last-defined-value.d.cts +2 -0
- package/react/hooks/use-last-defined-value.d.cts.map +1 -0
- package/react/hooks/use-last-defined-value.d.ts +2 -0
- package/react/hooks/use-last-defined-value.d.ts.map +1 -0
- package/react/hooks/use-last-defined-value.js +8 -0
- package/react/hooks/use-last-value-ref.cjs +12 -0
- package/react/hooks/use-last-value-ref.d.cts +2 -0
- package/react/hooks/use-last-value-ref.d.cts.map +1 -0
- package/react/hooks/use-last-value-ref.d.ts +2 -0
- package/react/hooks/use-last-value-ref.d.ts.map +1 -0
- package/react/hooks/use-last-value-ref.js +8 -0
- package/react/hooks/use-life-cycle.cjs +14 -0
- package/react/hooks/use-life-cycle.d.cts +5 -0
- package/react/hooks/use-life-cycle.d.cts.map +1 -0
- package/react/hooks/use-life-cycle.d.ts +5 -0
- package/react/hooks/use-life-cycle.d.ts.map +1 -0
- package/react/hooks/use-life-cycle.js +10 -0
- package/react/hooks/use-resize-observer.cjs +15 -0
- package/react/hooks/use-resize-observer.d.cts +2 -0
- package/react/hooks/use-resize-observer.d.cts.map +1 -0
- package/react/hooks/use-resize-observer.d.ts +2 -0
- package/react/hooks/use-resize-observer.d.ts.map +1 -0
- package/react/hooks/use-resize-observer.js +11 -0
- package/react/hooks/use-sync-ref.cjs +10 -0
- package/react/hooks/use-sync-ref.d.cts +2 -0
- package/react/hooks/use-sync-ref.d.cts.map +1 -0
- package/react/hooks/use-sync-ref.d.ts +2 -0
- package/react/hooks/use-sync-ref.d.ts.map +1 -0
- package/react/hooks/use-sync-ref.js +6 -0
- package/react/hooks/use-toggle.cjs +10 -0
- package/react/hooks/use-toggle.d.cts +2 -0
- package/react/hooks/use-toggle.d.cts.map +1 -0
- package/react/hooks/use-toggle.d.ts +2 -0
- package/react/hooks/use-toggle.d.ts.map +1 -0
- package/react/hooks/use-toggle.js +6 -0
- package/react/hooks/use-value.cjs +12 -0
- package/react/hooks/use-value.d.cts +5 -0
- package/react/hooks/use-value.d.cts.map +1 -0
- package/react/hooks/use-value.d.ts +5 -0
- package/react/hooks/use-value.d.ts.map +1 -0
- package/react/hooks/use-value.js +8 -0
- package/react/hooks/use-visibility-state.cjs +18 -0
- package/react/hooks/use-visibility-state.d.cts +2 -0
- package/react/hooks/use-visibility-state.d.cts.map +1 -0
- package/react/hooks/use-visibility-state.d.ts +2 -0
- package/react/hooks/use-visibility-state.d.ts.map +1 -0
- package/react/hooks/use-visibility-state.js +14 -0
- package/react/index.cjs +17 -0
- package/react/index.d.cts +2 -0
- package/react/index.d.cts.map +1 -0
- package/react/index.d.ts +2 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +1 -0
- package/sound.cjs +16 -0
- package/sound.d.cts +7 -0
- package/sound.d.cts.map +1 -0
- package/sound.d.ts +7 -0
- package/sound.d.ts.map +1 -0
- package/sound.js +12 -0
- package/storage.cjs +48 -0
- package/storage.d.cts +39 -0
- package/storage.d.cts.map +1 -0
- package/storage.d.ts +39 -0
- package/storage.d.ts.map +1 -0
- package/storage.js +43 -0
- package/text.cjs +53 -0
- package/text.d.cts +15 -0
- package/text.d.cts.map +1 -0
- package/text.d.ts +15 -0
- package/text.d.ts.map +1 -0
- package/text.js +48 -0
- package/type-guard/_exports.cjs +129 -0
- package/type-guard/_exports.d.cts +86 -0
- package/type-guard/_exports.d.cts.map +1 -0
- package/type-guard/_exports.d.ts +86 -0
- package/type-guard/_exports.d.ts.map +1 -0
- package/type-guard/_exports.js +125 -0
- package/type-guard/index.cjs +40 -0
- package/type-guard/index.d.cts +3 -0
- package/type-guard/index.d.cts.map +1 -0
- package/type-guard/index.d.ts +3 -0
- package/type-guard/index.d.ts.map +1 -0
- package/{src/type-guard/index.ts → type-guard/index.js} +1 -2
- package/utility-types.d.ts +396 -0
- package/utils/types.cjs +2 -0
- package/utils/types.d.cts +395 -0
- package/utils/types.d.cts.map +1 -0
- package/utils/types.d.ts +395 -0
- package/utils/types.d.ts.map +1 -0
- package/utils/types.js +1 -0
- package/vibrate.cjs +12 -0
- package/vibrate.d.cts +5 -0
- package/vibrate.d.cts.map +1 -0
- package/vibrate.d.ts +5 -0
- package/vibrate.d.ts.map +1 -0
- package/vibrate.js +8 -0
- package/.changeset/README.md +0 -8
- package/.changeset/config.json +0 -11
- package/.github/FUNDING.yml +0 -1
- package/.github/workflows/main.yml +0 -34
- package/.github/workflows/version-or-publish.yml +0 -45
- package/.nvmrc +0 -1
- package/.vscode/settings.json +0 -19
- package/CHANGELOG.md +0 -215
- package/CONTRIBUTING.md +0 -8
- package/Makefile +0 -7
- package/biome.json +0 -3
- package/commitfmt.toml +0 -18
- package/lefthook.yml +0 -14
- package/scripts/post-build.ts +0 -71
- package/src/async.ts +0 -86
- package/src/common.ts +0 -26
- package/src/complex/counter.test.ts +0 -41
- package/src/complex/counter.ts +0 -40
- package/src/complex/global-config.ts +0 -55
- package/src/complex/index.ts +0 -3
- package/src/complex/modules-factory.ts +0 -65
- package/src/cookie.ts +0 -11
- package/src/css.ts +0 -60
- package/src/data.test.ts +0 -99
- package/src/data.ts +0 -65
- package/src/date-time.test.ts +0 -119
- package/src/date-time.ts +0 -236
- package/src/device.ts +0 -42
- package/src/encodings.ts +0 -270
- package/src/errors.ts +0 -40
- package/src/file.ts +0 -25
- package/src/format/_exports.ts +0 -4
- package/src/format/number.test.ts +0 -16
- package/src/format/number.ts +0 -96
- package/src/format/percent.ts +0 -40
- package/src/format/skip-spaces.ts +0 -4
- package/src/html.ts +0 -238
- package/src/imports.ts +0 -52
- package/src/math.ts +0 -20
- package/src/media.ts +0 -134
- package/src/mobx/apply-observable.ts +0 -20
- package/src/mobx/create-enhanced-atom.ts +0 -28
- package/src/mobx/deep-observable-struct.test.ts +0 -69
- package/src/mobx/deep-observable-struct.ts +0 -69
- package/src/mobx/get-mobx-administration.ts +0 -10
- package/src/mobx/index.ts +0 -5
- package/src/mobx/lazy-observe.ts +0 -59
- package/src/ms.ts +0 -20
- package/src/number.ts +0 -14
- package/src/parser/_exports.ts +0 -3
- package/src/parser/number.test.ts +0 -38
- package/src/parser/number.ts +0 -73
- package/src/parser/percent.ts +0 -11
- package/src/parser/string.ts +0 -29
- package/src/price.ts +0 -33
- package/src/random.ts +0 -27
- package/src/react/hooks/index.ts +0 -21
- package/src/react/hooks/use-abort-controller.ts +0 -15
- package/src/react/hooks/use-abort-signal.ts +0 -5
- package/src/react/hooks/use-click-outside.ts +0 -27
- package/src/react/hooks/use-element-ref.ts +0 -11
- package/src/react/hooks/use-event-listener.ts +0 -29
- package/src/react/hooks/use-event.ts +0 -23
- package/src/react/hooks/use-flag.ts +0 -27
- package/src/react/hooks/use-force-update.ts +0 -9
- package/src/react/hooks/use-initial-height.ts +0 -16
- package/src/react/hooks/use-intersection-observer.ts +0 -18
- package/src/react/hooks/use-last-defined-value.ts +0 -9
- package/src/react/hooks/use-last-value-ref.ts +0 -11
- package/src/react/hooks/use-life-cycle.ts +0 -17
- package/src/react/hooks/use-resize-observer.ts +0 -14
- package/src/react/hooks/use-sync-ref.ts +0 -7
- package/src/react/hooks/use-toggle.ts +0 -9
- package/src/react/hooks/use-value.ts +0 -10
- package/src/react/hooks/use-visibility-state.ts +0 -19
- package/src/react/index.ts +0 -1
- package/src/sound.ts +0 -15
- package/src/storage.ts +0 -137
- package/src/text.test.ts +0 -91
- package/src/text.ts +0 -60
- package/src/type-guard/_exports.ts +0 -154
- package/src/type-guard/index.test.ts +0 -127
- package/src/vibrate.ts +0 -8
- package/tsconfig.json +0 -26
- package/tsconfig.test.json +0 -33
- package/vitest.config.ts +0 -20
package/media.cjs
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isBase64Image = exports.isHttpUrl = exports.rotateImage = exports.renderImage = exports.imageToBlob = exports.fileToBlob = exports.blobToUrl = void 0;
|
|
4
|
+
exports.blobToBase64 = blobToBase64;
|
|
5
|
+
exports.decodeDataUrl = decodeDataUrl;
|
|
6
|
+
const math_js_1 = require("./math.cjs");
|
|
7
|
+
function blobToBase64(blob) {
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
const reader = new FileReader();
|
|
10
|
+
reader.onloadend = () => resolve(reader.result);
|
|
11
|
+
reader.onerror = reject;
|
|
12
|
+
reader.readAsDataURL(blob);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
const blobToUrl = (urlOrBlob) => urlOrBlob instanceof Blob ? URL.createObjectURL(urlOrBlob) : urlOrBlob;
|
|
16
|
+
exports.blobToUrl = blobToUrl;
|
|
17
|
+
const fileToBlob = (file) => {
|
|
18
|
+
return new Blob([file], { type: file.type });
|
|
19
|
+
};
|
|
20
|
+
exports.fileToBlob = fileToBlob;
|
|
21
|
+
const imageToBlob = (imageElement, mimeType = 'image/png') => {
|
|
22
|
+
const canvas = document.createElement('canvas');
|
|
23
|
+
canvas.width = imageElement.naturalWidth || 300;
|
|
24
|
+
canvas.height = imageElement.naturalHeight || 300;
|
|
25
|
+
canvas.getContext('2d').drawImage(imageElement, 0, 0);
|
|
26
|
+
const dataUri = canvas.toDataURL(mimeType, 1);
|
|
27
|
+
const base64data = dataUri.split(',')[1];
|
|
28
|
+
const base64MimeType = dataUri.split(';')[0].slice(5);
|
|
29
|
+
const bytes = globalThis.atob(base64data);
|
|
30
|
+
const buf = new ArrayBuffer(bytes.length);
|
|
31
|
+
const array = new Uint8Array(buf);
|
|
32
|
+
for (let index = 0; index < bytes.length; index++) {
|
|
33
|
+
array[index] = bytes.charCodeAt(index);
|
|
34
|
+
}
|
|
35
|
+
const blob = new Blob([array], { type: base64MimeType });
|
|
36
|
+
return blob;
|
|
37
|
+
};
|
|
38
|
+
exports.imageToBlob = imageToBlob;
|
|
39
|
+
/**
|
|
40
|
+
* Загружает и отрисовывает изображение с использованием Image
|
|
41
|
+
*
|
|
42
|
+
* @returns {Promise<HTMLImageElement>}
|
|
43
|
+
*/
|
|
44
|
+
const renderImage = (urlOrBlob) => new Promise((resolve, reject) => {
|
|
45
|
+
const image = new Image();
|
|
46
|
+
image.src = (0, exports.blobToUrl)(urlOrBlob);
|
|
47
|
+
image.onload = () => resolve(image);
|
|
48
|
+
image.onerror = () => reject();
|
|
49
|
+
});
|
|
50
|
+
exports.renderImage = renderImage;
|
|
51
|
+
function cropImageFromCanvas(context) {
|
|
52
|
+
const canvas = context.canvas;
|
|
53
|
+
let w = canvas.width;
|
|
54
|
+
let h = canvas.height;
|
|
55
|
+
const pix = { x: [], y: [] };
|
|
56
|
+
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
|
|
57
|
+
let x;
|
|
58
|
+
let y;
|
|
59
|
+
let index;
|
|
60
|
+
for (y = 0; y < h; y++) {
|
|
61
|
+
for (x = 0; x < w; x++) {
|
|
62
|
+
index = (y * w + x) * 4;
|
|
63
|
+
if (imageData.data[index + 3] > 0) {
|
|
64
|
+
pix.x.push(x);
|
|
65
|
+
pix.y.push(y);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
pix.x.sort((a, b) => a - b);
|
|
70
|
+
pix.y.sort((a, b) => a - b);
|
|
71
|
+
const n = pix.x.length - 1;
|
|
72
|
+
w = 1 + pix.x[n] - pix.x[0];
|
|
73
|
+
h = 1 + pix.y[n] - pix.y[0];
|
|
74
|
+
const cut = context.getImageData(pix.x[0], pix.y[0], w, h);
|
|
75
|
+
canvas.width = w;
|
|
76
|
+
canvas.height = h;
|
|
77
|
+
context.putImageData(cut, 0, 0);
|
|
78
|
+
return canvas;
|
|
79
|
+
}
|
|
80
|
+
// TODO: ломает iphone с огромными изображениями
|
|
81
|
+
const rotateImage = (image, angle) => {
|
|
82
|
+
const maxSize = Math.max(image.width, image.height);
|
|
83
|
+
const canvas = document.createElement('canvas');
|
|
84
|
+
canvas.width = maxSize;
|
|
85
|
+
canvas.height = maxSize;
|
|
86
|
+
const context = canvas.getContext('2d');
|
|
87
|
+
context.save();
|
|
88
|
+
context.translate(canvas.width / 2, canvas.height / 2);
|
|
89
|
+
context.rotate((0, math_js_1.degToRad)(angle));
|
|
90
|
+
context.drawImage(image, -image.width / 2, -image.height / 2);
|
|
91
|
+
context.restore();
|
|
92
|
+
cropImageFromCanvas(context);
|
|
93
|
+
return (0, exports.renderImage)(canvas.toDataURL('image/png'));
|
|
94
|
+
};
|
|
95
|
+
exports.rotateImage = rotateImage;
|
|
96
|
+
/*
|
|
97
|
+
* Returning object which contains base64 data and mime type of passed data url string.
|
|
98
|
+
* */
|
|
99
|
+
function decodeDataUrl(url) {
|
|
100
|
+
const regex = /^data:(.*);base64,\s?(.*)$/;
|
|
101
|
+
const matches = new RegExp(regex).exec(url);
|
|
102
|
+
return {
|
|
103
|
+
mimeType: matches?.[1],
|
|
104
|
+
data: matches?.[2],
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const isHttpUrl = (url) => {
|
|
108
|
+
return url.startsWith('https://') || url.startsWith('http://');
|
|
109
|
+
};
|
|
110
|
+
exports.isHttpUrl = isHttpUrl;
|
|
111
|
+
const isBase64Image = (str) => {
|
|
112
|
+
const { mimeType, data } = decodeDataUrl(str);
|
|
113
|
+
return !!(data && mimeType?.startsWith('image/'));
|
|
114
|
+
};
|
|
115
|
+
exports.isBase64Image = isBase64Image;
|
package/media.d.cts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare function blobToBase64(blob: Blob): Promise<string>;
|
|
2
|
+
export declare const blobToUrl: (urlOrBlob: string | Blob) => string;
|
|
3
|
+
export declare const fileToBlob: (file: File) => Blob;
|
|
4
|
+
export declare const imageToBlob: (imageElement: HTMLImageElement, mimeType?: string) => Blob;
|
|
5
|
+
/**
|
|
6
|
+
* Загружает и отрисовывает изображение с использованием Image
|
|
7
|
+
*
|
|
8
|
+
* @returns {Promise<HTMLImageElement>}
|
|
9
|
+
*/
|
|
10
|
+
export declare const renderImage: (urlOrBlob: Blob | string) => Promise<HTMLImageElement>;
|
|
11
|
+
export declare const rotateImage: (image: HTMLImageElement, angle: number) => Promise<HTMLImageElement>;
|
|
12
|
+
interface DecodedDataUrl {
|
|
13
|
+
mimeType?: string;
|
|
14
|
+
data?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function decodeDataUrl(url: string): DecodedDataUrl;
|
|
17
|
+
export declare const isHttpUrl: (url: string) => boolean;
|
|
18
|
+
export declare const isBase64Image: (str: string) => boolean;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=media.d.ts.map
|
package/media.d.cts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAOxD;AAED,eAAO,MAAM,SAAS,GAAI,WAAW,MAAM,GAAG,IAAI,WACsB,CAAC;AAEzE,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,SAEpC,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,cAAc,gBAAgB,EAC9B,WAAU,MAAoB,SAwB/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,IAAI,GAAG,MAAM,8BAMhD,CAAC;AAoCL,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,EAAE,OAAO,MAAM,8BAajE,CAAC;AAEF,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAQzD;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,OAEvC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,OAG3C,CAAC"}
|
package/media.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare function blobToBase64(blob: Blob): Promise<string>;
|
|
2
|
+
export declare const blobToUrl: (urlOrBlob: string | Blob) => string;
|
|
3
|
+
export declare const fileToBlob: (file: File) => Blob;
|
|
4
|
+
export declare const imageToBlob: (imageElement: HTMLImageElement, mimeType?: string) => Blob;
|
|
5
|
+
/**
|
|
6
|
+
* Загружает и отрисовывает изображение с использованием Image
|
|
7
|
+
*
|
|
8
|
+
* @returns {Promise<HTMLImageElement>}
|
|
9
|
+
*/
|
|
10
|
+
export declare const renderImage: (urlOrBlob: Blob | string) => Promise<HTMLImageElement>;
|
|
11
|
+
export declare const rotateImage: (image: HTMLImageElement, angle: number) => Promise<HTMLImageElement>;
|
|
12
|
+
interface DecodedDataUrl {
|
|
13
|
+
mimeType?: string;
|
|
14
|
+
data?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function decodeDataUrl(url: string): DecodedDataUrl;
|
|
17
|
+
export declare const isHttpUrl: (url: string) => boolean;
|
|
18
|
+
export declare const isBase64Image: (str: string) => boolean;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=media.d.ts.map
|
package/media.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAOxD;AAED,eAAO,MAAM,SAAS,GAAI,WAAW,MAAM,GAAG,IAAI,WACsB,CAAC;AAEzE,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,SAEpC,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,cAAc,gBAAgB,EAC9B,WAAU,MAAoB,SAwB/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,IAAI,GAAG,MAAM,8BAMhD,CAAC;AAoCL,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,EAAE,OAAO,MAAM,8BAajE,CAAC;AAEF,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAQzD;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,OAEvC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,OAG3C,CAAC"}
|
package/media.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { degToRad } from "./math.js";
|
|
2
|
+
export function blobToBase64(blob) {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
const reader = new FileReader();
|
|
5
|
+
reader.onloadend = () => resolve(reader.result);
|
|
6
|
+
reader.onerror = reject;
|
|
7
|
+
reader.readAsDataURL(blob);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
export const blobToUrl = (urlOrBlob) => urlOrBlob instanceof Blob ? URL.createObjectURL(urlOrBlob) : urlOrBlob;
|
|
11
|
+
export const fileToBlob = (file) => {
|
|
12
|
+
return new Blob([file], { type: file.type });
|
|
13
|
+
};
|
|
14
|
+
export const imageToBlob = (imageElement, mimeType = 'image/png') => {
|
|
15
|
+
const canvas = document.createElement('canvas');
|
|
16
|
+
canvas.width = imageElement.naturalWidth || 300;
|
|
17
|
+
canvas.height = imageElement.naturalHeight || 300;
|
|
18
|
+
canvas.getContext('2d').drawImage(imageElement, 0, 0);
|
|
19
|
+
const dataUri = canvas.toDataURL(mimeType, 1);
|
|
20
|
+
const base64data = dataUri.split(',')[1];
|
|
21
|
+
const base64MimeType = dataUri.split(';')[0].slice(5);
|
|
22
|
+
const bytes = globalThis.atob(base64data);
|
|
23
|
+
const buf = new ArrayBuffer(bytes.length);
|
|
24
|
+
const array = new Uint8Array(buf);
|
|
25
|
+
for (let index = 0; index < bytes.length; index++) {
|
|
26
|
+
array[index] = bytes.charCodeAt(index);
|
|
27
|
+
}
|
|
28
|
+
const blob = new Blob([array], { type: base64MimeType });
|
|
29
|
+
return blob;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Загружает и отрисовывает изображение с использованием Image
|
|
33
|
+
*
|
|
34
|
+
* @returns {Promise<HTMLImageElement>}
|
|
35
|
+
*/
|
|
36
|
+
export const renderImage = (urlOrBlob) => new Promise((resolve, reject) => {
|
|
37
|
+
const image = new Image();
|
|
38
|
+
image.src = blobToUrl(urlOrBlob);
|
|
39
|
+
image.onload = () => resolve(image);
|
|
40
|
+
image.onerror = () => reject();
|
|
41
|
+
});
|
|
42
|
+
function cropImageFromCanvas(context) {
|
|
43
|
+
const canvas = context.canvas;
|
|
44
|
+
let w = canvas.width;
|
|
45
|
+
let h = canvas.height;
|
|
46
|
+
const pix = { x: [], y: [] };
|
|
47
|
+
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
|
|
48
|
+
let x;
|
|
49
|
+
let y;
|
|
50
|
+
let index;
|
|
51
|
+
for (y = 0; y < h; y++) {
|
|
52
|
+
for (x = 0; x < w; x++) {
|
|
53
|
+
index = (y * w + x) * 4;
|
|
54
|
+
if (imageData.data[index + 3] > 0) {
|
|
55
|
+
pix.x.push(x);
|
|
56
|
+
pix.y.push(y);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
pix.x.sort((a, b) => a - b);
|
|
61
|
+
pix.y.sort((a, b) => a - b);
|
|
62
|
+
const n = pix.x.length - 1;
|
|
63
|
+
w = 1 + pix.x[n] - pix.x[0];
|
|
64
|
+
h = 1 + pix.y[n] - pix.y[0];
|
|
65
|
+
const cut = context.getImageData(pix.x[0], pix.y[0], w, h);
|
|
66
|
+
canvas.width = w;
|
|
67
|
+
canvas.height = h;
|
|
68
|
+
context.putImageData(cut, 0, 0);
|
|
69
|
+
return canvas;
|
|
70
|
+
}
|
|
71
|
+
// TODO: ломает iphone с огромными изображениями
|
|
72
|
+
export const rotateImage = (image, angle) => {
|
|
73
|
+
const maxSize = Math.max(image.width, image.height);
|
|
74
|
+
const canvas = document.createElement('canvas');
|
|
75
|
+
canvas.width = maxSize;
|
|
76
|
+
canvas.height = maxSize;
|
|
77
|
+
const context = canvas.getContext('2d');
|
|
78
|
+
context.save();
|
|
79
|
+
context.translate(canvas.width / 2, canvas.height / 2);
|
|
80
|
+
context.rotate(degToRad(angle));
|
|
81
|
+
context.drawImage(image, -image.width / 2, -image.height / 2);
|
|
82
|
+
context.restore();
|
|
83
|
+
cropImageFromCanvas(context);
|
|
84
|
+
return renderImage(canvas.toDataURL('image/png'));
|
|
85
|
+
};
|
|
86
|
+
/*
|
|
87
|
+
* Returning object which contains base64 data and mime type of passed data url string.
|
|
88
|
+
* */
|
|
89
|
+
export function decodeDataUrl(url) {
|
|
90
|
+
const regex = /^data:(.*);base64,\s?(.*)$/;
|
|
91
|
+
const matches = new RegExp(regex).exec(url);
|
|
92
|
+
return {
|
|
93
|
+
mimeType: matches?.[1],
|
|
94
|
+
data: matches?.[2],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export const isHttpUrl = (url) => {
|
|
98
|
+
return url.startsWith('https://') || url.startsWith('http://');
|
|
99
|
+
};
|
|
100
|
+
export const isBase64Image = (str) => {
|
|
101
|
+
const { mimeType, data } = decodeDataUrl(str);
|
|
102
|
+
return !!(data && mimeType?.startsWith('image/'));
|
|
103
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyObservable = void 0;
|
|
4
|
+
const mobx_1 = require("mobx");
|
|
5
|
+
const applyObservable = (context, annotationsArray, useDecorators) => {
|
|
6
|
+
if (useDecorators) {
|
|
7
|
+
annotationsArray.forEach(([field, annotation]) => {
|
|
8
|
+
annotation(context, field);
|
|
9
|
+
});
|
|
10
|
+
(0, mobx_1.makeObservable)(context);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
(0, mobx_1.makeObservable)(context, Object.fromEntries(annotationsArray));
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
exports.applyObservable = applyObservable;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AnyObject } from "../utils/types.cjs";
|
|
2
|
+
export type ObservableAnnotationsArray = [string, any][];
|
|
3
|
+
export declare const applyObservable: (context: AnyObject, annotationsArray: ObservableAnnotationsArray, useDecorators?: boolean) => void;
|
|
4
|
+
//# sourceMappingURL=apply-observable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-observable.d.ts","sourceRoot":"","sources":["../../src/mobx/apply-observable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AAEnD,MAAM,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;AAEzD,eAAO,MAAM,eAAe,GAC1B,SAAS,SAAS,EAClB,kBAAkB,0BAA0B,EAC5C,gBAAgB,OAAO,SAWxB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AnyObject } from "../utils/types.js";
|
|
2
|
+
export type ObservableAnnotationsArray = [string, any][];
|
|
3
|
+
export declare const applyObservable: (context: AnyObject, annotationsArray: ObservableAnnotationsArray, useDecorators?: boolean) => void;
|
|
4
|
+
//# sourceMappingURL=apply-observable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-observable.d.ts","sourceRoot":"","sources":["../../src/mobx/apply-observable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,0BAA0B;AAEnD,MAAM,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;AAEzD,eAAO,MAAM,eAAe,GAC1B,SAAS,SAAS,EAClB,kBAAkB,0BAA0B,EAC5C,gBAAgB,OAAO,SAWxB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { makeObservable } from 'mobx';
|
|
2
|
+
export const applyObservable = (context, annotationsArray, useDecorators) => {
|
|
3
|
+
if (useDecorators) {
|
|
4
|
+
annotationsArray.forEach(([field, annotation]) => {
|
|
5
|
+
annotation(context, field);
|
|
6
|
+
});
|
|
7
|
+
makeObservable(context);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
makeObservable(context, Object.fromEntries(annotationsArray));
|
|
11
|
+
}
|
|
12
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createEnhancedAtom = void 0;
|
|
4
|
+
const mobx_1 = require("mobx");
|
|
5
|
+
/**
|
|
6
|
+
* Creates an enhanced atom with meta data
|
|
7
|
+
* And bind `reportChanged` and `reportObserved` method to the atom
|
|
8
|
+
*/
|
|
9
|
+
const createEnhancedAtom = (name, onBecomeObservedHandler, onBecomeUnobservedHandler, meta) => {
|
|
10
|
+
const atom = (0, mobx_1.createAtom)(name, onBecomeObservedHandler && (() => onBecomeObservedHandler?.(atom)), onBecomeUnobservedHandler && (() => onBecomeUnobservedHandler?.(atom)));
|
|
11
|
+
atom.meta = meta ?? {};
|
|
12
|
+
atom.reportChanged = atom.reportChanged.bind(atom);
|
|
13
|
+
atom.reportObserved = atom.reportObserved.bind(atom);
|
|
14
|
+
return atom;
|
|
15
|
+
};
|
|
16
|
+
exports.createEnhancedAtom = createEnhancedAtom;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type IAtom } from 'mobx';
|
|
2
|
+
import type { AnyObject } from "../utils/types.cjs";
|
|
3
|
+
export interface IEnhancedAtom<TMeta extends AnyObject = AnyObject> extends IAtom {
|
|
4
|
+
meta: TMeta;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Creates an enhanced atom with meta data
|
|
8
|
+
* And bind `reportChanged` and `reportObserved` method to the atom
|
|
9
|
+
*/
|
|
10
|
+
export declare const createEnhancedAtom: <TMeta extends AnyObject>(name: string, onBecomeObservedHandler?: (atom: IEnhancedAtom<TMeta>) => void, onBecomeUnobservedHandler?: (atom: IEnhancedAtom<TMeta>) => void, meta?: TMeta) => IEnhancedAtom<TMeta>;
|
|
11
|
+
//# sourceMappingURL=create-enhanced-atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-enhanced-atom.d.ts","sourceRoot":"","sources":["../../src/mobx/create-enhanced-atom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,KAAK,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AAEnD,MAAM,WAAW,aAAa,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,CAChE,SAAQ,KAAK;IACb,IAAI,EAAE,KAAK,CAAC;CACb;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,SAAS,SAAS,EACxD,MAAM,MAAM,EACZ,0BAA0B,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,IAAI,EAC9D,4BAA4B,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,IAAI,EAChE,OAAO,KAAK,KACX,aAAa,CAAC,KAAK,CAUrB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type IAtom } from 'mobx';
|
|
2
|
+
import type { AnyObject } from "../utils/types.js";
|
|
3
|
+
export interface IEnhancedAtom<TMeta extends AnyObject = AnyObject> extends IAtom {
|
|
4
|
+
meta: TMeta;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Creates an enhanced atom with meta data
|
|
8
|
+
* And bind `reportChanged` and `reportObserved` method to the atom
|
|
9
|
+
*/
|
|
10
|
+
export declare const createEnhancedAtom: <TMeta extends AnyObject>(name: string, onBecomeObservedHandler?: (atom: IEnhancedAtom<TMeta>) => void, onBecomeUnobservedHandler?: (atom: IEnhancedAtom<TMeta>) => void, meta?: TMeta) => IEnhancedAtom<TMeta>;
|
|
11
|
+
//# sourceMappingURL=create-enhanced-atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-enhanced-atom.d.ts","sourceRoot":"","sources":["../../src/mobx/create-enhanced-atom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,KAAK,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,0BAA0B;AAEnD,MAAM,WAAW,aAAa,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,CAChE,SAAQ,KAAK;IACb,IAAI,EAAE,KAAK,CAAC;CACb;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,SAAS,SAAS,EACxD,MAAM,MAAM,EACZ,0BAA0B,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,IAAI,EAC9D,4BAA4B,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,IAAI,EAChE,OAAO,KAAK,KACX,aAAa,CAAC,KAAK,CAUrB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createAtom } from 'mobx';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an enhanced atom with meta data
|
|
4
|
+
* And bind `reportChanged` and `reportObserved` method to the atom
|
|
5
|
+
*/
|
|
6
|
+
export const createEnhancedAtom = (name, onBecomeObservedHandler, onBecomeUnobservedHandler, meta) => {
|
|
7
|
+
const atom = createAtom(name, onBecomeObservedHandler && (() => onBecomeObservedHandler?.(atom)), onBecomeUnobservedHandler && (() => onBecomeUnobservedHandler?.(atom)));
|
|
8
|
+
atom.meta = meta ?? {};
|
|
9
|
+
atom.reportChanged = atom.reportChanged.bind(atom);
|
|
10
|
+
atom.reportObserved = atom.reportObserved.bind(atom);
|
|
11
|
+
return atom;
|
|
12
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeepObservableStruct = void 0;
|
|
4
|
+
const mobx_1 = require("mobx");
|
|
5
|
+
const index_js_1 = require("../type-guard/index.cjs");
|
|
6
|
+
class DeepObservableStruct {
|
|
7
|
+
data;
|
|
8
|
+
constructor(data) {
|
|
9
|
+
this.data = data;
|
|
10
|
+
(0, mobx_1.makeObservable)(this, {
|
|
11
|
+
data: mobx_1.observable.deep,
|
|
12
|
+
set: mobx_1.action,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
set(newData) {
|
|
16
|
+
const stack = Object.keys(this.data).map((key) => [
|
|
17
|
+
key,
|
|
18
|
+
this.data,
|
|
19
|
+
newData,
|
|
20
|
+
]);
|
|
21
|
+
let currentIndex = 0;
|
|
22
|
+
let stackLength = stack.length;
|
|
23
|
+
while (currentIndex < stackLength) {
|
|
24
|
+
const [key, currObservableData, newData] = stack[currentIndex];
|
|
25
|
+
const newValue = newData[key];
|
|
26
|
+
const currValue = currObservableData[key];
|
|
27
|
+
currentIndex++;
|
|
28
|
+
if (key in newData) {
|
|
29
|
+
if (index_js_1.typeGuard.isObject(newValue) && index_js_1.typeGuard.isObject(currValue)) {
|
|
30
|
+
const newValueKeys = Object.keys(newValue);
|
|
31
|
+
Object.keys(currValue).forEach((childKey) => {
|
|
32
|
+
if (!(childKey in newValue)) {
|
|
33
|
+
delete currObservableData[key][childKey];
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
newValueKeys.forEach((childKey) => {
|
|
37
|
+
const length = stack.push([
|
|
38
|
+
childKey,
|
|
39
|
+
currObservableData[key],
|
|
40
|
+
newValue,
|
|
41
|
+
]);
|
|
42
|
+
stackLength = length;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else if (newValue !== currValue) {
|
|
46
|
+
currObservableData[key] = newValue;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
delete currObservableData[key];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
Object.keys(newData).forEach((newDataKey) => {
|
|
54
|
+
if (!this.data[newDataKey]) {
|
|
55
|
+
// @ts-expect-error
|
|
56
|
+
this.data[newDataKey] = newData[newDataKey];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.DeepObservableStruct = DeepObservableStruct;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-observable-struct.d.ts","sourceRoot":"","sources":["../../src/mobx/deep-observable-struct.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AAEnD,qBAAa,oBAAoB,CAAC,KAAK,SAAS,SAAS;IACvD,IAAI,EAAE,KAAK,CAAC;gBAEA,IAAI,EAAE,KAAK;IASvB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;CAoD5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-observable-struct.d.ts","sourceRoot":"","sources":["../../src/mobx/deep-observable-struct.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,0BAA0B;AAEnD,qBAAa,oBAAoB,CAAC,KAAK,SAAS,SAAS;IACvD,IAAI,EAAE,KAAK,CAAC;gBAEA,IAAI,EAAE,KAAK;IASvB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;CAoD5B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { action, makeObservable, observable } from 'mobx';
|
|
2
|
+
import { typeGuard } from "../type-guard/index.js";
|
|
3
|
+
export class DeepObservableStruct {
|
|
4
|
+
data;
|
|
5
|
+
constructor(data) {
|
|
6
|
+
this.data = data;
|
|
7
|
+
makeObservable(this, {
|
|
8
|
+
data: observable.deep,
|
|
9
|
+
set: action,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
set(newData) {
|
|
13
|
+
const stack = Object.keys(this.data).map((key) => [
|
|
14
|
+
key,
|
|
15
|
+
this.data,
|
|
16
|
+
newData,
|
|
17
|
+
]);
|
|
18
|
+
let currentIndex = 0;
|
|
19
|
+
let stackLength = stack.length;
|
|
20
|
+
while (currentIndex < stackLength) {
|
|
21
|
+
const [key, currObservableData, newData] = stack[currentIndex];
|
|
22
|
+
const newValue = newData[key];
|
|
23
|
+
const currValue = currObservableData[key];
|
|
24
|
+
currentIndex++;
|
|
25
|
+
if (key in newData) {
|
|
26
|
+
if (typeGuard.isObject(newValue) && typeGuard.isObject(currValue)) {
|
|
27
|
+
const newValueKeys = Object.keys(newValue);
|
|
28
|
+
Object.keys(currValue).forEach((childKey) => {
|
|
29
|
+
if (!(childKey in newValue)) {
|
|
30
|
+
delete currObservableData[key][childKey];
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
newValueKeys.forEach((childKey) => {
|
|
34
|
+
const length = stack.push([
|
|
35
|
+
childKey,
|
|
36
|
+
currObservableData[key],
|
|
37
|
+
newValue,
|
|
38
|
+
]);
|
|
39
|
+
stackLength = length;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else if (newValue !== currValue) {
|
|
43
|
+
currObservableData[key] = newValue;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
delete currObservableData[key];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
Object.keys(newData).forEach((newDataKey) => {
|
|
51
|
+
if (!this.data[newDataKey]) {
|
|
52
|
+
// @ts-expect-error
|
|
53
|
+
this.data[newDataKey] = newData[newDataKey];
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMobxAdministration = void 0;
|
|
4
|
+
const mobx_1 = require("mobx");
|
|
5
|
+
const getMobxAdministration = (context) => context[mobx_1.$mobx];
|
|
6
|
+
exports.getMobxAdministration = getMobxAdministration;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type AnnotationMapEntry } from 'mobx';
|
|
2
|
+
import type { AnyObject } from "../utils/types.cjs";
|
|
3
|
+
type ObservableObjectAdministration = Parameters<Exclude<AnnotationMapEntry, boolean>['make_']>[0];
|
|
4
|
+
export declare const getMobxAdministration: (context: AnyObject) => ObservableObjectAdministration;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=get-mobx-administration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-mobx-administration.d.ts","sourceRoot":"","sources":["../../src/mobx/get-mobx-administration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,kBAAkB,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AAEnD,KAAK,8BAA8B,GAAG,UAAU,CAC9C,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAC9C,CAAC,CAAC,CAAC,CAAC;AAEL,eAAO,MAAM,qBAAqB,GAChC,SAAS,SAAS,KACjB,8BAAgD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type AnnotationMapEntry } from 'mobx';
|
|
2
|
+
import type { AnyObject } from "../utils/types.js";
|
|
3
|
+
type ObservableObjectAdministration = Parameters<Exclude<AnnotationMapEntry, boolean>['make_']>[0];
|
|
4
|
+
export declare const getMobxAdministration: (context: AnyObject) => ObservableObjectAdministration;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=get-mobx-administration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-mobx-administration.d.ts","sourceRoot":"","sources":["../../src/mobx/get-mobx-administration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,kBAAkB,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,0BAA0B;AAEnD,KAAK,8BAA8B,GAAG,UAAU,CAC9C,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAC9C,CAAC,CAAC,CAAC,CAAC;AAEL,eAAO,MAAM,qBAAqB,GAChC,SAAS,SAAS,KACjB,8BAAgD,CAAC"}
|
package/mobx/index.cjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./apply-observable.cjs"), exports);
|
|
18
|
+
__exportStar(require("./create-enhanced-atom.cjs"), exports);
|
|
19
|
+
__exportStar(require("./deep-observable-struct.cjs"), exports);
|
|
20
|
+
__exportStar(require("./get-mobx-administration.cjs"), exports);
|
|
21
|
+
__exportStar(require("./lazy-observe.cjs"), exports);
|
package/mobx/index.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mobx/index.ts"],"names":[],"mappings":"AAAA,uCAAsC;AACtC,2CAA0C;AAC1C,6CAA4C;AAC5C,8CAA6C;AAC7C,mCAAkC"}
|
package/mobx/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mobx/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0CAA0C;AAC1C,4CAA4C;AAC5C,6CAA6C;AAC7C,kCAAkC"}
|