@wernfried/daterangepicker 5.1.6 → 5.1.9

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/API_Doc.md CHANGED
@@ -27,11 +27,11 @@
27
27
  <code>minDate</code>, <code>maxDate</code>, <code>minSpan</code>, <code>maxSpan</code>, <code>invalidDate</code> and <code>invalidTime</code> constraints.<br>
28
28
  Event is only triggered when date string is valid and date value is changing<br></p>
29
29
  </dd>
30
- <dt><a href="#event_beforeRenderCalendar">"beforeRenderCalendar"</a></dt>
30
+ <dt><a href="#event_beforeRenderTimePicker">"beforeRenderTimePicker"</a></dt>
31
31
  <dd><p>Emitted before the calendar time picker is rendered.</p>
32
32
  </dd>
33
33
  <dt><a href="#event_beforeRenderCalendar">"beforeRenderCalendar"</a></dt>
34
- <dd><p>Emitted before the calendar is rendered. Useful to remove any manually added elements.</p>
34
+ <dd><p>Emitted before the calendar is rendered.</p>
35
35
  </dd>
36
36
  <dt><a href="#event_show">"show"</a></dt>
37
37
  <dd><p>Emitted when the picker is shown</p>
@@ -70,10 +70,6 @@ Only useful when <a href="#Ranges">Ranges</a> are used.</p>
70
70
  <dt><a href="#event_monthViewChange">"monthViewChange"</a></dt>
71
71
  <dd><p>Emitted after month view changed, for example by click on &#39;prev&#39; or &#39;next&#39;</p>
72
72
  </dd>
73
- <dt><a href="#event_beforeRenderTimePicker">"beforeRenderTimePicker" (this)</a></dt>
74
- <dd><p>Emitted before the TimePicker is rendered.
75
- Useful to remove any manually added elements.</p>
76
- </dd>
77
73
  </dl>
78
74
 
79
75
  ## Typedefs
@@ -112,6 +108,7 @@ Ranges are not validated against <code>minDate</code>, <code>maxDate</code>, <co
112
108
  * [.formatDate(date, format)](#DateRangePicker+formatDate) ⇒ <code>string</code>
113
109
  * [.validateInput(range, dipatch)](#DateRangePicker+validateInput) ⇒ <code>InputViolation</code> \| <code>null</code>
114
110
  * [.updateView(monthChange)](#DateRangePicker+updateView)
111
+ * [.move()](#DateRangePicker+move)
115
112
  * [.show()](#DateRangePicker+show)
116
113
  * [.hide()](#DateRangePicker+hide)
117
114
  * [.toggle()](#DateRangePicker+toggle)
@@ -120,7 +117,7 @@ Ranges are not validated against <code>minDate</code>, <code>maxDate</code>, <co
120
117
  * [.updateElement()](#DateRangePicker+updateElement)
121
118
  * [.updateAltInput()](#DateRangePicker+updateAltInput)
122
119
  * [.remove()](#DateRangePicker+remove)
123
- * [.addListener(element, eventName, selector, delegate)](#DateRangePicker+addListener)
120
+ * [.triggerEvent(ev, ...args)](#DateRangePicker+triggerEvent)
124
121
 
125
122
  <a name="new_DateRangePicker_new"></a>
126
123
 
@@ -291,6 +288,12 @@ Could be useful after running [setStartDate](#DateRangePicker+setStartDate) or [
291
288
  | --- | --- | --- |
292
289
  | monthChange | <code>boolean</code> | If `true` then monthView changed |
293
290
 
291
+ <a name="DateRangePicker+move"></a>
292
+
293
+ ### dateRangePicker.move()
294
+ Place the picker at the right place in the document
295
+
296
+ **Kind**: instance method of [<code>DateRangePicker</code>](#DateRangePicker)
294
297
  <a name="DateRangePicker+show"></a>
295
298
 
296
299
  ### dateRangePicker.show()
@@ -344,19 +347,17 @@ Update altInput `<input>` element with selected value
344
347
  Removes the picker from document
345
348
 
346
349
  **Kind**: instance method of [<code>DateRangePicker</code>](#DateRangePicker)
347
- <a name="DateRangePicker+addListener"></a>
350
+ <a name="DateRangePicker+triggerEvent"></a>
348
351
 
349
- ### dateRangePicker.addListener(element, eventName, selector, delegate)
350
- Helper function to add eventListener similar to jQuery .on( events [, selector ] [, data ] )
352
+ ### dateRangePicker.triggerEvent(ev, ...args)
353
+ Helper function to dispatch events
351
354
 
352
355
  **Kind**: instance method of [<code>DateRangePicker</code>](#DateRangePicker)
353
356
 
354
357
  | Param | Type | Description |
355
358
  | --- | --- | --- |
356
- | element | <code>string</code> | Query selector of element where listener is added |
357
- | eventName | <code>string</code> | Name of the event |
358
- | selector | <code>string</code> | Query selector string to filter the descendants of the element |
359
- | delegate | <code>any</code> | Handler data |
359
+ | ev | <code>Event</code> | From this.#events |
360
+ | ...args | <code>any</code> | Additional parameters if needed |
360
361
 
361
362
  <a name="DateRangePickerEvent"></a>
362
363
 
@@ -434,9 +435,9 @@ drp.setStartDate(DateTime.now().minus({ years: 10 });
434
435
 
435
436
  // -> Calendar selects and shows "today - 3 days"
436
437
  ```
437
- <a name="event_beforeRenderCalendar"></a>
438
+ <a name="event_beforeRenderTimePicker"></a>
438
439
 
439
- ## "beforeRenderCalendar"
440
+ ## "beforeRenderTimePicker"
440
441
  Emitted before the calendar time picker is rendered.
441
442
 
442
443
  **Kind**: event emitted
@@ -450,7 +451,7 @@ Emitted before the calendar time picker is rendered.
450
451
  <a name="event_beforeRenderCalendar"></a>
451
452
 
452
453
  ## "beforeRenderCalendar"
453
- Emitted before the calendar is rendered. Useful to remove any manually added elements.
454
+ Emitted before the calendar is rendered.
454
455
 
455
456
  **Kind**: event emitted
456
457
  **Properties**
@@ -622,18 +623,6 @@ Emitted after month view changed, for example by click on 'prev' or 'next'
622
623
  | event.left | [<code>DateTime</code>](https://moment.github.io/luxon/api-docs/index.html#datetime) | The first day of month in left-hand calendar |
623
624
  | event.right | [<code>DateTime</code>](https://moment.github.io/luxon/api-docs/index.html#datetime) | The first day of month in left-hand calendar or `null` for singleDatePicker |
624
625
 
625
- <a name="event_beforeRenderTimePicker"></a>
626
-
627
- ## "beforeRenderTimePicker" (this)
628
- Emitted before the TimePicker is rendered.
629
- Useful to remove any manually added elements.
630
-
631
- **Kind**: event emitted
632
-
633
- | Param | Type | Description |
634
- | --- | --- | --- |
635
- | this | [<code>DateRangePicker</code>](#DateRangePicker) | The daterangepicker object |
636
-
637
626
  <a name="Options"></a>
638
627
 
639
628
  ## Options
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.1.6/dist/global/daterangepicker.min.js"></script>
23
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.6/css/daterangepicker.min.css" rel="stylesheet" />
22
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.9/dist/global/daterangepicker.min.js"></script>
23
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.9/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.1.6/+esm"
43
+ "daterangepicker": "https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.9/+esm"
44
44
  }
45
45
  }
46
46
  </script>
47
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.6/css/daterangepicker.min.css" rel="stylesheet" />
47
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.9/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.1.6/dist/global/daterangepicker.min.js"></script>
66
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.9/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.1.6/css/daterangepicker.bulma.min.css" rel="stylesheet" />
68
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.9/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.1.6/dist/global/daterangepicker.min.js"></script>
125
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.6/css/daterangepicker.min.css" rel="stylesheet" />
124
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.9/dist/global/daterangepicker.min.js"></script>
125
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.1.9/css/daterangepicker.min.css" rel="stylesheet" />
126
126
 
127
127
  <input type="text" id="picker" />
128
128
 
@@ -182,8 +182,6 @@ input.addEventListener('beforeHide', (ev) => {
182
182
  });
183
183
  ```
184
184
 
185
-
186
-
187
185
  ## Examples
188
186
  ### Option `ranges`
189
187
  <a name="options-ranges"></a>
@@ -78,6 +78,8 @@ class DateRangePicker {
78
78
  const name = item.name.replace(/^data-/g, "").replace(/-([a-z])/g, function(str) {
79
79
  return str[1].toUpperCase();
80
80
  });
81
+ if (!Object.keys(this).includes(name) || Object.keys(options).includes(name))
82
+ continue;
81
83
  let ts = DateTime.fromISO(item.value);
82
84
  const isDate = ["startDate", "endDate", "minDate", "maxDate", "initalMonth"].includes(name);
83
85
  dataOptions[name] = ts.isValid && isDate ? ts : JSON.parse(item.value);
@@ -601,13 +603,13 @@ class DateRangePicker {
601
603
  /**
602
604
  * Emitted before the calendar time picker is rendered.
603
605
  * @event
604
- * @name "beforeRenderCalendar"
606
+ * @name "beforeRenderTimePicker"
605
607
  * @property {DateRangePickerEvent} event - The Event object
606
608
  * @property {DateRangePicker} event.picker - The daterangepicker object
607
609
  */
608
610
  onBeforeRenderTimePicker: { type: "beforeRenderTimePicker" },
609
611
  /**
610
- * Emitted before the calendar is rendered. Useful to remove any manually added elements.
612
+ * Emitted before the calendar is rendered.
611
613
  * @event
612
614
  * @name "beforeRenderCalendar"
613
615
  * @property {DateRangePickerEvent} event - The Event object
@@ -868,9 +870,6 @@ class DateRangePicker {
868
870
  }
869
871
  }
870
872
  /* #endregion */
871
- logDate(date) {
872
- return this.timePicker ? date.toISO({ suppressMilliseconds: true }) : date.toISODate();
873
- }
874
873
  /**
875
874
  * Format a DateTime object
876
875
  * @param {external:DateTime} date - The DateTime to format
@@ -1361,13 +1360,6 @@ class DateRangePicker {
1361
1360
  this.container.querySelector(`.drp-calendar.${side} .calendar-table tbody`).innerHTML = html;
1362
1361
  }
1363
1362
  /**
1364
- * Emitted before the TimePicker is rendered.
1365
- * Useful to remove any manually added elements.
1366
- * @event
1367
- * @name "beforeRenderTimePicker"
1368
- * @param {DateRangePicker} this - The daterangepicker object
1369
- */
1370
- /**
1371
1363
  * Renders the time pickers
1372
1364
  * @private
1373
1365
  * @emits "beforeRenderTimePicker"
@@ -1556,7 +1548,6 @@ class DateRangePicker {
1556
1548
  /* #region Move/Show/Hide */
1557
1549
  /**
1558
1550
  * Place the picker at the right place in the document
1559
- * @private
1560
1551
  */
1561
1552
  move() {
1562
1553
  let parentOffset = { top: 0, left: 0 };
@@ -2247,7 +2238,6 @@ class DateRangePicker {
2247
2238
  * Helper function to dispatch events
2248
2239
  * @param {Event} ev - From this.#events
2249
2240
  * @param {...any?} args - Additional parameters if needed
2250
- * @private
2251
2241
  */
2252
2242
  triggerEvent(ev, ...args) {
2253
2243
  if (args.length === 0) {
@@ -2266,6 +2256,7 @@ class DateRangePicker {
2266
2256
  * @param {string} eventName - Name of the event
2267
2257
  * @param {string} selector - Query selector string to filter the descendants of the element
2268
2258
  * @param {any} delegate - Handler data
2259
+ * @private
2269
2260
  */
2270
2261
  addListener(element, eventName, selector, delegate) {
2271
2262
  this.container.querySelectorAll(element).forEach((el) => {