(date: DateOption, timeless = true)
| 1548 | } |
| 1549 | |
| 1550 | function isEnabled(date: DateOption, timeless = true): boolean { |
| 1551 | const dateToCheck = self.parseDate(date, undefined, timeless); // timeless |
| 1552 | |
| 1553 | if ( |
| 1554 | (self.config.minDate && |
| 1555 | dateToCheck && |
| 1556 | compareDates( |
| 1557 | dateToCheck, |
| 1558 | self.config.minDate, |
| 1559 | timeless !== undefined ? timeless : !self.minDateHasTime |
| 1560 | ) < 0) || |
| 1561 | (self.config.maxDate && |
| 1562 | dateToCheck && |
| 1563 | compareDates( |
| 1564 | dateToCheck, |
| 1565 | self.config.maxDate, |
| 1566 | timeless !== undefined ? timeless : !self.maxDateHasTime |
| 1567 | ) > 0) |
| 1568 | ) |
| 1569 | return false; |
| 1570 | if (!self.config.enable && self.config.disable.length === 0) return true; |
| 1571 | |
| 1572 | if (dateToCheck === undefined) return false; |
| 1573 | |
| 1574 | const bool = !!self.config.enable, |
| 1575 | array = self.config.enable ?? self.config.disable; |
| 1576 | |
| 1577 | for (let i = 0, d; i < array.length; i++) { |
| 1578 | d = array[i]; |
| 1579 | |
| 1580 | if ( |
| 1581 | typeof d === "function" && |
| 1582 | d(dateToCheck) // disabled by function |
| 1583 | ) |
| 1584 | return bool; |
| 1585 | else if ( |
| 1586 | d instanceof Date && |
| 1587 | dateToCheck !== undefined && |
| 1588 | d.getTime() === dateToCheck.getTime() |
| 1589 | ) |
| 1590 | // disabled by date |
| 1591 | return bool; |
| 1592 | else if (typeof d === "string") { |
| 1593 | // disabled by date string |
| 1594 | const parsed = self.parseDate(d, undefined, true); |
| 1595 | return parsed && parsed.getTime() === dateToCheck.getTime() |
| 1596 | ? bool |
| 1597 | : !bool; |
| 1598 | } else if ( |
| 1599 | // disabled by range |
| 1600 | typeof d === "object" && |
| 1601 | dateToCheck !== undefined && |
| 1602 | (d as DateRangeLimit).from && |
| 1603 | (d as DateRangeLimit).to && |
| 1604 | dateToCheck.getTime() >= (d as DateRangeLimit<Date>).from.getTime() && |
| 1605 | dateToCheck.getTime() <= (d as DateRangeLimit<Date>).to.getTime() |
| 1606 | ) |
| 1607 | return bool; |
no test coverage detected
searching dependent graphs…