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.
- package/index.d.ts +0 -9
- package/index.js +22 -35
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
411
|
-
|
|
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
|
-
|
|
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,
|
|
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
|