@wernfried/daterangepicker 5.4.6 → 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.
- package/API_Doc.md +25 -4
- package/README.md +9 -9
- package/dist/cjs/daterangepicker.cjs +44 -12
- package/dist/cjs/daterangepicker.cjs.map +1 -1
- package/dist/cjs/daterangepicker.min.cjs +1 -1
- package/dist/cjs/daterangepicker.min.cjs.map +1 -1
- package/dist/esm/daterangepicker.js +44 -12
- package/dist/esm/daterangepicker.js.map +1 -1
- package/dist/esm/daterangepicker.min.js +1 -1
- package/dist/esm/daterangepicker.min.js.map +1 -1
- package/dist/global/daterangepicker.js +44 -12
- package/dist/global/daterangepicker.js.map +1 -1
- package/dist/global/daterangepicker.min.js +1 -1
- package/dist/global/daterangepicker.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -165,6 +165,8 @@ class DateRangePicker {
|
|
|
165
165
|
} else if (typeof options.parentEl === "string") {
|
|
166
166
|
this.parentEl = document.querySelector(options.parentEl) ?? this.parentEl;
|
|
167
167
|
}
|
|
168
|
+
if (this.parentEl.matches("input"))
|
|
169
|
+
console.error('Parent element "parentEl" must not a self-closing "<input>"');
|
|
168
170
|
this.parentEl.appendChild(this.container);
|
|
169
171
|
if (typeof options.timePicker === "boolean")
|
|
170
172
|
this.timePicker = options.timePicker;
|
|
@@ -1604,7 +1606,7 @@ class DateRangePicker {
|
|
|
1604
1606
|
top: offset(this.parentEl).top - this.parentEl.scrollTop,
|
|
1605
1607
|
left: offset(this.parentEl).left - this.parentEl.scrollLeft
|
|
1606
1608
|
};
|
|
1607
|
-
parentRightEdge = this.parentEl.clientWidth +
|
|
1609
|
+
parentRightEdge = this.parentEl.clientWidth + parentOffset.left;
|
|
1608
1610
|
}
|
|
1609
1611
|
switch (this.drops) {
|
|
1610
1612
|
case "auto":
|
|
@@ -2325,6 +2327,25 @@ class DateRangePicker {
|
|
|
2325
2327
|
});
|
|
2326
2328
|
});
|
|
2327
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
|
+
}
|
|
2328
2349
|
}
|
|
2329
2350
|
function createElementFromHTML(html) {
|
|
2330
2351
|
const template = document.createElement("template");
|
|
@@ -2370,13 +2391,16 @@ function outerHeight(el, withMargin = false) {
|
|
|
2370
2391
|
}
|
|
2371
2392
|
function daterangepicker(element, options, callback) {
|
|
2372
2393
|
if (element instanceof HTMLElement) {
|
|
2373
|
-
|
|
2374
|
-
|
|
2394
|
+
element._daterangepicker = new DateRangePicker(element, options || {}, callback);
|
|
2395
|
+
return element._daterangepicker;
|
|
2396
|
+
} else if (element instanceof NodeList || element instanceof HTMLCollection) {
|
|
2375
2397
|
const ret = [];
|
|
2376
2398
|
for (const el of Array.from(element)) {
|
|
2377
2399
|
if (el._daterangepicker && typeof el._daterangepicker.remove === "function")
|
|
2378
2400
|
el._daterangepicker.remove();
|
|
2379
|
-
|
|
2401
|
+
const picker = new DateRangePicker(el, options || {}, callback);
|
|
2402
|
+
el._daterangepicker = picker;
|
|
2403
|
+
ret.push(picker);
|
|
2380
2404
|
}
|
|
2381
2405
|
return ret;
|
|
2382
2406
|
} else if (typeof element === "string") {
|
|
@@ -2385,22 +2409,30 @@ function daterangepicker(element, options, callback) {
|
|
|
2385
2409
|
for (const el of Array.from(document.querySelectorAll(element))) {
|
|
2386
2410
|
if (el._daterangepicker && typeof el._daterangepicker.remove === "function")
|
|
2387
2411
|
el._daterangepicker.remove();
|
|
2388
|
-
|
|
2412
|
+
const picker = new DateRangePicker(el, options || {}, callback);
|
|
2413
|
+
el._daterangepicker = picker;
|
|
2414
|
+
ret.push(picker);
|
|
2389
2415
|
}
|
|
2390
2416
|
return ret;
|
|
2391
2417
|
} else if (document.querySelectorAll(element).length === 1) {
|
|
2392
|
-
|
|
2418
|
+
const picker = new DateRangePicker(element, options || {}, callback);
|
|
2419
|
+
document.querySelector(element)._daterangepicker = picker;
|
|
2420
|
+
return picker;
|
|
2393
2421
|
} else {
|
|
2394
|
-
return
|
|
2422
|
+
return void 0;
|
|
2395
2423
|
}
|
|
2424
|
+
} else if (element == null) {
|
|
2425
|
+
return new DateRangePicker(element, options || {}, callback);
|
|
2396
2426
|
} else {
|
|
2397
|
-
return
|
|
2427
|
+
return void 0;
|
|
2398
2428
|
}
|
|
2399
2429
|
}
|
|
2400
|
-
function getDateRangePicker(
|
|
2401
|
-
if (typeof
|
|
2402
|
-
|
|
2403
|
-
|
|
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
|
+
}
|
|
2404
2436
|
}
|
|
2405
2437
|
if (window.jQuery?.fn) {
|
|
2406
2438
|
jQuery.fn.daterangepicker = function(options, callback) {
|