MCPcopy Create free account
hub / github.com/adobe/react-spectrum / cycleValue

Function cycleValue

packages/@internationalized/date/src/manipulation.ts:415–443  ·  view source on GitHub ↗
(value: number, amount: number, min: number, max: number, round = false)

Source from the content-addressed store, hash-verified

413}
414
415function cycleValue(value: number, amount: number, min: number, max: number, round = false) {
416 if (round) {
417 value += Math.sign(amount);
418
419 if (value < min) {
420 value = max;
421 }
422
423 let div = Math.abs(amount);
424 if (amount > 0) {
425 value = Math.ceil(value / div) * div;
426 } else {
427 value = Math.floor(value / div) * div;
428 }
429
430 if (value > max) {
431 value = min;
432 }
433 } else {
434 value += amount;
435 if (value < min) {
436 value = max - (min - value - 1);
437 } else if (value > max) {
438 value = min + (value - max - 1);
439 }
440 }
441
442 return value;
443}
444
445export function addZoned(dateTime: ZonedDateTime, duration: DateTimeDuration): ZonedDateTime {
446 let ms: number;

Callers 3

cycleDateFunction · 0.70
cycleTimeFunction · 0.70
cycleZonedFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected