@wernfried/daterangepicker 5.5.1 → 5.5.2

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
@@ -119,6 +119,7 @@ Ranges are not validated against <code>minDate</code>, <code>maxDate</code>, <co
119
119
  * [.remove()](#DateRangePicker+remove)
120
120
  * [.triggerEvent(ev, ...args)](#DateRangePicker+triggerEvent)
121
121
  * [.addEventListener(type, listener, [options])](#DateRangePicker+addEventListener)
122
+ * [.removeEventListener(type, listener, [options])](#DateRangePicker+removeEventListener)
122
123
 
123
124
  <a name="new_DateRangePicker_new"></a>
124
125
 
@@ -363,23 +364,37 @@ Helper function to dispatch events
363
364
  <a name="DateRangePicker+addEventListener"></a>
364
365
 
365
366
  ### dateRangePicker.addEventListener(type, listener, [options])
366
- Adds an event listener to the anchor element (e.g., `<input>`) the DateRangePicker is attached to.
367
- This allows external code to subscribe to native DOM events such as 'click', 'focus', 'keyup', etc.
367
+ Adding event listener to input element where dateragnepicker is attached to.
368
+ Wrapper to give easy access for `addEventListener()` on DateRangePicker instance.
368
369
 
369
370
  **Kind**: instance method of [<code>DateRangePicker</code>](#DateRangePicker)
370
371
 
371
372
  | Param | Type | Description |
372
373
  | --- | --- | --- |
373
- | type | <code>string</code> | The event name (e.g., 'click', 'focus', 'keyup') |
374
+ | type | <code>string</code> | The event name, either native DOM-Event or [DateRangePicker](API_Doc.md#event) specific event |
374
375
  | listener | <code>function</code> | The callback function invoked when the event fires |
375
376
  | [options] | <code>boolean</code> \| <code>object</code> | Optional event options: - `boolean capture`: Whether to listen in the capture phase (default: `false`) - `object signal`: An `AbortSignal` for later removal of the listener (default: `undefined`) |
376
377
 
377
378
  **Example**
378
379
  ```js
379
- daterangepicker.addEventListener('click', (e) => {
380
- console.log('Picker element was clicked', e);
380
+ picker.addEventListener('hide', (e) => {
381
+ console.log('Picker element was hidden', e);
381
382
  });
382
383
  ```
384
+ <a name="DateRangePicker+removeEventListener"></a>
385
+
386
+ ### dateRangePicker.removeEventListener(type, listener, [options])
387
+ Counterpart to `addEventListener()`
388
+ Note, `listener` most be a named function to enable remove.
389
+
390
+ **Kind**: instance method of [<code>DateRangePicker</code>](#DateRangePicker)
391
+
392
+ | Param | Type | Description |
393
+ | --- | --- | --- |
394
+ | type | <code>string</code> | The event name, either native |
395
+ | listener | <code>function</code> | The callback function invoked when the event fires |
396
+ | [options] | <code>boolean</code> \| <code>object</code> | Optional event options: - `boolean capture`: Whether to listen in the capture phase (default: `false`) - `object signal`: An `AbortSignal` for later removal of the listener (default: `undefined`) |
397
+
383
398
  <a name="DateRangePickerEvent"></a>
384
399
 
385
400
  ## DateRangePickerEvent ⇐ <code>Event</code>
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.5.1/dist/global/daterangepicker.min.js"></script>
23
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.1/css/daterangepicker.min.css" rel="stylesheet" />
22
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.2/dist/global/daterangepicker.min.js"></script>
23
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.2/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.5.1/+esm"
43
+ "daterangepicker": "https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.2/+esm"
44
44
  }
45
45
  }
46
46
  </script>
47
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.1/css/daterangepicker.min.css" rel="stylesheet" />
47
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.2/css/daterangepicker.min.css" rel="stylesheet" />
48
48
 
49
49
  <input type="text" id="picker" />
50
50
 
@@ -52,7 +52,7 @@ Above samples are based on the [original repository](https://github.com/dangross
52
52
  import { DateTime } from 'luxon';
53
53
  import { daterangepicker } from 'daterangepicker';
54
54
 
55
- daterangepicker('#picker', {
55
+ const picker = daterangepicker('#picker', {
56
56
  startDate: DateTime.now().plus({day: 1})
57
57
  }, (start, end) => {
58
58
  console.log(`Selected range: ${start.toString()} to ${end.toString()}`)
@@ -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.5.1/dist/global/daterangepicker.min.js"></script>
66
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.2/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.5.1/css/daterangepicker.bulma.min.css" rel="stylesheet" />
68
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.2/css/daterangepicker.bulma.min.css" rel="stylesheet" />
69
69
 
70
70
  <input type="text" id="picker" />
71
71
 
@@ -99,16 +99,17 @@ Values in `options` of `daterangepicker(el, options)` take precedence over `data
99
99
  <script type="module">
100
100
  import {daterangepicker, getDateRangePicker} from 'daterangepicker'; // or global import with <script> tag
101
101
 
102
- const input = daterangepicker('#picker', {}); // returns the mutated <input> HTMLElement
102
+ const input = document.getElementById('picker');
103
+ const picker = daterangepicker('#picker', {}); // returns DateRangePicker instance or array of DateRangePicker if selector matches more than one element
103
104
  // or daterangepicker(document.querySelector('#picker'), {})
104
105
 
105
- const drp = getDateRangePicker('#picker');
106
+ // Get DateRangePicker instance after initialization
107
+ const drp = getDateRangePicker(input);
106
108
  // or DateRangePicker.getDateRangePicker('#picker'); if imported globally with <script> tag
107
109
 
108
- console.log( drp.startDate.toString()) // prints the selected startDate
109
- console.log( drp === input._daterangepicker) // prints 'true'
110
- console.log( drp.element === input) // prints 'true'
111
- console.log( document.querySelector('#picker') === input) // prints 'true'
110
+ console.log( picker.startDate.toString()) // prints the selected startDate
111
+ console.log( picker === input._daterangepicker) // prints 'true'
112
+ console.log( picker.element === input) // prints 'true'
112
113
  </script>
113
114
  ```
114
115
 
@@ -121,8 +122,8 @@ Initialisation with jQuery is supported in version 5.x
121
122
  ```html
122
123
  <script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
123
124
  <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.5.1/dist/global/daterangepicker.min.js"></script>
125
- <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.1/css/daterangepicker.min.css" rel="stylesheet" />
125
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.2/dist/global/daterangepicker.min.js"></script>
126
+ <link type="text/css" href="https://cdn.jsdelivr.net/npm/@wernfried/daterangepicker@5.5.2/css/daterangepicker.min.css" rel="stylesheet" />
126
127
 
127
128
  <input type="text" id="picker" />
128
129
 
@@ -161,7 +162,7 @@ $('#picker').daterangepicker({
161
162
  });
162
163
 
163
164
  // version 5.x - without jQuery
164
- const input = daterangepicker('#picker', { // or DateRangePicker.daterangepicker('#picker', ...
165
+ const picker = daterangepicker('#picker', { // or DateRangePicker.daterangepicker('#picker', ...
165
166
  startDate: DateTime.now(),
166
167
  // allow only dates from current year
167
168
  minDate: DateTime.now().startOf('year'),
@@ -169,14 +170,14 @@ const input = daterangepicker('#picker', { // or DateRangePicker.daterangepicker
169
170
  singleDatePicker: true
170
171
  });
171
172
 
172
- input.addEventListener('violate', (ev) => {
173
+ picker.addEventListener('violate', (ev) => {
173
174
  ev.newDate.startDate = DateTime.now().minus({ days: 3 }).startOf('day');
174
175
  ev.preventDefault();
175
176
  });
176
- input.addEventListener('show', (ev) => {
177
+ picker.addEventListener('show', (ev) => {
177
178
  console.log('Show the picker')
178
179
  });
179
- input.addEventListener('beforeHide', (ev) => {
180
+ picker.addEventListener('beforeHide', (ev) => {
180
181
  console.log(ev.picker.startDate.toString());
181
182
  ev.preventDefault(); // -> do not hide the picker
182
183
  });
@@ -2335,24 +2335,37 @@ class DateRangePicker {
2335
2335
  });
2336
2336
  }
2337
2337
  /**
2338
- * Adds an event listener to the anchor element (e.g., `<input>`) the DateRangePicker is attached to.
2339
- * This allows external code to subscribe to native DOM events such as 'click', 'focus', 'keyup', etc.
2338
+ * Adding event listener to input element where dateragnepicker is attached to.
2339
+ * Wrapper to give easy access for `addEventListener()` on DateRangePicker instance.
2340
2340
  *
2341
- * @param {string} type - The event name (e.g., 'click', 'focus', 'keyup')
2341
+ * @param {string} type - The event name, either native DOM-Event or [DateRangePicker](API_Doc.md#event) specific event
2342
2342
  * @param {function} listener - The callback function invoked when the event fires
2343
2343
  * @param {boolean|object} [options] - Optional event options:
2344
2344
  * - `boolean capture`: Whether to listen in the capture phase (default: `false`)
2345
2345
  * - `object signal`: An `AbortSignal` for later removal of the listener (default: `undefined`)
2346
2346
  *
2347
2347
  * @example
2348
- * daterangepicker.addEventListener('click', (e) => {
2349
- * console.log('Picker element was clicked', e);
2348
+ * picker.addEventListener('hide', (e) => {
2349
+ * console.log('Picker element was hidden', e);
2350
2350
  * });
2351
2351
  *
2352
2352
  */
2353
2353
  addEventListener(type, listener, options) {
2354
2354
  this.element.addEventListener(type, listener, options);
2355
2355
  }
2356
+ /**
2357
+ * Counterpart to `addEventListener()`
2358
+ * Note, `listener` most be a named function to enable remove.
2359
+ *
2360
+ * @param {string} type - The event name, either native
2361
+ * @param {function} listener - The callback function invoked when the event fires
2362
+ * @param {boolean|object} [options] - Optional event options:
2363
+ * - `boolean capture`: Whether to listen in the capture phase (default: `false`)
2364
+ * - `object signal`: An `AbortSignal` for later removal of the listener (default: `undefined`)
2365
+ */
2366
+ removeEventListener(type, listener, options) {
2367
+ this.element.removeEventListener(type, listener, options);
2368
+ }
2356
2369
  }
2357
2370
  function createElementFromHTML(html) {
2358
2371
  const template = document.createElement("template");