@onesy/ui-react 1.0.180 → 1.0.182

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.
@@ -223,17 +223,22 @@ const DatePicker = props__ => {
223
223
  const touch = useMediaQuery('(pointer: coarse)', {
224
224
  element: refs.root.current
225
225
  });
226
+ const onResolveValue = valueNew => {
227
+ const array = (is('array', valueNew) ? valueNew : [valueNew]).filter(Boolean);
228
+ const sorted = array.sort((a, b) => a?.milliseconds - b?.milliseconds);
229
+ return sorted;
230
+ };
226
231
  const [value, setValue] = React.useState(() => {
227
232
  const valueResult = (valueDefault !== undefined ? valueDefault : value_) || now && (range ? [new OnesyDate(), new OnesyDate()] : [new OnesyDate()]);
228
- return (is('array', valueResult) ? valueResult : [valueResult]).filter(Boolean);
233
+ return onResolveValue(valueResult);
229
234
  });
230
235
  const [calendar, setCalendar] = React.useState((calendarDefault !== undefined ? calendarDefault : calendar_) || new OnesyDate());
231
236
  const [open, setOpen] = React.useState(false);
232
237
  const [mode, setMode] = React.useState((touch ? openMobile : 'select') || 'select');
233
238
  const [error, setError] = React.useState(false);
234
- const valueToInput = (valueNew = value) => {
239
+ const valueToInput = (valueNew_0 = value) => {
235
240
  let result_0 = '';
236
- const [from, to] = is('array', valueNew) ? valueNew : [valueNew];
241
+ const [from, to] = is('array', valueNew_0) ? valueNew_0 : [valueNew_0];
237
242
  if (!(from || to)) return '';
238
243
  const method = item_0 => `${format(item_0, 'DD', {
239
244
  l
@@ -253,24 +258,24 @@ const DatePicker = props__ => {
253
258
  if (touch) version = 'mobile';else version = 'desktop';
254
259
  }
255
260
  const onUpdateValue = valueNew_ => {
256
- const valueNew_0 = is('array', valueNew_) ? valueNew_ : [valueNew_];
261
+ const valueNew_1 = onResolveValue(valueNew_);
257
262
  const dateNow = new OnesyDate();
258
263
 
259
264
  // Update value
260
- setValue(valueNew_0);
265
+ setValue(valueNew_1);
261
266
 
262
267
  // Update calendar
263
- onUpdateCalendar(valueNew_0[0] || dateNow);
268
+ onUpdateCalendar(valueNew_1[0] || dateNow);
264
269
 
265
270
  // Update input
266
- setInput(valueToInput(valueNew_0));
271
+ setInput(valueToInput(valueNew_1));
267
272
 
268
273
  // Update input modal
269
- setInputModal(valueToInput(valueNew_0));
274
+ setInputModal(valueToInput(valueNew_1));
270
275
  };
271
- const errorCheck = (valueNew_1 = value) => {
276
+ const errorCheck = (valueNew_2 = value) => {
272
277
  // Error
273
- setError((valueNew_1 || []).some((item_1, index) => !valid(item_1)));
278
+ setError((valueNew_2 || []).some((item_1, index) => !valid(item_1)));
274
279
  };
275
280
 
276
281
  // Init
@@ -281,22 +286,22 @@ const DatePicker = props__ => {
281
286
 
282
287
  // Value
283
288
  React.useEffect(() => {
284
- if (value_ !== undefined && value_ !== value) onUpdateValue((is('array', value_) ? value_ : [value_]).filter(Boolean));
289
+ if (value_ !== undefined && value_ !== value) onUpdateValue(value_);
285
290
  }, [value_]);
286
291
 
287
292
  // Calendar
288
293
  React.useEffect(() => {
289
294
  if (calendar_ !== undefined && calendar_ !== calendar) setCalendar(calendar_);
290
295
  }, [calendar_]);
291
- const onUpdate = valueNew_2 => {
296
+ const onUpdate = valueNew_3 => {
292
297
  // Inner update
293
- if (!props.hasOwnProperty('value')) setValue(valueNew_2);
294
- if (is('function', onChange)) onChange(!range ? valueNew_2[0] : valueNew_2);
298
+ if (!props.hasOwnProperty('value')) setValue(valueNew_3);
299
+ if (is('function', onChange)) onChange(!range ? valueNew_3[0] : valueNew_3);
295
300
  };
296
- const onUpdateCalendar = valueNew_3 => {
301
+ const onUpdateCalendar = valueNew_4 => {
297
302
  // Inner update
298
- if (!props.hasOwnProperty('calendar')) setCalendar(valueNew_3);
299
- if (is('function', onChangeCalendar)) onChangeCalendar(valueNew_3);
303
+ if (!props.hasOwnProperty('calendar')) setCalendar(valueNew_4);
304
+ if (is('function', onChangeCalendar)) onChangeCalendar(valueNew_4);
300
305
  };
301
306
 
302
307
  // Update only internally, without using onChange
@@ -304,24 +309,24 @@ const DatePicker = props__ => {
304
309
  // only use onChange on
305
310
  // input change, or ok
306
311
  const onCalendarChange = valueNew__0 => {
307
- const valueNew_4 = is('array', valueNew__0) ? valueNew__0 : [valueNew__0];
308
- if (valueNew_4 !== value) {
309
- (!actions_ ? onUpdate : setValue)(valueNew_4);
312
+ const valueNew_5 = onResolveValue(valueNew__0);
313
+ if (valueNew_5 !== value) {
314
+ (!actions_ ? onUpdate : setValue)(valueNew_5);
310
315
 
311
316
  // Update input modal
312
- setInputModal(valueToInput(valueNew_4));
317
+ setInputModal(valueToInput(valueNew_5));
313
318
  }
314
319
  };
315
- const onCalendarChangeCalendar = valueNew_5 => {
316
- if (valueNew_5 !== calendar) onUpdateCalendar(valueNew_5);
320
+ const onCalendarChangeCalendar = valueNew_6 => {
321
+ if (valueNew_6 !== calendar) onUpdateCalendar(valueNew_6);
317
322
  };
318
323
  const inputToValue = (valueNew__1 = input) => {
319
- let valueNew_6 = valueNew__1;
320
- let [from_0, to_0] = valueNew_6.split(SEPARATOR);
324
+ let valueNew_7 = valueNew__1;
325
+ let [from_0, to_0] = valueNew_7.split(SEPARATOR);
321
326
  from_0 = textToOnesyDate(from_0);
322
327
  if (to_0) to_0 = textToOnesyDate(to_0, false);
323
- valueNew_6 = [from_0, to_0].filter(Boolean);
324
- return valueNew_6;
328
+ valueNew_7 = [from_0, to_0].filter(Boolean);
329
+ return valueNew_7;
325
330
  };
326
331
  const onOpen = () => {
327
332
  onMode();
@@ -332,67 +337,67 @@ const DatePicker = props__ => {
332
337
  if (is('function', onClose_)) onClose_(event);
333
338
  };
334
339
  const onReset = () => {
335
- let valueNew_7 = inputToValue();
336
- const isValid = valueNew_7 && valueNew_7?.[0]?.valid;
340
+ let valueNew_8 = inputToValue();
341
+ const isValid = valueNew_8 && valueNew_8?.[0]?.valid;
337
342
  if (isValid) {
338
343
  // Update value
339
- onUpdate(valueNew_7);
344
+ onUpdate(valueNew_8);
340
345
 
341
346
  // Update calendar
342
- onUpdateCalendar(valueNew_7[0]);
347
+ onUpdateCalendar(valueNew_8[0]);
343
348
 
344
349
  // Update input modal
345
350
  setInputModal(input);
346
351
  } else {
347
352
  const dateNow_0 = new OnesyDate();
348
- valueNew_7 = [];
353
+ valueNew_8 = [];
349
354
 
350
355
  // Update value
351
- onUpdate(valueNew_7);
356
+ onUpdate(valueNew_8);
352
357
 
353
358
  // Update calendar
354
359
  onUpdateCalendar(dateNow_0);
355
360
 
356
361
  // Update input
357
- setInput(valueToInput(valueNew_7));
362
+ setInput(valueToInput(valueNew_8));
358
363
 
359
364
  // Update input modal
360
- setInputModal(valueToInput(valueNew_7));
365
+ setInputModal(valueToInput(valueNew_8));
361
366
  }
362
367
  };
363
368
  const onToday = event_0 => {
364
- const valueNew_8 = [startOf(new OnesyDate(), 'day')];
365
- if (range) valueNew_8.push(endOf(new OnesyDate(), 'day'));
369
+ const valueNew_9 = [startOf(new OnesyDate(), 'day')];
370
+ if (range) valueNew_9.push(endOf(new OnesyDate(), 'day'));
366
371
 
367
372
  // Update value
368
- onUpdate(valueNew_8);
373
+ onUpdate(valueNew_9);
369
374
 
370
375
  // Update calendar
371
- onUpdateCalendar(valueNew_8[0]);
376
+ onUpdateCalendar(valueNew_9[0]);
372
377
 
373
378
  // Update input
374
- setInput(valueToInput(valueNew_8));
379
+ setInput(valueToInput(valueNew_9));
375
380
 
376
381
  // Update input modal
377
- setInputModal(valueToInput(valueNew_8));
382
+ setInputModal(valueToInput(valueNew_9));
378
383
  onClose(event_0);
379
384
  if (is('function', onToday_)) onToday_(event_0);
380
385
  };
381
386
  const onClear = event_1 => {
382
387
  const dateNow_1 = new OnesyDate();
383
- const valueNew_9 = [];
388
+ const valueNew_10 = [];
384
389
 
385
390
  // Update value
386
- onUpdate(valueNew_9);
391
+ onUpdate(valueNew_10);
387
392
 
388
393
  // Update calendar
389
394
  onUpdateCalendar(dateNow_1);
390
395
 
391
396
  // Update input
392
- setInput(valueToInput(valueNew_9));
397
+ setInput(valueToInput(valueNew_10));
393
398
 
394
399
  // Update input modal
395
- setInputModal(valueToInput(valueNew_9));
400
+ setInputModal(valueToInput(valueNew_10));
396
401
  onClose(event_1);
397
402
  if (is('function', onClear_)) onClear_(event_1);
398
403
  };
@@ -428,26 +433,26 @@ const DatePicker = props__ => {
428
433
  }
429
434
  return true;
430
435
  };
431
- const textToOnesyDate = (valueNew_10, start = true) => {
432
- const [valueDay, valueMonth, valueYear] = (valueNew_10 || '').split('/');
436
+ const textToOnesyDate = (valueNew_11, start = true) => {
437
+ const [valueDay, valueMonth, valueYear] = (valueNew_11 || '').split('/');
433
438
  const onesyDate_0 = new OnesyDate(new Date(`${valueMonth}/${valueDay}/${valueYear}`));
434
439
  return start ? startOf(onesyDate_0, 'day') : endOf(onesyDate_0, 'day');
435
440
  };
436
441
  const onInputChange = valueNew__2 => {
437
- const valueNew_11 = inputToValue(valueNew__2);
438
- const validValues = valueNew_11.every(item_2 => item_2.valid);
442
+ const valueNew_12 = inputToValue(valueNew__2);
443
+ const validValues = valueNew_12.every(item_2 => item_2.valid);
439
444
 
440
445
  // Only update values if input is valid
441
446
  // format used to make the value
442
447
  if (validValues) {
443
448
  // Error
444
- errorCheck(valueNew_11);
449
+ errorCheck(valueNew_12);
445
450
 
446
451
  // Update value
447
- onUpdate(valueNew_11);
452
+ onUpdate(valueNew_12);
448
453
 
449
454
  // Update calendar
450
- onUpdateCalendar(valueNew_11[0]);
455
+ onUpdateCalendar(valueNew_12[0]);
451
456
  }
452
457
  if (!valueNew__2) {
453
458
  onUpdate([null, null]);
@@ -457,20 +462,20 @@ const DatePicker = props__ => {
457
462
  setInput(valueNew__2);
458
463
  };
459
464
  const onInputChangeModal = valueNew__3 => {
460
- const valueNew_12 = inputToValue(valueNew__3);
461
- const validValues_0 = valueNew_12.every(item_3 => item_3.valid);
465
+ const valueNew_13 = inputToValue(valueNew__3);
466
+ const validValues_0 = valueNew_13.every(item_3 => item_3.valid);
462
467
 
463
468
  // Only update values if input is valid
464
469
  // format used to make the value
465
470
  if (validValues_0) {
466
471
  // Error
467
- errorCheck(valueNew_12);
472
+ errorCheck(valueNew_13);
468
473
 
469
474
  // Update value
470
- onUpdate(valueNew_12);
475
+ onUpdate(valueNew_13);
471
476
 
472
477
  // Update calendar
473
- onUpdateCalendar(valueNew_12[0]);
478
+ onUpdateCalendar(valueNew_13[0]);
474
479
  }
475
480
 
476
481
  // Update input for free typing
@@ -729,6 +734,8 @@ const DatePicker = props__ => {
729
734
  }));
730
735
  const desktop = /*#__PURE__*/_jsx(Calendar, _objectSpread(_objectSpread(_objectSpread({
731
736
  value: value,
737
+ tonal: tonal,
738
+ color: color,
732
739
  calendar: calendar,
733
740
  onChange: onCalendarChange,
734
741
  onChangeCalendar: onCalendarChangeCalendar,
@@ -148,18 +148,23 @@ const DateTimePicker = props__ => {
148
148
  const touch = useMediaQuery('(pointer: coarse)', {
149
149
  element: refs.root.current
150
150
  });
151
+ const onResolveValue = valueNew => {
152
+ const array = (is('array', valueNew) ? valueNew : [valueNew]).filter(Boolean);
153
+ const sorted = array.sort((a, b) => a?.milliseconds - b?.milliseconds);
154
+ return sorted;
155
+ };
151
156
  const [value, setValue] = React.useState(() => {
152
157
  const valueResult = (valueDefault !== undefined ? valueDefault : value_) || now && (range ? [new OnesyDate(), new OnesyDate()] : [new OnesyDate()]);
153
- return (is('array', valueResult) ? valueResult : [valueResult]).filter(Boolean);
158
+ return onResolveValue(valueResult);
154
159
  });
155
160
  const [calendar, setCalendar] = React.useState(value[0]);
156
161
  const [open, setOpen] = React.useState(false);
157
162
  const [error, setError] = React.useState(false);
158
163
  const [tab, setTab] = React.useState('date');
159
164
  refs.value.current = value;
160
- const valueToInput = (valueNew = refs.value.current) => {
165
+ const valueToInput = (valueNew_0 = refs.value.current) => {
161
166
  let result_0 = '';
162
- const [from, to] = valueNew;
167
+ const [from, to] = valueNew_0;
163
168
  if (!(from || to)) return '';
164
169
  const method = item_0 => {
165
170
  let formatValue = `${formatMethod(item_0, 'DD')}/${formatMethod(item_0, 'MM')}/${formatMethod(item_0, 'YYYY')}`;
@@ -185,15 +190,16 @@ const DateTimePicker = props__ => {
185
190
  if (version === 'auto') {
186
191
  if (touch) version = 'mobile';else version = 'desktop';
187
192
  }
188
- const onUpdateValue = valueNew_0 => {
189
- setValue(valueNew_0);
193
+ const onUpdateValue = valueNew_ => {
194
+ const valueNew_1 = onResolveValue(valueNew_);
195
+ setValue(valueNew_1);
190
196
 
191
197
  // Update input
192
- setInput(valueToInput(valueNew_0));
198
+ setInput(valueToInput(valueNew_1));
193
199
  };
194
- const errorCheck = (valueNew_1 = value) => {
200
+ const errorCheck = (valueNew_2 = value) => {
195
201
  // Error
196
- setError((valueNew_1 || []).some((item_1, index) => !valid(item_1)));
202
+ setError((valueNew_2 || []).some((item_1, index) => !valid(item_1)));
197
203
  };
198
204
 
199
205
  // Init
@@ -204,12 +210,12 @@ const DateTimePicker = props__ => {
204
210
 
205
211
  // Value
206
212
  React.useEffect(() => {
207
- if (value_ !== undefined && value_ !== value) onUpdateValue((is('array', value_) ? value_ : [value_]).filter(Boolean));
213
+ if (value_ !== undefined && value_ !== value) onUpdateValue(value_);
208
214
  }, [value_]);
209
- const onUpdate = valueNew_2 => {
215
+ const onUpdate = valueNew_3 => {
210
216
  // Inner update
211
- if (!props.hasOwnProperty('value')) setValue(valueNew_2);
212
- if (is('function', onChange)) onChange(!range ? valueNew_2[0] : valueNew_2);
217
+ if (!props.hasOwnProperty('value')) setValue(valueNew_3);
218
+ if (is('function', onChange)) onChange(!range ? valueNew_3[0] : valueNew_3);
213
219
  };
214
220
  const onPickSwitch = () => {
215
221
  setTab(previous => previous === 'date' ? 'time' : 'date');
@@ -219,15 +225,15 @@ const DateTimePicker = props__ => {
219
225
  // since it might be canceled
220
226
  // only use onChange on
221
227
  // input change, or ok
222
- const onPickerChange = valueNew_ => {
223
- const valueNew_3 = is('array', valueNew_) ? valueNew_ : [valueNew_];
224
- if (valueNew_3 !== value) setValue(valueNew_3);
228
+ const onPickerChange = valueNew__0 => {
229
+ const valueNew_4 = onResolveValue(valueNew__0);
230
+ if (valueNew_4 !== value) setValue(valueNew_4);
225
231
  };
226
- const onChangeCalendar = valueNew_4 => {
227
- if (valueNew_4 !== calendar) setCalendar(valueNew_4);
232
+ const onChangeCalendar = valueNew_5 => {
233
+ if (valueNew_5 !== calendar) setCalendar(valueNew_5);
228
234
  };
229
- const textToOnesyDate = valueNew_5 => {
230
- const [date, ...valueOther] = valueNew_5.split(' ');
235
+ const textToOnesyDate = valueNew_6 => {
236
+ const [date, ...valueOther] = valueNew_6.split(' ');
231
237
  const time = valueOther.join(' ');
232
238
  const [valueDay, valueMonth, valueYear] = (date || '').split('/');
233
239
  const [times, dayTime] = (time || '').split(' ');
@@ -255,73 +261,73 @@ const DateTimePicker = props__ => {
255
261
  }
256
262
  return onesyDate;
257
263
  };
258
- const inputToValue = (valueNew__0 = input) => {
259
- let valueNew_6 = valueNew__0;
260
- let [from_0, to_0] = valueNew_6.split(SEPARATOR);
264
+ const inputToValue = (valueNew__1 = input) => {
265
+ let valueNew_7 = valueNew__1;
266
+ let [from_0, to_0] = valueNew_7.split(SEPARATOR);
261
267
  from_0 = textToOnesyDate(from_0);
262
268
  if (to_0) to_0 = textToOnesyDate(to_0);
263
- valueNew_6 = [from_0, to_0].filter(Boolean);
264
- return valueNew_6;
269
+ valueNew_7 = [from_0, to_0].filter(Boolean);
270
+ return valueNew_7;
265
271
  };
266
- const onInputChange = valueNew__1 => {
267
- const valueNew_7 = inputToValue(valueNew__1);
268
- const validValues = valueNew_7.every(item_2 => item_2.valid);
272
+ const onInputChange = valueNew__2 => {
273
+ const valueNew_8 = inputToValue(valueNew__2);
274
+ const validValues = valueNew_8.every(item_2 => item_2.valid);
269
275
 
270
276
  // Only update values if input is valid
271
277
  // format used to make the value
272
278
  if (validValues) {
273
279
  // Error
274
- errorCheck(valueNew_7);
280
+ errorCheck(valueNew_8);
275
281
 
276
282
  // Update value
277
- onUpdate(valueNew_7);
283
+ onUpdate(valueNew_8);
278
284
 
279
285
  // Update calendar
280
- setCalendar(valueNew_7[0]);
286
+ setCalendar(valueNew_8[0]);
281
287
  }
282
- if (!valueNew__1) {
288
+ if (!valueNew__2) {
283
289
  onUpdate([null, null]);
284
290
  }
285
291
 
286
292
  // Update input for free typing
287
- setInput(valueNew__1);
293
+ setInput(valueNew__2);
288
294
  };
289
295
  const onReset = () => {
290
- let valueNew_8 = inputToValue();
291
- const isValid = valueNew_8 && valueNew_8?.[0]?.valid;
296
+ let valueNew_9 = inputToValue();
297
+ const isValid = valueNew_9 && valueNew_9?.[0]?.valid;
292
298
  if (isValid) {
293
299
  // Update value
294
- onUpdate(valueNew_8);
300
+ onUpdate(valueNew_9);
295
301
  } else {
296
- valueNew_8 = [];
302
+ valueNew_9 = [];
297
303
 
298
304
  // Update value
299
- onUpdate(valueNew_8);
305
+ onUpdate(valueNew_9);
300
306
 
301
307
  // Update input
302
- setInput(valueToInput(valueNew_8));
308
+ setInput(valueToInput(valueNew_9));
303
309
  }
304
310
  };
305
311
  const onToday = event => {
306
- const valueNew_9 = [new OnesyDate()];
307
- if (range) valueNew_9.push(new OnesyDate());
312
+ const valueNew_10 = [new OnesyDate()];
313
+ if (range) valueNew_10.push(new OnesyDate());
308
314
 
309
315
  // Update value
310
- onUpdate(valueNew_9);
316
+ onUpdate(valueNew_10);
311
317
 
312
318
  // Update input
313
- setInput(valueToInput(valueNew_9));
319
+ setInput(valueToInput(valueNew_10));
314
320
  onClose(event);
315
321
  if (is('function', onToday_)) onToday_(event);
316
322
  };
317
323
  const onClear = event_0 => {
318
- const valueNew_10 = [];
324
+ const valueNew_11 = [];
319
325
 
320
326
  // Update value
321
- onUpdate(valueNew_10);
327
+ onUpdate(valueNew_11);
322
328
 
323
329
  // Update input
324
- setInput(valueToInput(valueNew_10));
330
+ setInput(valueToInput(valueNew_11));
325
331
  onClose(event_0);
326
332
  if (is('function', onClear_)) onClear_(event_0);
327
333
  };
@@ -14,6 +14,7 @@ import { angleToCoordinates, staticClassName, toNumber } from '../utils';
14
14
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
15
  const useStyle = styleMethod(theme => ({
16
16
  root: {
17
+ position: 'relative',
17
18
  width: '100vw'
18
19
  },
19
20
  size_small: {
package/esm/Tab/Tab.js CHANGED
@@ -32,7 +32,7 @@ const useStyle = styleMethod(theme => ({
32
32
  alignSelf: 'stretch',
33
33
  userSelect: 'none',
34
34
  cursor: 'pointer',
35
- opacity: theme.palette.visual_contrast.default.opacity.secondary,
35
+ opacity: theme.palette.visual_contrast.default.opacity.tertiary,
36
36
  transition: theme.methods.transitions.make('opacity')
37
37
  },
38
38
  size_small: {