@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 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,eAAe,CAAA;AAEtB,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,eAAe,CAAA;IACpD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,sBAAsB;QACtB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;QAC/B,uBAAuB;QACvB,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;QACtB,2BAA2B;QAC3B,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAA;KACpC,CAAA;IACD;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,wBAAwB;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,mBAAmB;QACnB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;QAC9B,uBAAuB;QACvB,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;KACvB,CAAA;IACD;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,sBAAsB;QACtB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;QAC/B,uBAAuB;QACvB,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;QACtB,2BAA2B;QAC3B,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAA;KACpC,CAAA;IACD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IAClD;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;CACjE;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC;IAC5E,OAAO,CAAC,QAAQ,CAAuD;IAEvE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAMxC;gBAEW,KAAK,EAAE,WAAW;IAS9B,iBAAiB,aAEhB;IAED,oBAAoB,aAEnB;IAGD,YAAY,aAEX;IAGD,MAAM,SAAU,UAAU,GAAG,OAAO,GAAG,QAAQ,yDAiC9C;IAED,QAAQ,gDAkFP;IAED,WAAW,gDAkFV;IAED,YAAY,gDAiFX;IAGD,MAAM;CAOP"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import '../../../assets/Select.css';
|
|
2
|
+
import { jsxs as n, jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import w from "react";
|
|
4
|
+
import T from "../../../styles/layouts.module.js";
|
|
5
|
+
import N from "../../tags/tooltip/Tooltip.js";
|
|
6
|
+
import S from "../../tags/icon-chip/IconChip.js";
|
|
7
|
+
import x from "../../tags/chip/Chip.js";
|
|
8
|
+
import { t as m } from "../../../do-classnames-DSDFCvzy.js";
|
|
9
|
+
class I extends w.Component {
|
|
10
|
+
inputRef = w.createRef();
|
|
11
|
+
static defaultProps = {
|
|
12
|
+
shouldReflow: !1,
|
|
13
|
+
isChecked: !1,
|
|
14
|
+
isDisabled: !1,
|
|
15
|
+
isBlocked: !1,
|
|
16
|
+
isNew: !1
|
|
17
|
+
};
|
|
18
|
+
constructor(t) {
|
|
19
|
+
super(t), this.state = {
|
|
20
|
+
isTooltipVisible: !1,
|
|
21
|
+
documentWidth: document.documentElement.clientWidth
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
// Lifecycle
|
|
25
|
+
componentDidMount = () => {
|
|
26
|
+
window.addEventListener("resize", this.handleResize);
|
|
27
|
+
};
|
|
28
|
+
componentWillUnmount = () => {
|
|
29
|
+
window.removeEventListener("resize", this.handleResize);
|
|
30
|
+
};
|
|
31
|
+
// Handlers
|
|
32
|
+
handleResize = () => {
|
|
33
|
+
this.setState({ documentWidth: document.documentElement.clientWidth });
|
|
34
|
+
};
|
|
35
|
+
// Templates
|
|
36
|
+
Status = (t) => {
|
|
37
|
+
const { warning: e, preview: b, isBlocked: s, isNew: a, onUnblock: p } = this.props;
|
|
38
|
+
if (e || s || a)
|
|
39
|
+
return /* @__PURE__ */ n("div", { className: `${t}__status`, children: [
|
|
40
|
+
e !== void 0 && /* @__PURE__ */ i(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
style: {
|
|
44
|
+
position: "relative",
|
|
45
|
+
pointerEvents: "auto"
|
|
46
|
+
},
|
|
47
|
+
children: /* @__PURE__ */ i(
|
|
48
|
+
S,
|
|
49
|
+
{
|
|
50
|
+
iconType: "PICTO",
|
|
51
|
+
iconName: "warning",
|
|
52
|
+
text: e.label,
|
|
53
|
+
pin: e.pin,
|
|
54
|
+
type: e.type
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
(s || a) && /* @__PURE__ */ i(
|
|
60
|
+
x,
|
|
61
|
+
{
|
|
62
|
+
preview: b,
|
|
63
|
+
isSolo: !0,
|
|
64
|
+
action: s ? p : void 0,
|
|
65
|
+
children: a ? "New" : "Pro"
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
] });
|
|
69
|
+
};
|
|
70
|
+
CheckBox = () => {
|
|
71
|
+
const {
|
|
72
|
+
id: t,
|
|
73
|
+
label: e,
|
|
74
|
+
name: b,
|
|
75
|
+
helper: s,
|
|
76
|
+
feature: a,
|
|
77
|
+
shouldReflow: p,
|
|
78
|
+
isChecked: f,
|
|
79
|
+
isDisabled: c,
|
|
80
|
+
isBlocked: o,
|
|
81
|
+
action: h
|
|
82
|
+
} = this.props, { isTooltipVisible: _, documentWidth: v } = this.state, d = p && v <= 460, r = () => d ? void 0 : e, u = () => d ? e : s?.label, l = () => d ? e !== void 0 : s !== void 0;
|
|
83
|
+
return /* @__PURE__ */ n("div", { className: T["snackbar--medium"], children: [
|
|
84
|
+
/* @__PURE__ */ n(
|
|
85
|
+
"div",
|
|
86
|
+
{
|
|
87
|
+
className: m([
|
|
88
|
+
"checkbox",
|
|
89
|
+
o && "checkbox--blocked"
|
|
90
|
+
]),
|
|
91
|
+
onMouseEnter: () => {
|
|
92
|
+
l() && this.setState({ isTooltipVisible: !0 });
|
|
93
|
+
},
|
|
94
|
+
onMouseLeave: () => {
|
|
95
|
+
l() && this.setState({ isTooltipVisible: !1 });
|
|
96
|
+
},
|
|
97
|
+
onFocus: () => {
|
|
98
|
+
l() && this.setState({ isTooltipVisible: !0 });
|
|
99
|
+
},
|
|
100
|
+
onBlur: () => {
|
|
101
|
+
l() && this.setState({ isTooltipVisible: !1 });
|
|
102
|
+
},
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ n("div", { className: "checkbox__slot", children: [
|
|
105
|
+
/* @__PURE__ */ i(
|
|
106
|
+
"input",
|
|
107
|
+
{
|
|
108
|
+
"data-feature": a,
|
|
109
|
+
id: t,
|
|
110
|
+
className: "checkbox__box",
|
|
111
|
+
type: "checkbox",
|
|
112
|
+
name: b,
|
|
113
|
+
checked: f,
|
|
114
|
+
disabled: c || o,
|
|
115
|
+
onChange: h,
|
|
116
|
+
tabIndex: 0,
|
|
117
|
+
ref: this.inputRef,
|
|
118
|
+
"aria-label": e
|
|
119
|
+
}
|
|
120
|
+
),
|
|
121
|
+
/* @__PURE__ */ i("div", { className: "checkbox__box__background" }),
|
|
122
|
+
/* @__PURE__ */ i("div", { className: "checkbox__box__tick" })
|
|
123
|
+
] }),
|
|
124
|
+
r() !== void 0 && /* @__PURE__ */ i(
|
|
125
|
+
"label",
|
|
126
|
+
{
|
|
127
|
+
className: m([
|
|
128
|
+
"checkbox__label",
|
|
129
|
+
(c || o) && "checkbox__label--disabled"
|
|
130
|
+
]),
|
|
131
|
+
htmlFor: c || o ? void 0 : t,
|
|
132
|
+
children: r()
|
|
133
|
+
}
|
|
134
|
+
),
|
|
135
|
+
_ && l() && /* @__PURE__ */ i(
|
|
136
|
+
N,
|
|
137
|
+
{
|
|
138
|
+
pin: s?.pin || "BOTTOM",
|
|
139
|
+
type: s?.type || "SINGLE_LINE",
|
|
140
|
+
children: u()
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
),
|
|
146
|
+
this.Status("checkbox")
|
|
147
|
+
] });
|
|
148
|
+
};
|
|
149
|
+
RadioButton = () => {
|
|
150
|
+
const {
|
|
151
|
+
id: t,
|
|
152
|
+
label: e,
|
|
153
|
+
name: b,
|
|
154
|
+
value: s,
|
|
155
|
+
helper: a,
|
|
156
|
+
feature: p,
|
|
157
|
+
shouldReflow: f,
|
|
158
|
+
isChecked: c,
|
|
159
|
+
isDisabled: o,
|
|
160
|
+
isBlocked: h,
|
|
161
|
+
action: _
|
|
162
|
+
} = this.props, { isTooltipVisible: v, documentWidth: d } = this.state, r = f && d <= 460, u = () => r ? void 0 : e, l = () => r ? e : a?.label, k = () => r ? e !== void 0 : a !== void 0;
|
|
163
|
+
return /* @__PURE__ */ n("div", { className: T["snackbar--medium"], children: [
|
|
164
|
+
/* @__PURE__ */ n(
|
|
165
|
+
"div",
|
|
166
|
+
{
|
|
167
|
+
className: m(["radio", h && "radio--blocked"]),
|
|
168
|
+
onMouseEnter: () => {
|
|
169
|
+
k() && this.setState({ isTooltipVisible: !0 });
|
|
170
|
+
},
|
|
171
|
+
onMouseLeave: () => {
|
|
172
|
+
k() && this.setState({ isTooltipVisible: !1 });
|
|
173
|
+
},
|
|
174
|
+
onFocus: () => {
|
|
175
|
+
k() && this.setState({ isTooltipVisible: !0 });
|
|
176
|
+
},
|
|
177
|
+
onBlur: () => {
|
|
178
|
+
k() && this.setState({ isTooltipVisible: !1 });
|
|
179
|
+
},
|
|
180
|
+
children: [
|
|
181
|
+
/* @__PURE__ */ n("div", { className: "radio__slot", children: [
|
|
182
|
+
/* @__PURE__ */ i(
|
|
183
|
+
"input",
|
|
184
|
+
{
|
|
185
|
+
"data-feature": p,
|
|
186
|
+
id: t,
|
|
187
|
+
className: "radio__button",
|
|
188
|
+
type: "radio",
|
|
189
|
+
name: b,
|
|
190
|
+
value: s,
|
|
191
|
+
checked: c,
|
|
192
|
+
disabled: o || h,
|
|
193
|
+
onChange: _,
|
|
194
|
+
tabIndex: 0,
|
|
195
|
+
ref: this.inputRef,
|
|
196
|
+
"aria-label": e
|
|
197
|
+
}
|
|
198
|
+
),
|
|
199
|
+
/* @__PURE__ */ i("div", { className: "radio__button__background" }),
|
|
200
|
+
/* @__PURE__ */ i("div", { className: "radio__button__inner" })
|
|
201
|
+
] }),
|
|
202
|
+
u() !== void 0 && /* @__PURE__ */ i(
|
|
203
|
+
"label",
|
|
204
|
+
{
|
|
205
|
+
className: m([
|
|
206
|
+
"radio__label",
|
|
207
|
+
(o || h) && "radio__label--disabled"
|
|
208
|
+
]),
|
|
209
|
+
htmlFor: o || h ? void 0 : t,
|
|
210
|
+
children: u()
|
|
211
|
+
}
|
|
212
|
+
),
|
|
213
|
+
v && k() && /* @__PURE__ */ i(
|
|
214
|
+
N,
|
|
215
|
+
{
|
|
216
|
+
pin: a?.pin || "BOTTOM",
|
|
217
|
+
type: a?.type || "SINGLE_LINE",
|
|
218
|
+
children: l()
|
|
219
|
+
}
|
|
220
|
+
)
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
),
|
|
224
|
+
this.Status("radio")
|
|
225
|
+
] });
|
|
226
|
+
};
|
|
227
|
+
SwitchButton = () => {
|
|
228
|
+
const {
|
|
229
|
+
id: t,
|
|
230
|
+
label: e,
|
|
231
|
+
name: b,
|
|
232
|
+
helper: s,
|
|
233
|
+
feature: a,
|
|
234
|
+
shouldReflow: p,
|
|
235
|
+
isChecked: f,
|
|
236
|
+
isDisabled: c,
|
|
237
|
+
isBlocked: o,
|
|
238
|
+
action: h
|
|
239
|
+
} = this.props, { isTooltipVisible: _, documentWidth: v } = this.state, d = p && v <= 460, r = () => d ? void 0 : e, u = () => d ? e : s?.label, l = () => d ? e !== void 0 : s !== void 0;
|
|
240
|
+
return /* @__PURE__ */ n("div", { className: T["snackbar--medium"], children: [
|
|
241
|
+
/* @__PURE__ */ n(
|
|
242
|
+
"div",
|
|
243
|
+
{
|
|
244
|
+
className: m(["switch", o && "switch--blocked"]),
|
|
245
|
+
onMouseEnter: () => {
|
|
246
|
+
l() && this.setState({ isTooltipVisible: !0 });
|
|
247
|
+
},
|
|
248
|
+
onMouseLeave: () => {
|
|
249
|
+
l() && this.setState({ isTooltipVisible: !1 });
|
|
250
|
+
},
|
|
251
|
+
onFocus: () => {
|
|
252
|
+
l() && this.setState({ isTooltipVisible: !0 });
|
|
253
|
+
},
|
|
254
|
+
onBlur: () => {
|
|
255
|
+
l() && this.setState({ isTooltipVisible: !1 });
|
|
256
|
+
},
|
|
257
|
+
children: [
|
|
258
|
+
/* @__PURE__ */ n("div", { className: "switch__slot", children: [
|
|
259
|
+
/* @__PURE__ */ i(
|
|
260
|
+
"input",
|
|
261
|
+
{
|
|
262
|
+
"data-feature": a,
|
|
263
|
+
id: t,
|
|
264
|
+
className: "switch__toggle",
|
|
265
|
+
type: "checkbox",
|
|
266
|
+
role: "switch",
|
|
267
|
+
name: b,
|
|
268
|
+
checked: f,
|
|
269
|
+
disabled: c || o,
|
|
270
|
+
onChange: h,
|
|
271
|
+
tabIndex: 0,
|
|
272
|
+
ref: this.inputRef,
|
|
273
|
+
"aria-label": e
|
|
274
|
+
}
|
|
275
|
+
),
|
|
276
|
+
/* @__PURE__ */ i("div", { className: "switch__toggle__background" }),
|
|
277
|
+
/* @__PURE__ */ i("div", { className: "switch__toggle__knob" })
|
|
278
|
+
] }),
|
|
279
|
+
r() !== void 0 && /* @__PURE__ */ i(
|
|
280
|
+
"label",
|
|
281
|
+
{
|
|
282
|
+
className: m([
|
|
283
|
+
"switch__label",
|
|
284
|
+
(c || o) && "switch__label--disabled"
|
|
285
|
+
]),
|
|
286
|
+
htmlFor: c || o ? void 0 : t,
|
|
287
|
+
children: r()
|
|
288
|
+
}
|
|
289
|
+
),
|
|
290
|
+
_ && l() && /* @__PURE__ */ i(
|
|
291
|
+
N,
|
|
292
|
+
{
|
|
293
|
+
pin: s?.pin || "BOTTOM",
|
|
294
|
+
type: s?.type || "SINGLE_LINE",
|
|
295
|
+
children: u()
|
|
296
|
+
}
|
|
297
|
+
)
|
|
298
|
+
]
|
|
299
|
+
}
|
|
300
|
+
),
|
|
301
|
+
this.Status("switch")
|
|
302
|
+
] });
|
|
303
|
+
};
|
|
304
|
+
// Render
|
|
305
|
+
render() {
|
|
306
|
+
const { type: t } = this.props;
|
|
307
|
+
return t === "RADIO_BUTTON" ? this.RadioButton() : t === "SWITCH_BUTTON" ? this.SwitchButton() : this.CheckBox();
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
export {
|
|
311
|
+
I as default
|
|
312
|
+
};
|
|
313
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../../src/components/inputs/select/Select.tsx"],"sourcesContent":["import React from 'react'\nimport layouts from '@styles/layouts.module.scss'\nimport Tooltip from '@components/tags/tooltip/Tooltip'\nimport IconChip from '@components/tags/icon-chip/IconChip'\nimport Chip from '@components/tags/chip/Chip'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './select.scss'\n\nexport interface SelectProps {\n /**\n * Unique identifier for the select input\n */\n id: string\n /**\n * Type of selection control\n */\n type: 'CHECK_BOX' | 'RADIO_BUTTON' | 'SWITCH_BUTTON'\n /**\n * Label text\n */\n label?: string\n /**\n * Name attribute for form submission\n */\n name?: string\n /**\n * Value attribute\n */\n value?: string\n /**\n * Helper tooltip configuration\n */\n helper?: {\n /** Tooltip content */\n label: string | React.ReactNode\n /** Tooltip position */\n pin?: 'TOP' | 'BOTTOM'\n /** Tooltip display type */\n type?: 'MULTI_LINE' | 'SINGLE_LINE'\n }\n /**\n * Preview tooltip configuration with image\n */\n preview?: {\n /** Preview image URL */\n image: string\n /** Preview text */\n text: string | React.ReactNode\n /** Preview position */\n pin?: 'TOP' | 'BOTTOM'\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 * Feature identifier for tracking\n */\n feature?: string\n /**\n * Whether to reflow on small screens\n * @default false\n */\n shouldReflow?: boolean\n /**\n * Whether the control is checked\n * @default false\n */\n isChecked?: boolean\n /**\n * Whether the control is disabled\n * @default false\n */\n isDisabled?: boolean\n /**\n * Whether the control is blocked\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n /**\n * Change event handler\n */\n action: React.ChangeEventHandler<HTMLInputElement>\n /**\n * Handler called when unblock is clicked\n */\n onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler\n}\n\nexport interface SelectStates {\n isTooltipVisible: boolean\n documentWidth: number\n}\n\nexport default class Select extends React.Component<SelectProps, SelectStates> {\n private inputRef: React.RefObject<HTMLInputElement> = React.createRef()\n\n static defaultProps: Partial<SelectProps> = {\n shouldReflow: false,\n isChecked: false,\n isDisabled: false,\n isBlocked: false,\n isNew: false,\n }\n\n constructor(props: SelectProps) {\n super(props)\n this.state = {\n isTooltipVisible: false,\n documentWidth: document.documentElement.clientWidth,\n }\n }\n\n // Lifecycle\n componentDidMount = () => {\n window.addEventListener('resize', this.handleResize)\n }\n\n componentWillUnmount = () => {\n window.removeEventListener('resize', this.handleResize)\n }\n\n // Handlers\n handleResize = () => {\n this.setState({ documentWidth: document.documentElement.clientWidth })\n }\n\n // Templates\n Status = (type: 'checkbox' | 'radio' | 'switch') => {\n const { warning, preview, isBlocked, isNew, onUnblock } = this.props\n\n if (warning || isBlocked || isNew)\n return (\n <div className={`${type}__status`}>\n {warning !== undefined && (\n <div\n style={{\n position: 'relative',\n pointerEvents: 'auto',\n }}\n >\n <IconChip\n iconType=\"PICTO\"\n iconName=\"warning\"\n text={warning.label}\n pin={warning.pin}\n type={warning.type}\n />\n </div>\n )}\n {(isBlocked || isNew) && (\n <Chip\n preview={preview}\n isSolo\n action={isBlocked ? onUnblock : undefined}\n >\n {isNew ? 'New' : 'Pro'}\n </Chip>\n )}\n </div>\n )\n }\n\n CheckBox = () => {\n const {\n id,\n label,\n name,\n helper,\n feature,\n shouldReflow,\n isChecked,\n isDisabled,\n isBlocked,\n action,\n } = this.props\n const { isTooltipVisible, documentWidth } = this.state\n\n const isReflowActive = shouldReflow && documentWidth <= 460\n\n const getSelectLabel = () => (isReflowActive ? undefined : label)\n const getTooltipLabel = () => (isReflowActive ? label : helper?.label)\n const hasTooltipContent = () =>\n isReflowActive ? label !== undefined : helper !== undefined\n\n return (\n <div className={layouts['snackbar--medium']}>\n <div\n className={doClassnames([\n 'checkbox',\n isBlocked && 'checkbox--blocked',\n ])}\n onMouseEnter={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onMouseLeave={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n onFocus={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onBlur={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n >\n <div className=\"checkbox__slot\">\n <input\n data-feature={feature}\n id={id}\n className=\"checkbox__box\"\n type=\"checkbox\"\n name={name}\n checked={isChecked}\n disabled={isDisabled || isBlocked}\n onChange={action}\n tabIndex={0}\n ref={this.inputRef}\n aria-label={label}\n />\n <div className=\"checkbox__box__background\" />\n <div className=\"checkbox__box__tick\" />\n </div>\n {getSelectLabel() !== undefined && (\n <label\n className={doClassnames([\n 'checkbox__label',\n (isDisabled || isBlocked) && 'checkbox__label--disabled',\n ])}\n htmlFor={!(isDisabled || isBlocked) ? id : undefined}\n >\n {getSelectLabel()}\n </label>\n )}\n {isTooltipVisible && hasTooltipContent() && (\n <Tooltip\n pin={helper?.pin || 'BOTTOM'}\n type={helper?.type || 'SINGLE_LINE'}\n >\n {getTooltipLabel()}\n </Tooltip>\n )}\n </div>\n {this.Status('checkbox')}\n </div>\n )\n }\n\n RadioButton = () => {\n const {\n id,\n label,\n name,\n value,\n helper,\n feature,\n shouldReflow,\n isChecked,\n isDisabled,\n isBlocked,\n action,\n } = this.props\n const { isTooltipVisible, documentWidth } = this.state\n\n const isReflowActive = shouldReflow && documentWidth <= 460\n\n const getSelectLabel = () => (isReflowActive ? undefined : label)\n const getTooltipLabel = () => (isReflowActive ? label : helper?.label)\n const hasTooltipContent = () =>\n isReflowActive ? label !== undefined : helper !== undefined\n\n return (\n <div className={layouts['snackbar--medium']}>\n <div\n className={doClassnames(['radio', isBlocked && 'radio--blocked'])}\n onMouseEnter={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onMouseLeave={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n onFocus={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onBlur={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n >\n <div className=\"radio__slot\">\n <input\n data-feature={feature}\n id={id}\n className=\"radio__button\"\n type=\"radio\"\n name={name}\n value={value}\n checked={isChecked}\n disabled={isDisabled || isBlocked}\n onChange={action}\n tabIndex={0}\n ref={this.inputRef}\n aria-label={label}\n />\n <div className=\"radio__button__background\" />\n <div className=\"radio__button__inner\" />\n </div>\n {getSelectLabel() !== undefined && (\n <label\n className={doClassnames([\n 'radio__label',\n (isDisabled || isBlocked) && 'radio__label--disabled',\n ])}\n htmlFor={!(isDisabled || isBlocked) ? id : undefined}\n >\n {getSelectLabel()}\n </label>\n )}\n\n {isTooltipVisible && hasTooltipContent() && (\n <Tooltip\n pin={helper?.pin || 'BOTTOM'}\n type={helper?.type || 'SINGLE_LINE'}\n >\n {getTooltipLabel()}\n </Tooltip>\n )}\n </div>\n {this.Status('radio')}\n </div>\n )\n }\n\n SwitchButton = () => {\n const {\n id,\n label,\n name,\n helper,\n feature,\n shouldReflow,\n isChecked,\n isDisabled,\n isBlocked,\n action,\n } = this.props\n const { isTooltipVisible, documentWidth } = this.state\n\n const isReflowActive = shouldReflow && documentWidth <= 460\n\n const getSelectLabel = () => (isReflowActive ? undefined : label)\n const getTooltipLabel = () => (isReflowActive ? label : helper?.label)\n const hasTooltipContent = () =>\n isReflowActive ? label !== undefined : helper !== undefined\n\n return (\n <div className={layouts['snackbar--medium']}>\n <div\n className={doClassnames(['switch', isBlocked && 'switch--blocked'])}\n onMouseEnter={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onMouseLeave={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n onFocus={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onBlur={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n >\n <div className=\"switch__slot\">\n <input\n data-feature={feature}\n id={id}\n className=\"switch__toggle\"\n type=\"checkbox\"\n role=\"switch\"\n name={name}\n checked={isChecked}\n disabled={isDisabled || isBlocked}\n onChange={action}\n tabIndex={0}\n ref={this.inputRef}\n aria-label={label}\n />\n <div className=\"switch__toggle__background\" />\n <div className=\"switch__toggle__knob\" />\n </div>\n {getSelectLabel() !== undefined && (\n <label\n className={doClassnames([\n 'switch__label',\n (isDisabled || isBlocked) && 'switch__label--disabled',\n ])}\n htmlFor={!(isDisabled || isBlocked) ? id : undefined}\n >\n {getSelectLabel()}\n </label>\n )}\n\n {isTooltipVisible && hasTooltipContent() && (\n <Tooltip\n pin={helper?.pin || 'BOTTOM'}\n type={helper?.type || 'SINGLE_LINE'}\n >\n {getTooltipLabel()}\n </Tooltip>\n )}\n </div>\n {this.Status('switch')}\n </div>\n )\n }\n\n // Render\n render() {\n const { type } = this.props\n\n if (type === 'RADIO_BUTTON') return this.RadioButton()\n if (type === 'SWITCH_BUTTON') return this.SwitchButton()\n return this.CheckBox()\n }\n}\n"],"names":["Select","React","props","type","warning","preview","isBlocked","isNew","onUnblock","jsxs","jsx","IconChip","Chip","id","label","name","helper","feature","shouldReflow","isChecked","isDisabled","action","isTooltipVisible","documentWidth","isReflowActive","getSelectLabel","getTooltipLabel","hasTooltipContent","layouts","doClassnames","Tooltip","value"],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface SimpleSliderProps {
|
|
4
|
+
/**
|
|
5
|
+
* Unique identifier for the slider
|
|
6
|
+
*/
|
|
7
|
+
id: string;
|
|
8
|
+
/**
|
|
9
|
+
* Label text for the slider
|
|
10
|
+
*/
|
|
11
|
+
label: string;
|
|
12
|
+
/**
|
|
13
|
+
* Current value
|
|
14
|
+
*/
|
|
15
|
+
value: number;
|
|
16
|
+
/**
|
|
17
|
+
* Minimum allowed value
|
|
18
|
+
*/
|
|
19
|
+
min: number;
|
|
20
|
+
/**
|
|
21
|
+
* Maximum allowed value
|
|
22
|
+
*/
|
|
23
|
+
max: number;
|
|
24
|
+
/**
|
|
25
|
+
* Step increment
|
|
26
|
+
* @default 1
|
|
27
|
+
*/
|
|
28
|
+
step?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Colors for gradient display
|
|
31
|
+
*/
|
|
32
|
+
colors: {
|
|
33
|
+
/** Start color */
|
|
34
|
+
min: string;
|
|
35
|
+
/** End color */
|
|
36
|
+
max: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Warning tooltip configuration
|
|
40
|
+
*/
|
|
41
|
+
warning?: {
|
|
42
|
+
/** Warning message */
|
|
43
|
+
label: string | React.ReactNode;
|
|
44
|
+
/** Warning position */
|
|
45
|
+
pin?: 'TOP' | 'BOTTOM';
|
|
46
|
+
/** Warning display type */
|
|
47
|
+
type?: 'MULTI_LINE' | 'SINGLE_LINE';
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Feature identifier for tracking
|
|
51
|
+
*/
|
|
52
|
+
feature: string;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the slider is blocked
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
57
|
+
isBlocked?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Whether the slider is disabled
|
|
60
|
+
* @default false
|
|
61
|
+
*/
|
|
62
|
+
isDisabled?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Whether to show a "New" badge
|
|
65
|
+
* @default false
|
|
66
|
+
*/
|
|
67
|
+
isNew?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Change handler
|
|
70
|
+
*/
|
|
71
|
+
onChange: (feature: string, state: string, value: number) => void;
|
|
72
|
+
/**
|
|
73
|
+
* Handler called when unblock is clicked
|
|
74
|
+
*/
|
|
75
|
+
onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler;
|
|
76
|
+
}
|
|
77
|
+
export interface SimpleSliderStates {
|
|
78
|
+
isTooltipDisplay: boolean;
|
|
79
|
+
}
|
|
80
|
+
export default class SimpleSlider extends React.Component<SimpleSliderProps, SimpleSliderStates> {
|
|
81
|
+
private value;
|
|
82
|
+
static defaultProps: Partial<SimpleSliderProps>;
|
|
83
|
+
constructor(props: SimpleSliderProps);
|
|
84
|
+
componentDidUpdate: (previousProps: Readonly<SimpleSliderProps>) => void;
|
|
85
|
+
validHandler: (e: React.FocusEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>) => void;
|
|
86
|
+
onGrab: (e: React.MouseEvent<HTMLElement>) => void;
|
|
87
|
+
roundToStep: (value: number, step: number) => number;
|
|
88
|
+
onSlide: (e: MouseEvent, slider: HTMLElement, stop: HTMLElement, shift: number, rangeWidth: number) => void;
|
|
89
|
+
onRelease: (stop: HTMLElement) => void;
|
|
90
|
+
Status: () => import("react/jsx-runtime").JSX.Element | undefined;
|
|
91
|
+
render(): import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=SimpleSlider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleSlider.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/simple-slider/SimpleSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,sBAAsB,CAAA;AAE7B,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE;QACN,kBAAkB;QAClB,GAAG,EAAE,MAAM,CAAA;QACX,gBAAgB;QAChB,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,sBAAsB;QACtB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;QAC/B,uBAAuB;QACvB,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;QACtB,2BAA2B;QAC3B,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAA;KACpC,CAAA;IACD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;CACjE;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK,CAAC,SAAS,CACvD,iBAAiB,EACjB,kBAAkB,CACnB;IACC,OAAO,CAAC,KAAK,CAAQ;IAErB,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAK9C;gBAEW,KAAK,EAAE,iBAAiB;IAQpC,kBAAkB,kBAAmB,SAAS,iBAAiB,CAAC,UAI/D;IAGD,YAAY,MAEN,gBAAgB,CAAC,gBAAgB,CAAC,GAClC,mBAAmB,CAAC,gBAAgB,CAAC,UAa1C;IAGD,MAAM,MAAO,gBAAgB,CAAC,WAAW,CAAC,UAgBzC;IAED,WAAW,UAAW,MAAM,QAAQ,MAAM,KAAG,MAAM,CAElD;IAED,OAAO,MACF,UAAU,UACL,WAAW,QACb,WAAW,SACV,MAAM,cACD,MAAM,UA6BnB;IAED,SAAS,SAAU,WAAW,UAc7B;IAGD,MAAM,4DAyBL;IAGD,MAAM;CAsEP"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import '../../../assets/SimpleSlider.css';
|
|
2
|
+
import { jsxs as S, jsx as h } from "react/jsx-runtime";
|
|
3
|
+
import v from "react";
|
|
4
|
+
import T from "../../tags/icon-chip/IconChip.js";
|
|
5
|
+
import y from "../../tags/chip/Chip.js";
|
|
6
|
+
import D from "../../actions/knob/Knob.js";
|
|
7
|
+
import { r as f } from "../../../do-map-2nhWP1KI.js";
|
|
8
|
+
class P extends v.Component {
|
|
9
|
+
value;
|
|
10
|
+
static defaultProps = {
|
|
11
|
+
isBlocked: !1,
|
|
12
|
+
isDisabled: !1,
|
|
13
|
+
isNew: !1,
|
|
14
|
+
step: 1
|
|
15
|
+
};
|
|
16
|
+
constructor(t) {
|
|
17
|
+
super(t), this.state = {
|
|
18
|
+
isTooltipDisplay: !1
|
|
19
|
+
}, this.value = t.value;
|
|
20
|
+
}
|
|
21
|
+
componentDidUpdate = (t) => {
|
|
22
|
+
const { value: e } = this.props;
|
|
23
|
+
t.value !== e && (this.value = e);
|
|
24
|
+
};
|
|
25
|
+
// Handlers
|
|
26
|
+
validHandler = (t) => {
|
|
27
|
+
const { min: e, max: s, feature: o, onChange: i, step: u = 1 } = this.props, a = t.target;
|
|
28
|
+
if (a.value !== "") {
|
|
29
|
+
const p = parseFloat(a.value);
|
|
30
|
+
if (p < e) i(o, "TYPED", e);
|
|
31
|
+
else if (p > s) i(o, "TYPED", s);
|
|
32
|
+
else {
|
|
33
|
+
const c = this.roundToStep(p, u);
|
|
34
|
+
i(o, "TYPED", c);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
// Direct Actions
|
|
39
|
+
onGrab = (t) => {
|
|
40
|
+
const e = t.currentTarget, s = e.parentElement, o = t.clientX - e.getBoundingClientRect().left - e.getBoundingClientRect().width / 2, i = s.offsetWidth, u = s.parentElement;
|
|
41
|
+
e.style.zIndex = "2", document.onmousemove = (a) => this.onSlide(a, u, e, o, i), document.onmouseup = () => this.onRelease(e);
|
|
42
|
+
};
|
|
43
|
+
roundToStep = (t, e) => Math.round(t / e) * e;
|
|
44
|
+
onSlide = (t, e, s, o, i) => {
|
|
45
|
+
const { min: u, max: a, feature: p, onChange: c, step: d = 0.1 } = this.props, m = parseFloat(
|
|
46
|
+
window.getComputedStyle(e, null).getPropertyValue("padding-left")
|
|
47
|
+
);
|
|
48
|
+
let n = t.clientX - e.offsetLeft - m - o;
|
|
49
|
+
const r = 0, l = i;
|
|
50
|
+
n <= r ? n = r : n >= l && (n = l), s.style.left = f(n, 0, i, 0, 100).toFixed(1) + "%";
|
|
51
|
+
const g = f(n, 0, i, u, a);
|
|
52
|
+
this.value = this.roundToStep(g, d), this.value < u && (this.value = u), this.value > a && (this.value = a), this.setState({
|
|
53
|
+
isTooltipDisplay: !0
|
|
54
|
+
}), c(p, "UPDATING", this.value), document.body.style.cursor = "ew-resize";
|
|
55
|
+
};
|
|
56
|
+
onRelease = (t) => {
|
|
57
|
+
const { feature: e, onChange: s } = this.props;
|
|
58
|
+
document.onmousemove = null, document.onmouseup = null, t.onmouseup = null, t.style.zIndex = "1", this.setState({
|
|
59
|
+
isTooltipDisplay: !1
|
|
60
|
+
}), s(e, "RELEASED", this.value), document.body.style.cursor = "";
|
|
61
|
+
};
|
|
62
|
+
// Templates
|
|
63
|
+
Status = () => {
|
|
64
|
+
const { warning: t, isBlocked: e, isNew: s, onUnblock: o } = this.props;
|
|
65
|
+
if (t || e || s)
|
|
66
|
+
return /* @__PURE__ */ S("div", { className: "simple-slider__status", children: [
|
|
67
|
+
t !== void 0 && /* @__PURE__ */ h(
|
|
68
|
+
T,
|
|
69
|
+
{
|
|
70
|
+
iconType: "PICTO",
|
|
71
|
+
iconName: "warning",
|
|
72
|
+
text: t.label,
|
|
73
|
+
pin: t.pin,
|
|
74
|
+
type: t.type
|
|
75
|
+
}
|
|
76
|
+
),
|
|
77
|
+
(e || s) && /* @__PURE__ */ h(
|
|
78
|
+
y,
|
|
79
|
+
{
|
|
80
|
+
isSolo: !0,
|
|
81
|
+
action: e ? o : void 0,
|
|
82
|
+
children: s ? "New" : "Pro"
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
] });
|
|
86
|
+
};
|
|
87
|
+
// Render
|
|
88
|
+
render() {
|
|
89
|
+
const {
|
|
90
|
+
id: t,
|
|
91
|
+
label: e,
|
|
92
|
+
value: s,
|
|
93
|
+
min: o,
|
|
94
|
+
max: i,
|
|
95
|
+
colors: u,
|
|
96
|
+
feature: a,
|
|
97
|
+
isBlocked: p,
|
|
98
|
+
isDisabled: c,
|
|
99
|
+
onChange: d
|
|
100
|
+
} = this.props, { isTooltipDisplay: m } = this.state;
|
|
101
|
+
return /* @__PURE__ */ S(
|
|
102
|
+
"div",
|
|
103
|
+
{
|
|
104
|
+
className: "simple-slider",
|
|
105
|
+
role: "group",
|
|
106
|
+
"aria-label": e,
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ h(
|
|
109
|
+
"div",
|
|
110
|
+
{
|
|
111
|
+
className: "simple-slider__range",
|
|
112
|
+
role: "presentation",
|
|
113
|
+
style: {
|
|
114
|
+
background: `linear-gradient(90deg, ${u.min}, ${u.max})`
|
|
115
|
+
},
|
|
116
|
+
children: /* @__PURE__ */ h(
|
|
117
|
+
D,
|
|
118
|
+
{
|
|
119
|
+
id: t,
|
|
120
|
+
shortId: e,
|
|
121
|
+
value: s,
|
|
122
|
+
offset: f(s, o, i, 0, 100),
|
|
123
|
+
min: o.toString(),
|
|
124
|
+
max: i.toString(),
|
|
125
|
+
canBeTyped: !0,
|
|
126
|
+
isDisplayed: m,
|
|
127
|
+
isBlocked: p,
|
|
128
|
+
isDisabled: c,
|
|
129
|
+
onShiftRight: (n) => {
|
|
130
|
+
const { step: r = 1 } = this.props;
|
|
131
|
+
if (n.shiftKey) {
|
|
132
|
+
const l = this.roundToStep(s + 10, r);
|
|
133
|
+
d(a, "SHIFTED", l > i ? i : l);
|
|
134
|
+
} else {
|
|
135
|
+
const l = this.roundToStep(s + r, r);
|
|
136
|
+
d(a, "SHIFTED", l > i ? i : l);
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
onShiftLeft: (n) => {
|
|
140
|
+
const { step: r = 1 } = this.props;
|
|
141
|
+
if (n.shiftKey) {
|
|
142
|
+
const l = this.roundToStep(s - 10, r);
|
|
143
|
+
d(a, "SHIFTED", l < o ? o : l);
|
|
144
|
+
} else {
|
|
145
|
+
const l = this.roundToStep(s - r, r);
|
|
146
|
+
d(a, "SHIFTED", l < o ? o : l);
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
onMouseDown: (n) => {
|
|
150
|
+
this.onGrab(n), n.target.focus();
|
|
151
|
+
},
|
|
152
|
+
onValidStopValue: (n, r) => this.validHandler(r)
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
this.Status()
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
export {
|
|
164
|
+
P as default
|
|
165
|
+
};
|
|
166
|
+
//# sourceMappingURL=SimpleSlider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleSlider.js","sources":["../../../../src/components/inputs/simple-slider/SimpleSlider.tsx"],"sourcesContent":["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 { doMap } from '@a_ng_d/figmug-utils'\nimport './simple-slider.scss'\n\nexport interface SimpleSliderProps {\n /**\n * Unique identifier for the slider\n */\n id: string\n /**\n * Label text for the slider\n */\n label: string\n /**\n * Current value\n */\n value: number\n /**\n * Minimum allowed value\n */\n min: number\n /**\n * Maximum allowed value\n */\n max: number\n /**\n * Step increment\n * @default 1\n */\n step?: number\n /**\n * Colors for gradient display\n */\n colors: {\n /** Start color */\n min: string\n /** End color */\n max: 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 * Feature identifier for tracking\n */\n feature: string\n /**\n * Whether the slider is blocked\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether the slider is disabled\n * @default false\n */\n isDisabled?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n /**\n * Change handler\n */\n onChange: (feature: string, state: string, value: number) => void\n /**\n * Handler called when unblock is clicked\n */\n onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler\n}\n\nexport interface SimpleSliderStates {\n isTooltipDisplay: boolean\n}\n\nexport default class SimpleSlider extends React.Component<\n SimpleSliderProps,\n SimpleSliderStates\n> {\n private value: number\n\n static defaultProps: Partial<SimpleSliderProps> = {\n isBlocked: false,\n isDisabled: false,\n isNew: false,\n step: 1,\n }\n\n constructor(props: SimpleSliderProps) {\n super(props)\n this.state = {\n isTooltipDisplay: false,\n }\n this.value = props.value\n }\n\n componentDidUpdate = (previousProps: Readonly<SimpleSliderProps>) => {\n const { value } = this.props\n\n if (previousProps.value !== value) this.value = value\n }\n\n // Handlers\n validHandler = (\n e:\n | React.FocusEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n ) => {\n const { min, max, feature, onChange, step = 1 } = this.props\n const target = e.target as HTMLInputElement\n if (target.value !== '') {\n const parsedValue = parseFloat(target.value)\n if (parsedValue < min) onChange(feature, 'TYPED', min)\n else if (parsedValue > max) onChange(feature, 'TYPED', max)\n else {\n const roundedValue = this.roundToStep(parsedValue, step)\n onChange(feature, 'TYPED', roundedValue)\n }\n }\n }\n\n // Direct Actions\n onGrab = (e: React.MouseEvent<HTMLElement>) => {\n const stop = e.currentTarget as HTMLElement,\n range = stop.parentElement as HTMLElement,\n shift =\n e.clientX -\n stop.getBoundingClientRect().left -\n stop.getBoundingClientRect().width / 2,\n rangeWidth = range.offsetWidth as number,\n slider = range.parentElement as HTMLElement\n\n stop.style.zIndex = '2'\n\n document.onmousemove = (e) =>\n this.onSlide(e, slider, stop, shift, rangeWidth)\n\n document.onmouseup = () => this.onRelease(stop)\n }\n\n roundToStep = (value: number, step: number): number => {\n return Math.round(value / step) * step\n }\n\n onSlide = (\n e: MouseEvent,\n slider: HTMLElement,\n stop: HTMLElement,\n shift: number,\n rangeWidth: number\n ) => {\n const { min, max, feature, onChange, step = 0.1 } = this.props\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 const limitMin = 0\n const limitMax = rangeWidth\n\n if (offset <= limitMin) offset = limitMin\n else if (offset >= limitMax) offset = limitMax\n\n stop.style.left = doMap(offset, 0, rangeWidth, 0, 100).toFixed(1) + '%'\n\n const rawValue = doMap(offset, 0, rangeWidth, min, max)\n\n this.value = this.roundToStep(rawValue, step)\n\n if (this.value < min) this.value = min\n if (this.value > max) this.value = max\n\n this.setState({\n isTooltipDisplay: true,\n })\n\n onChange(feature, 'UPDATING', this.value)\n document.body.style.cursor = 'ew-resize'\n }\n\n onRelease = (stop: HTMLElement) => {\n const { feature, onChange } = this.props\n\n document.onmousemove = null\n document.onmouseup = null\n stop.onmouseup = null\n stop.style.zIndex = '1'\n\n this.setState({\n isTooltipDisplay: false,\n })\n\n onChange(feature, 'RELEASED', this.value)\n document.body.style.cursor = ''\n }\n\n // Templates\n Status = () => {\n const { warning, isBlocked, isNew, onUnblock } = this.props\n\n if (warning || isBlocked || isNew)\n return (\n <div className=\"simple-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 ? onUnblock : undefined}\n >\n {isNew ? 'New' : 'Pro'}\n </Chip>\n )}\n </div>\n )\n }\n\n // Render\n render() {\n const {\n id,\n label,\n value,\n min,\n max,\n colors,\n feature,\n isBlocked,\n isDisabled,\n onChange,\n } = this.props\n const { isTooltipDisplay } = this.state\n\n return (\n <div\n className=\"simple-slider\"\n role=\"group\"\n aria-label={label}\n >\n <div\n className=\"simple-slider__range\"\n role=\"presentation\"\n style={{\n background: `linear-gradient(90deg, ${colors.min}, ${colors.max})`,\n }}\n >\n <Knob\n id={id}\n shortId={label}\n value={value}\n offset={doMap(value, min, max, 0, 100)}\n min={min.toString()}\n max={max.toString()}\n canBeTyped={true}\n isDisplayed={isTooltipDisplay}\n isBlocked={isBlocked}\n isDisabled={isDisabled}\n onShiftRight={(e) => {\n const { step = 1 } = this.props\n if (e.shiftKey) {\n const newValue = this.roundToStep(value + 10, step)\n onChange(feature, 'SHIFTED', newValue > max ? max : newValue)\n } else {\n const newValue = this.roundToStep(value + step, step)\n onChange(feature, 'SHIFTED', newValue > max ? max : newValue)\n }\n }}\n onShiftLeft={(e) => {\n const { step = 1 } = this.props\n if (e.shiftKey) {\n const newValue = this.roundToStep(value - 10, step)\n onChange(feature, 'SHIFTED', newValue < min ? min : newValue)\n } else {\n const newValue = this.roundToStep(value - step, step)\n onChange(feature, 'SHIFTED', newValue < min ? min : newValue)\n }\n }}\n onMouseDown={(e: React.MouseEvent<HTMLElement>) => {\n this.onGrab(e)\n ;(e.target as HTMLElement).focus()\n }}\n onValidStopValue={(_stopId, e) => this.validHandler(e)}\n />\n </div>\n {this.Status()}\n </div>\n )\n }\n}\n"],"names":["SimpleSlider","React","props","previousProps","value","e","min","max","feature","onChange","step","target","parsedValue","roundedValue","stop","range","shift","rangeWidth","slider","sliderPadding","offset","limitMin","limitMax","doMap","rawValue","warning","isBlocked","isNew","onUnblock","jsxs","jsx","IconChip","Chip","id","label","colors","isDisabled","isTooltipDisplay","Knob","newValue","_stopId"],"mappings":"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"}
|