{"version":3,"file":"js/4405-908dea6f130858ce392a.js","mappings":"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","sources":["webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/slider.jsx"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\nimport { is, List, Map, Iterable } from 'immutable'\nimport { NBSP } from '@aytm/lib/common/const'\nimport { stopEvent, touchMapper } from '@aytm/lib/common/func'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/slider.scss'\n\nexport default class Slider extends PureDataComponent {\n static propTypes = {\n value: PropTypes.number,\n positions: PropTypes.object.isRequired,\n minPosition: PropTypes.number,\n maxPosition: PropTypes.number,\n minLabelLeft: PropTypes.number,\n maxLabelLeft: PropTypes.number,\n fillFromPosition: PropTypes.number,\n maxFillPosition: PropTypes.number,\n defaultX: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n showTicks: PropTypes.bool,\n showLabel: PropTypes.bool,\n showLabelDragging: PropTypes.bool,\n showBorderTexts: PropTypes.bool,\n showFill: PropTypes.bool,\n showRange: PropTypes.bool,\n snapMove: PropTypes.bool,\n snapCenter: PropTypes.bool,\n snapPoles: PropTypes.bool,\n staticLabel: PropTypes.bool,\n width: PropTypes.number,\n labelPlaceholder: PropTypes.string,\n theme: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func\n }\n\n constructor(props) {\n super(props)\n this.state = {\n handleX: null,\n dragging: false,\n snapped: false,\n positions: null,\n snapToPosition: null\n }\n this.mouseDownHandler = null\n }\n\n addGlobalEvents() {\n const that = this\n\n const finalizeDrag = () => {\n that.setState({ dragging: false })\n that.snapHandler()\n const { onSubmit } = this.props\n const { positions, snapToPosition } = this.state\n if ('function' == typeof onSubmit && positions && snapToPosition)\n onSubmit(positions.indexOf(snapToPosition), snapToPosition)\n }\n const mouseUpHandler = event => {\n stopEvent(event)\n that.removeGlobalEvents()\n finalizeDrag()\n return false\n }\n const mouseMoveHandler = event => {\n if (0 === event.which) {\n that.removeGlobalEvents()\n finalizeDrag()\n } else if (that.state.dragging) {\n that.currentMouseX = event.clientX\n if (!that.timeOutId) {\n that.timeOutId = setTimeout(() => {\n that.updateHandleOnMouse(that.currentMouseX)\n clearTimeout(that.timeOutId)\n that.timeOutId = null\n }, 0)\n }\n if (-1 == that.renderedMouseX) {\n that.renderedMouseX = event.clientX\n that.updateHandleOnMouse(event.clientX)\n }\n }\n }\n\n if (null == this.parentDocument) {\n this.parentDocument = this.refRoot?.ownerDocument || document\n }\n if ('function' == typeof this.removeGlobalEvents) this.removeGlobalEvents()\n this.removeGlobalEvents = () => {\n this.parentDocument.removeEventListener('mouseup', mouseUpHandler, true)\n this.parentDocument.removeEventListener('mousemove', mouseMoveHandler, true)\n this.parentDocument.removeEventListener('touchend', touchMapper, true)\n this.parentDocument.removeEventListener('touchcancel', touchMapper, true)\n this.parentDocument.removeEventListener('touchmove', touchMapper, true)\n that.removeGlobalEvents = null\n }\n\n this.parentDocument.addEventListener('mouseup', mouseUpHandler, true)\n this.parentDocument.addEventListener('touchend', touchMapper, true)\n this.parentDocument.addEventListener('touchcancel', touchMapper, true)\n this.parentDocument.addEventListener('mousemove', mouseMoveHandler, true)\n this.parentDocument.addEventListener('touchmove', touchMapper, true)\n }\n\n mouseDown() {\n return (\n this.mouseDownHandler ||\n (this.mouseDownHandler = event => {\n if (0 === event.button) {\n stopEvent(event)\n this.setState({ dragging: true, snapped: false })\n this.updateHandleOnMouse(event.clientX)\n this.addGlobalEvents()\n return false\n }\n return true\n })\n )\n }\n\n updateHandleOnMouse(mouseX) {\n if (this.refRoot) {\n const { positions, snapToPosition } = this.state\n const { maxFillPosition } = this.props\n const stateUpdate = {}\n let doStateUpdate = false\n const sliderRect = this.refRoot.getBoundingClientRect()\n const relMouseX = Math.min(sliderRect.right, Math.max(sliderRect.left, mouseX)) - sliderRect.left\n const handleX = positions\n ? (() => {\n const minPositionIndex = parseInt(this.props.minPosition, 10)\n const maxPositionIndex = parseInt(this.props.maxPosition, 10)\n const minPosition = isNaN(minPositionIndex) ? positions.first() : positions.get(minPositionIndex)\n const maxPosition = isNaN(maxPositionIndex) ? positions.last() : positions.get(maxPositionIndex)\n return Math.min(\n Math.max(relMouseX, minPosition ? minPosition.get('x') : 0),\n maxPosition ? maxPosition.get('x') : 0\n )\n })()\n : relMouseX\n if (handleX != this.state.handleX) {\n stateUpdate.handleX = handleX\n doStateUpdate = true\n }\n if (positions && (handleX != this.state.handleX || !snapToPosition)) {\n // find closest position\n const { onChange, snapMove } = this.props\n const newSnapToPosition = positions.find(p => handleX >= p.get('l') && handleX <= p.get('r'))\n if (!newSnapToPosition) return\n if (maxFillPosition != null && newSnapToPosition.getIn(['data', 'i']) > maxFillPosition) return\n if (Boolean(snapMove) && newSnapToPosition) stateUpdate.handleX = newSnapToPosition.get('x')\n if (!is(newSnapToPosition, snapToPosition)) {\n stateUpdate.snapToPosition = newSnapToPosition\n doStateUpdate = true\n if ('function' === typeof onChange) onChange(positions.indexOf(newSnapToPosition), newSnapToPosition)\n }\n }\n if (doStateUpdate) this.setState(stateUpdate)\n }\n }\n\n recalcPositions(positions = this.props.positions) {\n if (this.refRoot) {\n const sliderRect = this.refRoot.getBoundingClientRect()\n const sliderWidth = sliderRect.right - sliderRect.left || this.props.width\n const pos = Iterable.isIterable(positions) ? positions : List(positions)\n const posAmount = positions.count()\n const sectionWidth = sliderWidth / (posAmount - 1)\n const halfSectionWidth = sectionWidth / 2\n const newPositions = pos.map((p, i) =>\n Map({\n id: p.get('id'), // position id\n text: p.get('text'), // position text\n data: p.delete('id').delete('text'), // additional data\n l: Math.max(i * sectionWidth - halfSectionWidth, 0), // left border of snap zone\n r: Math.min(i * sectionWidth + halfSectionWidth, sliderWidth), // right border of snap zone\n x: i * sectionWidth, // snap position\n w: sectionWidth // section width\n })\n )\n this.setState({ positions: newPositions })\n }\n }\n\n snapHandler() {\n const { onChange } = this.props\n const { positions, snapToPosition, handleX } = this.state\n if (snapToPosition) {\n const snap = (() => {\n const { width, snapCenter, snapPoles } = this.props\n const fillFromPosition = parseInt(this.props.fillFromPosition, 10) || 0\n const dx = (3 * width) / 100\n if (fillFromPosition > 0) {\n if (snapCenter) {\n const cp = positions.get(fillFromPosition)\n if (handleX >= cp.get('l') - dx && handleX <= cp.get('r') + dx) return cp\n }\n if (snapPoles) {\n const lp = positions.first()\n if (handleX >= lp.get('l') - dx && handleX <= lp.get('r') + dx) return lp\n const rp = positions.last()\n if (handleX >= rp.get('l') - dx && handleX <= rp.get('r') + dx) return rp\n }\n }\n return snapToPosition\n })()\n const snapX = snap.get('x')\n\n if (snapToPosition != snap) {\n this.setState({ snapToPosition: snap, snapped: true })\n if ('function' == typeof onChange) onChange(positions.indexOf(snap), snap)\n }\n\n if (handleX != snapX) this.setState({ handleX: snapX })\n }\n }\n\n getPositionByValue() {\n const { value } = this.props\n const { positions } = this.state\n return null != value && positions ? positions.get(value) : null\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n !this.state.dragging &&\n // nextProps.positions != this.props.positions ||\n // (nextProps.positions && !this.state.positions) ||\n nextProps.width != this.props.width\n ) {\n setTimeout(() => {\n this.recalcPositions()\n this.snapHandler()\n }, 0)\n }\n }\n\n componentDidMount() {\n super.componentDidMount()\n if (this.refRoot) {\n this.refRoot.addEventListener('mousedown', this.mouseDown(), true)\n this.refRoot.addEventListener('touchstart', touchMapper, { passive: true })\n }\n if (this.props.positions && !this.state.positions) this.recalcPositions(this.props.positions)\n }\n\n componentWillUnmount() {\n super.componentWillUnmount()\n if ('function' == typeof this.removeGlobalEvents) this.removeGlobalEvents()\n if (this.refRoot) {\n this.refRoot.removeEventListener('mousedown', this.mouseDown(), true)\n this.refRoot.removeEventListener('touchstart', touchMapper, true)\n }\n }\n\n componentDidUpdate() {\n const { minLabelLeft, maxLabelLeft, value } = this.props\n const label = this.refLabel\n const blabel = this.refBLabel\n const arrow = this.refArrow\n const slider = this.refRoot\n const ltext = this.refLText\n const rtext = this.refRText\n const labelarr = this.refLabelArr\n const showLabel = null == this.props.showLabel ? true : Boolean(this.props.showLabel)\n const staticLabel = null == this.props.staticLabel ? true : Boolean(this.props.staticLabel)\n const showLabelDragging = null == this.props.showLabelDragging ? showLabel : Boolean(this.props.showLabelDragging)\n const showBorderTexts =\n (null == value || this.state.dragging) &&\n this.props.showBorderTexts &&\n this.state.positions &&\n this.state.positions.count() > 1\n const sliderRect = slider.getBoundingClientRect()\n const sliderWidth = sliderRect.width\n const arrowRect = arrow.getBoundingClientRect()\n const arrowMid = arrowRect.left + arrowRect.width / 2 - sliderRect.left\n\n if ((showLabel || showLabelDragging) && label && arrow && slider) {\n const labelRect = label.getBoundingClientRect()\n const labelWidth = labelRect.width\n const labelMid = arrowMid - labelWidth / 2\n const labelLeft = staticLabel ? labelMid : Math.min(Math.max(labelMid, 0), sliderWidth - labelWidth)\n const labelStrictLeft = minLabelLeft != undefined && labelLeft < minLabelLeft ? minLabelLeft : labelLeft\n const labelStrictRight =\n maxLabelLeft != undefined && sliderWidth - labelWidth < labelStrictLeft\n ? sliderWidth - labelWidth - maxLabelLeft\n : labelStrictLeft\n label.style.left = `${labelStrictRight}px`\n }\n\n if (showLabelDragging && this.state.dragging && labelarr && arrow && slider) {\n const labelArrLeft = Math.min(Math.max(arrowMid, 10), sliderWidth - 10)\n labelarr.style.left = `${labelArrLeft}px`\n }\n\n if (showBorderTexts && ltext) {\n // const lTextRect = ltext.getBoundingClientRect()\n ltext.style.visibility = value != null ? 'hidden' : 'visible'\n }\n if (showBorderTexts && rtext) {\n // const rTextRect = rtext.getBoundingClientRect()\n rtext.style.visibility = value != null ? 'hidden' : 'visible'\n }\n\n if ((showLabel || showLabelDragging) && blabel && arrow && slider) {\n const blabelRect = blabel.getBoundingClientRect()\n const blabelWidth = blabelRect.width\n const blabelMid = arrowMid - blabelWidth / 2\n const blabelLeft = staticLabel ? blabelMid : Math.min(Math.max(blabelMid, 0), sliderWidth - blabelWidth)\n blabel.style.left = `${blabelLeft}px`\n }\n }\n\n //TODO: consider breaking into subrenders\n render() {\n const { positions, dragging, snapped, snapToPosition } = this.state\n const { showTicks, showFill, defaultX, value, labelPlaceholder, width, theme } = this.props\n const fillFromPosition = parseInt(this.props.fillFromPosition, 10) || 0\n const maxFillPosition = parseInt(this.props.maxFillPosition, 10) || 0\n const showLabel = null == this.props.showLabel ? true : Boolean(this.props.showLabel)\n const showLabelDragging = null == this.props.showLabelDragging ? showLabel : Boolean(this.props.showLabelDragging)\n const showBorderTexts =\n (null == value || dragging) && this.props.showBorderTexts && positions && positions.count() > 1\n const { handleX, labelText, bottomText } = (() => {\n if (dragging || snapped) {\n const snapToPositionText = snapToPosition && snapToPosition.get('text')\n const snapToPositionData = snapToPosition && snapToPosition.get('data')\n return {\n handleX: this.state.handleX,\n labelText: snapToPositionText ? snapToPositionText : labelPlaceholder,\n bottomText:\n snapToPositionData && snapToPositionData.has('bottomText') ? snapToPositionData.get('bottomText') : ''\n }\n } else {\n const selectedPosition = this.getPositionByValue(value)\n const selectedPositionX = selectedPosition && selectedPosition.get('x')\n const selectedPositionText = selectedPosition && selectedPosition.get('text')\n const selectedPositionData = selectedPosition && selectedPosition.get('data')\n return {\n handleX: selectedPositionX != null ? selectedPositionX : defaultX,\n labelText: selectedPositionText ? selectedPositionText : positions ? labelPlaceholder : '',\n bottomText:\n selectedPositionData && selectedPositionData.has('bottomText') ? selectedPositionData.get('bottomText') : ''\n }\n }\n })()\n const hasValue = null != value || dragging\n const { minPosition, maxPosition, showRange } = (() => {\n const minPositionIndex = parseInt(this.props.minPosition, 10)\n const maxPositionIndex = parseInt(this.props.maxPosition, 10)\n const minPosition = isNaN(minPositionIndex)\n ? positions\n ? positions.first()\n : null\n : positions\n ? positions.get(minPositionIndex)\n : null\n const maxPosition = isNaN(maxPositionIndex)\n ? positions\n ? positions.last()\n : null\n : positions\n ? positions.get(maxPositionIndex)\n : null\n return {\n minPosition: minPosition,\n maxPosition: maxPosition,\n showRange:\n null == this.props.showRange\n ? minPosition && maxPosition && (minPosition != positions.first() || maxPosition != positions.last())\n : this.props.showRange\n }\n })()\n const fillFromX =\n (positions ? (positions.has(fillFromPosition) ? positions.getIn([fillFromPosition, 'x']) : 0) : 0) || 0\n const fillEnableFromX =\n (positions ? (positions.has(maxFillPosition) ? positions.getIn([maxFillPosition, 'x']) : 0) : 0) || 0\n\n const { fillLeft, fillWidth } = showFill\n ? (() => {\n const fillToX = hasValue ? handleX : fillFromX\n return {\n fillLeft: (fillFromX < fillToX ? fillFromX : fillToX) || 0,\n fillWidth: (fillFromX < fillToX ? fillToX - fillFromX : fillFromX - fillToX) || 0\n }\n })()\n : { fillLeft: null, fillWidth: null }\n\n return (\n