@unoff/ui 1.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +880 -0
- package/dist/assets/Accordion.css +1 -0
- package/dist/assets/ActionsItem.css +1 -0
- package/dist/assets/ActionsList.css +1 -0
- package/dist/assets/Avatar.css +1 -0
- package/dist/assets/Bar.css +1 -0
- package/dist/assets/Button.css +1 -0
- package/dist/assets/Card.css +1 -0
- package/dist/assets/Chip.css +1 -0
- package/dist/assets/ColorChip.css +1 -0
- package/dist/assets/ColorItem.css +1 -0
- package/dist/assets/Consent.css +1 -0
- package/dist/assets/Dialog.css +1 -0
- package/dist/assets/DraggableItem.css +1 -0
- package/dist/assets/DraggableWindow.css +1 -0
- package/dist/assets/Drawer.css +1 -0
- package/dist/assets/Dropdown.css +1 -0
- package/dist/assets/Dropzone.css +1 -0
- package/dist/assets/FormItem.css +1 -0
- package/dist/assets/Icon.css +1 -0
- package/dist/assets/IconChip.css +1 -0
- package/dist/assets/Input.css +1 -0
- package/dist/assets/InputsBar.css +1 -0
- package/dist/assets/KeyboardShortcutItem.css +1 -0
- package/dist/assets/Knob.css +1 -0
- package/dist/assets/Layout.css +1 -0
- package/dist/assets/List.css +1 -0
- package/dist/assets/MembersList.css +1 -0
- package/dist/assets/Menu.css +1 -0
- package/dist/assets/Message.css +1 -0
- package/dist/assets/MultipleSlider.css +1 -0
- package/dist/assets/Notification.css +1 -0
- package/dist/assets/Popin.css +1 -0
- package/dist/assets/Section.css +1 -0
- package/dist/assets/SectionTitle.css +1 -0
- package/dist/assets/Select.css +1 -0
- package/dist/assets/SemanticMessage.css +1 -0
- package/dist/assets/SimpleItem.css +1 -0
- package/dist/assets/SimpleSlider.css +1 -0
- package/dist/assets/SortableList.css +1 -0
- package/dist/assets/Tabs.css +1 -0
- package/dist/assets/Text.css +1 -0
- package/dist/assets/Thumbnail.css +1 -0
- package/dist/assets/Tooltip.css +1 -0
- package/dist/assets/styles/icons/icons.css +1 -0
- package/dist/assets/styles/icons/styles/figma.css +1 -0
- package/dist/assets/styles/icons/styles/framer.css +1 -0
- package/dist/assets/styles/icons/styles/penpot.css +1 -0
- package/dist/assets/styles/icons/styles/sketch.css +1 -0
- package/dist/assets/styles/layouts.css +1 -0
- package/dist/assets/styles/texts/styles/figma.css +1 -0
- package/dist/assets/styles/texts/styles/framer.css +1 -0
- package/dist/assets/styles/texts/styles/penpot.css +1 -0
- package/dist/assets/styles/texts/styles/sketch.css +1 -0
- package/dist/assets/styles/texts/texts.css +1 -0
- package/dist/assets/styles/tokens/figma-types.css +1 -0
- package/dist/assets/styles/tokens/framer-types.css +1 -0
- package/dist/assets/styles/tokens/modules/figma-colors.css +1 -0
- package/dist/assets/styles/tokens/modules/figma-types.css +1 -0
- package/dist/assets/styles/tokens/modules/framer-colors.css +1 -0
- package/dist/assets/styles/tokens/modules/framer-types.css +1 -0
- package/dist/assets/styles/tokens/modules/globals.css +1 -0
- package/dist/assets/styles/tokens/modules/penpot-colors.css +1 -0
- package/dist/assets/styles/tokens/modules/penpot-types.css +1 -0
- package/dist/assets/styles/tokens/modules/sketch-colors.css +1 -0
- package/dist/assets/styles/tokens/modules/sketch-types.css +1 -0
- package/dist/assets/styles/tokens/penpot-types.css +1 -0
- package/dist/assets/styles/tokens/sketch-types.css +1 -0
- package/dist/components/actions/accordion/Accordion.d.ts +59 -0
- package/dist/components/actions/accordion/Accordion.d.ts.map +1 -0
- package/dist/components/actions/accordion/Accordion.js +104 -0
- package/dist/components/actions/accordion/Accordion.js.map +1 -0
- package/dist/components/actions/button/Button.d.ts +148 -0
- package/dist/components/actions/button/Button.d.ts.map +1 -0
- package/dist/components/actions/button/Button.figma.d.ts +2 -0
- package/dist/components/actions/button/Button.figma.d.ts.map +1 -0
- package/dist/components/actions/button/Button.figma.js +43 -0
- package/dist/components/actions/button/Button.figma.js.map +1 -0
- package/dist/components/actions/button/Button.js +306 -0
- package/dist/components/actions/button/Button.js.map +1 -0
- package/dist/components/actions/card/Card.d.ts +39 -0
- package/dist/components/actions/card/Card.d.ts.map +1 -0
- package/dist/components/actions/card/Card.js +99 -0
- package/dist/components/actions/card/Card.js.map +1 -0
- package/dist/components/actions/knob/Knob.d.ts +93 -0
- package/dist/components/actions/knob/Knob.d.ts.map +1 -0
- package/dist/components/actions/knob/Knob.js +179 -0
- package/dist/components/actions/knob/Knob.js.map +1 -0
- package/dist/components/actions/menu/Menu.d.ts +104 -0
- package/dist/components/actions/menu/Menu.d.ts.map +1 -0
- package/dist/components/actions/menu/Menu.js +200 -0
- package/dist/components/actions/menu/Menu.js.map +1 -0
- package/dist/components/assets/avatar/Avatar.d.ts +30 -0
- package/dist/components/assets/avatar/Avatar.d.ts.map +1 -0
- package/dist/components/assets/avatar/Avatar.js +54 -0
- package/dist/components/assets/avatar/Avatar.js.map +1 -0
- package/dist/components/assets/icon/Icon.d.ts +28 -0
- package/dist/components/assets/icon/Icon.d.ts.map +1 -0
- package/dist/components/assets/icon/Icon.figma.d.ts +2 -0
- package/dist/components/assets/icon/Icon.figma.d.ts.map +1 -0
- package/dist/components/assets/icon/Icon.figma.js +27 -0
- package/dist/components/assets/icon/Icon.figma.js.map +1 -0
- package/dist/components/assets/icon/Icon.js +35 -0
- package/dist/components/assets/icon/Icon.js.map +1 -0
- package/dist/components/assets/section-title/SectionTitle.d.ts +22 -0
- package/dist/components/assets/section-title/SectionTitle.d.ts.map +1 -0
- package/dist/components/assets/section-title/SectionTitle.js +42 -0
- package/dist/components/assets/section-title/SectionTitle.js.map +1 -0
- package/dist/components/assets/text/Text.d.ts +34 -0
- package/dist/components/assets/text/Text.d.ts.map +1 -0
- package/dist/components/assets/text/Text.js +35 -0
- package/dist/components/assets/text/Text.js.map +1 -0
- package/dist/components/assets/thumbnail/Thumbnail.d.ts +25 -0
- package/dist/components/assets/thumbnail/Thumbnail.d.ts.map +1 -0
- package/dist/components/assets/thumbnail/Thumbnail.js +67 -0
- package/dist/components/assets/thumbnail/Thumbnail.js.map +1 -0
- package/dist/components/dialogs/consent/Consent.d.ts +85 -0
- package/dist/components/dialogs/consent/Consent.d.ts.map +1 -0
- package/dist/components/dialogs/consent/Consent.js +402 -0
- package/dist/components/dialogs/consent/Consent.js.map +1 -0
- package/dist/components/dialogs/dialog/Dialog.d.ts +81 -0
- package/dist/components/dialogs/dialog/Dialog.d.ts.map +1 -0
- package/dist/components/dialogs/dialog/Dialog.js +58 -0
- package/dist/components/dialogs/dialog/Dialog.js.map +1 -0
- package/dist/components/dialogs/message/Message.d.ts +25 -0
- package/dist/components/dialogs/message/Message.d.ts.map +1 -0
- package/dist/components/dialogs/message/Message.js +141 -0
- package/dist/components/dialogs/message/Message.js.map +1 -0
- package/dist/components/dialogs/notification/Notification.d.ts +22 -0
- package/dist/components/dialogs/notification/Notification.d.ts.map +1 -0
- package/dist/components/dialogs/notification/Notification.js +38 -0
- package/dist/components/dialogs/notification/Notification.js.map +1 -0
- package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts +40 -0
- package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts.map +1 -0
- package/dist/components/dialogs/semantic-message/SemanticMessage.js +71 -0
- package/dist/components/dialogs/semantic-message/SemanticMessage.js.map +1 -0
- package/dist/components/inputs/dropdown/Dropdown.d.ts +123 -0
- package/dist/components/inputs/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/inputs/dropdown/Dropdown.figma.d.ts +2 -0
- package/dist/components/inputs/dropdown/Dropdown.figma.d.ts.map +1 -0
- package/dist/components/inputs/dropdown/Dropdown.figma.js +28 -0
- package/dist/components/inputs/dropdown/Dropdown.figma.js.map +1 -0
- package/dist/components/inputs/dropdown/Dropdown.js +307 -0
- package/dist/components/inputs/dropdown/Dropdown.js.map +1 -0
- package/dist/components/inputs/dropzone/Dropzone.d.ts +78 -0
- package/dist/components/inputs/dropzone/Dropzone.d.ts.map +1 -0
- package/dist/components/inputs/dropzone/Dropzone.js +222 -0
- package/dist/components/inputs/dropzone/Dropzone.js.map +1 -0
- package/dist/components/inputs/input/Input.d.ts +203 -0
- package/dist/components/inputs/input/Input.d.ts.map +1 -0
- package/dist/components/inputs/input/Input.figma.d.ts +2 -0
- package/dist/components/inputs/input/Input.figma.d.ts.map +1 -0
- package/dist/components/inputs/input/Input.figma.js +35 -0
- package/dist/components/inputs/input/Input.figma.js.map +1 -0
- package/dist/components/inputs/input/Input.js +713 -0
- package/dist/components/inputs/input/Input.js.map +1 -0
- package/dist/components/inputs/inputs-bar/InputsBar.d.ts +18 -0
- package/dist/components/inputs/inputs-bar/InputsBar.d.ts.map +1 -0
- package/dist/components/inputs/inputs-bar/InputsBar.js +15 -0
- package/dist/components/inputs/inputs-bar/InputsBar.js.map +1 -0
- package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts +125 -0
- package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts.map +1 -0
- package/dist/components/inputs/multiple-slider/MultipleSlider.js +417 -0
- package/dist/components/inputs/multiple-slider/MultipleSlider.js.map +1 -0
- package/dist/components/inputs/multiple-slider/actions/addStop.d.ts +8 -0
- package/dist/components/inputs/multiple-slider/actions/addStop.d.ts.map +1 -0
- package/dist/components/inputs/multiple-slider/actions/deleteStop.d.ts +8 -0
- package/dist/components/inputs/multiple-slider/actions/deleteStop.d.ts.map +1 -0
- package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts +5 -0
- package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts.map +1 -0
- package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts +5 -0
- package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts.map +1 -0
- package/dist/components/inputs/select/Select.d.ts +112 -0
- package/dist/components/inputs/select/Select.d.ts.map +1 -0
- package/dist/components/inputs/select/Select.js +313 -0
- package/dist/components/inputs/select/Select.js.map +1 -0
- package/dist/components/inputs/simple-slider/SimpleSlider.d.ts +93 -0
- package/dist/components/inputs/simple-slider/SimpleSlider.d.ts.map +1 -0
- package/dist/components/inputs/simple-slider/SimpleSlider.js +166 -0
- package/dist/components/inputs/simple-slider/SimpleSlider.js.map +1 -0
- package/dist/components/lists/actions-item/ActionsItem.d.ts +64 -0
- package/dist/components/lists/actions-item/ActionsItem.d.ts.map +1 -0
- package/dist/components/lists/actions-item/ActionsItem.js +115 -0
- package/dist/components/lists/actions-item/ActionsItem.js.map +1 -0
- package/dist/components/lists/actions-list/ActionsList.d.ts +79 -0
- package/dist/components/lists/actions-list/ActionsList.d.ts.map +1 -0
- package/dist/components/lists/actions-list/ActionsList.js +384 -0
- package/dist/components/lists/actions-list/ActionsList.js.map +1 -0
- package/dist/components/lists/color-item/ColorItem.d.ts +27 -0
- package/dist/components/lists/color-item/ColorItem.d.ts.map +1 -0
- package/dist/components/lists/color-item/ColorItem.js +70 -0
- package/dist/components/lists/color-item/ColorItem.js.map +1 -0
- package/dist/components/lists/draggable-item/DraggableItem.d.ts +110 -0
- package/dist/components/lists/draggable-item/DraggableItem.d.ts.map +1 -0
- package/dist/components/lists/draggable-item/DraggableItem.js +176 -0
- package/dist/components/lists/draggable-item/DraggableItem.js.map +1 -0
- package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.d.ts +19 -0
- package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.d.ts.map +1 -0
- package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js +75 -0
- package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js.map +1 -0
- package/dist/components/lists/members-list/MembersList.d.ts +32 -0
- package/dist/components/lists/members-list/MembersList.d.ts.map +1 -0
- package/dist/components/lists/members-list/MembersList.js +117 -0
- package/dist/components/lists/members-list/MembersList.js.map +1 -0
- package/dist/components/lists/sortable-list/SortableList.d.ts +103 -0
- package/dist/components/lists/sortable-list/SortableList.d.ts.map +1 -0
- package/dist/components/lists/sortable-list/SortableList.js +148 -0
- package/dist/components/lists/sortable-list/SortableList.js.map +1 -0
- package/dist/components/lists/tabs/Tabs.d.ts +48 -0
- package/dist/components/lists/tabs/Tabs.d.ts.map +1 -0
- package/dist/components/lists/tabs/Tabs.figma.d.ts +2 -0
- package/dist/components/lists/tabs/Tabs.figma.d.ts.map +1 -0
- package/dist/components/lists/tabs/Tabs.figma.js +31 -0
- package/dist/components/lists/tabs/Tabs.figma.js.map +1 -0
- package/dist/components/lists/tabs/Tabs.js +165 -0
- package/dist/components/lists/tabs/Tabs.js.map +1 -0
- package/dist/components/slots/bar/Bar.d.ts +65 -0
- package/dist/components/slots/bar/Bar.d.ts.map +1 -0
- package/dist/components/slots/bar/Bar.js +100 -0
- package/dist/components/slots/bar/Bar.js.map +1 -0
- package/dist/components/slots/draggable-window/DraggableWindow.d.ts +25 -0
- package/dist/components/slots/draggable-window/DraggableWindow.d.ts.map +1 -0
- package/dist/components/slots/draggable-window/DraggableWindow.js +100 -0
- package/dist/components/slots/draggable-window/DraggableWindow.js.map +1 -0
- package/dist/components/slots/drawer/Drawer.d.ts +78 -0
- package/dist/components/slots/drawer/Drawer.d.ts.map +1 -0
- package/dist/components/slots/drawer/Drawer.js +148 -0
- package/dist/components/slots/drawer/Drawer.js.map +1 -0
- package/dist/components/slots/form-item/FormItem.d.ts +52 -0
- package/dist/components/slots/form-item/FormItem.d.ts.map +1 -0
- package/dist/components/slots/form-item/FormItem.js +89 -0
- package/dist/components/slots/form-item/FormItem.js.map +1 -0
- package/dist/components/slots/layout/Layout.d.ts +34 -0
- package/dist/components/slots/layout/Layout.d.ts.map +1 -0
- package/dist/components/slots/layout/Layout.js +45 -0
- package/dist/components/slots/layout/Layout.js.map +1 -0
- package/dist/components/slots/list/List.d.ts +49 -0
- package/dist/components/slots/list/List.d.ts.map +1 -0
- package/dist/components/slots/list/List.js +55 -0
- package/dist/components/slots/list/List.js.map +1 -0
- package/dist/components/slots/popin/Popin.d.ts +85 -0
- package/dist/components/slots/popin/Popin.d.ts.map +1 -0
- package/dist/components/slots/popin/Popin.js +182 -0
- package/dist/components/slots/popin/Popin.js.map +1 -0
- package/dist/components/slots/section/Section.d.ts +32 -0
- package/dist/components/slots/section/Section.d.ts.map +1 -0
- package/dist/components/slots/section/Section.js +49 -0
- package/dist/components/slots/section/Section.js.map +1 -0
- package/dist/components/slots/simple-item/SimpleItem.d.ts +45 -0
- package/dist/components/slots/simple-item/SimpleItem.d.ts.map +1 -0
- package/dist/components/slots/simple-item/SimpleItem.js +100 -0
- package/dist/components/slots/simple-item/SimpleItem.js.map +1 -0
- package/dist/components/tags/chip/Chip.d.ts +43 -0
- package/dist/components/tags/chip/Chip.d.ts.map +1 -0
- package/dist/components/tags/chip/Chip.figma.d.ts +2 -0
- package/dist/components/tags/chip/Chip.figma.d.ts.map +1 -0
- package/dist/components/tags/chip/Chip.figma.js +18 -0
- package/dist/components/tags/chip/Chip.figma.js.map +1 -0
- package/dist/components/tags/chip/Chip.js +88 -0
- package/dist/components/tags/chip/Chip.js.map +1 -0
- package/dist/components/tags/color-chip/ColorChip.d.ts +36 -0
- package/dist/components/tags/color-chip/ColorChip.d.ts.map +1 -0
- package/dist/components/tags/color-chip/ColorChip.js +39 -0
- package/dist/components/tags/color-chip/ColorChip.js.map +1 -0
- package/dist/components/tags/icon-chip/IconChip.d.ts +42 -0
- package/dist/components/tags/icon-chip/IconChip.d.ts.map +1 -0
- package/dist/components/tags/icon-chip/IconChip.js +54 -0
- package/dist/components/tags/icon-chip/IconChip.js.map +1 -0
- package/dist/components/tags/tooltip/Tooltip.d.ts +25 -0
- package/dist/components/tags/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/tags/tooltip/Tooltip.js +72 -0
- package/dist/components/tags/tooltip/Tooltip.js.map +1 -0
- package/dist/do-classnames-DSDFCvzy.js +5 -0
- package/dist/do-classnames-DSDFCvzy.js.map +1 -0
- package/dist/do-map-2nhWP1KI.js +8 -0
- package/dist/do-map-2nhWP1KI.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +113 -0
- package/dist/index.js.map +1 -0
- package/dist/index_react-CmuCVQet.js +13799 -0
- package/dist/index_react-CmuCVQet.js.map +1 -0
- package/dist/styles/icons/icons.module.js +115 -0
- package/dist/styles/icons/icons.module.js.map +1 -0
- package/dist/styles/layouts.module.js +37 -0
- package/dist/styles/layouts.module.js.map +1 -0
- package/dist/styles/texts/texts.module.js +23 -0
- package/dist/styles/texts/texts.module.js.map +1 -0
- package/dist/styles/tokens/modules/figma-colors.module.js +9 -0
- package/dist/styles/tokens/modules/figma-colors.module.js.map +1 -0
- package/dist/styles/tokens/modules/figma-types.module.js +9 -0
- package/dist/styles/tokens/modules/figma-types.module.js.map +1 -0
- package/dist/styles/tokens/modules/framer-colors.module.js +9 -0
- package/dist/styles/tokens/modules/framer-colors.module.js.map +1 -0
- package/dist/styles/tokens/modules/framer-types.module.js +9 -0
- package/dist/styles/tokens/modules/framer-types.module.js.map +1 -0
- package/dist/styles/tokens/modules/globals.module.js +9 -0
- package/dist/styles/tokens/modules/globals.module.js.map +1 -0
- package/dist/styles/tokens/modules/penpot-colors.module.js +9 -0
- package/dist/styles/tokens/modules/penpot-colors.module.js.map +1 -0
- package/dist/styles/tokens/modules/penpot-types.module.js +9 -0
- package/dist/styles/tokens/modules/penpot-types.module.js.map +1 -0
- package/dist/styles/tokens/modules/sketch-colors.module.js +9 -0
- package/dist/styles/tokens/modules/sketch-colors.module.js.map +1 -0
- package/dist/styles/tokens/modules/sketch-types.module.js +9 -0
- package/dist/styles/tokens/modules/sketch-types.module.js.map +1 -0
- package/dist/tests/setup.d.ts +2 -0
- package/dist/tests/setup.d.ts.map +1 -0
- package/dist/types/consent.types.d.ts +10 -0
- package/dist/types/consent.types.d.ts.map +1 -0
- package/dist/types/consent.types.js +2 -0
- package/dist/types/consent.types.js.map +1 -0
- package/dist/types/icon.types.d.ts +2 -0
- package/dist/types/icon.types.d.ts.map +1 -0
- package/dist/types/icon.types.js +2 -0
- package/dist/types/icon.types.js.map +1 -0
- package/dist/types/list.types.d.ts +14 -0
- package/dist/types/list.types.d.ts.map +1 -0
- package/dist/types/list.types.js +2 -0
- package/dist/types/list.types.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
import '../../../assets/MultipleSlider.css';
|
|
2
|
+
import { jsxs as S, jsx as m } from "react/jsx-runtime";
|
|
3
|
+
import v from "react";
|
|
4
|
+
import F from "../../tags/icon-chip/IconChip.js";
|
|
5
|
+
import T from "../../tags/chip/Chip.js";
|
|
6
|
+
import y from "../../actions/knob/Knob.js";
|
|
7
|
+
import { r as f } from "../../../do-map-2nhWP1KI.js";
|
|
8
|
+
import { t as x } from "../../../do-classnames-DSDFCvzy.js";
|
|
9
|
+
const E = (h, e, o, l = "LINEAR") => {
|
|
10
|
+
let t = 1;
|
|
11
|
+
const p = {};
|
|
12
|
+
return h.map((r) => {
|
|
13
|
+
p[r] = l !== "NONE" ? parseFloat(f(w(l, t), 0, 1, e, o).toFixed(1)) : r, t -= 1 / (h.length - 1), t < 0.01 && (t = 0);
|
|
14
|
+
}), p;
|
|
15
|
+
}, w = (h, e) => {
|
|
16
|
+
var o;
|
|
17
|
+
const l = {
|
|
18
|
+
LINEAR: (t) => t,
|
|
19
|
+
EASEIN_SINE: (t) => Math.pow(t, 1.2),
|
|
20
|
+
EASEOUT_SINE: (t) => 1 - Math.pow(1 - t, 1.2),
|
|
21
|
+
EASEINOUT_SINE: (t) => t < 0.5 ? Math.pow(t * 2, 1.2) / 2 : 1 - Math.pow((1 - t) * 2, 1.2) / 2,
|
|
22
|
+
EASEIN_QUAD: (t) => Math.pow(t, 1.5),
|
|
23
|
+
EASEOUT_QUAD: (t) => 1 - Math.pow(1 - t, 1.5),
|
|
24
|
+
EASEINOUT_QUAD: (t) => t < 0.5 ? Math.pow(t * 2, 1.5) / 2 : 1 - Math.pow((1 - t) * 2, 1.5) / 2,
|
|
25
|
+
EASEIN_CUBIC: (t) => 1 - Math.cos(t * Math.PI / 2),
|
|
26
|
+
EASEOUT_CUBIC: (t) => Math.sin(t * Math.PI / 2),
|
|
27
|
+
EASEINOUT_CUBIC: (t) => -(Math.cos(Math.PI * t) - 1) / 2
|
|
28
|
+
};
|
|
29
|
+
return (o = l[h ?? "LINEAR"]) == null ? void 0 : o.call(l, e);
|
|
30
|
+
}, D = (h, e, o, l, t, p) => {
|
|
31
|
+
const r = [], a = o || l ? 0.1 : 1;
|
|
32
|
+
Object.entries(h).sort((c, u) => c[1] - u[1]).forEach((c) => {
|
|
33
|
+
r.push(c[0]);
|
|
34
|
+
});
|
|
35
|
+
const i = r.indexOf(
|
|
36
|
+
e.dataset.id
|
|
37
|
+
), n = h, s = n[r[i]];
|
|
38
|
+
return s + a <= t ? n[r[i]] = t : s + a >= p ? n[r[i]] = p : n[r[i]] = n[r[i]] + a, {
|
|
39
|
+
scale: n
|
|
40
|
+
};
|
|
41
|
+
}, A = (h, e, o, l, t, p) => {
|
|
42
|
+
const r = [], a = o || l ? 0.1 : 1;
|
|
43
|
+
Object.entries(h).sort((c, u) => c[1] - u[1]).forEach((c) => {
|
|
44
|
+
r.push(c[0]);
|
|
45
|
+
});
|
|
46
|
+
const i = r.indexOf(
|
|
47
|
+
e.dataset.id
|
|
48
|
+
), n = h, s = n[r[i]];
|
|
49
|
+
return s - a <= t ? n[r[i]] = t : s - a >= p ? n[r[i]] = p : n[r[i]] = n[r[i]] - a, {
|
|
50
|
+
scale: n
|
|
51
|
+
};
|
|
52
|
+
}, _ = (h) => {
|
|
53
|
+
const e = Math.floor(Math.abs(h)).toString().length;
|
|
54
|
+
return Math.pow(10, e - 1);
|
|
55
|
+
}, N = (h, e) => {
|
|
56
|
+
const o = Object.entries(h).map(([a, i]) => ({
|
|
57
|
+
index: parseFloat(a),
|
|
58
|
+
value: i
|
|
59
|
+
})).filter((a) => a.index > 0), l = Math.min(...o.map((a) => a.index)), t = _(l), p = o.filter(
|
|
60
|
+
(a) => a.index !== parseFloat(e.dataset.id)
|
|
61
|
+
), r = p.reduce(
|
|
62
|
+
(a, i, n) => {
|
|
63
|
+
const s = Math.max(1, n + 1) * t;
|
|
64
|
+
return a[s] = p[n].value, a;
|
|
65
|
+
},
|
|
66
|
+
{}
|
|
67
|
+
);
|
|
68
|
+
return {
|
|
69
|
+
scale: r,
|
|
70
|
+
stops: Object.keys(r).map((a) => parseFloat(a)),
|
|
71
|
+
min: Math.min(...Object.values(r)),
|
|
72
|
+
max: Math.max(...Object.values(r))
|
|
73
|
+
};
|
|
74
|
+
}, K = (h) => {
|
|
75
|
+
const e = Math.floor(Math.abs(h)).toString().length;
|
|
76
|
+
return Math.pow(10, e - 1);
|
|
77
|
+
}, O = (h, e, o, l) => {
|
|
78
|
+
const t = Object.entries(e).map(([s, c]) => ({
|
|
79
|
+
index: Math.max(1, parseFloat(s)),
|
|
80
|
+
value: c
|
|
81
|
+
})).filter((s) => s.index > 0), p = K(Math.min(...t.map((s) => s.index))), r = t[0].value > t[t.length - 1].value, a = h.target, i = parseFloat(
|
|
82
|
+
f(h.layerX, 0, a.offsetWidth, o, l).toFixed(1)
|
|
83
|
+
);
|
|
84
|
+
t.push({
|
|
85
|
+
index: Math.max(...t.map((s) => s.index)) + p,
|
|
86
|
+
value: i
|
|
87
|
+
}), t.sort((s, c) => r ? c.value - s.value : s.value - c.value);
|
|
88
|
+
const n = t.reduce(
|
|
89
|
+
(s, c, u) => (s[(u + 1) * p] = c.value, s),
|
|
90
|
+
{}
|
|
91
|
+
);
|
|
92
|
+
return {
|
|
93
|
+
scale: n,
|
|
94
|
+
stops: Object.keys(n).map((s) => parseFloat(s)),
|
|
95
|
+
min: Math.min(...Object.values(n)),
|
|
96
|
+
max: Math.max(...Object.values(n))
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
class B extends v.Component {
|
|
100
|
+
static defaultProps = {
|
|
101
|
+
scale: {},
|
|
102
|
+
stops: {
|
|
103
|
+
list: [],
|
|
104
|
+
min: 0,
|
|
105
|
+
max: 100
|
|
106
|
+
},
|
|
107
|
+
colors: {
|
|
108
|
+
min: "white",
|
|
109
|
+
max: "white"
|
|
110
|
+
},
|
|
111
|
+
isBlocked: !1,
|
|
112
|
+
isNew: !1
|
|
113
|
+
};
|
|
114
|
+
constructor(e) {
|
|
115
|
+
super(e), this.state = {
|
|
116
|
+
isTooltipDisplay: Array(e.stops.list.length).fill(!1),
|
|
117
|
+
activeKnobId: null
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// Handlers
|
|
121
|
+
validHandler = (e, o) => {
|
|
122
|
+
const { scale: l, onChange: t, range: p } = this.props, r = p.step || 0.1, a = l ?? {}, i = o.target;
|
|
123
|
+
if (i.value !== "") {
|
|
124
|
+
let n = parseFloat(i.value);
|
|
125
|
+
n = Math.round(n / r) * r, n > parseFloat(i.max) ? n = parseFloat(i.max) : n < parseFloat(i.min) && (n = parseFloat(i.min));
|
|
126
|
+
const s = r.toString().split(".")[1]?.length || 0;
|
|
127
|
+
a[e] = parseFloat(n.toFixed(s)), t("TYPED", {
|
|
128
|
+
scale: a
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
// Direct Actions
|
|
133
|
+
onGrab = (e) => {
|
|
134
|
+
e.stopPropagation();
|
|
135
|
+
const o = e.currentTarget, l = o.parentElement, t = e.clientX - e.currentTarget.getBoundingClientRect().left - e.currentTarget.getBoundingClientRect().width / 2, p = l.offsetWidth, r = l.parentElement, a = Array.from(l.children);
|
|
136
|
+
this.setState({
|
|
137
|
+
activeKnobId: o.dataset.id || null
|
|
138
|
+
});
|
|
139
|
+
const i = (n) => {
|
|
140
|
+
const { range: s, onChange: c } = this.props, u = {};
|
|
141
|
+
a.forEach(
|
|
142
|
+
(d) => u[d.dataset.id] = parseFloat(
|
|
143
|
+
f(
|
|
144
|
+
parseFloat(d.style.left.replace("%", "")),
|
|
145
|
+
0,
|
|
146
|
+
100,
|
|
147
|
+
s.min,
|
|
148
|
+
s.max
|
|
149
|
+
).toFixed(1)
|
|
150
|
+
)
|
|
151
|
+
), c(n, {
|
|
152
|
+
scale: u
|
|
153
|
+
});
|
|
154
|
+
};
|
|
155
|
+
o.style.zIndex = "2", document.onmousemove = (n) => this.onSlide(
|
|
156
|
+
n,
|
|
157
|
+
r,
|
|
158
|
+
l,
|
|
159
|
+
a,
|
|
160
|
+
o,
|
|
161
|
+
t,
|
|
162
|
+
p,
|
|
163
|
+
(s) => i(s)
|
|
164
|
+
), document.onmouseup = () => this.onRelease(a, o, (n) => i(n));
|
|
165
|
+
};
|
|
166
|
+
onSlide = (e, o, l, t, p, r, a, i) => {
|
|
167
|
+
const { min: n, max: s, step: c = 0.1 } = this.props.range, u = parseFloat(
|
|
168
|
+
window.getComputedStyle(o, null).getPropertyValue("padding-left")
|
|
169
|
+
);
|
|
170
|
+
let d = e.clientX - o.offsetLeft - u - r;
|
|
171
|
+
if (d <= 0 ? d = 0 : d >= a && (d = a), p === l.firstChild && e.shiftKey)
|
|
172
|
+
return this.distributeStops(
|
|
173
|
+
"MIN",
|
|
174
|
+
parseFloat(f(d, 0, a, n, s).toFixed(1)),
|
|
175
|
+
t
|
|
176
|
+
);
|
|
177
|
+
if (p === l.lastChild && e.shiftKey)
|
|
178
|
+
return this.distributeStops(
|
|
179
|
+
"MAX",
|
|
180
|
+
parseFloat(f(d, 0, a, n, s).toFixed(1)),
|
|
181
|
+
t
|
|
182
|
+
);
|
|
183
|
+
if (e.ctrlKey || e.metaKey)
|
|
184
|
+
if (d < p.offsetLeft - l.firstChild.offsetLeft || d > a - l.lastChild.offsetLeft + p.offsetLeft)
|
|
185
|
+
d = p.offsetLeft;
|
|
186
|
+
else
|
|
187
|
+
return this.linkStops(
|
|
188
|
+
parseFloat(f(d, 0, a, n, s).toFixed(1)),
|
|
189
|
+
p,
|
|
190
|
+
t
|
|
191
|
+
);
|
|
192
|
+
e.ctrlKey === !1 && e.metaKey === !1 && e.shiftKey === !1 && this.setState({
|
|
193
|
+
isTooltipDisplay: Array(t.length).fill(!1)
|
|
194
|
+
});
|
|
195
|
+
const g = f(d, 0, a, n, s), I = Math.round(g / c) * c, M = c.toString().split(".")[1]?.length || 0, b = f(I, n, s, 0, 100);
|
|
196
|
+
p.style.left = b.toFixed(M) + "%", requestAnimationFrame(() => {
|
|
197
|
+
p.focus();
|
|
198
|
+
}), i("UPDATING"), document.body.style.cursor = "ew-resize";
|
|
199
|
+
};
|
|
200
|
+
onRelease = (e, o, l) => {
|
|
201
|
+
document.onmousemove = null, document.onmouseup = null, o.onmouseup = null, o.style.zIndex = "1", this.setState({
|
|
202
|
+
activeKnobId: null
|
|
203
|
+
}), requestAnimationFrame(() => {
|
|
204
|
+
o.focus();
|
|
205
|
+
}), this.setState({
|
|
206
|
+
isTooltipDisplay: Array(e.length).fill(!1)
|
|
207
|
+
}), l("RELEASED"), document.body.style.cursor = "";
|
|
208
|
+
};
|
|
209
|
+
onAdd = (e) => {
|
|
210
|
+
const { scale: o, onChange: l } = this.props, { min: t, max: p } = this.props.range, r = O(e.nativeEvent, o, t, p);
|
|
211
|
+
l("SHIFTED", r, "ADD_STOP");
|
|
212
|
+
};
|
|
213
|
+
onDelete = (e) => {
|
|
214
|
+
const { scale: o, onChange: l } = this.props, t = N(o, e);
|
|
215
|
+
l("SHIFTED", t, "DELETE_STOP");
|
|
216
|
+
};
|
|
217
|
+
onShiftRight = (e, o, l) => {
|
|
218
|
+
const { scale: t, onChange: p } = this.props, { min: r, max: a } = this.props.range, i = D(t, e, o, l, r, a);
|
|
219
|
+
p("SHIFTED", i), requestAnimationFrame(() => {
|
|
220
|
+
const n = e.closest(".multiple-slider__range");
|
|
221
|
+
if (n) {
|
|
222
|
+
const s = n.querySelector(
|
|
223
|
+
`[data-id="${e.dataset.id}"]`
|
|
224
|
+
);
|
|
225
|
+
s instanceof HTMLElement && s.focus();
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
};
|
|
229
|
+
onShiftLeft = (e, o, l) => {
|
|
230
|
+
const { scale: t, onChange: p } = this.props, { min: r, max: a } = this.props.range, i = A(t, e, o, l, r, a);
|
|
231
|
+
p("SHIFTED", i), requestAnimationFrame(() => {
|
|
232
|
+
const n = e.closest(".multiple-slider__range");
|
|
233
|
+
if (n) {
|
|
234
|
+
const s = n.querySelector(
|
|
235
|
+
`[data-id="${e.dataset.id}"]`
|
|
236
|
+
);
|
|
237
|
+
s instanceof HTMLElement && s.focus();
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
};
|
|
241
|
+
distributeStops = (e, o, l) => {
|
|
242
|
+
const { scale: t, distributionEasing: p, onChange: r, range: a } = this.props, { min: i, max: n, step: s = 0.1 } = a, c = Math.round(o / s) * s, u = s.toString().split(".")[1]?.length || 0;
|
|
243
|
+
e === "MIN" ? r("UPDATING", {
|
|
244
|
+
scale: E(
|
|
245
|
+
Object.entries(t).sort((d, g) => g[1] - d[1]).map((d) => parseFloat(d[0])),
|
|
246
|
+
parseFloat(c.toFixed(u)),
|
|
247
|
+
Math.max(...Object.values(t)) ?? n,
|
|
248
|
+
p
|
|
249
|
+
)
|
|
250
|
+
}) : e === "MAX" && r("UPDATING", {
|
|
251
|
+
scale: E(
|
|
252
|
+
Object.entries(t).sort((d, g) => g[1] - d[1]).map((d) => parseFloat(d[0])),
|
|
253
|
+
Math.min(...Object.values(t)) ?? i,
|
|
254
|
+
parseFloat(c.toFixed(u)),
|
|
255
|
+
p
|
|
256
|
+
)
|
|
257
|
+
}), this.setState({
|
|
258
|
+
isTooltipDisplay: Array(l.length).fill(!0)
|
|
259
|
+
}), document.body.style.cursor = "ew-resize";
|
|
260
|
+
};
|
|
261
|
+
linkStops = (e, o, l) => {
|
|
262
|
+
const { scale: t, onChange: p, range: r } = this.props, { step: a = 0.1 } = r, i = t, n = Math.round(e / a) * a, s = a.toString().split(".")[1]?.length || 0;
|
|
263
|
+
l.filter((c) => c !== o).forEach((c) => {
|
|
264
|
+
const u = i[c.dataset.id] - i[o.dataset.id] + n, d = Math.round(u / a) * a;
|
|
265
|
+
i[c.dataset.id] = parseFloat(
|
|
266
|
+
d.toFixed(s)
|
|
267
|
+
);
|
|
268
|
+
}), i[o.dataset.id] = parseFloat(
|
|
269
|
+
n.toFixed(s)
|
|
270
|
+
), this.setState({
|
|
271
|
+
isTooltipDisplay: this.state.isTooltipDisplay.fill(!0)
|
|
272
|
+
}), p("UPDATING", {
|
|
273
|
+
scale: i
|
|
274
|
+
}), document.body.style.cursor = "ew-resize";
|
|
275
|
+
};
|
|
276
|
+
// Templates
|
|
277
|
+
Status = () => {
|
|
278
|
+
const { warning: e, isBlocked: o, isNew: l } = this.props;
|
|
279
|
+
if (e || o || l)
|
|
280
|
+
return /* @__PURE__ */ S("div", { className: "multiple-slider__status", children: [
|
|
281
|
+
e !== void 0 && /* @__PURE__ */ m(
|
|
282
|
+
F,
|
|
283
|
+
{
|
|
284
|
+
iconType: "PICTO",
|
|
285
|
+
iconName: "warning",
|
|
286
|
+
text: e.label,
|
|
287
|
+
pin: e.pin,
|
|
288
|
+
type: e.type
|
|
289
|
+
}
|
|
290
|
+
),
|
|
291
|
+
(o || l) && /* @__PURE__ */ m(
|
|
292
|
+
T,
|
|
293
|
+
{
|
|
294
|
+
isSolo: !0,
|
|
295
|
+
action: o ? this.props.onUnblock : void 0,
|
|
296
|
+
children: l ? "New" : "Pro"
|
|
297
|
+
}
|
|
298
|
+
)
|
|
299
|
+
] });
|
|
300
|
+
};
|
|
301
|
+
Edit = () => {
|
|
302
|
+
const { scale: e, range: o, colors: l, tips: t, isBlocked: p } = this.props, { isTooltipDisplay: r } = this.state;
|
|
303
|
+
return /* @__PURE__ */ m(
|
|
304
|
+
"div",
|
|
305
|
+
{
|
|
306
|
+
className: x([
|
|
307
|
+
"multiple-slider__range",
|
|
308
|
+
p && "multiple-slider__range--blocked"
|
|
309
|
+
]),
|
|
310
|
+
style: {
|
|
311
|
+
background: `linear-gradient(90deg, ${l.min}, ${l.max})`
|
|
312
|
+
},
|
|
313
|
+
role: "presentation",
|
|
314
|
+
children: Object.entries(e).sort((a, i) => a[1] - i[1]).map((a, i, n) => /* @__PURE__ */ m(
|
|
315
|
+
y,
|
|
316
|
+
{
|
|
317
|
+
id: a[0],
|
|
318
|
+
shortId: a[0],
|
|
319
|
+
value: a[1],
|
|
320
|
+
offset: f(a[1], o.min, o.max, 0, 100),
|
|
321
|
+
min: o.min.toString(),
|
|
322
|
+
max: o.max.toString(),
|
|
323
|
+
helper: i === 0 || i === n.length - 1 ? {
|
|
324
|
+
label: t.minMax,
|
|
325
|
+
type: "MULTI_LINE"
|
|
326
|
+
} : void 0,
|
|
327
|
+
canBeTyped: !0,
|
|
328
|
+
isDisplayed: r[i],
|
|
329
|
+
isBlocked: p,
|
|
330
|
+
style: {
|
|
331
|
+
pointerEvents: this.state.activeKnobId && this.state.activeKnobId !== a[0] || p ? "none" : "auto"
|
|
332
|
+
},
|
|
333
|
+
onShiftRight: (s) => {
|
|
334
|
+
this.onShiftRight(s.target, s.metaKey, s.ctrlKey);
|
|
335
|
+
},
|
|
336
|
+
onShiftLeft: (s) => {
|
|
337
|
+
this.onShiftLeft(s.target, s.metaKey, s.ctrlKey);
|
|
338
|
+
},
|
|
339
|
+
onMouseDown: (s) => {
|
|
340
|
+
this.onGrab(s), s.target.focus();
|
|
341
|
+
},
|
|
342
|
+
onValidStopValue: (s, c) => this.validHandler(s, c),
|
|
343
|
+
"aria-valuenow": a[1]
|
|
344
|
+
},
|
|
345
|
+
a[0]
|
|
346
|
+
))
|
|
347
|
+
}
|
|
348
|
+
);
|
|
349
|
+
};
|
|
350
|
+
FullyEdit = () => {
|
|
351
|
+
const { scale: e, stops: o, range: l, colors: t, tips: p, isBlocked: r } = this.props, { isTooltipDisplay: a } = this.state;
|
|
352
|
+
return /* @__PURE__ */ m(
|
|
353
|
+
"div",
|
|
354
|
+
{
|
|
355
|
+
className: x([
|
|
356
|
+
"multiple-slider__range",
|
|
357
|
+
o.list.length < (o.max ?? 1 / 0) && !r && "multiple-slider__range--add",
|
|
358
|
+
o.list.length === (o.max ?? 1 / 0) && "multiple-slider__range--not-allowed",
|
|
359
|
+
r && "multiple-slider__range--blocked"
|
|
360
|
+
]),
|
|
361
|
+
style: {
|
|
362
|
+
background: `linear-gradient(90deg, ${t.min}, ${t.max})`
|
|
363
|
+
},
|
|
364
|
+
onMouseDown: (i) => o.list.length < (o.max ?? 1 / 0) && this.onAdd(i),
|
|
365
|
+
children: Object.entries(e).sort((i, n) => i[1] - n[1]).map((i, n, s) => /* @__PURE__ */ m(
|
|
366
|
+
y,
|
|
367
|
+
{
|
|
368
|
+
id: i[0],
|
|
369
|
+
shortId: i[0],
|
|
370
|
+
value: i[1],
|
|
371
|
+
offset: f(i[1], l.min, l.max, 0, 100),
|
|
372
|
+
min: l.min.toString(),
|
|
373
|
+
max: l.max.toString(),
|
|
374
|
+
helper: n === 0 || n === s.length - 1 ? {
|
|
375
|
+
label: p.minMax,
|
|
376
|
+
type: "MULTI_LINE"
|
|
377
|
+
} : void 0,
|
|
378
|
+
canBeTyped: !0,
|
|
379
|
+
isDisplayed: a[n],
|
|
380
|
+
isBlocked: r,
|
|
381
|
+
style: {
|
|
382
|
+
pointerEvents: this.state.activeKnobId && this.state.activeKnobId !== i[0] || r ? "none" : "auto"
|
|
383
|
+
},
|
|
384
|
+
onShiftRight: (c) => {
|
|
385
|
+
this.onShiftRight(c.target, c.metaKey, c.ctrlKey);
|
|
386
|
+
},
|
|
387
|
+
onShiftLeft: (c) => {
|
|
388
|
+
this.onShiftLeft(c.target, c.metaKey, c.ctrlKey);
|
|
389
|
+
},
|
|
390
|
+
onDelete: (c) => {
|
|
391
|
+
o.list.length > (o.min ?? 1 / 0) && this.onDelete(c.target);
|
|
392
|
+
},
|
|
393
|
+
onMouseDown: (c) => {
|
|
394
|
+
this.onGrab(c), c.target.focus();
|
|
395
|
+
},
|
|
396
|
+
onValidStopValue: (c, u) => this.validHandler(c, u),
|
|
397
|
+
"aria-valuenow": i[1]
|
|
398
|
+
},
|
|
399
|
+
i[0]
|
|
400
|
+
))
|
|
401
|
+
}
|
|
402
|
+
);
|
|
403
|
+
};
|
|
404
|
+
// Render
|
|
405
|
+
render() {
|
|
406
|
+
const { type: e } = this.props;
|
|
407
|
+
return /* @__PURE__ */ S("div", { className: "multiple-slider", children: [
|
|
408
|
+
e === "EDIT" && /* @__PURE__ */ m(this.Edit, {}),
|
|
409
|
+
e === "FULLY_EDIT" && /* @__PURE__ */ m(this.FullyEdit, {}),
|
|
410
|
+
this.Status()
|
|
411
|
+
] });
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
export {
|
|
415
|
+
B as default
|
|
416
|
+
};
|
|
417
|
+
//# sourceMappingURL=MultipleSlider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultipleSlider.js","sources":["../../../../node_modules/@a_ng_d/figmug-utils/dist/modules/do-scale/do-scale.js","../../../../src/components/inputs/multiple-slider/actions/shiftRightStop.ts","../../../../src/components/inputs/multiple-slider/actions/shiftLeftStop.ts","../../../../src/components/inputs/multiple-slider/actions/deleteStop.ts","../../../../src/components/inputs/multiple-slider/actions/addStop.ts","../../../../src/components/inputs/multiple-slider/MultipleSlider.tsx"],"sourcesContent":["import M from \"../do-map/do-map.js\";\nconst S = (o, I, t, a = \"LINEAR\") => {\n let E = 1;\n const h = {};\n return o.map((A) => {\n h[A] = a !== \"NONE\" ? parseFloat(M(p(a, E), 0, 1, I, t).toFixed(1)) : A, E -= 1 / (o.length - 1), E < 0.01 && (E = 0);\n }), h;\n}, p = (o, I) => {\n var a;\n const t = {\n LINEAR: (E) => E,\n EASEIN_SINE: (E) => Math.pow(E, 1.2),\n EASEOUT_SINE: (E) => 1 - Math.pow(1 - E, 1.2),\n EASEINOUT_SINE: (E) => E < 0.5 ? Math.pow(E * 2, 1.2) / 2 : 1 - Math.pow((1 - E) * 2, 1.2) / 2,\n EASEIN_QUAD: (E) => Math.pow(E, 1.5),\n EASEOUT_QUAD: (E) => 1 - Math.pow(1 - E, 1.5),\n EASEINOUT_QUAD: (E) => E < 0.5 ? Math.pow(E * 2, 1.5) / 2 : 1 - Math.pow((1 - E) * 2, 1.5) / 2,\n EASEIN_CUBIC: (E) => 1 - Math.cos(E * Math.PI / 2),\n EASEOUT_CUBIC: (E) => Math.sin(E * Math.PI / 2),\n EASEINOUT_CUBIC: (E) => -(Math.cos(Math.PI * E) - 1) / 2\n };\n return (a = t[o ?? \"LINEAR\"]) == null ? void 0 : a.call(t, I);\n};\nexport {\n S as default\n};\n//# sourceMappingURL=do-scale.js.map\n","const shiftRightStop = (\n scale: Record<string, number>,\n selectedKnob: HTMLElement,\n meta: boolean,\n ctrl: boolean,\n minRange: number,\n maxRange: number\n) => {\n const stopsList: Array<string> = []\n const shiftValue = meta || ctrl ? 0.1 : 1\n\n Object.entries(scale)\n .sort((a, b) => a[1] - b[1])\n .forEach((stop) => {\n stopsList.push(stop[0])\n })\n\n const selectedKnobIndex = stopsList.indexOf(\n selectedKnob.dataset.id as string\n ),\n newScale = scale,\n currentStopValue: number = newScale[stopsList[selectedKnobIndex]]\n\n if (currentStopValue + shiftValue <= minRange)\n newScale[stopsList[selectedKnobIndex]] = minRange\n else if (currentStopValue + shiftValue >= maxRange)\n newScale[stopsList[selectedKnobIndex]] = maxRange\n else\n newScale[stopsList[selectedKnobIndex]] =\n newScale[stopsList[selectedKnobIndex]] + shiftValue\n\n return {\n scale: newScale as Record<string, number>,\n }\n}\n\nexport default shiftRightStop\n","const shiftLeftStop = (\n scale: Record<string, number>,\n selectedKnob: HTMLElement,\n meta: boolean,\n ctrl: boolean,\n minRange: number,\n maxRange: number\n) => {\n const stopsList: Array<string> = []\n const shiftValue = meta || ctrl ? 0.1 : 1\n\n Object.entries(scale)\n .sort((a, b) => a[1] - b[1])\n .forEach((stop) => {\n stopsList.push(stop[0])\n })\n\n const selectedKnobIndex = stopsList.indexOf(\n selectedKnob.dataset.id as string\n ),\n newScale = scale,\n currentStopValue: number = newScale[stopsList[selectedKnobIndex]]\n\n if (currentStopValue - shiftValue <= minRange)\n newScale[stopsList[selectedKnobIndex]] = minRange\n else if (currentStopValue - shiftValue >= maxRange)\n newScale[stopsList[selectedKnobIndex]] = maxRange\n else\n newScale[stopsList[selectedKnobIndex]] =\n newScale[stopsList[selectedKnobIndex]] - shiftValue\n\n return {\n scale: newScale as Record<string, number>,\n }\n}\n\nexport default shiftLeftStop\n","const getNumberScale = (num: number): number => {\n const length = Math.floor(Math.abs(num)).toString().length\n return Math.pow(10, length - 1)\n}\n\nconst deleteStop = (\n scale: Record<string, number>,\n selectedKnob: HTMLElement\n) => {\n const entries = Object.entries(scale)\n .map(([key, value]) => ({\n index: parseFloat(key),\n value: value as number,\n }))\n .filter((entry) => entry.index > 0)\n\n const firstKey = Math.min(...entries.map((e) => e.index))\n const numberScale = getNumberScale(firstKey)\n\n const filteredEntries = entries.filter(\n (entry) => entry.index !== parseFloat(selectedKnob.dataset.id as string)\n )\n\n const newScale = filteredEntries.reduce(\n (acc, _, idx) => {\n const newIndex = Math.max(1, idx + 1) * numberScale\n acc[newIndex] = filteredEntries[idx].value\n return acc\n },\n {} as Record<string, number>\n )\n\n return {\n scale: newScale,\n stops: Object.keys(newScale).map((k) => parseFloat(k)),\n min: Math.min(...Object.values(newScale)),\n max: Math.max(...Object.values(newScale)),\n }\n}\n\nexport default deleteStop\n","import { doMap } from '@a_ng_d/figmug-utils'\n\nconst getNumberScale = (num: number): number => {\n const length = Math.floor(Math.abs(num)).toString().length\n return Math.pow(10, length - 1)\n}\n\nconst addStop = (\n e: MouseEvent,\n scale: Record<string, number>,\n rangeMin: number,\n rangeMax: number\n) => {\n const entries = Object.entries(scale)\n .map(([key, value]) => ({\n index: Math.max(1, parseFloat(key)),\n value: value as number,\n }))\n .filter((entry) => entry.index > 0)\n\n const numberScale = getNumberScale(Math.min(...entries.map((e) => e.index)))\n const isDescending = entries[0].value > entries[entries.length - 1].value\n\n const target = e.target as HTMLElement\n const offset = parseFloat(\n doMap(e.layerX, 0, target.offsetWidth, rangeMin, rangeMax).toFixed(1)\n )\n\n entries.push({\n index: Math.max(...entries.map((e) => e.index)) + numberScale,\n value: offset,\n })\n\n entries.sort((a, b) => (isDescending ? b.value - a.value : a.value - b.value))\n\n const newScale = entries.reduce(\n (acc, entry, idx) => {\n acc[(idx + 1) * numberScale] = entry.value\n return acc\n },\n {} as Record<string, number>\n )\n\n return {\n scale: newScale,\n stops: Object.keys(newScale).map((k) => parseFloat(k)),\n min: Math.min(...Object.values(newScale)),\n max: Math.max(...Object.values(newScale)),\n }\n}\n\nexport default addStop\n","import React from 'react'\nimport IconChip from '@components/tags/icon-chip/IconChip'\nimport Chip from '@components/tags/chip/Chip'\nimport Knob from '@components/actions/knob/Knob'\nimport { doClassnames, doMap, Easing } from '@a_ng_d/figmug-utils'\nimport { doScale } from '@a_ng_d/figmug-utils'\nimport shiftRightStop from './actions/shiftRightStop'\nimport shiftLeftStop from './actions/shiftLeftStop'\nimport deleteStop from './actions/deleteStop'\nimport addStop from './actions/addStop'\nimport './multiple-slider.scss'\n\ntype UpdateEvent = 'TYPED' | 'UPDATING' | 'RELEASED' | 'SHIFTED'\n\ninterface SliderProps {\n /**\n * Type of slider interaction\n */\n type: 'EDIT' | 'FULLY_EDIT'\n /**\n * Scale mapping stop positions to values\n */\n scale: Record<string, number>\n /**\n * Easing function for distribution\n */\n distributionEasing: Easing\n /**\n * Stops configuration\n */\n stops: {\n /** List of stop positions */\n list: Array<number>\n /** Minimum allowed stop value */\n min?: number\n /** Maximum allowed stop value */\n max?: number\n }\n /**\n * Range constraints for values\n */\n range: {\n /** Minimum value */\n min: number\n /** Maximum value */\n max: number\n /** Step increment */\n step?: number\n }\n /**\n * Colors for gradient display\n */\n colors: {\n /** Start color */\n min: string\n /** End color */\n max: string\n }\n /**\n * Tooltip configuration\n */\n tips: {\n /** Tooltip text for min/max values */\n minMax: string\n }\n /**\n * Warning tooltip configuration\n */\n warning?: {\n /** Warning message */\n label: string | React.ReactNode\n /** Warning position */\n pin?: 'TOP' | 'BOTTOM'\n /** Warning display type */\n type?: 'MULTI_LINE' | 'SINGLE_LINE'\n }\n /**\n * Whether the slider is blocked\n */\n isBlocked?: boolean\n /**\n * Whether to show a \"New\" badge\n */\n isNew?: boolean\n /**\n * Change handler\n */\n onChange: (\n state: UpdateEvent,\n results: {\n scale: Record<string, number>\n stops?: Array<number>\n min?: number\n max?: number\n },\n feature?: string\n ) => void\n /**\n * Handler called when unblock is clicked\n */\n onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler\n}\n\ninterface SliderStates {\n isTooltipDisplay: Array<boolean>\n activeKnobId: string | null\n}\n\nexport default class Slider extends React.Component<SliderProps, SliderStates> {\n static defaultProps = {\n scale: {},\n stops: {\n list: [],\n min: 0,\n max: 100,\n },\n colors: {\n min: 'white',\n max: 'white',\n },\n isBlocked: false,\n isNew: false,\n }\n\n constructor(props: SliderProps) {\n super(props)\n this.state = {\n isTooltipDisplay: Array(props.stops.list.length).fill(false),\n activeKnobId: null,\n }\n }\n\n // Handlers\n validHandler = (\n stopId: string,\n e:\n | React.FocusEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n ) => {\n const { scale, onChange, range } = this.props\n const step = range.step || 0.1\n\n const newScale = scale ?? {}\n const target = e.target as HTMLInputElement\n\n if (target.value !== '') {\n let value = parseFloat(target.value)\n\n value = Math.round(value / step) * step\n\n if (value > parseFloat(target.max)) value = parseFloat(target.max)\n else if (value < parseFloat(target.min)) value = parseFloat(target.min)\n\n const precision = step.toString().split('.')[1]?.length || 0\n newScale[stopId] = parseFloat(value.toFixed(precision))\n\n onChange('TYPED', {\n scale: newScale,\n })\n }\n }\n\n // Direct Actions\n onGrab = (e: React.MouseEvent<HTMLElement>) => {\n e.stopPropagation()\n const stop = e.currentTarget as HTMLElement,\n range = stop.parentElement as HTMLElement,\n shift =\n e.clientX -\n (e.currentTarget as HTMLElement).getBoundingClientRect().left -\n (e.currentTarget as HTMLElement).getBoundingClientRect().width / 2,\n rangeWidth = range.offsetWidth as number,\n slider = range.parentElement as HTMLElement,\n stops = Array.from(range.children as HTMLCollectionOf<HTMLElement>)\n\n this.setState({\n activeKnobId: stop.dataset.id || null,\n })\n\n const update = (event: UpdateEvent) => {\n const { range, onChange } = this.props\n const scale: Record<string, number> = {}\n\n stops.forEach(\n (stop) =>\n (scale[stop.dataset.id as string] = parseFloat(\n doMap(\n parseFloat(stop.style.left.replace('%', '')),\n 0,\n 100,\n range.min,\n range.max\n ).toFixed(1)\n ))\n )\n onChange(event, {\n scale: scale,\n })\n }\n\n stop.style.zIndex = '2'\n\n document.onmousemove = (e) =>\n this.onSlide(\n e,\n slider,\n range,\n stops,\n stop,\n shift,\n rangeWidth,\n (event: UpdateEvent) => update(event)\n )\n\n document.onmouseup = () =>\n this.onRelease(stops, stop, (event: UpdateEvent) => update(event))\n }\n\n onSlide = (\n e: MouseEvent,\n slider: HTMLElement,\n range: HTMLElement,\n stops: Array<HTMLElement>,\n stop: HTMLElement,\n shift: number,\n rangeWidth: number,\n update: (e: UpdateEvent) => void\n ) => {\n const { min, max, step = 0.1 } = this.props.range\n const sliderPadding: number = parseFloat(\n window.getComputedStyle(slider, null).getPropertyValue('padding-left')\n )\n let offset = e.clientX - slider.offsetLeft - sliderPadding - shift\n\n if (offset <= 0) offset = 0\n else if (offset >= rangeWidth) offset = rangeWidth\n\n // Distribute stops horizontal spacing\n if (stop === range.firstChild && e.shiftKey)\n return this.distributeStops(\n 'MIN',\n parseFloat(doMap(offset, 0, rangeWidth, min, max).toFixed(1)),\n stops\n )\n else if (stop === range.lastChild && e.shiftKey)\n return this.distributeStops(\n 'MAX',\n parseFloat(doMap(offset, 0, rangeWidth, min, max).toFixed(1)),\n stops\n )\n\n // Link every stop\n if (e.ctrlKey || e.metaKey)\n if (\n offset <\n stop.offsetLeft - (range.firstChild as HTMLElement).offsetLeft ||\n offset >\n rangeWidth -\n (range.lastChild as HTMLElement).offsetLeft +\n stop.offsetLeft\n )\n offset = stop.offsetLeft\n else\n return this.linkStops(\n parseFloat(doMap(offset, 0, rangeWidth, min, max).toFixed(1)),\n stop,\n stops\n )\n\n if (e.ctrlKey === false && e.metaKey === false && e.shiftKey === false)\n this.setState({\n isTooltipDisplay: Array(stops.length).fill(false),\n })\n\n const rawValue = doMap(offset, 0, rangeWidth, min, max)\n const steppedValue = Math.round(rawValue / step) * step\n const precision = step.toString().split('.')[1]?.length || 0\n\n const newPosition = doMap(steppedValue, min, max, 0, 100)\n stop.style.left = newPosition.toFixed(precision) + '%'\n\n requestAnimationFrame(() => {\n stop.focus()\n })\n\n update('UPDATING')\n document.body.style.cursor = 'ew-resize'\n }\n\n onRelease = (\n stops: Array<HTMLElement>,\n stop: HTMLElement,\n update: (e: UpdateEvent) => void\n ) => {\n document.onmousemove = null\n document.onmouseup = null\n stop.onmouseup = null\n stop.style.zIndex = '1'\n\n this.setState({\n activeKnobId: null,\n })\n\n requestAnimationFrame(() => {\n stop.focus()\n })\n\n this.setState({\n isTooltipDisplay: Array(stops.length).fill(false),\n })\n\n update('RELEASED')\n document.body.style.cursor = ''\n }\n\n onAdd = (e: React.MouseEvent<HTMLDivElement>) => {\n const { scale, onChange } = this.props\n const { min, max } = this.props.range\n\n const results = addStop(e.nativeEvent, scale, min, max)\n onChange('SHIFTED', results, 'ADD_STOP')\n }\n\n onDelete = (knob: HTMLElement) => {\n const { scale, onChange } = this.props\n\n const results = deleteStop(scale, knob)\n onChange('SHIFTED', results, 'DELETE_STOP')\n }\n\n onShiftRight = (knob: HTMLElement, isMeta: boolean, isCtrl: boolean) => {\n const { scale, onChange } = this.props\n const { min, max } = this.props.range\n\n const results = shiftRightStop(scale, knob, isMeta, isCtrl, min, max)\n\n onChange('SHIFTED', results)\n\n requestAnimationFrame(() => {\n const sliderRange = knob.closest('.multiple-slider__range')\n if (sliderRange) {\n const updatedKnob = sliderRange.querySelector(\n `[data-id=\"${knob.dataset.id}\"]`\n )\n if (updatedKnob instanceof HTMLElement) updatedKnob.focus()\n }\n })\n }\n\n onShiftLeft = (knob: HTMLElement, isMeta: boolean, isCtrl: boolean) => {\n const { scale, onChange } = this.props\n const { min, max } = this.props.range\n\n const results = shiftLeftStop(scale, knob, isMeta, isCtrl, min, max)\n\n onChange('SHIFTED', results)\n\n requestAnimationFrame(() => {\n const sliderRange = knob.closest('.multiple-slider__range')\n if (sliderRange) {\n const updatedKnob = sliderRange.querySelector(\n `[data-id=\"${knob.dataset.id}\"]`\n )\n if (updatedKnob instanceof HTMLElement) updatedKnob.focus()\n }\n })\n }\n\n distributeStops = (\n type: string,\n value: number,\n stops: Array<HTMLElement>\n ) => {\n const { scale, distributionEasing, onChange, range } = this.props\n const { min, max, step = 0.1 } = range\n\n const steppedValue = Math.round(value / step) * step\n const precision = step.toString().split('.')[1]?.length || 0\n\n if (type === 'MIN')\n onChange('UPDATING', {\n scale: doScale(\n Object.entries(scale)\n .sort((a, b) => b[1] - a[1])\n .map((entry) => parseFloat(entry[0])),\n parseFloat(steppedValue.toFixed(precision)),\n Math.max(...Object.values(scale)) ?? max,\n distributionEasing\n ),\n })\n else if (type === 'MAX')\n onChange('UPDATING', {\n scale: doScale(\n Object.entries(scale)\n .sort((a, b) => b[1] - a[1])\n .map((entry) => parseFloat(entry[0])),\n Math.min(...Object.values(scale)) ?? min,\n parseFloat(steppedValue.toFixed(precision)),\n distributionEasing\n ),\n })\n\n this.setState({\n isTooltipDisplay: Array(stops.length).fill(true),\n })\n\n document.body.style.cursor = 'ew-resize'\n }\n\n linkStops = (value: number, src: HTMLElement, stops: Array<HTMLElement>) => {\n const { scale, onChange, range } = this.props\n const { step = 0.1 } = range\n const newScale: Record<string, number> = scale\n\n const steppedValue = Math.round(value / step) * step\n const precision = step.toString().split('.')[1]?.length || 0\n\n stops\n .filter((stop) => stop !== src)\n .forEach((stop) => {\n const delta =\n newScale[stop.dataset.id as string] -\n newScale[src.dataset.id as string] +\n steppedValue\n\n const steppedDelta = Math.round(delta / step) * step\n newScale[stop.dataset.id as string] = parseFloat(\n steppedDelta.toFixed(precision)\n )\n })\n\n newScale[src.dataset.id as string] = parseFloat(\n steppedValue.toFixed(precision)\n )\n\n this.setState({\n isTooltipDisplay: this.state.isTooltipDisplay.fill(true),\n })\n\n onChange('UPDATING', {\n scale: newScale,\n })\n document.body.style.cursor = 'ew-resize'\n }\n\n // Templates\n Status = () => {\n const { warning, isBlocked, isNew } = this.props\n\n if (warning || isBlocked || isNew)\n return (\n <div className=\"multiple-slider__status\">\n {warning !== undefined && (\n <IconChip\n iconType=\"PICTO\"\n iconName=\"warning\"\n text={warning.label}\n pin={warning.pin}\n type={warning.type}\n />\n )}\n {(isBlocked || isNew) && (\n <Chip\n isSolo\n action={isBlocked ? this.props.onUnblock : undefined}\n >\n {isNew ? 'New' : 'Pro'}\n </Chip>\n )}\n </div>\n )\n }\n\n Edit = () => {\n const { scale, range, colors, tips, isBlocked } = this.props\n const { isTooltipDisplay } = this.state\n\n return (\n <div\n className={doClassnames([\n 'multiple-slider__range',\n isBlocked && 'multiple-slider__range--blocked',\n ])}\n style={{\n background: `linear-gradient(90deg, ${colors.min}, ${colors.max})`,\n }}\n role=\"presentation\"\n >\n {Object.entries(scale)\n .sort((a, b) => a[1] - b[1])\n .map((item, index, original) => (\n <Knob\n key={item[0]}\n id={item[0]}\n shortId={item[0]}\n value={item[1]}\n offset={doMap(item[1], range.min, range.max, 0, 100)}\n min={range.min.toString()}\n max={range.max.toString()}\n helper={\n index === 0 || index === original.length - 1\n ? {\n label: tips.minMax,\n type: 'MULTI_LINE',\n }\n : undefined\n }\n canBeTyped\n isDisplayed={isTooltipDisplay[index]}\n isBlocked={isBlocked}\n style={{\n pointerEvents:\n (this.state.activeKnobId &&\n this.state.activeKnobId !== item[0]) ||\n isBlocked\n ? 'none'\n : 'auto',\n }}\n onShiftRight={(e: React.KeyboardEvent<HTMLInputElement>) => {\n this.onShiftRight(e.target as HTMLElement, e.metaKey, e.ctrlKey)\n }}\n onShiftLeft={(e: React.KeyboardEvent<HTMLInputElement>) => {\n this.onShiftLeft(e.target as HTMLElement, e.metaKey, e.ctrlKey)\n }}\n onMouseDown={(e: React.MouseEvent<HTMLElement>) => {\n this.onGrab(e)\n ;(e.target as HTMLElement).focus()\n }}\n onValidStopValue={(stopId, e) => this.validHandler(stopId, e)}\n aria-valuenow={item[1]}\n />\n ))}\n </div>\n )\n }\n\n FullyEdit = () => {\n const { scale, stops, range, colors, tips, isBlocked } = this.props\n const { isTooltipDisplay } = this.state\n\n return (\n <div\n className={doClassnames([\n 'multiple-slider__range',\n stops.list.length < (stops.max ?? Infinity) &&\n !isBlocked &&\n 'multiple-slider__range--add',\n stops.list.length === (stops.max ?? Infinity) &&\n 'multiple-slider__range--not-allowed',\n isBlocked && 'multiple-slider__range--blocked',\n ])}\n style={{\n background: `linear-gradient(90deg, ${colors.min}, ${colors.max})`,\n }}\n onMouseDown={(e) =>\n stops.list.length < (stops.max ?? Infinity) && this.onAdd(e)\n }\n >\n {Object.entries(scale)\n .sort((a, b) => a[1] - b[1])\n .map((item, index, original) => (\n <Knob\n key={item[0]}\n id={item[0]}\n shortId={item[0]}\n value={item[1]}\n offset={doMap(item[1], range.min, range.max, 0, 100)}\n min={range.min.toString()}\n max={range.max.toString()}\n helper={\n index === 0 || index === original.length - 1\n ? {\n label: tips.minMax,\n type: 'MULTI_LINE',\n }\n : undefined\n }\n canBeTyped\n isDisplayed={isTooltipDisplay[index]}\n isBlocked={isBlocked}\n style={{\n pointerEvents:\n (this.state.activeKnobId &&\n this.state.activeKnobId !== item[0]) ||\n isBlocked\n ? 'none'\n : 'auto',\n }}\n onShiftRight={(e: React.KeyboardEvent<HTMLInputElement>) => {\n this.onShiftRight(e.target as HTMLElement, e.metaKey, e.ctrlKey)\n }}\n onShiftLeft={(e: React.KeyboardEvent<HTMLInputElement>) => {\n this.onShiftLeft(e.target as HTMLElement, e.metaKey, e.ctrlKey)\n }}\n onDelete={(e: React.KeyboardEvent<HTMLInputElement>) => {\n if (stops.list.length > (stops.min ?? Infinity))\n this.onDelete(e.target as HTMLElement)\n }}\n onMouseDown={(e: React.MouseEvent<HTMLElement>) => {\n this.onGrab(e)\n ;(e.target as HTMLElement).focus()\n }}\n onValidStopValue={(stopId, e) => this.validHandler(stopId, e)}\n aria-valuenow={item[1]}\n />\n ))}\n </div>\n )\n }\n\n // Render\n render() {\n const { type } = this.props\n\n return (\n <div className=\"multiple-slider\">\n {type === 'EDIT' && <this.Edit />}\n {type === 'FULLY_EDIT' && <this.FullyEdit />}\n {this.Status()}\n </div>\n )\n }\n}\n"],"names":["S","o","I","t","a","E","h","A","M","p","shiftRightStop","scale","selectedKnob","meta","ctrl","minRange","maxRange","stopsList","shiftValue","b","stop","selectedKnobIndex","newScale","currentStopValue","shiftLeftStop","getNumberScale","num","length","deleteStop","entries","key","value","entry","firstKey","e","numberScale","filteredEntries","acc","_","idx","newIndex","k","addStop","rangeMin","rangeMax","isDescending","target","offset","doMap","Slider","React","props","stopId","onChange","range","step","precision","shift","rangeWidth","slider","stops","update","event","min","max","sliderPadding","rawValue","steppedValue","newPosition","results","knob","isMeta","isCtrl","sliderRange","updatedKnob","type","distributionEasing","doScale","src","delta","steppedDelta","warning","isBlocked","isNew","jsxs","jsx","IconChip","Chip","colors","tips","isTooltipDisplay","doClassnames","item","index","original","Knob"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addStop.d.ts","sourceRoot":"","sources":["../../../../../src/components/inputs/multiple-slider/actions/addStop.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,OAAO,MACR,UAAU,SACN,OAAO,MAAM,EAAE,MAAM,CAAC,YACnB,MAAM,YACN,MAAM;;;;;CAsCjB,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteStop.d.ts","sourceRoot":"","sources":["../../../../../src/components/inputs/multiple-slider/actions/deleteStop.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,UAAU,UACP,OAAO,MAAM,EAAE,MAAM,CAAC,gBACf,WAAW;;;;;CA+B1B,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const shiftLeftStop: (scale: Record<string, number>, selectedKnob: HTMLElement, meta: boolean, ctrl: boolean, minRange: number, maxRange: number) => {
|
|
2
|
+
scale: Record<string, number>;
|
|
3
|
+
};
|
|
4
|
+
export default shiftLeftStop;
|
|
5
|
+
//# sourceMappingURL=shiftLeftStop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shiftLeftStop.d.ts","sourceRoot":"","sources":["../../../../../src/components/inputs/multiple-slider/actions/shiftLeftStop.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa,UACV,OAAO,MAAM,EAAE,MAAM,CAAC,gBACf,WAAW,QACnB,OAAO,QACP,OAAO,YACH,MAAM,YACN,MAAM;;CA4BjB,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const shiftRightStop: (scale: Record<string, number>, selectedKnob: HTMLElement, meta: boolean, ctrl: boolean, minRange: number, maxRange: number) => {
|
|
2
|
+
scale: Record<string, number>;
|
|
3
|
+
};
|
|
4
|
+
export default shiftRightStop;
|
|
5
|
+
//# sourceMappingURL=shiftRightStop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shiftRightStop.d.ts","sourceRoot":"","sources":["../../../../../src/components/inputs/multiple-slider/actions/shiftRightStop.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,UACX,OAAO,MAAM,EAAE,MAAM,CAAC,gBACf,WAAW,QACnB,OAAO,QACP,OAAO,YACH,MAAM,YACN,MAAM;;CA4BjB,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface SelectProps {
|
|
4
|
+
/**
|
|
5
|
+
* Unique identifier for the select input
|
|
6
|
+
*/
|
|
7
|
+
id: string;
|
|
8
|
+
/**
|
|
9
|
+
* Type of selection control
|
|
10
|
+
*/
|
|
11
|
+
type: 'CHECK_BOX' | 'RADIO_BUTTON' | 'SWITCH_BUTTON';
|
|
12
|
+
/**
|
|
13
|
+
* Label text
|
|
14
|
+
*/
|
|
15
|
+
label?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Name attribute for form submission
|
|
18
|
+
*/
|
|
19
|
+
name?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Value attribute
|
|
22
|
+
*/
|
|
23
|
+
value?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Helper tooltip configuration
|
|
26
|
+
*/
|
|
27
|
+
helper?: {
|
|
28
|
+
/** Tooltip content */
|
|
29
|
+
label: string | React.ReactNode;
|
|
30
|
+
/** Tooltip position */
|
|
31
|
+
pin?: 'TOP' | 'BOTTOM';
|
|
32
|
+
/** Tooltip display type */
|
|
33
|
+
type?: 'MULTI_LINE' | 'SINGLE_LINE';
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Preview tooltip configuration with image
|
|
37
|
+
*/
|
|
38
|
+
preview?: {
|
|
39
|
+
/** Preview image URL */
|
|
40
|
+
image: string;
|
|
41
|
+
/** Preview text */
|
|
42
|
+
text: string | React.ReactNode;
|
|
43
|
+
/** Preview position */
|
|
44
|
+
pin?: 'TOP' | 'BOTTOM';
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Warning tooltip configuration
|
|
48
|
+
*/
|
|
49
|
+
warning?: {
|
|
50
|
+
/** Warning message */
|
|
51
|
+
label: string | React.ReactNode;
|
|
52
|
+
/** Warning position */
|
|
53
|
+
pin?: 'TOP' | 'BOTTOM';
|
|
54
|
+
/** Warning display type */
|
|
55
|
+
type?: 'MULTI_LINE' | 'SINGLE_LINE';
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Feature identifier for tracking
|
|
59
|
+
*/
|
|
60
|
+
feature?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Whether to reflow on small screens
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
65
|
+
shouldReflow?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether the control is checked
|
|
68
|
+
* @default false
|
|
69
|
+
*/
|
|
70
|
+
isChecked?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Whether the control is disabled
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
isDisabled?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Whether the control is blocked
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
80
|
+
isBlocked?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Whether to show a "New" badge
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
85
|
+
isNew?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Change event handler
|
|
88
|
+
*/
|
|
89
|
+
action: React.ChangeEventHandler<HTMLInputElement>;
|
|
90
|
+
/**
|
|
91
|
+
* Handler called when unblock is clicked
|
|
92
|
+
*/
|
|
93
|
+
onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler;
|
|
94
|
+
}
|
|
95
|
+
export interface SelectStates {
|
|
96
|
+
isTooltipVisible: boolean;
|
|
97
|
+
documentWidth: number;
|
|
98
|
+
}
|
|
99
|
+
export default class Select extends React.Component<SelectProps, SelectStates> {
|
|
100
|
+
private inputRef;
|
|
101
|
+
static defaultProps: Partial<SelectProps>;
|
|
102
|
+
constructor(props: SelectProps);
|
|
103
|
+
componentDidMount: () => void;
|
|
104
|
+
componentWillUnmount: () => void;
|
|
105
|
+
handleResize: () => void;
|
|
106
|
+
Status: (type: 'checkbox' | 'radio' | 'switch') => import("react/jsx-runtime").JSX.Element | undefined;
|
|
107
|
+
CheckBox: () => import("react/jsx-runtime").JSX.Element;
|
|
108
|
+
RadioButton: () => import("react/jsx-runtime").JSX.Element;
|
|
109
|
+
SwitchButton: () => import("react/jsx-runtime").JSX.Element;
|
|
110
|
+
render(): import("react/jsx-runtime").JSX.Element;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=Select.d.ts.map
|