@ixfx/components 0.2.4 → 0.2.5
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/bundle/index.d.ts +130 -130
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +2196 -2196
- package/bundle/index.js.map +1 -1
- package/dist/ac-text.d.ts +97 -0
- package/dist/ac-text.d.ts.map +1 -0
- package/dist/ac-text.js +484 -0
- package/dist/ac-text.js.map +1 -0
- package/dist/{button/button-styles.js → button-DgKUzE5o.js} +49 -3
- package/dist/button-DgKUzE5o.js.map +1 -0
- package/dist/button.d.ts +21 -0
- package/dist/button.d.ts.map +1 -0
- package/dist/button.js +3 -0
- package/dist/checkbox.d.ts +27 -57
- package/dist/checkbox.d.ts.map +1 -1
- package/dist/checkbox.js +74 -88
- package/dist/checkbox.js.map +1 -1
- package/dist/chunk-pbuEa-1d.js +13 -0
- package/dist/colour-C3MQIjFJ-BJV-QC-3.js +4138 -0
- package/dist/colour-C3MQIjFJ-BJV-QC-3.js.map +1 -0
- package/dist/colour-picker-Bw-AZoWx.js +922 -0
- package/dist/colour-picker-Bw-AZoWx.js.map +1 -0
- package/dist/colour-picker.d.ts +2 -0
- package/dist/colour-picker.js +2 -0
- package/dist/crumbs.d.ts +92 -0
- package/dist/crumbs.d.ts.map +1 -0
- package/dist/crumbs.js +789 -0
- package/dist/crumbs.js.map +1 -0
- package/dist/data-display.d.ts +23 -18
- package/dist/data-display.d.ts.map +1 -1
- package/dist/data-display.js +82 -108
- package/dist/data-display.js.map +1 -1
- package/dist/decorate-BZbkqIhA.js +9 -0
- package/dist/defaults-FEZaGiYZ.js +38 -0
- package/dist/defaults-FEZaGiYZ.js.map +1 -0
- package/dist/dist-By5URG0Y.js +1290 -0
- package/dist/dist-By5URG0Y.js.map +1 -0
- package/dist/dist-D7kJgnSE.js +1039 -0
- package/dist/dist-D7kJgnSE.js.map +1 -0
- package/dist/editable-label.d.ts +71 -0
- package/dist/editable-label.d.ts.map +1 -0
- package/dist/editable-label.js +279 -0
- package/dist/editable-label.js.map +1 -0
- package/dist/hex-editor-Gib1Grg2.d.ts +131 -0
- package/dist/hex-editor-Gib1Grg2.d.ts.map +1 -0
- package/dist/hex-editor-Wd6ZtZA2.js +1147 -0
- package/dist/hex-editor-Wd6ZtZA2.js.map +1 -0
- package/dist/hex.d.ts +2 -0
- package/dist/hex.js +2 -0
- package/dist/highlight-CAjwQ4GE.js +50 -0
- package/dist/highlight-CAjwQ4GE.js.map +1 -0
- package/dist/icon-BR5aTIiP.js +100 -0
- package/dist/icon-BR5aTIiP.js.map +1 -0
- package/dist/icon-DQKdfR7U.d.ts +36 -0
- package/dist/icon-DQKdfR7U.d.ts.map +1 -0
- package/dist/icons.d.ts +3 -0
- package/dist/icons.js +9 -0
- package/dist/icons.js.map +1 -0
- package/dist/incr-search-BjCNClnC.js +311 -0
- package/dist/incr-search-BjCNClnC.js.map +1 -0
- package/dist/incr-search.d.ts +2 -0
- package/dist/incr-search.js +3 -0
- package/dist/index-B1hNR7Z9.d.ts +36 -0
- package/dist/index-B1hNR7Z9.d.ts.map +1 -0
- package/dist/index-C5dK8RZa.d.ts +23 -0
- package/dist/index-C5dK8RZa.d.ts.map +1 -0
- package/dist/index-C9iBN908.d.ts +160 -0
- package/dist/index-C9iBN908.d.ts.map +1 -0
- package/dist/index-CPVcTTXo.d.ts +396 -0
- package/dist/index-CPVcTTXo.d.ts.map +1 -0
- package/dist/index-CQxanqXF.d.ts +183 -0
- package/dist/index-CQxanqXF.d.ts.map +1 -0
- package/dist/index-CpbBI3n7.d.ts +1239 -0
- package/dist/index-CpbBI3n7.d.ts.map +1 -0
- package/dist/index.d.ts +422 -53
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5729 -54
- package/dist/index.js.map +1 -1
- package/dist/interaction-CQDQJf2Q.js +1 -0
- package/dist/keyboard-De_vOHLg.js +20 -0
- package/dist/keyboard-De_vOHLg.js.map +1 -0
- package/dist/labelled-input-base-DS6-6C0r.js +155 -0
- package/dist/labelled-input-base-DS6-6C0r.js.map +1 -0
- package/dist/labelled-input-base-DnRh4reU.d.ts +43 -0
- package/dist/labelled-input-base-DnRh4reU.d.ts.map +1 -0
- package/dist/labelled-radial-input.d.ts +34 -0
- package/dist/labelled-radial-input.d.ts.map +1 -0
- package/dist/labelled-radial-input.js +188 -0
- package/dist/labelled-radial-input.js.map +1 -0
- package/dist/labelled-range-input.d.ts +2 -0
- package/dist/{labelled-range-input/labelled-range-input.js → labelled-range-input.js} +40 -45
- package/dist/labelled-range-input.js.map +1 -0
- package/dist/led.d.ts +21 -16
- package/dist/led.d.ts.map +1 -1
- package/dist/led.js +70 -78
- package/dist/led.js.map +1 -1
- package/dist/menu-BV6UFx_z.js +813 -0
- package/dist/menu-BV6UFx_z.js.map +1 -0
- package/dist/menu-item-Cikacp4F.d.ts +128 -0
- package/dist/menu-item-Cikacp4F.d.ts.map +1 -0
- package/dist/menu-item-DEzL_Yjk.js +766 -0
- package/dist/menu-item-DEzL_Yjk.js.map +1 -0
- package/dist/menu.d.ts +3 -0
- package/dist/menu.js +3 -0
- package/dist/miller.d.ts +324 -0
- package/dist/miller.d.ts.map +1 -0
- package/dist/miller.js +1343 -0
- package/dist/miller.js.map +1 -0
- package/dist/narrowed-text.d.ts +72 -0
- package/dist/narrowed-text.d.ts.map +1 -0
- package/dist/narrowed-text.js +571 -0
- package/dist/narrowed-text.js.map +1 -0
- package/dist/panel.d.ts +43 -0
- package/dist/panel.d.ts.map +1 -0
- package/dist/{panel/panel.js → panel.js} +82 -91
- package/dist/panel.js.map +1 -0
- package/dist/plots.d.ts +2 -0
- package/dist/plots.js +2 -0
- package/dist/polar-pad.d.ts +67 -0
- package/dist/polar-pad.d.ts.map +1 -0
- package/dist/polar-pad.js +537 -0
- package/dist/polar-pad.js.map +1 -0
- package/dist/popup-Ddx9LCzY.js +24 -0
- package/dist/popup-Ddx9LCzY.js.map +1 -0
- package/dist/prominence-CreDBdCs.js +98 -0
- package/dist/prominence-CreDBdCs.js.map +1 -0
- package/dist/radial-input-CNJ8asY2.js +849 -0
- package/dist/radial-input-CNJ8asY2.js.map +1 -0
- package/dist/radial-input-xSTd4kEz.d.ts +70 -0
- package/dist/radial-input-xSTd4kEz.d.ts.map +1 -0
- package/dist/radial-input.d.ts +2 -0
- package/dist/radial-input.js +2 -0
- package/dist/range-input.d.ts +43 -0
- package/dist/range-input.d.ts.map +1 -0
- package/dist/{range-input/range-input.js → range-input.js} +155 -168
- package/dist/range-input.js.map +1 -0
- package/dist/range.d.ts +28 -0
- package/dist/range.d.ts.map +1 -0
- package/dist/range.js +136 -0
- package/dist/range.js.map +1 -0
- package/dist/registry-CZEB1YI9.js +21 -0
- package/dist/registry-CZEB1YI9.js.map +1 -0
- package/dist/selecthorizontal.d.ts +13 -8
- package/dist/selecthorizontal.d.ts.map +1 -1
- package/dist/selecthorizontal.js +19 -23
- package/dist/selecthorizontal.js.map +1 -1
- package/dist/snap-container.d.ts +50 -0
- package/dist/snap-container.d.ts.map +1 -0
- package/dist/snap-container.js +297 -0
- package/dist/snap-container.js.map +1 -0
- package/dist/{split-layout/split-layout.d.ts → split-layout.d.ts} +30 -25
- package/dist/split-layout.d.ts.map +1 -0
- package/dist/split-layout.js +545 -0
- package/dist/split-layout.js.map +1 -0
- package/dist/style.css +133 -0
- package/dist/swipe.d.ts +48 -0
- package/dist/swipe.d.ts.map +1 -0
- package/dist/swipe.js +204 -0
- package/dist/swipe.js.map +1 -0
- package/dist/tab-list-CFF7uSYH.d.ts +66 -0
- package/dist/tab-list-CFF7uSYH.d.ts.map +1 -0
- package/dist/tabs.d.ts +2 -0
- package/dist/tabs.js +203 -0
- package/dist/tabs.js.map +1 -0
- package/dist/tickled-controller-Cq1Va0rR.d.ts +218 -0
- package/dist/tickled-controller-Cq1Va0rR.d.ts.map +1 -0
- package/dist/tickled-styles-Bg3QbcrD.js +327 -0
- package/dist/tickled-styles-Bg3QbcrD.js.map +1 -0
- package/dist/timeline-DBWJsSjd.js +1748 -0
- package/dist/timeline-DBWJsSjd.js.map +1 -0
- package/dist/timeline.d.ts +2 -0
- package/dist/timeline.js +2 -0
- package/dist/{styles/tooltip.js → tooltip-DMxmBNky.js} +6 -2
- package/dist/tooltip-DMxmBNky.js.map +1 -0
- package/dist/tooltip-kfUBWYVB.d.ts +26 -0
- package/dist/tooltip-kfUBWYVB.d.ts.map +1 -0
- package/dist/tree-component-CQpoPo4s.d.ts +326 -0
- package/dist/tree-component-CQpoPo4s.d.ts.map +1 -0
- package/dist/tree-data-model-DGvRVOFY.js +190 -0
- package/dist/tree-data-model-DGvRVOFY.js.map +1 -0
- package/dist/tree.d.ts +100 -0
- package/dist/tree.d.ts.map +1 -0
- package/dist/tree.js +1144 -0
- package/dist/tree.js.map +1 -0
- package/dist/types-BKaqnpwx.d.ts +8 -0
- package/dist/types-BKaqnpwx.d.ts.map +1 -0
- package/dist/xy-axis-BANbgrI5.js +6243 -0
- package/dist/xy-axis-BANbgrI5.js.map +1 -0
- package/dist/xy-axis-CIFok7MF.d.ts +141 -0
- package/dist/xy-axis-CIFok7MF.d.ts.map +1 -0
- package/dist/xy-pad.d.ts +74 -110
- package/dist/xy-pad.d.ts.map +1 -1
- package/dist/xy-pad.js +300 -320
- package/dist/xy-pad.js.map +1 -1
- package/package.json +10 -18
- package/dist/ac-text/ac-text.d.ts +0 -99
- package/dist/ac-text/ac-text.d.ts.map +0 -1
- package/dist/ac-text/ac-text.js +0 -571
- package/dist/ac-text/ac-text.js.map +0 -1
- package/dist/button/button-styles.d.ts +0 -2
- package/dist/button/button-styles.d.ts.map +0 -1
- package/dist/button/button-styles.js.map +0 -1
- package/dist/button/button.d.ts +0 -16
- package/dist/button/button.d.ts.map +0 -1
- package/dist/button/button.js +0 -58
- package/dist/button/button.js.map +0 -1
- package/dist/button/radio-group.d.ts +0 -44
- package/dist/button/radio-group.d.ts.map +0 -1
- package/dist/button/radio-group.js +0 -385
- package/dist/button/radio-group.js.map +0 -1
- package/dist/button/split-button.d.ts +0 -59
- package/dist/button/split-button.d.ts.map +0 -1
- package/dist/button/split-button.js +0 -480
- package/dist/button/split-button.js.map +0 -1
- package/dist/button/types.d.ts +0 -18
- package/dist/button/types.d.ts.map +0 -1
- package/dist/button/types.js +0 -2
- package/dist/button/types.js.map +0 -1
- package/dist/colour-picker/colour-picker-popup.d.ts +0 -102
- package/dist/colour-picker/colour-picker-popup.d.ts.map +0 -1
- package/dist/colour-picker/colour-picker-popup.js +0 -399
- package/dist/colour-picker/colour-picker-popup.js.map +0 -1
- package/dist/colour-picker/colour-picker.d.ts +0 -100
- package/dist/colour-picker/colour-picker.d.ts.map +0 -1
- package/dist/colour-picker/colour-picker.js +0 -567
- package/dist/colour-picker/colour-picker.js.map +0 -1
- package/dist/colour-picker/index.d.ts +0 -4
- package/dist/colour-picker/index.d.ts.map +0 -1
- package/dist/colour-picker/index.js +0 -3
- package/dist/colour-picker/index.js.map +0 -1
- package/dist/colour-picker/styles.d.ts +0 -2
- package/dist/colour-picker/styles.d.ts.map +0 -1
- package/dist/colour-picker/styles.js +0 -139
- package/dist/colour-picker/styles.js.map +0 -1
- package/dist/colour-picker/types.d.ts +0 -33
- package/dist/colour-picker/types.d.ts.map +0 -1
- package/dist/colour-picker/types.js +0 -2
- package/dist/colour-picker/types.js.map +0 -1
- package/dist/colour-picker/util.d.ts +0 -15
- package/dist/colour-picker/util.d.ts.map +0 -1
- package/dist/colour-picker/util.js +0 -35
- package/dist/colour-picker/util.js.map +0 -1
- package/dist/common/searchable.d.ts +0 -9
- package/dist/common/searchable.d.ts.map +0 -1
- package/dist/common/searchable.js +0 -9
- package/dist/common/searchable.js.map +0 -1
- package/dist/common/tree-component.d.ts +0 -172
- package/dist/common/tree-component.d.ts.map +0 -1
- package/dist/common/tree-component.js +0 -8
- package/dist/common/tree-component.js.map +0 -1
- package/dist/common/tree-data-model.d.ts +0 -100
- package/dist/common/tree-data-model.d.ts.map +0 -1
- package/dist/common/tree-data-model.js +0 -207
- package/dist/common/tree-data-model.js.map +0 -1
- package/dist/common/tree-item.d.ts +0 -7
- package/dist/common/tree-item.d.ts.map +0 -1
- package/dist/common/tree-item.js +0 -2
- package/dist/common/tree-item.js.map +0 -1
- package/dist/common/types.d.ts +0 -69
- package/dist/common/types.d.ts.map +0 -1
- package/dist/common/types.js +0 -6
- package/dist/common/types.js.map +0 -1
- package/dist/crumbs/crumb-navigation.d.ts +0 -96
- package/dist/crumbs/crumb-navigation.d.ts.map +0 -1
- package/dist/crumbs/crumb-navigation.js +0 -911
- package/dist/crumbs/crumb-navigation.js.map +0 -1
- package/dist/crumbs/crumb-path-controller.d.ts +0 -18
- package/dist/crumbs/crumb-path-controller.d.ts.map +0 -1
- package/dist/crumbs/crumb-path-controller.js +0 -81
- package/dist/crumbs/crumb-path-controller.js.map +0 -1
- package/dist/crumbs/crumb-path.d.ts +0 -65
- package/dist/crumbs/crumb-path.d.ts.map +0 -1
- package/dist/crumbs/crumb-path.js +0 -691
- package/dist/crumbs/crumb-path.js.map +0 -1
- package/dist/editable-label/editable-label.d.ts +0 -98
- package/dist/editable-label/editable-label.d.ts.map +0 -1
- package/dist/editable-label/editable-label.js +0 -348
- package/dist/editable-label/editable-label.js.map +0 -1
- package/dist/editable-label/editable-number.d.ts +0 -96
- package/dist/editable-label/editable-number.d.ts.map +0 -1
- package/dist/editable-label/editable-number.js +0 -702
- package/dist/editable-label/editable-number.js.map +0 -1
- package/dist/hex/colour.d.ts +0 -6
- package/dist/hex/colour.d.ts.map +0 -1
- package/dist/hex/colour.js +0 -33
- package/dist/hex/colour.js.map +0 -1
- package/dist/hex/data.d.ts +0 -18
- package/dist/hex/data.d.ts.map +0 -1
- package/dist/hex/data.js +0 -61
- package/dist/hex/data.js.map +0 -1
- package/dist/hex/diff.d.ts +0 -14
- package/dist/hex/diff.d.ts.map +0 -1
- package/dist/hex/diff.js +0 -31
- package/dist/hex/diff.js.map +0 -1
- package/dist/hex/hex-editor.d.ts +0 -101
- package/dist/hex/hex-editor.d.ts.map +0 -1
- package/dist/hex/hex-editor.js +0 -894
- package/dist/hex/hex-editor.js.map +0 -1
- package/dist/hex/selection.d.ts +0 -11
- package/dist/hex/selection.d.ts.map +0 -1
- package/dist/hex/selection.js +0 -218
- package/dist/hex/selection.js.map +0 -1
- package/dist/hex/types.d.ts +0 -34
- package/dist/hex/types.d.ts.map +0 -1
- package/dist/hex/types.js +0 -4
- package/dist/hex/types.js.map +0 -1
- package/dist/icons/defaults.d.ts +0 -27
- package/dist/icons/defaults.d.ts.map +0 -1
- package/dist/icons/defaults.js +0 -34
- package/dist/icons/defaults.js.map +0 -1
- package/dist/icons/icon.d.ts +0 -31
- package/dist/icons/icon.d.ts.map +0 -1
- package/dist/icons/icon.js +0 -125
- package/dist/icons/icon.js.map +0 -1
- package/dist/icons/index.d.ts +0 -5
- package/dist/icons/index.d.ts.map +0 -1
- package/dist/icons/index.js +0 -6
- package/dist/icons/index.js.map +0 -1
- package/dist/icons/registry.d.ts +0 -11
- package/dist/icons/registry.d.ts.map +0 -1
- package/dist/icons/registry.js +0 -17
- package/dist/icons/registry.js.map +0 -1
- package/dist/incr-search/ac-adapter.d.ts +0 -18
- package/dist/incr-search/ac-adapter.d.ts.map +0 -1
- package/dist/incr-search/ac-adapter.js +0 -29
- package/dist/incr-search/ac-adapter.js.map +0 -1
- package/dist/incr-search/controller-miller.d.ts +0 -9
- package/dist/incr-search/controller-miller.d.ts.map +0 -1
- package/dist/incr-search/controller-miller.js +0 -8
- package/dist/incr-search/controller-miller.js.map +0 -1
- package/dist/incr-search/controller-tree.d.ts +0 -55
- package/dist/incr-search/controller-tree.d.ts.map +0 -1
- package/dist/incr-search/controller-tree.js +0 -106
- package/dist/incr-search/controller-tree.js.map +0 -1
- package/dist/incr-search/element-search.d.ts +0 -15
- package/dist/incr-search/element-search.d.ts.map +0 -1
- package/dist/incr-search/element-search.js +0 -82
- package/dist/incr-search/element-search.js.map +0 -1
- package/dist/incr-search/fuzzy.d.ts +0 -3
- package/dist/incr-search/fuzzy.d.ts.map +0 -1
- package/dist/incr-search/fuzzy.js +0 -37
- package/dist/incr-search/fuzzy.js.map +0 -1
- package/dist/incr-search/highlight.d.ts +0 -5
- package/dist/incr-search/highlight.d.ts.map +0 -1
- package/dist/incr-search/highlight.js +0 -54
- package/dist/incr-search/highlight.js.map +0 -1
- package/dist/incr-search/incr-search.d.ts +0 -3
- package/dist/incr-search/incr-search.d.ts.map +0 -1
- package/dist/incr-search/incr-search.js +0 -73
- package/dist/incr-search/incr-search.js.map +0 -1
- package/dist/incr-search/index.d.ts +0 -12
- package/dist/incr-search/index.d.ts.map +0 -1
- package/dist/incr-search/index.js +0 -8
- package/dist/incr-search/index.js.map +0 -1
- package/dist/incr-search/types.d.ts +0 -59
- package/dist/incr-search/types.d.ts.map +0 -1
- package/dist/incr-search/types.js +0 -2
- package/dist/incr-search/types.js.map +0 -1
- package/dist/interaction/index.d.ts +0 -10
- package/dist/interaction/index.d.ts.map +0 -1
- package/dist/interaction/index.js +0 -10
- package/dist/interaction/index.js.map +0 -1
- package/dist/interaction/tickled-controller.d.ts +0 -186
- package/dist/interaction/tickled-controller.d.ts.map +0 -1
- package/dist/interaction/tickled-controller.js +0 -256
- package/dist/interaction/tickled-controller.js.map +0 -1
- package/dist/interaction/tickled-styles.d.ts +0 -53
- package/dist/interaction/tickled-styles.d.ts.map +0 -1
- package/dist/interaction/tickled-styles.js +0 -106
- package/dist/interaction/tickled-styles.js.map +0 -1
- package/dist/interaction/tree-keyboard-controller.d.ts +0 -30
- package/dist/interaction/tree-keyboard-controller.d.ts.map +0 -1
- package/dist/interaction/tree-keyboard-controller.js +0 -105
- package/dist/interaction/tree-keyboard-controller.js.map +0 -1
- package/dist/keyboard.d.ts +0 -16
- package/dist/keyboard.d.ts.map +0 -1
- package/dist/keyboard.js +0 -22
- package/dist/keyboard.js.map +0 -1
- package/dist/labelled-radial-input/index.d.ts +0 -2
- package/dist/labelled-radial-input/index.d.ts.map +0 -1
- package/dist/labelled-radial-input/index.js +0 -2
- package/dist/labelled-radial-input/index.js.map +0 -1
- package/dist/labelled-radial-input/labelled-radial-input.d.ts +0 -77
- package/dist/labelled-radial-input/labelled-radial-input.d.ts.map +0 -1
- package/dist/labelled-radial-input/labelled-radial-input.js +0 -214
- package/dist/labelled-radial-input/labelled-radial-input.js.map +0 -1
- package/dist/labelled-range-input/index.d.ts +0 -2
- package/dist/labelled-range-input/index.d.ts.map +0 -1
- package/dist/labelled-range-input/index.js +0 -2
- package/dist/labelled-range-input/index.js.map +0 -1
- package/dist/labelled-range-input/labelled-range-input.d.ts +0 -80
- package/dist/labelled-range-input/labelled-range-input.d.ts.map +0 -1
- package/dist/labelled-range-input/labelled-range-input.js.map +0 -1
- package/dist/menu/index.d.ts +0 -14
- package/dist/menu/index.d.ts.map +0 -1
- package/dist/menu/index.js +0 -13
- package/dist/menu/index.js.map +0 -1
- package/dist/menu/menu-bar.d.ts +0 -23
- package/dist/menu/menu-bar.d.ts.map +0 -1
- package/dist/menu/menu-bar.js +0 -110
- package/dist/menu/menu-bar.js.map +0 -1
- package/dist/menu/menu-check-item.d.ts +0 -33
- package/dist/menu/menu-check-item.d.ts.map +0 -1
- package/dist/menu/menu-check-item.js +0 -175
- package/dist/menu/menu-check-item.js.map +0 -1
- package/dist/menu/menu-command-controller.d.ts +0 -14
- package/dist/menu/menu-command-controller.d.ts.map +0 -1
- package/dist/menu/menu-command-controller.js +0 -22
- package/dist/menu/menu-command-controller.js.map +0 -1
- package/dist/menu/menu-container.d.ts +0 -36
- package/dist/menu/menu-container.d.ts.map +0 -1
- package/dist/menu/menu-container.js +0 -351
- package/dist/menu/menu-container.js.map +0 -1
- package/dist/menu/menu-from-tree.d.ts +0 -17
- package/dist/menu/menu-from-tree.d.ts.map +0 -1
- package/dist/menu/menu-from-tree.js +0 -103
- package/dist/menu/menu-from-tree.js.map +0 -1
- package/dist/menu/menu-header.d.ts +0 -12
- package/dist/menu/menu-header.d.ts.map +0 -1
- package/dist/menu/menu-header.js +0 -36
- package/dist/menu/menu-header.js.map +0 -1
- package/dist/menu/menu-item.d.ts +0 -41
- package/dist/menu/menu-item.d.ts.map +0 -1
- package/dist/menu/menu-item.js +0 -240
- package/dist/menu/menu-item.js.map +0 -1
- package/dist/menu/menu-radio-group.d.ts +0 -24
- package/dist/menu/menu-radio-group.d.ts.map +0 -1
- package/dist/menu/menu-radio-group.js +0 -71
- package/dist/menu/menu-radio-group.js.map +0 -1
- package/dist/menu/menu-radio-item.d.ts +0 -22
- package/dist/menu/menu-radio-item.d.ts.map +0 -1
- package/dist/menu/menu-radio-item.js +0 -116
- package/dist/menu/menu-radio-item.js.map +0 -1
- package/dist/menu/menu-separator.d.ts +0 -11
- package/dist/menu/menu-separator.d.ts.map +0 -1
- package/dist/menu/menu-separator.js +0 -29
- package/dist/menu/menu-separator.js.map +0 -1
- package/dist/menu/menu-sub-trigger.d.ts +0 -46
- package/dist/menu/menu-sub-trigger.d.ts.map +0 -1
- package/dist/menu/menu-sub-trigger.js +0 -302
- package/dist/menu/menu-sub-trigger.js.map +0 -1
- package/dist/menu/menu-trigger.d.ts +0 -57
- package/dist/menu/menu-trigger.d.ts.map +0 -1
- package/dist/menu/menu-trigger.js +0 -351
- package/dist/menu/menu-trigger.js.map +0 -1
- package/dist/miller/index.d.ts +0 -5
- package/dist/miller/index.d.ts.map +0 -1
- package/dist/miller/index.js +0 -5
- package/dist/miller/index.js.map +0 -1
- package/dist/miller/miller-base.d.ts +0 -184
- package/dist/miller/miller-base.d.ts.map +0 -1
- package/dist/miller/miller-base.js +0 -1249
- package/dist/miller/miller-base.js.map +0 -1
- package/dist/miller/miller-list.d.ts +0 -30
- package/dist/miller/miller-list.d.ts.map +0 -1
- package/dist/miller/miller-list.js +0 -192
- package/dist/miller/miller-list.js.map +0 -1
- package/dist/miller/miller-tree-controller.d.ts +0 -58
- package/dist/miller/miller-tree-controller.d.ts.map +0 -1
- package/dist/miller/miller-tree-controller.js +0 -134
- package/dist/miller/miller-tree-controller.js.map +0 -1
- package/dist/miller/types.d.ts +0 -63
- package/dist/miller/types.d.ts.map +0 -1
- package/dist/miller/types.js +0 -6
- package/dist/miller/types.js.map +0 -1
- package/dist/mixins/labelled-input-base.d.ts +0 -38
- package/dist/mixins/labelled-input-base.d.ts.map +0 -1
- package/dist/mixins/labelled-input-base.js +0 -171
- package/dist/mixins/labelled-input-base.js.map +0 -1
- package/dist/mixins/labelled-input-util.d.ts +0 -3
- package/dist/mixins/labelled-input-util.d.ts.map +0 -1
- package/dist/mixins/labelled-input-util.js +0 -10
- package/dist/mixins/labelled-input-util.js.map +0 -1
- package/dist/my-element.d.ts +0 -14
- package/dist/my-element.d.ts.map +0 -1
- package/dist/my-element.js +0 -44
- package/dist/my-element.js.map +0 -1
- package/dist/narrowed-text/index.d.ts +0 -3
- package/dist/narrowed-text/index.d.ts.map +0 -1
- package/dist/narrowed-text/index.js +0 -3
- package/dist/narrowed-text/index.js.map +0 -1
- package/dist/narrowed-text/narrowed-text.d.ts +0 -48
- package/dist/narrowed-text/narrowed-text.d.ts.map +0 -1
- package/dist/narrowed-text/narrowed-text.js +0 -668
- package/dist/narrowed-text/narrowed-text.js.map +0 -1
- package/dist/narrowed-text/types.d.ts +0 -20
- package/dist/narrowed-text/types.d.ts.map +0 -1
- package/dist/narrowed-text/types.js +0 -2
- package/dist/narrowed-text/types.js.map +0 -1
- package/dist/panel/panel-group.d.ts +0 -23
- package/dist/panel/panel-group.d.ts.map +0 -1
- package/dist/panel/panel-group.js +0 -109
- package/dist/panel/panel-group.js.map +0 -1
- package/dist/panel/panel.d.ts +0 -39
- package/dist/panel/panel.d.ts.map +0 -1
- package/dist/panel/panel.js.map +0 -1
- package/dist/plots/colour-map.d.ts +0 -31
- package/dist/plots/colour-map.d.ts.map +0 -1
- package/dist/plots/colour-map.js +0 -133
- package/dist/plots/colour-map.js.map +0 -1
- package/dist/plots/data.d.ts +0 -27
- package/dist/plots/data.d.ts.map +0 -1
- package/dist/plots/data.js +0 -47
- package/dist/plots/data.js.map +0 -1
- package/dist/plots/single-axis.d.ts +0 -41
- package/dist/plots/single-axis.d.ts.map +0 -1
- package/dist/plots/single-axis.js +0 -428
- package/dist/plots/single-axis.js.map +0 -1
- package/dist/plots/svg-utils.d.ts +0 -12
- package/dist/plots/svg-utils.d.ts.map +0 -1
- package/dist/plots/svg-utils.js +0 -64
- package/dist/plots/svg-utils.js.map +0 -1
- package/dist/plots/xy-axis.d.ts +0 -42
- package/dist/plots/xy-axis.d.ts.map +0 -1
- package/dist/plots/xy-axis.js +0 -307
- package/dist/plots/xy-axis.js.map +0 -1
- package/dist/polar-pad/polar-pad.d.ts +0 -132
- package/dist/polar-pad/polar-pad.d.ts.map +0 -1
- package/dist/polar-pad/polar-pad.js +0 -598
- package/dist/polar-pad/polar-pad.js.map +0 -1
- package/dist/radial-input/radial-input.d.ts +0 -45
- package/dist/radial-input/radial-input.d.ts.map +0 -1
- package/dist/radial-input/radial-input.js +0 -692
- package/dist/radial-input/radial-input.js.map +0 -1
- package/dist/radial-input/svg-utils.d.ts +0 -147
- package/dist/radial-input/svg-utils.d.ts.map +0 -1
- package/dist/radial-input/svg-utils.js +0 -346
- package/dist/radial-input/svg-utils.js.map +0 -1
- package/dist/radial-input/types.d.ts +0 -25
- package/dist/radial-input/types.d.ts.map +0 -1
- package/dist/radial-input/types.js +0 -5
- package/dist/radial-input/types.js.map +0 -1
- package/dist/range/range-multi.d.ts +0 -62
- package/dist/range/range-multi.d.ts.map +0 -1
- package/dist/range/range-multi.js +0 -652
- package/dist/range/range-multi.js.map +0 -1
- package/dist/range/range.d.ts +0 -23
- package/dist/range/range.d.ts.map +0 -1
- package/dist/range/range.js +0 -153
- package/dist/range/range.js.map +0 -1
- package/dist/range-input/index.d.ts +0 -2
- package/dist/range-input/index.d.ts.map +0 -1
- package/dist/range-input/index.js +0 -2
- package/dist/range-input/index.js.map +0 -1
- package/dist/range-input/range-input.d.ts +0 -92
- package/dist/range-input/range-input.d.ts.map +0 -1
- package/dist/range-input/range-input.js.map +0 -1
- package/dist/snap-container/snap-container.d.ts +0 -45
- package/dist/snap-container/snap-container.d.ts.map +0 -1
- package/dist/snap-container/snap-container.js +0 -352
- package/dist/snap-container/snap-container.js.map +0 -1
- package/dist/split-layout/split-layout.d.ts.map +0 -1
- package/dist/split-layout/split-layout.js +0 -674
- package/dist/split-layout/split-layout.js.map +0 -1
- package/dist/styles/popup.d.ts +0 -11
- package/dist/styles/popup.d.ts.map +0 -1
- package/dist/styles/popup.js +0 -20
- package/dist/styles/popup.js.map +0 -1
- package/dist/styles/prominence.d.ts +0 -58
- package/dist/styles/prominence.d.ts.map +0 -1
- package/dist/styles/prominence.js +0 -94
- package/dist/styles/prominence.js.map +0 -1
- package/dist/styles/tooltip.d.ts +0 -2
- package/dist/styles/tooltip.d.ts.map +0 -1
- package/dist/styles/tooltip.js.map +0 -1
- package/dist/svg-edit-label.d.ts +0 -2
- package/dist/svg-edit-label.d.ts.map +0 -1
- package/dist/svg-edit-label.js +0 -110
- package/dist/svg-edit-label.js.map +0 -1
- package/dist/swipe/index.d.ts +0 -2
- package/dist/swipe/index.d.ts.map +0 -1
- package/dist/swipe/index.js +0 -2
- package/dist/swipe/index.js.map +0 -1
- package/dist/swipe/swipe.d.ts +0 -65
- package/dist/swipe/swipe.d.ts.map +0 -1
- package/dist/swipe/swipe.js +0 -229
- package/dist/swipe/swipe.js.map +0 -1
- package/dist/tabs/tab-layout-item.d.ts +0 -10
- package/dist/tabs/tab-layout-item.d.ts.map +0 -1
- package/dist/tabs/tab-layout-item.js +0 -20
- package/dist/tabs/tab-layout-item.js.map +0 -1
- package/dist/tabs/tab-layout.d.ts +0 -10
- package/dist/tabs/tab-layout.d.ts.map +0 -1
- package/dist/tabs/tab-layout.js +0 -25
- package/dist/tabs/tab-layout.js.map +0 -1
- package/dist/tabs/tab-list-item.d.ts +0 -34
- package/dist/tabs/tab-list-item.d.ts.map +0 -1
- package/dist/tabs/tab-list-item.js +0 -195
- package/dist/tabs/tab-list-item.js.map +0 -1
- package/dist/tabs/tab-list.d.ts +0 -31
- package/dist/tabs/tab-list.d.ts.map +0 -1
- package/dist/tabs/tab-list.js +0 -257
- package/dist/tabs/tab-list.js.map +0 -1
- package/dist/tabs/tab-panel.d.ts +0 -11
- package/dist/tabs/tab-panel.d.ts.map +0 -1
- package/dist/tabs/tab-panel.js +0 -30
- package/dist/tabs/tab-panel.js.map +0 -1
- package/dist/tabs/tab-panels.d.ts +0 -30
- package/dist/tabs/tab-panels.d.ts.map +0 -1
- package/dist/tabs/tab-panels.js +0 -80
- package/dist/tabs/tab-panels.js.map +0 -1
- package/dist/timeline/index.d.ts +0 -9
- package/dist/timeline/index.d.ts.map +0 -1
- package/dist/timeline/index.js +0 -8
- package/dist/timeline/index.js.map +0 -1
- package/dist/timeline/timeline-controller.d.ts +0 -48
- package/dist/timeline/timeline-controller.d.ts.map +0 -1
- package/dist/timeline/timeline-controller.js +0 -81
- package/dist/timeline/timeline-controller.js.map +0 -1
- package/dist/timeline/timeline-draw.d.ts +0 -28
- package/dist/timeline/timeline-draw.d.ts.map +0 -1
- package/dist/timeline/timeline-draw.js +0 -330
- package/dist/timeline/timeline-draw.js.map +0 -1
- package/dist/timeline/timeline-element.d.ts +0 -140
- package/dist/timeline/timeline-element.d.ts.map +0 -1
- package/dist/timeline/timeline-element.js +0 -888
- package/dist/timeline/timeline-element.js.map +0 -1
- package/dist/timeline/timeline-interactions.d.ts +0 -40
- package/dist/timeline/timeline-interactions.d.ts.map +0 -1
- package/dist/timeline/timeline-interactions.js +0 -393
- package/dist/timeline/timeline-interactions.js.map +0 -1
- package/dist/timeline/timeline-styles.d.ts +0 -2
- package/dist/timeline/timeline-styles.d.ts.map +0 -1
- package/dist/timeline/timeline-styles.js +0 -153
- package/dist/timeline/timeline-styles.js.map +0 -1
- package/dist/timeline/timeline-track-tabs.d.ts +0 -30
- package/dist/timeline/timeline-track-tabs.d.ts.map +0 -1
- package/dist/timeline/timeline-track-tabs.js +0 -204
- package/dist/timeline/timeline-track-tabs.js.map +0 -1
- package/dist/timeline/types.d.ts +0 -144
- package/dist/timeline/types.d.ts.map +0 -1
- package/dist/timeline/types.js +0 -3
- package/dist/timeline/types.js.map +0 -1
- package/dist/tree/index.d.ts +0 -5
- package/dist/tree/index.d.ts.map +0 -1
- package/dist/tree/index.js +0 -5
- package/dist/tree/index.js.map +0 -1
- package/dist/tree/tree-base.d.ts +0 -70
- package/dist/tree/tree-base.d.ts.map +0 -1
- package/dist/tree/tree-base.js +0 -1028
- package/dist/tree/tree-base.js.map +0 -1
- package/dist/tree/tree-controller.d.ts +0 -14
- package/dist/tree/tree-controller.d.ts.map +0 -1
- package/dist/tree/tree-controller.js +0 -96
- package/dist/tree/tree-controller.js.map +0 -1
- package/dist/tree/tree-list.d.ts +0 -20
- package/dist/tree/tree-list.d.ts.map +0 -1
- package/dist/tree/tree-list.js +0 -174
- package/dist/tree/tree-list.js.map +0 -1
- package/dist/tree/types.d.ts +0 -14
- package/dist/tree/types.d.ts.map +0 -1
- package/dist/tree/types.js +0 -7
- package/dist/tree/types.js.map +0 -1
- package/dist/util/checkbox.d.ts +0 -2
- package/dist/util/checkbox.d.ts.map +0 -1
- package/dist/util/checkbox.js +0 -69
- package/dist/util/checkbox.js.map +0 -1
- package/dist/util/circle-arc.d.ts +0 -34
- package/dist/util/circle-arc.d.ts.map +0 -1
- package/dist/util/circle-arc.js +0 -85
- package/dist/util/circle-arc.js.map +0 -1
- package/dist/util/clamp.d.ts +0 -4
- package/dist/util/clamp.d.ts.map +0 -1
- package/dist/util/clamp.js +0 -23
- package/dist/util/clamp.js.map +0 -1
- package/dist/util/compare.d.ts +0 -53
- package/dist/util/compare.d.ts.map +0 -1
- package/dist/util/compare.js +0 -91
- package/dist/util/compare.js.map +0 -1
- package/dist/util/content-editable.d.ts +0 -2
- package/dist/util/content-editable.d.ts.map +0 -1
- package/dist/util/content-editable.js +0 -13
- package/dist/util/content-editable.js.map +0 -1
- package/dist/util/coordinates.d.ts +0 -3
- package/dist/util/coordinates.d.ts.map +0 -1
- package/dist/util/coordinates.js +0 -11
- package/dist/util/coordinates.js.map +0 -1
- package/dist/util/drag.d.ts +0 -16
- package/dist/util/drag.d.ts.map +0 -1
- package/dist/util/drag.js +0 -20
- package/dist/util/drag.js.map +0 -1
- package/dist/util/is-numeric.d.ts +0 -2
- package/dist/util/is-numeric.d.ts.map +0 -1
- package/dist/util/is-numeric.js +0 -9
- package/dist/util/is-numeric.js.map +0 -1
- package/dist/util/key-value.d.ts +0 -5
- package/dist/util/key-value.d.ts.map +0 -1
- package/dist/util/key-value.js +0 -29
- package/dist/util/key-value.js.map +0 -1
- package/dist/util/near.d.ts +0 -2
- package/dist/util/near.d.ts.map +0 -1
- package/dist/util/near.js +0 -6
- package/dist/util/near.js.map +0 -1
- package/dist/util/primitive-types.d.ts +0 -6
- package/dist/util/primitive-types.d.ts.map +0 -1
- package/dist/util/primitive-types.js +0 -2
- package/dist/util/primitive-types.js.map +0 -1
- package/dist/util/svg-editable-text.d.ts +0 -26
- package/dist/util/svg-editable-text.d.ts.map +0 -1
- package/dist/util/svg-editable-text.js +0 -119
- package/dist/util/svg-editable-text.js.map +0 -1
- package/dist/util/time.d.ts +0 -2
- package/dist/util/time.d.ts.map +0 -1
- package/dist/util/time.js +0 -2
- package/dist/util/time.js.map +0 -1
- package/dist/util/tooltip-controller.d.ts +0 -10
- package/dist/util/tooltip-controller.d.ts.map +0 -1
- package/dist/util/tooltip-controller.js +0 -237
- package/dist/util/tooltip-controller.js.map +0 -1
- package/dist/util/tooltip.d.ts +0 -21
- package/dist/util/tooltip.d.ts.map +0 -1
- package/dist/util/tooltip.js +0 -98
- package/dist/util/tooltip.js.map +0 -1
- package/dist/util/value-drag.d.ts +0 -33
- package/dist/util/value-drag.d.ts.map +0 -1
- package/dist/util/value-drag.js +0 -154
- package/dist/util/value-drag.js.map +0 -1
|
@@ -0,0 +1,1039 @@
|
|
|
1
|
+
//#region node_modules/.pnpm/@ixfx+guards@0.56.12/node_modules/@ixfx/guards/dist/index.js
|
|
2
|
+
function getErrorMessage(ex) {
|
|
3
|
+
if (typeof ex === `string`) return ex;
|
|
4
|
+
if (ex instanceof Error) return ex.message;
|
|
5
|
+
return String(ex);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Throws an error if any result is a failure.
|
|
9
|
+
* Error message will be the combined from all errors.
|
|
10
|
+
* @param results
|
|
11
|
+
*/
|
|
12
|
+
function throwIfFailed(...results) {
|
|
13
|
+
const failed = results.filter((r) => resultIsError(r));
|
|
14
|
+
if (failed.length === 0) return;
|
|
15
|
+
const messages = failed.map((f) => resultErrorToString(f));
|
|
16
|
+
throw new Error(messages.join(`, `));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* If any of `results` is an error, throws it, otherwise ignored.
|
|
20
|
+
* @param results
|
|
21
|
+
* @returns _true_ or throws
|
|
22
|
+
*/
|
|
23
|
+
function resultThrow$1(...results) {
|
|
24
|
+
for (const r of results) {
|
|
25
|
+
if (r === void 0) continue;
|
|
26
|
+
if (typeof r === `boolean`) if (!r) throw IxfxError$1.fromString(`Guard failed: false result`);
|
|
27
|
+
else continue;
|
|
28
|
+
const rr = typeof r === `object` ? r : r();
|
|
29
|
+
if (rr === void 0) continue;
|
|
30
|
+
if (rr.success) continue;
|
|
31
|
+
throw resultToError$1(rr);
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns _true_ if `result` is an error
|
|
37
|
+
* @param result
|
|
38
|
+
*/
|
|
39
|
+
function resultIsError(result) {
|
|
40
|
+
if (typeof result !== `object` || result === null) return false;
|
|
41
|
+
return !result.success;
|
|
42
|
+
}
|
|
43
|
+
var IxfxError$1 = class IxfxError extends Error {
|
|
44
|
+
cause;
|
|
45
|
+
constructor(message, cause) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.cause = cause;
|
|
48
|
+
}
|
|
49
|
+
static fromError(error, cause) {
|
|
50
|
+
const message = error.message;
|
|
51
|
+
const stack = error.stack;
|
|
52
|
+
const name = error.name;
|
|
53
|
+
const newError = new IxfxError(message, cause);
|
|
54
|
+
newError.stack = stack;
|
|
55
|
+
newError.name = `IxfxError(${name})`;
|
|
56
|
+
return newError;
|
|
57
|
+
}
|
|
58
|
+
static fromString(message, cause) {
|
|
59
|
+
const newError = new IxfxError(message, cause);
|
|
60
|
+
newError.name = `IxfxError`;
|
|
61
|
+
return newError;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Gets the result as an Error
|
|
66
|
+
* @param result
|
|
67
|
+
*/
|
|
68
|
+
function resultToError$1(result) {
|
|
69
|
+
if (typeof result.error === `string`) return IxfxError$1.fromString(result.error, result.info);
|
|
70
|
+
if (result.error instanceof Error) return IxfxError$1.fromError(result.error, result.info);
|
|
71
|
+
return IxfxError$1.fromString(JSON.stringify(result.error), result.info);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Returns the error as a string.
|
|
75
|
+
* @param result
|
|
76
|
+
*/
|
|
77
|
+
function resultErrorToString(result) {
|
|
78
|
+
if (result.error instanceof Error) return getErrorMessage(result.error);
|
|
79
|
+
if (typeof result.error === `string`) return result.error;
|
|
80
|
+
return JSON.stringify(result.error);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Returns a {@link ResultError} using 'error' as the message.
|
|
84
|
+
* @param error
|
|
85
|
+
* @param info
|
|
86
|
+
*/
|
|
87
|
+
function errorResult(error, info) {
|
|
88
|
+
return {
|
|
89
|
+
success: false,
|
|
90
|
+
error,
|
|
91
|
+
info
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Returns first failed result or final value.
|
|
96
|
+
* @param results
|
|
97
|
+
*/
|
|
98
|
+
function resultsCollate(...results) {
|
|
99
|
+
let rr;
|
|
100
|
+
for (const r of results) {
|
|
101
|
+
if (typeof r === `boolean`) {
|
|
102
|
+
if (r) continue;
|
|
103
|
+
return {
|
|
104
|
+
success: false,
|
|
105
|
+
error: `Guard failed: false result`
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
rr = typeof r === `object` ? r : r();
|
|
109
|
+
if (rr === void 0) continue;
|
|
110
|
+
if (!rr.success) return rr;
|
|
111
|
+
}
|
|
112
|
+
if (!rr) throw new Error(`No results`);
|
|
113
|
+
return rr;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Checks if `t` is not a number or within specified range.
|
|
117
|
+
* Returns `[false, reason:string]` if invalid or `[true]` if valid.
|
|
118
|
+
*
|
|
119
|
+
* Alternatives: {@link integerTest} for additional integer check, {@link percentTest} for percentage-range.
|
|
120
|
+
*
|
|
121
|
+
* * (empty, default): must be a number type and not NaN.
|
|
122
|
+
* * finite: must be a number, not NaN and not infinite
|
|
123
|
+
* * positive: must be at least zero
|
|
124
|
+
* * negative: must be zero or lower
|
|
125
|
+
* * aboveZero: must be above zero
|
|
126
|
+
* * belowZero: must be below zero
|
|
127
|
+
* * percentage: must be within 0-1, inclusive
|
|
128
|
+
* * nonZero: can be anything except zero
|
|
129
|
+
* * bipolar: can be -1 to 1, inclusive
|
|
130
|
+
* @param value Value to check
|
|
131
|
+
* @param parameterName Name of parameter (for more helpful exception messages)
|
|
132
|
+
* @param range Range to enforce
|
|
133
|
+
* @returns
|
|
134
|
+
*/
|
|
135
|
+
const numberTest = (value, range = ``, parameterName = `?`, info) => {
|
|
136
|
+
if (value === null) return {
|
|
137
|
+
success: false,
|
|
138
|
+
error: `Parameter '${parameterName}' is null`,
|
|
139
|
+
info
|
|
140
|
+
};
|
|
141
|
+
if (typeof value === `undefined`) return {
|
|
142
|
+
success: false,
|
|
143
|
+
error: `Parameter '${parameterName}' is undefined`,
|
|
144
|
+
info
|
|
145
|
+
};
|
|
146
|
+
if (Number.isNaN(value)) return {
|
|
147
|
+
success: false,
|
|
148
|
+
error: `Parameter '${parameterName}' is NaN`,
|
|
149
|
+
info
|
|
150
|
+
};
|
|
151
|
+
if (typeof value !== `number`) return {
|
|
152
|
+
success: false,
|
|
153
|
+
error: `Parameter '${parameterName}' is not a number (${JSON.stringify(value)})`,
|
|
154
|
+
info
|
|
155
|
+
};
|
|
156
|
+
switch (range) {
|
|
157
|
+
case `finite`:
|
|
158
|
+
if (!Number.isFinite(value)) return {
|
|
159
|
+
success: false,
|
|
160
|
+
error: `Parameter '${parameterName} must be finite (Got: ${value})`,
|
|
161
|
+
info
|
|
162
|
+
};
|
|
163
|
+
break;
|
|
164
|
+
case `positive`:
|
|
165
|
+
if (value < 0) return {
|
|
166
|
+
success: false,
|
|
167
|
+
error: `Parameter '${parameterName}' must be at least zero (${value})`,
|
|
168
|
+
info
|
|
169
|
+
};
|
|
170
|
+
break;
|
|
171
|
+
case `negative`:
|
|
172
|
+
if (value > 0) return {
|
|
173
|
+
success: false,
|
|
174
|
+
error: `Parameter '${parameterName}' must be zero or lower (${value})`,
|
|
175
|
+
info
|
|
176
|
+
};
|
|
177
|
+
break;
|
|
178
|
+
case `aboveZero`:
|
|
179
|
+
if (value <= 0) return {
|
|
180
|
+
success: false,
|
|
181
|
+
error: `Parameter '${parameterName}' must be above zero (${value})`,
|
|
182
|
+
info
|
|
183
|
+
};
|
|
184
|
+
break;
|
|
185
|
+
case `belowZero`:
|
|
186
|
+
if (value >= 0) return {
|
|
187
|
+
success: false,
|
|
188
|
+
error: `Parameter '${parameterName}' must be below zero (${value})`,
|
|
189
|
+
info
|
|
190
|
+
};
|
|
191
|
+
break;
|
|
192
|
+
case `percentage`:
|
|
193
|
+
if (value > 1 || value < 0) return {
|
|
194
|
+
success: false,
|
|
195
|
+
error: `Parameter '${parameterName}' must be in percentage range (0 to 1). (${value})`,
|
|
196
|
+
info
|
|
197
|
+
};
|
|
198
|
+
break;
|
|
199
|
+
case `nonZero`:
|
|
200
|
+
if (value === 0) return {
|
|
201
|
+
success: false,
|
|
202
|
+
error: `Parameter '${parameterName}' must non-zero. (${value})`,
|
|
203
|
+
info
|
|
204
|
+
};
|
|
205
|
+
break;
|
|
206
|
+
case `bipolar`:
|
|
207
|
+
if (value > 1 || value < -1) return {
|
|
208
|
+
success: false,
|
|
209
|
+
error: `Parameter '${parameterName}' must be in bipolar percentage range (-1 to 1). (${value})`,
|
|
210
|
+
info
|
|
211
|
+
};
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
return {
|
|
215
|
+
success: true,
|
|
216
|
+
value,
|
|
217
|
+
info
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Returns test of `value` being in the range of 0-1.
|
|
222
|
+
* Equiv to `number(value, `percentage`);`
|
|
223
|
+
*
|
|
224
|
+
* This is the same as calling ```number(t, `percentage`)```
|
|
225
|
+
* @param value Value to check
|
|
226
|
+
* @param parameterName Param name for customising exception message
|
|
227
|
+
* @returns
|
|
228
|
+
*/
|
|
229
|
+
const percentTest = (value, parameterName = `?`, info) => numberTest(value, `percentage`, parameterName, info);
|
|
230
|
+
/**
|
|
231
|
+
* Checks if `value` an integer and meets additional criteria.
|
|
232
|
+
* See {@link numberTest} for guard details, or use that if integer checking is not required.
|
|
233
|
+
*
|
|
234
|
+
* Note:
|
|
235
|
+
* * `bipolar` will mean -1, 0 or 1.
|
|
236
|
+
* * positive: must be at least zero
|
|
237
|
+
* * negative: must be zero or lower
|
|
238
|
+
* * aboveZero: must be above zero
|
|
239
|
+
* * belowZero: must be below zero
|
|
240
|
+
* * percentage: must be within 0-1, inclusive
|
|
241
|
+
* * nonZero: can be anything except zero
|
|
242
|
+
* @param value Value to check
|
|
243
|
+
* @param parameterName Param name for customising exception message
|
|
244
|
+
* @param range Guard specifier.
|
|
245
|
+
*/
|
|
246
|
+
const integerTest = (value, range = ``, parameterName = `?`) => {
|
|
247
|
+
return resultsCollate(numberTest(value, range, parameterName), () => {
|
|
248
|
+
if (!Number.isInteger(value)) return {
|
|
249
|
+
success: false,
|
|
250
|
+
error: `Param '${parameterName}' is not an integer`
|
|
251
|
+
};
|
|
252
|
+
return {
|
|
253
|
+
success: true,
|
|
254
|
+
value
|
|
255
|
+
};
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
const numberInclusiveRangeTest = (value, min, max, parameterName = `?`) => {
|
|
259
|
+
if (typeof value !== `number`) return {
|
|
260
|
+
success: false,
|
|
261
|
+
error: `Param '${parameterName}' is not a number type. Got type: '${typeof value}' value: '${JSON.stringify(value)}'`
|
|
262
|
+
};
|
|
263
|
+
if (Number.isNaN(value)) return {
|
|
264
|
+
success: false,
|
|
265
|
+
error: `Param '${parameterName}' is not within range ${min}-${max}. Got: NaN`
|
|
266
|
+
};
|
|
267
|
+
if (Number.isFinite(value)) {
|
|
268
|
+
if (value < min) return {
|
|
269
|
+
success: false,
|
|
270
|
+
error: `Param '${parameterName}' is below range ${min}-${max}. Got: ${value}`
|
|
271
|
+
};
|
|
272
|
+
else if (value > max) return {
|
|
273
|
+
success: false,
|
|
274
|
+
error: `Param '${parameterName}' is above range ${min}-${max}. Got: ${value}`
|
|
275
|
+
};
|
|
276
|
+
return {
|
|
277
|
+
success: true,
|
|
278
|
+
value
|
|
279
|
+
};
|
|
280
|
+
} else return {
|
|
281
|
+
success: false,
|
|
282
|
+
error: `Param '${parameterName}' is not within range ${min}-${max}. Got: infinite`
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
const nullUndefTest = (value, parameterName = `?`) => {
|
|
286
|
+
if (typeof value === `undefined`) return {
|
|
287
|
+
success: false,
|
|
288
|
+
error: `${parameterName} param is undefined`
|
|
289
|
+
};
|
|
290
|
+
if (value === null) return {
|
|
291
|
+
success: false,
|
|
292
|
+
error: `${parameterName} param is null`
|
|
293
|
+
};
|
|
294
|
+
return {
|
|
295
|
+
success: true,
|
|
296
|
+
value
|
|
297
|
+
};
|
|
298
|
+
};
|
|
299
|
+
const functionTest$1 = (value, parameterName = `?`) => {
|
|
300
|
+
if (value === void 0) return {
|
|
301
|
+
success: false,
|
|
302
|
+
error: `Param '${parameterName}' is undefined. Expected: function.`
|
|
303
|
+
};
|
|
304
|
+
if (value === null) return {
|
|
305
|
+
success: false,
|
|
306
|
+
error: `Param '${parameterName}' is null. Expected: function.`
|
|
307
|
+
};
|
|
308
|
+
if (typeof value !== `function`) return {
|
|
309
|
+
success: false,
|
|
310
|
+
error: `Param '${parameterName}' is type '${typeof value}'. Expected: function`
|
|
311
|
+
};
|
|
312
|
+
return {
|
|
313
|
+
success: true,
|
|
314
|
+
value
|
|
315
|
+
};
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* Tests_if `value` is a plain object
|
|
319
|
+
*
|
|
320
|
+
* ```js
|
|
321
|
+
* isPlainObject(`text`); // false
|
|
322
|
+
* isPlainObject(document); // false
|
|
323
|
+
* isPlainObject({ hello: `there` }); // true
|
|
324
|
+
* ```
|
|
325
|
+
* @param value
|
|
326
|
+
* @returns
|
|
327
|
+
*/
|
|
328
|
+
const testPlainObject = (value) => {
|
|
329
|
+
if (typeof value !== `object` || value === null) return {
|
|
330
|
+
success: false,
|
|
331
|
+
error: `Value is null or not object type`
|
|
332
|
+
};
|
|
333
|
+
const prototype = Object.getPrototypeOf(value);
|
|
334
|
+
if ((prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value)) return {
|
|
335
|
+
success: true,
|
|
336
|
+
value
|
|
337
|
+
};
|
|
338
|
+
return {
|
|
339
|
+
success: false,
|
|
340
|
+
error: `Fancy object`
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* Tests if `value` is primitive value (bigint,number,string or boolean) or plain object
|
|
345
|
+
* @param value
|
|
346
|
+
* @returns
|
|
347
|
+
*/
|
|
348
|
+
const testPlainObjectOrPrimitive = (value) => {
|
|
349
|
+
const t = typeof value;
|
|
350
|
+
if (t === `symbol`) return {
|
|
351
|
+
success: false,
|
|
352
|
+
error: `Symbol type`
|
|
353
|
+
};
|
|
354
|
+
if (t === `function`) return {
|
|
355
|
+
success: false,
|
|
356
|
+
error: `Function type`
|
|
357
|
+
};
|
|
358
|
+
if (t === `bigint`) return {
|
|
359
|
+
success: true,
|
|
360
|
+
value
|
|
361
|
+
};
|
|
362
|
+
if (t === `number`) return {
|
|
363
|
+
success: true,
|
|
364
|
+
value
|
|
365
|
+
};
|
|
366
|
+
if (t === `string`) return {
|
|
367
|
+
success: true,
|
|
368
|
+
value
|
|
369
|
+
};
|
|
370
|
+
if (t === `boolean`) return {
|
|
371
|
+
success: true,
|
|
372
|
+
value
|
|
373
|
+
};
|
|
374
|
+
return testPlainObject(value);
|
|
375
|
+
};
|
|
376
|
+
/**
|
|
377
|
+
* Throws an error if parameter is not an string
|
|
378
|
+
* @param value
|
|
379
|
+
* @param parameterName
|
|
380
|
+
*/
|
|
381
|
+
const stringTest = (value, range = ``, parameterName = `?`) => {
|
|
382
|
+
if (typeof value !== `string`) return {
|
|
383
|
+
success: false,
|
|
384
|
+
error: `Param '${parameterName} is not type string. Got: ${typeof value}`
|
|
385
|
+
};
|
|
386
|
+
switch (range) {
|
|
387
|
+
case `non-empty`:
|
|
388
|
+
if (value.length === 0) return {
|
|
389
|
+
success: false,
|
|
390
|
+
error: `Param '${parameterName} is empty`
|
|
391
|
+
};
|
|
392
|
+
break;
|
|
393
|
+
}
|
|
394
|
+
return {
|
|
395
|
+
success: true,
|
|
396
|
+
value
|
|
397
|
+
};
|
|
398
|
+
};
|
|
399
|
+
//#endregion
|
|
400
|
+
//#region node_modules/.pnpm/@ixfx+arrays@0.56.12/node_modules/@ixfx/arrays/dist/index.js
|
|
401
|
+
/**
|
|
402
|
+
* If any of `results` is an error, throws it, otherwise ignored.
|
|
403
|
+
* @param results
|
|
404
|
+
* @returns _true_ or throws
|
|
405
|
+
*/
|
|
406
|
+
function resultThrow(...results) {
|
|
407
|
+
for (const r of results) {
|
|
408
|
+
if (r === void 0) continue;
|
|
409
|
+
if (typeof r === `boolean`) if (!r) throw IxfxError.fromString(`Guard failed: false result`);
|
|
410
|
+
else continue;
|
|
411
|
+
const rr = typeof r === `object` ? r : r();
|
|
412
|
+
if (rr === void 0) continue;
|
|
413
|
+
if (rr.success) continue;
|
|
414
|
+
throw resultToError(rr);
|
|
415
|
+
}
|
|
416
|
+
return true;
|
|
417
|
+
}
|
|
418
|
+
var IxfxError = class IxfxError extends Error {
|
|
419
|
+
cause;
|
|
420
|
+
constructor(message, cause) {
|
|
421
|
+
super(message);
|
|
422
|
+
this.cause = cause;
|
|
423
|
+
}
|
|
424
|
+
static fromError(error, cause) {
|
|
425
|
+
const message = error.message;
|
|
426
|
+
const stack = error.stack;
|
|
427
|
+
const name = error.name;
|
|
428
|
+
const newError = new IxfxError(message, cause);
|
|
429
|
+
newError.stack = stack;
|
|
430
|
+
newError.name = `IxfxError(${name})`;
|
|
431
|
+
return newError;
|
|
432
|
+
}
|
|
433
|
+
static fromString(message, cause) {
|
|
434
|
+
const newError = new IxfxError(message, cause);
|
|
435
|
+
newError.name = `IxfxError`;
|
|
436
|
+
return newError;
|
|
437
|
+
}
|
|
438
|
+
};
|
|
439
|
+
/**
|
|
440
|
+
* Gets the result as an Error
|
|
441
|
+
* @param result
|
|
442
|
+
*/
|
|
443
|
+
function resultToError(result) {
|
|
444
|
+
if (typeof result.error === `string`) return IxfxError.fromString(result.error, result.info);
|
|
445
|
+
if (result.error instanceof Error) return IxfxError.fromError(result.error, result.info);
|
|
446
|
+
return IxfxError.fromString(JSON.stringify(result.error), result.info);
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Throws an error if parameter is not an array
|
|
450
|
+
* @param value
|
|
451
|
+
* @param parameterName
|
|
452
|
+
*/
|
|
453
|
+
const arrayTest = (value, parameterName = `?`) => {
|
|
454
|
+
if (!Array.isArray(value)) return {
|
|
455
|
+
success: false,
|
|
456
|
+
error: `Parameter '${parameterName}' is expected to be an array'`
|
|
457
|
+
};
|
|
458
|
+
return {
|
|
459
|
+
success: true,
|
|
460
|
+
value
|
|
461
|
+
};
|
|
462
|
+
};
|
|
463
|
+
const functionTest = (value, parameterName = `?`) => {
|
|
464
|
+
if (value === void 0) return {
|
|
465
|
+
success: false,
|
|
466
|
+
error: `Param '${parameterName}' is undefined. Expected: function.`
|
|
467
|
+
};
|
|
468
|
+
if (value === null) return {
|
|
469
|
+
success: false,
|
|
470
|
+
error: `Param '${parameterName}' is null. Expected: function.`
|
|
471
|
+
};
|
|
472
|
+
if (typeof value !== `function`) return {
|
|
473
|
+
success: false,
|
|
474
|
+
error: `Param '${parameterName}' is type '${typeof value}'. Expected: function`
|
|
475
|
+
};
|
|
476
|
+
return {
|
|
477
|
+
success: true,
|
|
478
|
+
value
|
|
479
|
+
};
|
|
480
|
+
};
|
|
481
|
+
/**
|
|
482
|
+
* If input is a string, it is returned.
|
|
483
|
+
* Otherwise, it returns the result of JSON.stringify() with fields ordered.
|
|
484
|
+
*
|
|
485
|
+
* This allows for more consistent comparisons when object field orders are different but values the same.
|
|
486
|
+
* @param itemToMakeStringFor
|
|
487
|
+
* @returns
|
|
488
|
+
*/
|
|
489
|
+
/**
|
|
490
|
+
* Default comparer function is equiv to checking `a === b`.
|
|
491
|
+
* Use {@link isEqualValueDefault} to compare by value, via comparing JSON string representation.
|
|
492
|
+
*/
|
|
493
|
+
const isEqualDefault = (a, b) => a === b;
|
|
494
|
+
/**
|
|
495
|
+
* Returns _true_ if array contains duplicate instances based on `===` equality checking.
|
|
496
|
+
*
|
|
497
|
+
* ```js
|
|
498
|
+
* const o1 = { hello: `there` };
|
|
499
|
+
* const o2 = { hello: `there` };
|
|
500
|
+
* containsDuplicateInstances([ o1, o2 ]); // False
|
|
501
|
+
* containsDuplicateInstances([ o1, o1 ]); // True
|
|
502
|
+
* ```
|
|
503
|
+
*
|
|
504
|
+
* Primitive values are compared by value:
|
|
505
|
+
* ```js
|
|
506
|
+
* containsDuplicateInstances([ 1, 2, 1 ]); // True
|
|
507
|
+
* containsDuplicateInstances([ `a`, `b`, `a` ]); // True
|
|
508
|
+
* ```
|
|
509
|
+
*
|
|
510
|
+
* Use {@link containsDuplicateValues} if you'd rather compare by value.
|
|
511
|
+
* @param array
|
|
512
|
+
* @throws {TypeError} If `array` parameter is not an array
|
|
513
|
+
* @returns
|
|
514
|
+
*/
|
|
515
|
+
const containsDuplicateInstances = (array) => {
|
|
516
|
+
resultThrow(arrayTest(array, `array`));
|
|
517
|
+
for (let index = 0; index < array.length; index++) for (let x = 0; x < array.length; x++) {
|
|
518
|
+
if (index === x) continue;
|
|
519
|
+
if (array[index] === array[x]) return true;
|
|
520
|
+
}
|
|
521
|
+
return false;
|
|
522
|
+
};
|
|
523
|
+
/**
|
|
524
|
+
* Yields pairs made up of overlapping items from the input array.
|
|
525
|
+
*
|
|
526
|
+
* Throws an error if there are less than two entries.
|
|
527
|
+
*
|
|
528
|
+
* ```js
|
|
529
|
+
* pairwise([1, 2, 3, 4, 5]);
|
|
530
|
+
* Yields:
|
|
531
|
+
* [ [1,2], [2,3], [3,4], [4,5] ]
|
|
532
|
+
* ```
|
|
533
|
+
* @param values
|
|
534
|
+
*/
|
|
535
|
+
function* pairwise(values) {
|
|
536
|
+
resultThrow(arrayTest(values, `values`));
|
|
537
|
+
if (values.length < 2) throw new Error(`Array needs to have at least two entries. Length: ${values.length}`);
|
|
538
|
+
for (let index = 1; index < values.length; index++) yield [values[index - 1], values[index]];
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Returns an array with value(s) omitted.
|
|
542
|
+
*
|
|
543
|
+
* If value is not found, result will be a copy of input.
|
|
544
|
+
* Value checking is completed via the provided `comparer` function.
|
|
545
|
+
* By default checking whether `a === b`. To compare based on value, use the `isEqualValueDefault` comparer.
|
|
546
|
+
*
|
|
547
|
+
* @example
|
|
548
|
+
* ```js
|
|
549
|
+
* const data = [100, 20, 40];
|
|
550
|
+
* const filtered = without(data, 20); // [100, 40]
|
|
551
|
+
* ```
|
|
552
|
+
*
|
|
553
|
+
* @example Using value-based comparison
|
|
554
|
+
* ```js
|
|
555
|
+
* const data = [{ name: `Alice` }, { name:`Sam` }];
|
|
556
|
+
*
|
|
557
|
+
* // This wouldn't work as expected, because the default comparer uses instance,
|
|
558
|
+
* // not value:
|
|
559
|
+
* without(data, { name: `Alice` });
|
|
560
|
+
*
|
|
561
|
+
* // So instead we can use a value comparer:
|
|
562
|
+
* without(data, { name:`Alice` }, isEqualValueDefault);
|
|
563
|
+
* ```
|
|
564
|
+
*
|
|
565
|
+
* @example Use a function
|
|
566
|
+
* ```js
|
|
567
|
+
* const data = [ { name: `Alice` }, { name:`Sam` }];
|
|
568
|
+
* without(data, { name:`ALICE` }, (a, b) => {
|
|
569
|
+
* return (a.name.toLowerCase() === b.name.toLowerCase());
|
|
570
|
+
* });
|
|
571
|
+
* ```
|
|
572
|
+
*
|
|
573
|
+
* Consider {@link remove} to remove an item by index.
|
|
574
|
+
*
|
|
575
|
+
* @typeParam V - Type of array items
|
|
576
|
+
* @param sourceArray Source array
|
|
577
|
+
* @param toRemove Value(s) to remove
|
|
578
|
+
* @param comparer Comparison function. If not provided `isEqualDefault` is used, which compares using `===`
|
|
579
|
+
* @throws {TypeError} If `sourceArray` is not an array, or compare function is not a function
|
|
580
|
+
* @return Copy of array without value.
|
|
581
|
+
*/
|
|
582
|
+
const without = (sourceArray, toRemove, comparer = isEqualDefault) => {
|
|
583
|
+
resultThrow(arrayTest(sourceArray, `sourceArray`), functionTest(comparer, `comparer`));
|
|
584
|
+
if (Array.isArray(toRemove)) {
|
|
585
|
+
const returnArray = [];
|
|
586
|
+
for (const source of sourceArray) if (!toRemove.some((v) => comparer(source, v))) returnArray.push(source);
|
|
587
|
+
return returnArray;
|
|
588
|
+
} else return sourceArray.filter((v) => !comparer(v, toRemove));
|
|
589
|
+
};
|
|
590
|
+
//#endregion
|
|
591
|
+
//#region node_modules/.pnpm/@ixfx+numbers@0.56.12/node_modules/@ixfx/numbers/dist/index.js
|
|
592
|
+
/**
|
|
593
|
+
* Returns the dot product of arbitrary-sized arrays. Assumed they are of the same length.
|
|
594
|
+
* @param values
|
|
595
|
+
* @param nonNumber What to do if array contains an invalid number. Error: throw an exception, 'treat-as-zero' use as 0 instead, 'ignore', let math run with invalid number
|
|
596
|
+
* @returns
|
|
597
|
+
*/
|
|
598
|
+
const dotProduct = (values, nonNumber = `ignore`) => {
|
|
599
|
+
let r = 0;
|
|
600
|
+
const length = values[0].length;
|
|
601
|
+
for (let index = 0; index < length; index++) {
|
|
602
|
+
let t = 0;
|
|
603
|
+
for (const [p, value] of values.entries()) {
|
|
604
|
+
let v = value[index];
|
|
605
|
+
if (Number.isNaN(v) || !Number.isFinite(v)) {
|
|
606
|
+
if (nonNumber === `treat-as-zero`) v = 0;
|
|
607
|
+
else if (nonNumber === `error`) throw new TypeError(`Invalid number at index ${index},${p}`);
|
|
608
|
+
}
|
|
609
|
+
if (p === 0) t = v;
|
|
610
|
+
else t *= v;
|
|
611
|
+
}
|
|
612
|
+
r += t;
|
|
613
|
+
}
|
|
614
|
+
return r;
|
|
615
|
+
};
|
|
616
|
+
/**
|
|
617
|
+
* Clamps a value between min and max (both inclusive)
|
|
618
|
+
* Defaults to a 0-1 range, useful for percentages.
|
|
619
|
+
*
|
|
620
|
+
* @example Usage
|
|
621
|
+
* ```js
|
|
622
|
+
* // 0.5 - just fine, within default of 0 to 1
|
|
623
|
+
* clamp(0.5);
|
|
624
|
+
* // 1 - above default max of 1
|
|
625
|
+
* clamp(1.5);
|
|
626
|
+
* // 0 - below range
|
|
627
|
+
* clamp(-50, 0, 100);
|
|
628
|
+
* // 50 - within range
|
|
629
|
+
* clamp(50, 0, 50);
|
|
630
|
+
* ```
|
|
631
|
+
*
|
|
632
|
+
* For clamping integer ranges, consider {@link clampIndex }
|
|
633
|
+
* For clamping `{ x, y }` points, consider {@link https://api.ixfx.fun/_ixfx/geometry/Points/clamp/ @ixfx/geometry/Points.clamp}.
|
|
634
|
+
* For clamping bipolar values: {@link Bipolar.clamp}
|
|
635
|
+
* @param value Value to clamp
|
|
636
|
+
* @param min value (inclusive)
|
|
637
|
+
* @param max value (inclusive)
|
|
638
|
+
* @returns Clamped value
|
|
639
|
+
*/
|
|
640
|
+
function clamp(value, min = 0, max = 1) {
|
|
641
|
+
if (Number.isNaN(value)) throw new Error(`Param 'value' is NaN`);
|
|
642
|
+
if (Number.isNaN(min)) throw new Error(`Param 'min' is NaN`);
|
|
643
|
+
if (Number.isNaN(max)) throw new Error(`Param 'max' is NaN`);
|
|
644
|
+
if (value < min) return min;
|
|
645
|
+
if (value > max) return max;
|
|
646
|
+
return value;
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Returns a function that clamps values.
|
|
650
|
+
*
|
|
651
|
+
* ```js
|
|
652
|
+
* const c = clamper(0,100);
|
|
653
|
+
* c(50); // 50
|
|
654
|
+
* c(101); // 100
|
|
655
|
+
* c(-5); // 0
|
|
656
|
+
* ```
|
|
657
|
+
* @param min Minimum value. Default: 0
|
|
658
|
+
* @param max Maximum value. Default: 1
|
|
659
|
+
*/
|
|
660
|
+
function clamper(min = 0, max = 1) {
|
|
661
|
+
if (Number.isNaN(min)) throw new Error(`Param 'min' is NaN`);
|
|
662
|
+
if (Number.isNaN(max)) throw new Error(`Param 'max' is NaN`);
|
|
663
|
+
return (v) => {
|
|
664
|
+
if (v > max) return max;
|
|
665
|
+
if (v < min) return min;
|
|
666
|
+
return v;
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
/**
|
|
670
|
+
* Wraps floating point numbers to be within a range (default: 0..1). Use {@link wrapInteger} if you want to wrap integer values.
|
|
671
|
+
*
|
|
672
|
+
* This logic makes sense for some things like rotation angle.
|
|
673
|
+
*
|
|
674
|
+
* If you just want to lock values to a range without wrapping, consider {@link clamp}.
|
|
675
|
+
*
|
|
676
|
+
* ```js
|
|
677
|
+
* wrap(1.2); // 0.2
|
|
678
|
+
* wrap(2); // 1.0
|
|
679
|
+
* wrap(-0.2); // 0.8
|
|
680
|
+
* ```
|
|
681
|
+
*
|
|
682
|
+
* A range can be provided too:
|
|
683
|
+
* ```js
|
|
684
|
+
* wrap(30, 20, 50); // 30
|
|
685
|
+
* wrap(60, 20, 50); // 30
|
|
686
|
+
* ```
|
|
687
|
+
* @param v
|
|
688
|
+
* @param min
|
|
689
|
+
* @param max
|
|
690
|
+
* @returns
|
|
691
|
+
*/
|
|
692
|
+
const wrap = (v, min = 0, max = 1) => {
|
|
693
|
+
resultThrow$1(numberTest(v, ``, `min`), numberTest(min, ``, `min`), numberTest(max, ``, `max`));
|
|
694
|
+
if (v === min) return min;
|
|
695
|
+
if (v === max) return min;
|
|
696
|
+
while (v <= min || v >= max) {
|
|
697
|
+
if (v === max) break;
|
|
698
|
+
if (v === min) break;
|
|
699
|
+
if (v > max) v = min + (v - max);
|
|
700
|
+
else if (v < min) v = max - (min - v);
|
|
701
|
+
}
|
|
702
|
+
return v;
|
|
703
|
+
};
|
|
704
|
+
Math.PI * 2;
|
|
705
|
+
/**
|
|
706
|
+
* Interpolates between `a` and `b` by `amount`. Aka `lerp`.
|
|
707
|
+
*
|
|
708
|
+
* [ixfx Guide on Interpolation](https://ixfx.fun/data/interpolation/overview/)
|
|
709
|
+
*
|
|
710
|
+
* @example Get the halfway point between 30 and 60
|
|
711
|
+
* ```js
|
|
712
|
+
* interpolate(0.5, 30, 60);
|
|
713
|
+
* ```
|
|
714
|
+
*
|
|
715
|
+
* See also {@link interpolatorStepped} and {@link https://api.ixfx.fun/_ixfx/modulation/interpolatorInterval/} for functions
|
|
716
|
+
* which help to manage progression from A->B over steps or interval.
|
|
717
|
+
*
|
|
718
|
+
* Usually interpolation amount is on a 0...1 scale, inclusive. What is the interpolation result
|
|
719
|
+
* if this scale is exceeded? By default it is clamped to 0..1, so the return value is always between `a` and `b` (inclusive).
|
|
720
|
+
*
|
|
721
|
+
* Alternatively, set the `limits` option to process `amount`:
|
|
722
|
+
* * 'wrap': wrap amount, eg 1.5 is the same as 0.5, 2 is the same as 1
|
|
723
|
+
* * 'ignore': allow exceeding values. eg 1.5 will yield b*1.5.
|
|
724
|
+
* * 'clamp': default behaviour of clamping interpolation amount to 0..1
|
|
725
|
+
*
|
|
726
|
+
* Interpolation can be non-linear using 'easing' option or 'transform' funciton.
|
|
727
|
+
* ```js
|
|
728
|
+
* interpolate(0.1, 0, 100, { easing: `quadIn` });
|
|
729
|
+
* ```
|
|
730
|
+
* There are a few variations when calling `interpolate`, depending on what parameters are fixed.
|
|
731
|
+
* * `interpolate(amount)`: returns a function that needs a & b
|
|
732
|
+
* * `interpolate(a, b)`: returns a function that needs the interpolation amount
|
|
733
|
+
*/
|
|
734
|
+
function interpolate(pos1, pos2, pos3, pos4) {
|
|
735
|
+
let amountProcess;
|
|
736
|
+
let limits = `clamp`;
|
|
737
|
+
const handleAmount = (amount) => {
|
|
738
|
+
if (amountProcess) amount = amountProcess(amount);
|
|
739
|
+
if (limits === void 0 || limits === `clamp`) amount = clamp(amount);
|
|
740
|
+
else if (limits === `wrap`) {
|
|
741
|
+
if (amount > 1) amount = amount % 1;
|
|
742
|
+
else if (amount < 0) amount = 1 + amount % 1;
|
|
743
|
+
}
|
|
744
|
+
return amount;
|
|
745
|
+
};
|
|
746
|
+
const doTheEase = (_amt, _a, _b) => {
|
|
747
|
+
resultThrow$1(numberTest(_a, ``, `a`), numberTest(_b, ``, `b`), numberTest(_amt, ``, `amount`));
|
|
748
|
+
_amt = handleAmount(_amt);
|
|
749
|
+
return (1 - _amt) * _a + _amt * _b;
|
|
750
|
+
};
|
|
751
|
+
const readOpts = (o = {}) => {
|
|
752
|
+
if (o.transform !== void 0) {
|
|
753
|
+
if (typeof o.transform !== `function`) throw new Error(`Param 'transform' is expected to be a function. Got: ${typeof o.transform}`);
|
|
754
|
+
amountProcess = o.transform;
|
|
755
|
+
}
|
|
756
|
+
limits = o.limits ?? `clamp`;
|
|
757
|
+
};
|
|
758
|
+
const rawEase = (_amt, _a, _b) => (1 - _amt) * _a + _amt * _b;
|
|
759
|
+
if (typeof pos1 !== `number`) throw new TypeError(`First param is expected to be a number. Got: ${typeof pos1}`);
|
|
760
|
+
if (typeof pos2 === `number`) {
|
|
761
|
+
let a;
|
|
762
|
+
let b;
|
|
763
|
+
if (pos3 === void 0 || typeof pos3 === `object`) {
|
|
764
|
+
a = pos1;
|
|
765
|
+
b = pos2;
|
|
766
|
+
readOpts(pos3);
|
|
767
|
+
return (amount) => doTheEase(amount, a, b);
|
|
768
|
+
} else if (typeof pos3 === `number`) {
|
|
769
|
+
a = pos2;
|
|
770
|
+
b = pos3;
|
|
771
|
+
readOpts(pos4);
|
|
772
|
+
return doTheEase(pos1, a, b);
|
|
773
|
+
} else throw new Error(`Values for 'a' and 'b' not defined`);
|
|
774
|
+
} else if (pos2 === void 0 || typeof pos2 === `object`) {
|
|
775
|
+
const amount = handleAmount(pos1);
|
|
776
|
+
readOpts(pos2);
|
|
777
|
+
resultThrow$1(numberTest(amount, ``, `amount`));
|
|
778
|
+
return (aValue, bValue) => rawEase(amount, aValue, bValue);
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* Rounds a number.
|
|
783
|
+
*
|
|
784
|
+
* If one parameter is given, it's the decimal places,
|
|
785
|
+
* and a rounding function is returned:
|
|
786
|
+
* ```js
|
|
787
|
+
* const r = round(2);
|
|
788
|
+
* r(10.12355); // 10.12
|
|
789
|
+
* ```
|
|
790
|
+
*
|
|
791
|
+
* If two parameters are given, the first is decimal places,
|
|
792
|
+
* the second the value to round.
|
|
793
|
+
* ```js
|
|
794
|
+
* round(2, 10.12355); // 10.12
|
|
795
|
+
* ```
|
|
796
|
+
* @param decimalPlaces
|
|
797
|
+
* @returns
|
|
798
|
+
*/
|
|
799
|
+
function round(a, b, roundUp) {
|
|
800
|
+
resultThrow$1(integerTest(a, `positive`, `decimalPlaces`));
|
|
801
|
+
const up = typeof b === `boolean` ? b : roundUp ?? false;
|
|
802
|
+
let rounder;
|
|
803
|
+
if (a === 0) rounder = Math.round;
|
|
804
|
+
else {
|
|
805
|
+
const p = Math.pow(10, a);
|
|
806
|
+
if (up) rounder = (v) => Math.ceil(v * p) / p;
|
|
807
|
+
else rounder = (v) => Math.floor(v * p) / p;
|
|
808
|
+
}
|
|
809
|
+
if (typeof b === `number`) return rounder(b);
|
|
810
|
+
return rounder;
|
|
811
|
+
}
|
|
812
|
+
Math.PI * 2;
|
|
813
|
+
/**
|
|
814
|
+
* A moving average calculator (exponential weighted moving average) which does not keep track of
|
|
815
|
+
* previous samples. Less accurate, but uses less system resources.
|
|
816
|
+
*
|
|
817
|
+
* The `scaling` parameter determines smoothing. A value of `1` means that
|
|
818
|
+
* the latest value is used as the average - that is, no smoothing. Higher numbers
|
|
819
|
+
* introduce progressively more smoothing by weighting the accumulated prior average more heavily.
|
|
820
|
+
*
|
|
821
|
+
* ```
|
|
822
|
+
* const ma = movingAverageLight(); // default scaling of 3
|
|
823
|
+
* ma(50); // 50
|
|
824
|
+
* ma(100); // 75
|
|
825
|
+
* ma(75); // 75
|
|
826
|
+
* ma(0); // 50
|
|
827
|
+
* ```
|
|
828
|
+
*
|
|
829
|
+
* Note that the final average of 50 is pretty far from the last value of 0. To make it more responsive,
|
|
830
|
+
* we could use a lower scaling factor: `movingAverageLight(2)`. This yields a final average of `37.5` instead.
|
|
831
|
+
*
|
|
832
|
+
* @param scaling Scaling factor. 1 is no smoothing. Default: 3
|
|
833
|
+
* @returns Function that adds to average.
|
|
834
|
+
*/
|
|
835
|
+
const movingAverageLight = (scaling = 3) => {
|
|
836
|
+
resultThrow$1(numberTest(scaling, `aboveZero`, `scaling`));
|
|
837
|
+
let average = 0;
|
|
838
|
+
let count = 0;
|
|
839
|
+
return (v) => {
|
|
840
|
+
if (numberTest(v, ``, `v`).success && v !== void 0) {
|
|
841
|
+
count++;
|
|
842
|
+
average = average + (v - average) / Math.min(count, scaling);
|
|
843
|
+
}
|
|
844
|
+
return average;
|
|
845
|
+
};
|
|
846
|
+
};
|
|
847
|
+
/**
|
|
848
|
+
* Rounds `v` by `every`. Middle values are rounded up by default.
|
|
849
|
+
*
|
|
850
|
+
* ```js
|
|
851
|
+
* quantiseEvery(11, 10); // 10
|
|
852
|
+
* quantiseEvery(25, 10); // 30
|
|
853
|
+
* quantiseEvery(0, 10); // 0
|
|
854
|
+
* quantiseEvery(4, 10); // 0
|
|
855
|
+
* quantiseEvery(100, 10); // 100
|
|
856
|
+
* ```
|
|
857
|
+
*
|
|
858
|
+
* Also works with decimals
|
|
859
|
+
* ```js
|
|
860
|
+
* quantiseEvery(1.123, 0.1); // 1.1
|
|
861
|
+
* quantiseEvery(1.21, 0.1); // 1.2
|
|
862
|
+
* ```
|
|
863
|
+
*
|
|
864
|
+
* @param v Value to quantise
|
|
865
|
+
* @param every Number to quantise to
|
|
866
|
+
* @param middleRoundsUp If _true_ (default), the exact middle rounds up to next step.
|
|
867
|
+
* @returns
|
|
868
|
+
*/
|
|
869
|
+
const quantiseEvery = (v, every, middleRoundsUp = true) => {
|
|
870
|
+
const everyString = every.toString();
|
|
871
|
+
const decimal = everyString.indexOf(`.`);
|
|
872
|
+
let multiplier = 1;
|
|
873
|
+
if (decimal >= 0) {
|
|
874
|
+
multiplier = 10 * everyString.substring(decimal + 1).length;
|
|
875
|
+
every = Math.floor(multiplier * every);
|
|
876
|
+
v = v * multiplier;
|
|
877
|
+
}
|
|
878
|
+
resultThrow$1(numberTest(v, ``, `v`), integerTest(every, ``, `every`));
|
|
879
|
+
let div = v / every;
|
|
880
|
+
const divModule = div % 1;
|
|
881
|
+
div = Math.floor(div);
|
|
882
|
+
if (divModule === .5 && middleRoundsUp || divModule > .5) div++;
|
|
883
|
+
return every * div / multiplier;
|
|
884
|
+
};
|
|
885
|
+
/**
|
|
886
|
+
* Scales `v` from an input range to an output range (aka `map`)
|
|
887
|
+
*
|
|
888
|
+
* For example, if a sensor's useful range is 100-500, scale it to a percentage:
|
|
889
|
+
*
|
|
890
|
+
* ```js
|
|
891
|
+
*
|
|
892
|
+
* scale(sensorReading, 100, 500, 0, 1);
|
|
893
|
+
* ```
|
|
894
|
+
*
|
|
895
|
+
* `scale` defaults to a percentage-range output, so you can get away with:
|
|
896
|
+
* ```js
|
|
897
|
+
* scale(sensorReading, 100, 500);
|
|
898
|
+
* ```
|
|
899
|
+
*
|
|
900
|
+
* If `v` is outside of the input range, it will likewise be outside of the output range.
|
|
901
|
+
* Use {@link scaleClamped} to clip value to range.
|
|
902
|
+
*
|
|
903
|
+
* If inMin and inMax are equal, outMax will be returned.
|
|
904
|
+
*
|
|
905
|
+
* An easing function can be provided for non-linear scaling. In this case
|
|
906
|
+
* the input value is 'pre scaled' using the function before it is applied to the
|
|
907
|
+
* output range.
|
|
908
|
+
*
|
|
909
|
+
* ```js
|
|
910
|
+
* scale(sensorReading, 100, 500, 0, 1, Easings.gaussian());
|
|
911
|
+
* ```
|
|
912
|
+
* @param v Value to scale
|
|
913
|
+
* @param inMin Input minimum
|
|
914
|
+
* @param inMax Input maximum
|
|
915
|
+
* @param outMin Output minimum. If not specified, 0
|
|
916
|
+
* @param outMax Output maximum. If not specified, 1
|
|
917
|
+
* @param easing Easing function
|
|
918
|
+
* @returns Scaled value
|
|
919
|
+
*/
|
|
920
|
+
const scale = (v, inMin, inMax, outMin, outMax, easing) => scaler(inMin, inMax, outMin, outMax, easing)(v);
|
|
921
|
+
/**
|
|
922
|
+
* Returns a scaling function
|
|
923
|
+
* @param inMin Input minimum
|
|
924
|
+
* @param inMax Input maximum
|
|
925
|
+
* @param outMin Output minimum. If not specified, 0
|
|
926
|
+
* @param outMax Output maximum. If not specified, 1
|
|
927
|
+
* @param easing Easing function
|
|
928
|
+
* @param clamped If true, value is clamped. Default: false
|
|
929
|
+
* @returns
|
|
930
|
+
*/
|
|
931
|
+
const scaler = (inMin, inMax, outMin, outMax, easing, clamped) => {
|
|
932
|
+
resultThrow$1(numberTest(inMin, `finite`, `inMin`), numberTest(inMax, `finite`, `inMax`));
|
|
933
|
+
const oMax = outMax ?? 1;
|
|
934
|
+
const oMin = outMin ?? 0;
|
|
935
|
+
const clampFunction = clamped ? clamper(outMin, outMax) : void 0;
|
|
936
|
+
return (v) => {
|
|
937
|
+
if (inMin === inMax) return oMax;
|
|
938
|
+
let a = (v - inMin) / (inMax - inMin);
|
|
939
|
+
if (easing !== void 0) a = easing(a);
|
|
940
|
+
const x = a * (oMax - oMin) + oMin;
|
|
941
|
+
if (clampFunction) return clampFunction(x);
|
|
942
|
+
return x;
|
|
943
|
+
};
|
|
944
|
+
};
|
|
945
|
+
/**
|
|
946
|
+
* As {@link scale}, but result is clamped to be
|
|
947
|
+
* within `outMin` and `outMax`. Useful if you can't be sure
|
|
948
|
+
* that `v` is in 0..1 range.
|
|
949
|
+
*
|
|
950
|
+
* @param value
|
|
951
|
+
* @param inMin
|
|
952
|
+
* @param inMax
|
|
953
|
+
* @param outMin 1 by default
|
|
954
|
+
* @param outMax 0 by default d
|
|
955
|
+
* @param easing
|
|
956
|
+
* @returns
|
|
957
|
+
*/
|
|
958
|
+
const scaleClamped = (value, inMin, inMax, outMin, outMax, easing) => {
|
|
959
|
+
if (typeof outMax === `undefined`) outMax = 1;
|
|
960
|
+
if (typeof outMin === `undefined`) outMin = 0;
|
|
961
|
+
if (inMin === inMax) return outMax;
|
|
962
|
+
return clamp(scale(value, inMin, inMax, outMin, outMax, easing), outMin, outMax);
|
|
963
|
+
};
|
|
964
|
+
/**
|
|
965
|
+
* Returns an empty range:
|
|
966
|
+
* ```js
|
|
967
|
+
* {
|
|
968
|
+
* min: Number.MAX_SAFE_INTEGER,
|
|
969
|
+
* max: Number.MIN_SAFE_INTEGER
|
|
970
|
+
* }
|
|
971
|
+
* ```
|
|
972
|
+
* @returns
|
|
973
|
+
*/
|
|
974
|
+
const rangeInit = () => ({
|
|
975
|
+
min: Number.MAX_SAFE_INTEGER,
|
|
976
|
+
max: Number.MIN_SAFE_INTEGER
|
|
977
|
+
});
|
|
978
|
+
/**
|
|
979
|
+
* Keeps track of min/max values.
|
|
980
|
+
*
|
|
981
|
+
* ```js
|
|
982
|
+
* const s = rangeStream();
|
|
983
|
+
* s.seen(10); // { min: 10, max: 10 }
|
|
984
|
+
* s.seen(5); // { min: 5, max: 10 }
|
|
985
|
+
* ```
|
|
986
|
+
*
|
|
987
|
+
* When calling `seen()`, non-numbers, or non-finite numbers are silently ignored.
|
|
988
|
+
*
|
|
989
|
+
* ```js
|
|
990
|
+
* s.reset(); // Reset
|
|
991
|
+
* s.min/s.max; // Current min/max
|
|
992
|
+
* s.range; // Current { min, max }
|
|
993
|
+
* ```
|
|
994
|
+
* @param initWith
|
|
995
|
+
* @returns
|
|
996
|
+
*/
|
|
997
|
+
const rangeStream = (initWith = rangeInit()) => {
|
|
998
|
+
let { min, max } = initWith;
|
|
999
|
+
const seen = (v) => {
|
|
1000
|
+
if (typeof v === `number`) {
|
|
1001
|
+
if (!Number.isNaN(v) && Number.isFinite(v)) {
|
|
1002
|
+
min = Math.min(min, v);
|
|
1003
|
+
max = Math.max(max, v);
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
return {
|
|
1007
|
+
min,
|
|
1008
|
+
max
|
|
1009
|
+
};
|
|
1010
|
+
};
|
|
1011
|
+
const reset = () => {
|
|
1012
|
+
min = Number.MAX_SAFE_INTEGER;
|
|
1013
|
+
max = Number.MIN_SAFE_INTEGER;
|
|
1014
|
+
return {
|
|
1015
|
+
min,
|
|
1016
|
+
max
|
|
1017
|
+
};
|
|
1018
|
+
};
|
|
1019
|
+
return {
|
|
1020
|
+
seen,
|
|
1021
|
+
reset,
|
|
1022
|
+
get range() {
|
|
1023
|
+
return {
|
|
1024
|
+
min,
|
|
1025
|
+
max
|
|
1026
|
+
};
|
|
1027
|
+
},
|
|
1028
|
+
get min() {
|
|
1029
|
+
return min;
|
|
1030
|
+
},
|
|
1031
|
+
get max() {
|
|
1032
|
+
return max;
|
|
1033
|
+
}
|
|
1034
|
+
};
|
|
1035
|
+
};
|
|
1036
|
+
//#endregion
|
|
1037
|
+
export { resultThrow$1 as C, throwIfFailed as E, percentTest as S, testPlainObjectOrPrimitive as T, functionTest$1 as _, movingAverageLight as a, numberInclusiveRangeTest as b, round as c, scaler as d, wrap as f, errorResult as g, without as h, interpolate as i, scale as l, pairwise as m, clamper as n, quantiseEvery as o, containsDuplicateInstances as p, dotProduct as r, rangeStream as s, clamp as t, scaleClamped as u, integerTest as v, stringTest as w, numberTest as x, nullUndefTest as y };
|
|
1038
|
+
|
|
1039
|
+
//# sourceMappingURL=dist-D7kJgnSE.js.map
|