@unoff/ui 1.21.0 → 1.21.1

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.
Files changed (112) hide show
  1. package/dist/assets/Card.css +1 -1
  2. package/dist/assets/Layout.css +1 -1
  3. package/dist/assets/MultipleSlider.css +1 -1
  4. package/dist/assets/Popin.css +1 -1
  5. package/dist/assets/SimpleSlider.css +1 -1
  6. package/dist/assets/styles/icons/icons.css +1 -1
  7. package/dist/assets/styles/icons/styles/figma.css +1 -1
  8. package/dist/components/actions/accordion/Accordion.d.ts.map +1 -1
  9. package/dist/components/actions/accordion/Accordion.js +6 -6
  10. package/dist/components/actions/accordion/Accordion.js.map +1 -1
  11. package/dist/components/actions/button/Button.d.ts.map +1 -1
  12. package/dist/components/actions/button/Button.figma.js +1 -1
  13. package/dist/components/actions/button/Button.js +87 -88
  14. package/dist/components/actions/button/Button.js.map +1 -1
  15. package/dist/components/actions/card/Card.d.ts.map +1 -1
  16. package/dist/components/actions/card/Card.js +1 -1
  17. package/dist/components/actions/card/Card.js.map +1 -1
  18. package/dist/components/actions/knob/Knob.js +1 -1
  19. package/dist/components/actions/knob/Knob.js.map +1 -1
  20. package/dist/components/actions/menu/Menu.js +4 -4
  21. package/dist/components/actions/menu/Menu.js.map +1 -1
  22. package/dist/components/assets/avatar/Avatar.js +6 -6
  23. package/dist/components/assets/avatar/Avatar.js.map +1 -1
  24. package/dist/components/assets/icon/Icon.figma.js +1 -1
  25. package/dist/components/assets/icon/Icon.js +6 -6
  26. package/dist/components/assets/icon/Icon.js.map +1 -1
  27. package/dist/components/assets/section-title/SectionTitle.js +1 -1
  28. package/dist/components/assets/section-title/SectionTitle.js.map +1 -1
  29. package/dist/components/assets/text/Text.js +1 -1
  30. package/dist/components/assets/text/Text.js.map +1 -1
  31. package/dist/components/dialogs/consent/Consent.js +1 -1
  32. package/dist/components/dialogs/consent/Consent.js.map +1 -1
  33. package/dist/components/dialogs/dialog/Dialog.d.ts.map +1 -1
  34. package/dist/components/dialogs/dialog/Dialog.js +4 -4
  35. package/dist/components/dialogs/dialog/Dialog.js.map +1 -1
  36. package/dist/components/dialogs/message/Message.js +1 -1
  37. package/dist/components/dialogs/message/Message.js.map +1 -1
  38. package/dist/components/dialogs/notification/Notification.js +4 -4
  39. package/dist/components/dialogs/notification/Notification.js.map +1 -1
  40. package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts.map +1 -1
  41. package/dist/components/dialogs/semantic-message/SemanticMessage.js +1 -1
  42. package/dist/components/dialogs/semantic-message/SemanticMessage.js.map +1 -1
  43. package/dist/components/inputs/dropdown/Dropdown.figma.js +1 -1
  44. package/dist/components/inputs/dropdown/Dropdown.js +1 -1
  45. package/dist/components/inputs/dropdown/Dropdown.js.map +1 -1
  46. package/dist/components/inputs/dropzone/Dropzone.js +4 -4
  47. package/dist/components/inputs/dropzone/Dropzone.js.map +1 -1
  48. package/dist/components/inputs/input/Input.figma.js +1 -1
  49. package/dist/components/inputs/input/Input.js +1 -1
  50. package/dist/components/inputs/input/Input.js.map +1 -1
  51. package/dist/components/inputs/inputs-bar/InputsBar.js +4 -4
  52. package/dist/components/inputs/inputs-bar/InputsBar.js.map +1 -1
  53. package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts +4 -4
  54. package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts.map +1 -1
  55. package/dist/components/inputs/multiple-slider/MultipleSlider.js +174 -155
  56. package/dist/components/inputs/multiple-slider/MultipleSlider.js.map +1 -1
  57. package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts +1 -1
  58. package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts.map +1 -1
  59. package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts +1 -1
  60. package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts.map +1 -1
  61. package/dist/components/inputs/select/Select.js +1 -1
  62. package/dist/components/inputs/select/Select.js.map +1 -1
  63. package/dist/components/inputs/simple-slider/SimpleSlider.d.ts +1 -1
  64. package/dist/components/inputs/simple-slider/SimpleSlider.d.ts.map +1 -1
  65. package/dist/components/inputs/simple-slider/SimpleSlider.js +78 -69
  66. package/dist/components/inputs/simple-slider/SimpleSlider.js.map +1 -1
  67. package/dist/components/lists/actions-item/ActionsItem.js +1 -1
  68. package/dist/components/lists/actions-item/ActionsItem.js.map +1 -1
  69. package/dist/components/lists/actions-list/ActionsList.d.ts.map +1 -1
  70. package/dist/components/lists/actions-list/ActionsList.js +1 -1
  71. package/dist/components/lists/actions-list/ActionsList.js.map +1 -1
  72. package/dist/components/lists/color-item/ColorItem.js +1 -1
  73. package/dist/components/lists/color-item/ColorItem.js.map +1 -1
  74. package/dist/components/lists/draggable-item/DraggableItem.js +6 -6
  75. package/dist/components/lists/draggable-item/DraggableItem.js.map +1 -1
  76. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js +1 -1
  77. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js.map +1 -1
  78. package/dist/components/lists/sortable-list/SortableList.js.map +1 -1
  79. package/dist/components/lists/tabs/Tabs.d.ts.map +1 -1
  80. package/dist/components/lists/tabs/Tabs.figma.js +1 -1
  81. package/dist/components/lists/tabs/Tabs.js +1 -1
  82. package/dist/components/lists/tabs/Tabs.js.map +1 -1
  83. package/dist/components/slots/bar/Bar.js.map +1 -1
  84. package/dist/components/slots/draggable-window/DraggableWindow.d.ts.map +1 -1
  85. package/dist/components/slots/draggable-window/DraggableWindow.js +6 -6
  86. package/dist/components/slots/draggable-window/DraggableWindow.js.map +1 -1
  87. package/dist/components/slots/drawer/Drawer.js.map +1 -1
  88. package/dist/components/slots/form-item/FormItem.js +1 -1
  89. package/dist/components/slots/form-item/FormItem.js.map +1 -1
  90. package/dist/components/slots/layout/Layout.js.map +1 -1
  91. package/dist/components/slots/list/List.js +4 -4
  92. package/dist/components/slots/list/List.js.map +1 -1
  93. package/dist/components/slots/popin/Popin.js +1 -1
  94. package/dist/components/slots/popin/Popin.js.map +1 -1
  95. package/dist/components/slots/section/Section.js.map +1 -1
  96. package/dist/components/slots/simple-item/SimpleItem.js.map +1 -1
  97. package/dist/components/tags/chip/Chip.figma.js +1 -1
  98. package/dist/components/tags/chip/Chip.js +6 -6
  99. package/dist/components/tags/chip/Chip.js.map +1 -1
  100. package/dist/components/tags/color-chip/ColorChip.js.map +1 -1
  101. package/dist/components/tags/icon-chip/IconChip.d.ts.map +1 -1
  102. package/dist/components/tags/icon-chip/IconChip.js +4 -4
  103. package/dist/components/tags/icon-chip/IconChip.js.map +1 -1
  104. package/dist/components/tags/tooltip/Tooltip.js +1 -1
  105. package/dist/components/tags/tooltip/Tooltip.js.map +1 -1
  106. package/dist/do-classnames-DSDFCvzy.js.map +1 -1
  107. package/dist/do-map-2nhWP1KI.js.map +1 -1
  108. package/dist/index_react-BkjUklDQ.js +18392 -0
  109. package/dist/index_react-BkjUklDQ.js.map +1 -0
  110. package/package.json +3 -3
  111. package/dist/index_react-CmuCVQet.js +0 -13799
  112. package/dist/index_react-CmuCVQet.js.map +0 -1
@@ -1 +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]}
1
+ {"version":3,"file":"MultipleSlider.js","sources":["../../../../node_modules/@unoff/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 shift: boolean,\n minRange: number,\n maxRange: number,\n step: number = 1\n) => {\n const stopsList: Array<string> = []\n const shiftValue = shift ? step * 10 : step\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 shift: boolean,\n minRange: number,\n maxRange: number,\n step: number = 1\n) => {\n const stopsList: Array<string> = []\n const shiftValue = shift ? step * 10 : step\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 '@unoff/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 { doClassnames, doMap, Easing } from '@unoff/utils'\nimport { doScale } from '@unoff/utils'\nimport IconChip from '@components/tags/icon-chip/IconChip'\nimport Chip from '@components/tags/chip/Chip'\nimport Knob from '@components/actions/knob/Knob'\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 rangeRect = range.getBoundingClientRect(),\n rangeWidth = rangeRect.width 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 rangeRect,\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 _: HTMLElement,\n range: HTMLElement,\n stops: Array<HTMLElement>,\n stop: HTMLElement,\n shift: number,\n rangeWidth: number,\n rangeRect: DOMRect,\n update: (e: UpdateEvent) => void\n ) => {\n const { min, max, step = 0.1 } = this.props.range\n let offset = e.clientX - rangeRect.left - 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 if (step >= 1) {\n const currentValue = parseFloat(\n doMap(\n parseFloat(stop.style.left.replace('%', '')),\n 0,\n 100,\n min,\n max\n ).toFixed(precision)\n )\n const newValue = parseFloat(steppedValue.toFixed(precision))\n\n if (currentValue !== newValue) {\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 }\n } else {\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 }\n\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, isShift: boolean) => {\n const { scale, onChange } = this.props\n const { min, max, step = 1 } = this.props.range\n\n const results = shiftRightStop(scale, knob, isShift, min, max, step)\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, isShift: boolean) => {\n const { scale, onChange } = this.props\n const { min, max, step = 1 } = this.props.range\n\n const results = shiftLeftStop(scale, knob, isShift, min, max, step)\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.shiftKey)\n }}\n onShiftLeft={(e: React.KeyboardEvent<HTMLInputElement>) => {\n this.onShiftLeft(e.target as HTMLElement, e.shiftKey)\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.shiftKey)\n }}\n onShiftLeft={(e: React.KeyboardEvent<HTMLInputElement>) => {\n this.onShiftLeft(e.target as HTMLElement, e.shiftKey)\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","shift","minRange","maxRange","step","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","precision","rangeRect","rangeWidth","slider","stops","update","event","min","max","rawValue","steppedValue","currentValue","newValue","newPosition","results","knob","isShift","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]}
@@ -1,4 +1,4 @@
1
- declare const shiftLeftStop: (scale: Record<string, number>, selectedKnob: HTMLElement, meta: boolean, ctrl: boolean, minRange: number, maxRange: number) => {
1
+ declare const shiftLeftStop: (scale: Record<string, number>, selectedKnob: HTMLElement, shift: boolean, minRange: number, maxRange: number, step?: number) => {
2
2
  scale: Record<string, number>;
3
3
  };
4
4
  export default shiftLeftStop;
@@ -1 +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"}
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,SAClB,OAAO,YACJ,MAAM,YACN,MAAM,SACV,MAAM;;CA4Bb,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -1,4 +1,4 @@
1
- declare const shiftRightStop: (scale: Record<string, number>, selectedKnob: HTMLElement, meta: boolean, ctrl: boolean, minRange: number, maxRange: number) => {
1
+ declare const shiftRightStop: (scale: Record<string, number>, selectedKnob: HTMLElement, shift: boolean, minRange: number, maxRange: number, step?: number) => {
2
2
  scale: Record<string, number>;
3
3
  };
4
4
  export default shiftRightStop;
@@ -1 +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"}
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,SAClB,OAAO,YACJ,MAAM,YACN,MAAM,SACV,MAAM;;CA4Bb,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,11 +1,11 @@
1
1
  import '../../../assets/Select.css';
2
2
  import { jsxs as n, jsx as i } from "react/jsx-runtime";
3
3
  import w from "react";
4
+ import { t as m } from "../../../do-classnames-DSDFCvzy.js";
4
5
  import T from "../../../styles/layouts.module.js";
5
6
  import N from "../../tags/tooltip/Tooltip.js";
6
7
  import S from "../../tags/icon-chip/IconChip.js";
7
8
  import x from "../../tags/chip/Chip.js";
8
- import { t as m } from "../../../do-classnames-DSDFCvzy.js";
9
9
  class I extends w.Component {
10
10
  inputRef = w.createRef();
11
11
  static defaultProps = {
@@ -1 +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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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/inputs/select/Select.tsx"],"sourcesContent":["import React from 'react'\nimport { doClassnames } from '@unoff/utils'\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 './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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"}
@@ -85,7 +85,7 @@ export default class SimpleSlider extends React.Component<SimpleSliderProps, Sim
85
85
  validHandler: (e: React.FocusEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>) => void;
86
86
  onGrab: (e: React.MouseEvent<HTMLElement>) => void;
87
87
  roundToStep: (value: number, step: number) => number;
88
- onSlide: (e: MouseEvent, slider: HTMLElement, stop: HTMLElement, shift: number, rangeWidth: number) => void;
88
+ onSlide: (e: MouseEvent, _: HTMLElement, stop: HTMLElement, shift: number, rangeWidth: number, rangeRect: DOMRect) => void;
89
89
  onRelease: (stop: HTMLElement) => void;
90
90
  Status: () => import("react/jsx-runtime").JSX.Element | undefined;
91
91
  render(): import("react/jsx-runtime").JSX.Element;
@@ -1 +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"}
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,UAiBzC;IAED,WAAW,UAAW,MAAM,QAAQ,MAAM,KAAG,MAAM,CAElD;IAED,OAAO,MACF,UAAU,KACV,WAAW,QACR,WAAW,SACV,MAAM,cACD,MAAM,aACP,OAAO,UA6CnB;IAED,SAAS,SAAU,WAAW,UAgB7B;IAGD,MAAM,4DAyBL;IAGD,MAAM;CAsEP"}
@@ -1,11 +1,11 @@
1
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";
2
+ import { jsxs as T, jsx as m } from "react/jsx-runtime";
3
+ import D from "react";
7
4
  import { r as f } from "../../../do-map-2nhWP1KI.js";
8
- class P extends v.Component {
5
+ import x from "../../tags/icon-chip/IconChip.js";
6
+ import w from "../../tags/chip/Chip.js";
7
+ import b from "../../actions/knob/Knob.js";
8
+ class B extends D.Component {
9
9
  value;
10
10
  static defaultProps = {
11
11
  isBlocked: !1,
@@ -24,48 +24,57 @@ class P extends v.Component {
24
24
  };
25
25
  // Handlers
26
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);
27
+ const { min: e, max: s, feature: i, onChange: o, step: p = 1 } = this.props, n = t.target;
28
+ if (n.value !== "") {
29
+ const u = parseFloat(n.value);
30
+ if (u < e) o(i, "TYPED", e);
31
+ else if (u > s) o(i, "TYPED", s);
32
32
  else {
33
- const c = this.roundToStep(p, u);
34
- i(o, "TYPED", c);
33
+ const c = this.roundToStep(u, p);
34
+ o(i, "TYPED", c);
35
35
  }
36
36
  }
37
37
  };
38
38
  // Direct Actions
39
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);
40
+ const e = t.currentTarget, s = e.parentElement, i = t.clientX - e.getBoundingClientRect().left - e.getBoundingClientRect().width / 2, o = s.getBoundingClientRect(), p = o.width, n = s.parentElement;
41
+ e.style.zIndex = "2", document.onmousemove = (u) => this.onSlide(u, n, e, i, p, o), document.onmouseup = () => this.onRelease(e);
42
42
  };
43
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";
44
+ onSlide = (t, e, s, i, o, p) => {
45
+ const { min: n, max: u, feature: c, onChange: d, step: h = 1 } = this.props;
46
+ let l = t.clientX - p.left - i;
47
+ const a = 0, r = o;
48
+ l <= a ? l = a : l >= r && (l = r);
49
+ const v = f(l, 0, o, n, u);
50
+ if (h >= 1) {
51
+ const g = this.roundToStep(v, h), S = Math.max(n, Math.min(u, g));
52
+ if (this.value !== S) {
53
+ this.value = S;
54
+ const y = f(this.value, n, u, 0, 100);
55
+ s.style.left = y.toFixed(1) + "%", this.setState({
56
+ isTooltipDisplay: !0
57
+ }), d(c, "UPDATING", this.value);
58
+ }
59
+ } else
60
+ this.value = v, this.value < n && (this.value = n), this.value > u && (this.value = u), s.style.left = f(l, 0, o, 0, 100).toFixed(1) + "%", this.setState({
61
+ isTooltipDisplay: !0
62
+ }), d(c, "UPDATING", this.value);
63
+ document.body.style.cursor = "ew-resize";
55
64
  };
56
65
  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({
66
+ const { feature: e, onChange: s, step: i = 1 } = this.props;
67
+ document.onmousemove = null, document.onmouseup = null, t.onmouseup = null, t.style.zIndex = "1", this.value = this.roundToStep(this.value, i), this.setState({
59
68
  isTooltipDisplay: !1
60
69
  }), s(e, "RELEASED", this.value), document.body.style.cursor = "";
61
70
  };
62
71
  // Templates
63
72
  Status = () => {
64
- const { warning: t, isBlocked: e, isNew: s, onUnblock: o } = this.props;
73
+ const { warning: t, isBlocked: e, isNew: s, onUnblock: i } = this.props;
65
74
  if (t || e || s)
66
- return /* @__PURE__ */ S("div", { className: "simple-slider__status", children: [
67
- t !== void 0 && /* @__PURE__ */ h(
68
- T,
75
+ return /* @__PURE__ */ T("div", { className: "simple-slider__status", children: [
76
+ t !== void 0 && /* @__PURE__ */ m(
77
+ x,
69
78
  {
70
79
  iconType: "PICTO",
71
80
  iconName: "warning",
@@ -74,11 +83,11 @@ class P extends v.Component {
74
83
  type: t.type
75
84
  }
76
85
  ),
77
- (e || s) && /* @__PURE__ */ h(
78
- y,
86
+ (e || s) && /* @__PURE__ */ m(
87
+ w,
79
88
  {
80
89
  isSolo: !0,
81
- action: e ? o : void 0,
90
+ action: e ? i : void 0,
82
91
  children: s ? "New" : "Pro"
83
92
  }
84
93
  )
@@ -90,66 +99,66 @@ class P extends v.Component {
90
99
  id: t,
91
100
  label: e,
92
101
  value: s,
93
- min: o,
94
- max: i,
95
- colors: u,
96
- feature: a,
97
- isBlocked: p,
102
+ min: i,
103
+ max: o,
104
+ colors: p,
105
+ feature: n,
106
+ isBlocked: u,
98
107
  isDisabled: c,
99
108
  onChange: d
100
- } = this.props, { isTooltipDisplay: m } = this.state;
101
- return /* @__PURE__ */ S(
109
+ } = this.props, { isTooltipDisplay: h } = this.state;
110
+ return /* @__PURE__ */ T(
102
111
  "div",
103
112
  {
104
113
  className: "simple-slider",
105
114
  role: "group",
106
115
  "aria-label": e,
107
116
  children: [
108
- /* @__PURE__ */ h(
117
+ /* @__PURE__ */ m(
109
118
  "div",
110
119
  {
111
120
  className: "simple-slider__range",
112
121
  role: "presentation",
113
122
  style: {
114
- background: `linear-gradient(90deg, ${u.min}, ${u.max})`
123
+ background: `linear-gradient(90deg, ${p.min}, ${p.max})`
115
124
  },
116
- children: /* @__PURE__ */ h(
117
- D,
125
+ children: /* @__PURE__ */ m(
126
+ b,
118
127
  {
119
128
  id: t,
120
129
  shortId: e,
121
130
  value: s,
122
- offset: f(s, o, i, 0, 100),
123
- min: o.toString(),
124
- max: i.toString(),
131
+ offset: f(s, i, o, 0, 100),
132
+ min: i.toString(),
133
+ max: o.toString(),
125
134
  canBeTyped: !0,
126
- isDisplayed: m,
127
- isBlocked: p,
135
+ isDisplayed: h,
136
+ isBlocked: u,
128
137
  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);
138
+ onShiftRight: (l) => {
139
+ const { step: a = 1 } = this.props;
140
+ if (l.shiftKey) {
141
+ const r = this.roundToStep(s + a * 10, a);
142
+ d(n, "SHIFTED", r > o ? o : r);
134
143
  } else {
135
- const l = this.roundToStep(s + r, r);
136
- d(a, "SHIFTED", l > i ? i : l);
144
+ const r = this.roundToStep(s + a, a);
145
+ d(n, "SHIFTED", r > o ? o : r);
137
146
  }
138
147
  },
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);
148
+ onShiftLeft: (l) => {
149
+ const { step: a = 1 } = this.props;
150
+ if (l.shiftKey) {
151
+ const r = this.roundToStep(s - a * 10, a);
152
+ d(n, "SHIFTED", r < i ? i : r);
144
153
  } else {
145
- const l = this.roundToStep(s - r, r);
146
- d(a, "SHIFTED", l < o ? o : l);
154
+ const r = this.roundToStep(s - a, a);
155
+ d(n, "SHIFTED", r < i ? i : r);
147
156
  }
148
157
  },
149
- onMouseDown: (n) => {
150
- this.onGrab(n), n.target.focus();
158
+ onMouseDown: (l) => {
159
+ this.onGrab(l), l.target.focus();
151
160
  },
152
- onValidStopValue: (n, r) => this.validHandler(r)
161
+ onValidStopValue: (l, a) => this.validHandler(a)
153
162
  }
154
163
  )
155
164
  }
@@ -161,6 +170,6 @@ class P extends v.Component {
161
170
  }
162
171
  }
163
172
  export {
164
- P as default
173
+ B as default
165
174
  };
166
175
  //# sourceMappingURL=SimpleSlider.js.map