@wernfried/daterangepicker 5.2.10 → 5.2.12

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/README.md CHANGED
@@ -19,8 +19,8 @@ Above samples are based on the [original repository](https://github.com/dangross
19
19
  #### Global import with `<script>` tags
20
20
  ```html
21
21
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/luxon@3.5.0/build/global/luxon.min.js"></script>
22
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.10/dist/global/daterangepicker.min.js"></script>
23
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.10/css/daterangepicker.min.css" rel="stylesheet" />
22
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.12/dist/global/daterangepicker.min.js"></script>
23
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.12/css/daterangepicker.min.css" rel="stylesheet" />
24
24
 
25
25
  <input type="text" id="picker" />
26
26
 
@@ -40,11 +40,11 @@ Above samples are based on the [original repository](https://github.com/dangross
40
40
  {
41
41
  "imports": {
42
42
  "luxon": "https://cdn.jsdelivr.net/npm/luxon@3.7.2/+esm",
43
- "daterangepicker": "https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.10/+esm"
43
+ "daterangepicker": "https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.12/+esm"
44
44
  }
45
45
  }
46
46
  </script>
47
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.10/css/daterangepicker.min.css" rel="stylesheet" />
47
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.12/css/daterangepicker.min.css" rel="stylesheet" />
48
48
 
49
49
  <input type="text" id="picker" />
50
50
 
@@ -63,9 +63,9 @@ Above samples are based on the [original repository](https://github.com/dangross
63
63
  #### Style with Bulma
64
64
  ```html
65
65
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/luxon@3.5.0/build/global/luxon.min.js"></script>
66
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.10/dist/global/daterangepicker.min.js"></script>
66
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.12/dist/global/daterangepicker.min.js"></script>
67
67
  <link type="text/css" href="https://cdn.jsdelivr.net/npm/bulma@1.0.4/css/bulma.min.css" rel="stylesheet" />
68
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.10/css/daterangepicker.bulma.min.css" rel="stylesheet" />
68
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.12/css/daterangepicker.bulma.min.css" rel="stylesheet" />
69
69
 
70
70
  <input type="text" id="picker" />
71
71
 
@@ -121,8 +121,8 @@ Initialisation with jQuery is supported in version 5.x
121
121
  ```html
122
122
  <script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
123
123
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/luxon@3.5.0/build/global/luxon.min.js"></script>
124
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.10/dist/global/daterangepicker.min.js"></script>
125
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.10/css/daterangepicker.min.css" rel="stylesheet" />
124
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.12/dist/global/daterangepicker.min.js"></script>
125
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.2.12/css/daterangepicker.min.css" rel="stylesheet" />
126
126
 
127
127
  <input type="text" id="picker" />
128
128
 
@@ -1128,8 +1128,8 @@ class DateRangePicker {
1128
1128
  this.triggerEvent(this.#events.onBeforeRenderTimePicker);
1129
1129
  this.renderTimePicker("start");
1130
1130
  this.renderTimePicker("end");
1131
- this.container.querySelector(".calendar-time.end-time select").disabled = !this.#endDate;
1132
- this.container.querySelector(".calendar-time.end-time select").classList.toggle("disabled", !this.#endDate);
1131
+ this.container.querySelectorAll(".calendar-time.end-time select").disabled = !this.#endDate;
1132
+ this.container.querySelectorAll(".calendar-time.end-time select").classList.toggle("disabled", !this.#endDate);
1133
1133
  }
1134
1134
  this.updateLabel();
1135
1135
  this.updateMonthsInView();
@@ -1397,7 +1397,8 @@ class DateRangePicker {
1397
1397
  if (maxDate && selected > maxDate)
1398
1398
  selected = maxDate;
1399
1399
  }
1400
- let disabled = { hour: false, minute: false, second: false, ampm: false };
1400
+ let disabledHours = [];
1401
+ let disabledMinutes = [];
1401
1402
  html += `<th colspan="7">`;
1402
1403
  if (this.externalStyle === "bulma")
1403
1404
  html += '<div class="select is-small mx-1">';
@@ -1408,18 +1409,19 @@ class DateRangePicker {
1408
1409
  start = ampm === "AM" ? 1 : 13;
1409
1410
  for (var i = start; i <= start + 23; i += this.timePickerOpts.hourStep) {
1410
1411
  let time = selected.set({ hour: i % 24 });
1412
+ let disabled = false;
1411
1413
  if (minDate && time.set({ minute: 59 }) < minDate)
1412
- disabled.hour = true;
1414
+ disabled = true;
1413
1415
  if (maxDate && time.set({ minute: 0 }) > maxDate)
1414
- disabled.hour = true;
1416
+ disabled = true;
1415
1417
  if (minLimit && time.endOf("hour") < minLimit)
1416
- disabled.hour = true;
1417
- if (!disabled.hour && this.isInvalidTime(time, this.singleDatePicker ? null : side, "hour"))
1418
- disabled.hour = true;
1418
+ disabled = true;
1419
+ if (!disabled && this.isInvalidTime(time, this.singleDatePicker ? null : side, "hour"))
1420
+ disabled = true;
1419
1421
  if (this.timePicker24Hour) {
1420
- if (!disabled.hour && i == selected.hour) {
1422
+ if (!disabled && i == selected.hour) {
1421
1423
  html += `<option value="${i}" selected>${i}</option>`;
1422
- } else if (disabled.hour) {
1424
+ } else if (disabled) {
1423
1425
  html += `<option value="${i}" disabled class="disabled">${i}</option>`;
1424
1426
  } else {
1425
1427
  html += `<option value="${i}">${i}</option>`;
@@ -1428,9 +1430,9 @@ class DateRangePicker {
1428
1430
  const i_12 = luxon.DateTime.fromFormat(`${i % 24}`, "H").toFormat("h");
1429
1431
  const i_ampm = luxon.DateTime.fromFormat(`${i % 24}`, "H").toFormat("a", { locale: "en-US" });
1430
1432
  if (ampm == i_ampm) {
1431
- if (!disabled.hour && i == selected.hour) {
1433
+ if (!disabled && i == selected.hour) {
1432
1434
  html += `<option ampm="${i_ampm}" value="${i % 24}" selected>${i_12}</option>`;
1433
- } else if (disabled.hour) {
1435
+ } else if (disabled) {
1434
1436
  html += `<option ampm="${i_ampm}" value="${i % 24}" disabled class="disabled">${i_12}</option>`;
1435
1437
  } else {
1436
1438
  html += `<option ampm="${i_ampm}" value="${i % 24}">${i_12}</option>`;
@@ -1439,6 +1441,7 @@ class DateRangePicker {
1439
1441
  html += `<option ampm="${i_ampm}" hidden="hidden" value="${i % 24}">${i_12}</option>`;
1440
1442
  }
1441
1443
  }
1444
+ disabledHours.push(disabled);
1442
1445
  }
1443
1446
  html += "</select>";
1444
1447
  if (this.externalStyle === "bulma")
@@ -1451,23 +1454,25 @@ class DateRangePicker {
1451
1454
  for (var i = 0; i < 60; i += this.timePickerOpts.minuteStep) {
1452
1455
  var padded = i < 10 ? "0" + i : i;
1453
1456
  let time = selected.set({ minute: i });
1454
- if (disabled.hour)
1455
- disabled.minute = true;
1457
+ let disabled = false;
1458
+ if (disabledHours.every((x) => x))
1459
+ disabled = true;
1456
1460
  if (minDate && time.set({ second: 59 }) < minDate)
1457
- disabled.minute = true;
1461
+ disabled = true;
1458
1462
  if (maxDate && time.set({ second: 0 }) > maxDate)
1459
- disabled.minute = true;
1463
+ disabled = true;
1460
1464
  if (minLimit && time.endOf("minute") < minLimit)
1461
- disabled.minute = true;
1462
- if (!disabled.minute && this.isInvalidTime(time, this.singleDatePicker ? null : side, "minute"))
1463
- disabled.minute = true;
1464
- if (selected.minute == i && !disabled.minute) {
1465
+ disabled = true;
1466
+ if (!disabled && this.isInvalidTime(time, this.singleDatePicker ? null : side, "minute"))
1467
+ disabled = true;
1468
+ if (selected.minute == i && !disabled) {
1465
1469
  html += `<option value="${i}" selected>${padded}</option>`;
1466
- } else if (disabled.minute) {
1470
+ } else if (disabled) {
1467
1471
  html += `<option value="${i}" disabled class="disabled">${padded}</option>`;
1468
1472
  } else {
1469
1473
  html += `<option value="${i}">${padded}</option>`;
1470
1474
  }
1475
+ disabledMinutes.push(disabled);
1471
1476
  }
1472
1477
  html += "</select>";
1473
1478
  if (this.externalStyle === "bulma")
@@ -1481,19 +1486,20 @@ class DateRangePicker {
1481
1486
  for (var i = 0; i < 60; i += this.timePickerOpts.secondStep) {
1482
1487
  var padded = i < 10 ? "0" + i : i;
1483
1488
  let time = selected.set({ second: i });
1484
- if (disabled.minute)
1485
- disabled.second = true;
1489
+ let disabled = false;
1490
+ if (disabledMinutes.every((x) => x))
1491
+ disabled = true;
1486
1492
  if (minDate && time < minDate)
1487
- disabled.second = true;
1493
+ disabled = true;
1488
1494
  if (maxDate && time > maxDate)
1489
- disabled.second = true;
1495
+ disabled = true;
1490
1496
  if (minLimit && time < minLimit)
1491
- disabled.second = true;
1492
- if (!disabled.second && this.isInvalidTime(time, this.singleDatePicker ? null : side, "second"))
1493
- disabled.second = true;
1494
- if (selected.second == i && !disabled.second) {
1497
+ disabled = true;
1498
+ if (!disabled && this.isInvalidTime(time, this.singleDatePicker ? null : side, "second"))
1499
+ disabled = true;
1500
+ if (selected.second == i && !disabled) {
1495
1501
  html += `<option value="${i}" selected>${padded}</option>`;
1496
- } else if (disabled.second) {
1502
+ } else if (disabled) {
1497
1503
  html += `<option value="${i}" disabled class="disabled">${padded}</option>`;
1498
1504
  } else {
1499
1505
  html += `<option value="${i}">${padded}</option>`;
@@ -1509,15 +1515,16 @@ class DateRangePicker {
1509
1515
  html += '<select class="ampmselect">';
1510
1516
  var am_html = "";
1511
1517
  var pm_html = "";
1512
- if (disabled.hour)
1513
- disabled.ampm = true;
1518
+ let disabled = false;
1519
+ if (disabledHours.every((x) => x))
1520
+ disabled = true;
1514
1521
  if (minDate && selected.startOf("day") < minDate)
1515
- disabled.ampm = true;
1522
+ disabled = true;
1516
1523
  if (maxDate && selected.endOf("day") > maxDate)
1517
- disabled.ampm = true;
1524
+ disabled = true;
1518
1525
  if (minLimit && selected.startOf("day") < minLimit)
1519
- disabled.ampm = true;
1520
- if (disabled.ampm) {
1526
+ disabled = true;
1527
+ if (disabled) {
1521
1528
  am_html = ' disabled class="disabled "';
1522
1529
  pm_html = ' disabled class="disabled"';
1523
1530
  } else {