@wernfried/daterangepicker 5.3.7 → 5.4.1

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.3.7/dist/global/daterangepicker.min.js"></script>
23
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.3.7/css/daterangepicker.min.css" rel="stylesheet" />
22
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.4.1/dist/global/daterangepicker.min.js"></script>
23
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.4.1/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.3.7/+esm"
43
+ "daterangepicker": "https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.4.1/+esm"
44
44
  }
45
45
  }
46
46
  </script>
47
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.3.7/css/daterangepicker.min.css" rel="stylesheet" />
47
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.4.1/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.3.7/dist/global/daterangepicker.min.js"></script>
66
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.4.1/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.3.7/css/daterangepicker.bulma.min.css" rel="stylesheet" />
68
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.4.1/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.3.7/dist/global/daterangepicker.min.js"></script>
125
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.3.7/css/daterangepicker.min.css" rel="stylesheet" />
124
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.4.1/dist/global/daterangepicker.min.js"></script>
125
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.4.1/css/daterangepicker.min.css" rel="stylesheet" />
126
126
 
127
127
  <input type="text" id="picker" />
128
128
 
@@ -254,6 +254,7 @@ Compared to [inital repository](https://github.com/dangrossman/daterangepicker),
254
254
  - Added option `onOutsideClick` where you can define whether picker shall apply or revert selected value
255
255
  - Added option `initalMonth` to show datepicker without an initial date
256
256
  - Added option `singleMonthView` to show single month calendar, useful for shorter ranges
257
+ - Added option `showOnClick` and `button` to provide better control when DateRangePicker pops up
257
258
  - Better validation of input parameters, errors are logged to console
258
259
  - Highlight range in calendar when hovering over pre-defined ranges
259
260
  - Option `autoUpdateInput` defines whether the attached `<input>` element is updated when the user clicks on a date value.<br>
@@ -267,21 +268,19 @@ but other frameworks may be added in future releases
267
268
  - ... and maybe some new bugs 😉
268
269
 
269
270
  ### Localization
270
- All date values are based on [luxon](https://moment.github.io/luxon/index.html#/intl) which provides great support for localization. Instead of providing date format, weekday and month names manually as strings, it is usually easier to set the default locale like this:
271
+ All date values are based on [luxon](https://moment.github.io/luxon/index.html#/intl) which provides great support for localization. Instead of providing date format, weekdays, month names, etc. manually it is usually easier to set the default locale like this:
271
272
  ```js
272
273
  const Settings = luxon.Settings;
273
274
  Settings.defaultLocale = 'fr-CA'
274
-
275
275
  daterangepicker('#picker', {
276
- timePicker: true,
277
- singleDatePicker: false
276
+ timePicker: true
278
277
  };
279
278
  ```
280
279
  instead of
281
280
  ```js
282
281
  daterangepicker('#picker', {
283
282
  timePicker: true,
284
- singleDatePicker: false,
283
+ timePicker24Hour: true,
285
284
  locale: {
286
285
  format: 'yyyyy-M-d H h m',
287
286
  daysOfWeek: [ 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.', 'dim.' ],
@@ -87,7 +87,7 @@ class DateRangePicker {
87
87
  dataOptions[name] = ts.isValid && isDate ? ts : JSON.parse(item.value);
88
88
  }
89
89
  options = { ...dataOptions, ...options };
90
- if (["string", "object"].includes(typeof options.button)) {
90
+ if (["string", "object"].includes(typeof options.button) && options.button != null) {
91
91
  let button = options.button;
92
92
  if (typeof button === "string" && document.querySelectorAll(button).length === 1)
93
93
  button = document.querySelector(button);
@@ -178,7 +178,7 @@ class DateRangePicker {
178
178
  else
179
179
  console.error(`Option 'locale.direction' must be 'rtl' or 'ltr'`);
180
180
  }
181
- if (["string", "object"].includes(typeof options.locale.format))
181
+ if (["string", "object"].includes(typeof options.locale.format) && options.locale.format !== null)
182
182
  this.locale.format = options.locale.format;
183
183
  if (Array.isArray(options.locale.daysOfWeek)) {
184
184
  if (options.locale.daysOfWeek.some((x) => typeof x !== "string"))
@@ -315,12 +315,12 @@ class DateRangePicker {
315
315
  if (opt === "endDate" && this.singleDatePicker)
316
316
  continue;
317
317
  if (typeof options[opt] === "object") {
318
- if (luxon.DateTime.isDateTime(options[opt]) && options[opt].isValid) {
318
+ if (options[opt] == null) {
319
+ this[opt] = null;
320
+ } else if (luxon.DateTime.isDateTime(options[opt])) {
319
321
  this[opt] = options[opt];
320
322
  } else if (options[opt] instanceof Date) {
321
323
  this[opt] = luxon.DateTime.fromJSDate(options[opt]);
322
- } else if (options[opt] === null) {
323
- this[opt] = null;
324
324
  } else {
325
325
  console.error(`Option '${opt}' must be a luxon.DateTime or Date or string`);
326
326
  }
@@ -458,7 +458,7 @@ class DateRangePicker {
458
458
  iterator--;
459
459
  }
460
460
  }
461
- if (!this.singleDatePicker && typeof options.ranges === "object") {
461
+ if (!this.singleDatePicker && typeof options.ranges === "object" && options.ranges != null) {
462
462
  for (let range in options.ranges) {
463
463
  let start, end;
464
464
  if (["string", "object"].includes(typeof options.ranges[range][0])) {
@@ -617,7 +617,7 @@ class DateRangePicker {
617
617
  * // -> Calendar selects and shows "today - 3 days"
618
618
  */
619
619
  onViolate: { type: "violate", param: (violation, newDate) => {
620
- return { ...violation, ...{ cancelable: true } };
620
+ return { ...violation, cancelable: true };
621
621
  } },
622
622
  /**
623
623
  * Emitted before the calendar time picker is rendered.
@@ -1335,7 +1335,7 @@ class DateRangePicker {
1335
1335
  html += `<th class="week">${this.locale.weekLabel}</th>`;
1336
1336
  for (let [index, dayOfWeek] of this.locale.daysOfWeek.entries()) {
1337
1337
  html += "<th";
1338
- if (this.weekendDayClasses && this.weekendDayClasses.length && luxon.Info.getWeekendWeekdays().includes(index + 1))
1338
+ if (this.weekendDayClasses && this.weekendDayClasses.length && luxon.Info.getWeekendWeekdays().includes(calendar[0][index].weekday))
1339
1339
  html += ` class="${this.weekendDayClasses}"`;
1340
1340
  html += `>${dayOfWeek}</th>`;
1341
1341
  }