aio-range 2.0.1 → 2.0.2

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 (3) hide show
  1. package/index.d.ts +0 -9
  2. package/index.js +22 -35
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -23,7 +23,6 @@ export type AI_label = {
23
23
  zIndex?: number;
24
24
  setting: (value: number, p: {
25
25
  angle: number;
26
- disabled: boolean;
27
26
  index: number;
28
27
  }) => AI_labelItem;
29
28
  };
@@ -76,22 +75,18 @@ export type I_Range = {
76
75
  pointHtml?: (p: {
77
76
  index: number;
78
77
  value: number;
79
- disabled: boolean;
80
78
  angle: number;
81
79
  }) => ReactNode | false | undefined;
82
80
  pointContent?: (p: {
83
81
  index: number;
84
82
  value: number;
85
- disabled: boolean;
86
83
  angle: number;
87
84
  }) => ReactNode;
88
85
  pointOffset?: (p: {
89
86
  index: number;
90
87
  value: number;
91
- disabled: boolean;
92
88
  angle: number;
93
89
  }) => number | undefined;
94
- disabled?: (value: number) => boolean;
95
90
  fill?: (startPoint: {
96
91
  index: number;
97
92
  value: number;
@@ -107,7 +102,6 @@ export type I_Range = {
107
102
  handle?: (p: {
108
103
  index: number;
109
104
  value: number;
110
- disabled: boolean;
111
105
  angle: number;
112
106
  }) => {
113
107
  widthPercent?: number;
@@ -133,7 +127,6 @@ export declare const AIOSlider: FC<I_Range>;
133
127
  export declare const AIOSpinner: FC<I_Range>;
134
128
  type I_RangeValue = {
135
129
  value: number;
136
- disabled: boolean;
137
130
  angle: number;
138
131
  index: number;
139
132
  };
@@ -144,7 +137,6 @@ declare const useRange: (PROPS: I_Range, type: 'slider' | 'spinner') => {
144
137
  fixAngle: (angle: number) => number;
145
138
  getValueByAngle: (angle: number) => number;
146
139
  mainDom: any;
147
- isValueDisabled: (value: number) => boolean;
148
140
  rootProps: I_Range_default;
149
141
  getRootProps: (props: I_Range, type: 'slider' | 'spinner') => any;
150
142
  getLabelList: (label: AI_label) => number[];
@@ -188,7 +180,6 @@ declare const useRange: (PROPS: I_Range, type: 'slider' | 'spinner') => {
188
180
  };
189
181
  };
190
182
  getRangeValue: (itemValue: number, index: number) => {
191
- disabled: boolean;
192
183
  value: number;
193
184
  index: number;
194
185
  angle: number;
package/index.js CHANGED
@@ -197,8 +197,7 @@ const RangeLabel = (props) => {
197
197
  }
198
198
  const list = rangeHook.getLabelList(label);
199
199
  return (_jsx("div", { className: 'ai-range-labels', style: { zIndex }, children: list.map((itemValue, index) => {
200
- let disabled = rangeHook.isValueDisabled(itemValue);
201
- let labelItem = label.setting(itemValue, { disabled, angle: 0, index });
200
+ let labelItem = label.setting(itemValue, { angle: 0, index });
202
201
  if (props.type === "slider") {
203
202
  return (rangeHook.getSliderLabel(labelItem, itemValue));
204
203
  }
@@ -218,7 +217,7 @@ const AIRangePoint = ({ rangeValue, type }) => {
218
217
  return null;
219
218
  }
220
219
  const containerStyle = type === "spinner" ? rangeHook.getSpinnerPointContainerStyle(rangeValue) : rangeHook.getSliderPointContainerStyle(rangeValue);
221
- return (_jsx("div", { style: containerStyle, className: 'ai-range-point-container', draggable: false, "data-index": rangeValue.index, onMouseDown: () => rangeHook.handleZIndex(rangeValue.index), children: point }, 'rangepoint' + rangeValue.index));
220
+ return (_jsx("div", { style: containerStyle, className: 'ai-range-point-container', draggable: false, "data-range-index": rangeValue.index, onMouseDown: () => rangeHook.handleZIndex(rangeValue.index), children: point }, 'rangepoint' + rangeValue.index));
222
221
  };
223
222
  const useRange = (PROPS, type) => {
224
223
  const getProps = () => {
@@ -233,7 +232,7 @@ const useRange = (PROPS, type) => {
233
232
  const [values, setValues] = useState([]);
234
233
  const { vertical, reverse, start = 0, end = 100, min = start, max = end, step = 1, rotate = 0, round = 1, size = 72 } = props;
235
234
  useEffect(() => {
236
- if (!props.onChange || props.disabled === true) {
235
+ if (!props.onChange) {
237
236
  return;
238
237
  }
239
238
  clearTimeout(temp.timeOut);
@@ -250,7 +249,7 @@ const useRange = (PROPS, type) => {
250
249
  }
251
250
  let { event } = p;
252
251
  if (event.target !== null) {
253
- let index = UT.GetAttr($(event.target), 'data-index');
252
+ let index = UT.GetAttr($(event.target), 'data-range-index');
254
253
  temp.index = index === null ? false : +index;
255
254
  temp.start = [...values];
256
255
  }
@@ -273,7 +272,7 @@ const useRange = (PROPS, type) => {
273
272
  }, 100);
274
273
  }, [changeHandle]);
275
274
  function click(mousePosition) {
276
- if (props.disabled === true || temp.index !== false) {
275
+ if (props.disabled === true) {
277
276
  return;
278
277
  }
279
278
  let clickedValue;
@@ -301,17 +300,12 @@ const useRange = (PROPS, type) => {
301
300
  let newValue = getChangedValue(obj);
302
301
  changeValue(newValue);
303
302
  }
304
- function isValueDisabled(value) {
305
- const { rangeOption = {} } = props;
306
- const { disabled: d = () => false } = rangeOption;
307
- return d(value);
308
- }
309
303
  function getChangedValue(obj) {
310
304
  let { dx, dy, deltaCenterAngle, centerAngle } = obj;
311
305
  let startValue = [...temp.start];
312
306
  let index = temp.index;
313
307
  //agar faghat yek point darim har koja mousedown shod farz kon rooye oon point mousedown karde im
314
- if (startValue.length === 1 && index === false) {
308
+ if (startValue.length === 1 && index !== false) {
315
309
  index = 0;
316
310
  }
317
311
  let res;
@@ -325,8 +319,7 @@ const useRange = (PROPS, type) => {
325
319
  else {
326
320
  deltaValue = Math.round(getValueByXP(getXPByX(props.vertical ? dy : dx)) / props.step) * props.step;
327
321
  }
328
- let newValue = moveAll(startValue, deltaValue, true);
329
- res = !isValueValid(newValue) ? values : newValue;
322
+ res = moveAll(startValue, deltaValue, true);
330
323
  }
331
324
  else {
332
325
  let { before, after } = getIndexLimit(index);
@@ -344,9 +337,6 @@ const useRange = (PROPS, type) => {
344
337
  if (newUnitValue < before) {
345
338
  newUnitValue = before;
346
339
  }
347
- if (isValueDisabled(newUnitValue)) {
348
- newUnitValue = values[index];
349
- }
350
340
  startValue[index] = newUnitValue;
351
341
  res = startValue;
352
342
  }
@@ -354,12 +344,7 @@ const useRange = (PROPS, type) => {
354
344
  }
355
345
  function change1Unit(dir) {
356
346
  let newValue = [...values];
357
- let lastValue = JSON.stringify(newValue);
358
347
  newValue = moveAll(newValue, dir * props.step);
359
- while (!isValueValid(newValue) && JSON.stringify(newValue) !== lastValue) {
360
- lastValue = JSON.stringify(newValue);
361
- newValue = moveAll(newValue, dir * props.step);
362
- }
363
348
  changeValue(newValue);
364
349
  }
365
350
  function changeValue(newValue) {
@@ -369,14 +354,6 @@ const useRange = (PROPS, type) => {
369
354
  newValue = getValues(newValue);
370
355
  props.onChange(!!props.multiple ? newValue : newValue[0]);
371
356
  }
372
- function isValueValid(value) {
373
- for (let i = 0; i < value.length; i++) {
374
- if (isValueDisabled(value[i])) {
375
- return false;
376
- }
377
- }
378
- return true;
379
- }
380
357
  function getIndexLimit(index) {
381
358
  let before, after;
382
359
  if (index === 0) {
@@ -400,6 +377,13 @@ const useRange = (PROPS, type) => {
400
377
  }
401
378
  return res;
402
379
  }
380
+ const getFloatLength = (step) => {
381
+ const str = step.toString();
382
+ if (str.indexOf('.') === -1) {
383
+ return 0;
384
+ }
385
+ return str.split('.')[1].length;
386
+ };
403
387
  function getValues(value) {
404
388
  if (!Array.isArray(value)) {
405
389
  value = [value || 0];
@@ -407,8 +391,12 @@ const useRange = (PROPS, type) => {
407
391
  for (let i = 0; i < value.length; i++) {
408
392
  let point = value[i] || 0;
409
393
  point = Math.round((point - start) / step) * step + start;
410
- const { floatLength } = UT.Float(step);
411
- point = +point.toFixed(floatLength);
394
+ try {
395
+ point = +point.toFixed(getFloatLength(step));
396
+ }
397
+ catch (err) {
398
+ console.error(err.message);
399
+ }
412
400
  if (point < min) {
413
401
  point = min;
414
402
  }
@@ -518,8 +506,7 @@ const useRange = (PROPS, type) => {
518
506
  }
519
507
  const getRangeValue = (itemValue, index) => {
520
508
  let angle = fixAngle(getAngleByValue(itemValue));
521
- const disabled = isValueDisabled(itemValue);
522
- return { disabled, value: itemValue, index, angle };
509
+ return { value: itemValue, index, angle };
523
510
  };
524
511
  function getRootClassName(props, type) {
525
512
  let c = 'ai-range';
@@ -612,7 +599,7 @@ const useRange = (PROPS, type) => {
612
599
  return (_jsx("div", Object.assign({}, containerProps, { children: _jsx("div", Object.assign({}, htmlProps, { children: html })) })));
613
600
  }
614
601
  return {
615
- values, getValues, getSide, fixAngle, getValueByAngle, mainDom, isValueDisabled, rootProps: props, getRootProps, getLabelList,
602
+ values, getValues, getSide, fixAngle, getValueByAngle, mainDom, rootProps: props, getRootProps, getLabelList,
616
603
  getArc, getAngleByValue, getRectByStr, sbp, getXPByValue, getValueByXP, getXPByX, handleZIndex, getSpinnerLabel,
617
604
  getSliderPointContainerStyle, getSpinnerPointContainerStyle, getSliderValueProps, getSpinnerValueProps, getRangeValue,
618
605
  getSliderLabel
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aio-range",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "linear and circular range input",
5
5
  "main": "index.js",
6
6
  "scripts": {