@wernfried/daterangepicker 5.4.9 → 5.4.10

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.
@@ -2327,6 +2327,25 @@ class DateRangePicker {
2327
2327
  });
2328
2328
  });
2329
2329
  }
2330
+ /**
2331
+ * Adds an event listener to the anchor element (e.g., `<input>`) the DateRangePicker is attached to.
2332
+ * This allows external code to subscribe to native DOM events such as 'click', 'focus', 'keyup', etc.
2333
+ *
2334
+ * @param {string} type - The event name (e.g., 'click', 'focus', 'keyup')
2335
+ * @param {function} listener - The callback function invoked when the event fires
2336
+ * @param {boolean|object} [options] - Optional event options:
2337
+ * - `boolean capture`: Whether to listen in the capture phase (default: `false`)
2338
+ * - `object signal`: An `AbortSignal` for later removal of the listener (default: `undefined`)
2339
+ *
2340
+ * @example
2341
+ * daterangepicker.addEventListener('click', (e) => {
2342
+ * console.log('Picker element was clicked', e);
2343
+ * });
2344
+ *
2345
+ */
2346
+ addEventListener(type, listener, options) {
2347
+ this.element.addEventListener(type, listener, options);
2348
+ }
2330
2349
  }
2331
2350
  function createElementFromHTML(html) {
2332
2351
  const template = document.createElement("template");
@@ -2372,13 +2391,16 @@ function outerHeight(el, withMargin = false) {
2372
2391
  }
2373
2392
  function daterangepicker(element, options, callback) {
2374
2393
  if (element instanceof HTMLElement) {
2375
- return new DateRangePicker(element, options || {}, callback);
2376
- } else if (elements instanceof NodeList || element instanceof HTMLCollection) {
2394
+ element._daterangepicker = new DateRangePicker(element, options || {}, callback);
2395
+ return element._daterangepicker;
2396
+ } else if (element instanceof NodeList || element instanceof HTMLCollection) {
2377
2397
  const ret = [];
2378
2398
  for (const el of Array.from(element)) {
2379
2399
  if (el._daterangepicker && typeof el._daterangepicker.remove === "function")
2380
2400
  el._daterangepicker.remove();
2381
- ret.push(new DateRangePicker(el, options || {}, callback));
2401
+ const picker = new DateRangePicker(el, options || {}, callback);
2402
+ el._daterangepicker = picker;
2403
+ ret.push(picker);
2382
2404
  }
2383
2405
  return ret;
2384
2406
  } else if (typeof element === "string") {
@@ -2387,22 +2409,30 @@ function daterangepicker(element, options, callback) {
2387
2409
  for (const el of Array.from(document.querySelectorAll(element))) {
2388
2410
  if (el._daterangepicker && typeof el._daterangepicker.remove === "function")
2389
2411
  el._daterangepicker.remove();
2390
- ret.push(new DateRangePicker(el, options || {}, callback));
2412
+ const picker = new DateRangePicker(el, options || {}, callback);
2413
+ el._daterangepicker = picker;
2414
+ ret.push(picker);
2391
2415
  }
2392
2416
  return ret;
2393
2417
  } else if (document.querySelectorAll(element).length === 1) {
2394
- return new DateRangePicker(element, options || {}, callback);
2418
+ const picker = new DateRangePicker(element, options || {}, callback);
2419
+ document.querySelector(element)._daterangepicker = picker;
2420
+ return picker;
2395
2421
  } else {
2396
- return null;
2422
+ return void 0;
2397
2423
  }
2424
+ } else if (element == null) {
2425
+ return new DateRangePicker(element, options || {}, callback);
2398
2426
  } else {
2399
- return null;
2427
+ return void 0;
2400
2428
  }
2401
2429
  }
2402
- function getDateRangePicker(target) {
2403
- if (typeof target === "string")
2404
- target = document.querySelector(target);
2405
- return target instanceof HTMLElement ? target._daterangepicker : void 0;
2430
+ function getDateRangePicker(element) {
2431
+ if (typeof element === "string") {
2432
+ return document.querySelector(element)._daterangepicker;
2433
+ } else {
2434
+ return element instanceof HTMLElement ? element._daterangepicker : void 0;
2435
+ }
2406
2436
  }
2407
2437
  if (window.jQuery?.fn) {
2408
2438
  jQuery.fn.daterangepicker = function(options, callback) {