@wernfried/daterangepicker 5.4.9 → 5.5.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/API_Doc.md +25 -3
- package/README.md +9 -8
- package/dist/cjs/daterangepicker.cjs +47 -13
- 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 +47 -13
- 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 +47 -13
- 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
|
@@ -40,6 +40,7 @@ var DateRangePicker = (function(exports, luxon2) {
|
|
|
40
40
|
this.isInvalidTime = null;
|
|
41
41
|
this.isCustomDate = null;
|
|
42
42
|
this.onOutsideClick = "apply";
|
|
43
|
+
this.stopPropagation = true;
|
|
43
44
|
this.opens = this.element?.classList.contains("pull-right") ? "left" : "right";
|
|
44
45
|
this.drops = this.element?.classList.contains("dropup") ? "up" : "down";
|
|
45
46
|
this.buttonClasses = "btn btn-sm";
|
|
@@ -221,7 +222,8 @@ var DateRangePicker = (function(exports, luxon2) {
|
|
|
221
222
|
"autoApply",
|
|
222
223
|
"autoUpdateInput",
|
|
223
224
|
"showLabel",
|
|
224
|
-
"showOnClick"
|
|
225
|
+
"showOnClick",
|
|
226
|
+
"stopPropagation"
|
|
225
227
|
]) {
|
|
226
228
|
if (typeof options[key2] === "boolean")
|
|
227
229
|
this[key2] = options[key2];
|
|
@@ -2320,14 +2322,37 @@ var DateRangePicker = (function(exports, luxon2) {
|
|
|
2320
2322
|
* @private
|
|
2321
2323
|
*/
|
|
2322
2324
|
addListener(element, eventName, selector, delegate) {
|
|
2325
|
+
const stopPropagation = this.stopPropagation;
|
|
2323
2326
|
this.container.querySelectorAll(element).forEach((el) => {
|
|
2324
2327
|
el.addEventListener(eventName, function(event) {
|
|
2325
2328
|
const target = event.target.closest(selector);
|
|
2326
|
-
if (target && el.contains(target))
|
|
2329
|
+
if (target && el.contains(target)) {
|
|
2330
|
+
if (stopPropagation)
|
|
2331
|
+
event.stopPropagation();
|
|
2327
2332
|
delegate.call(target, event);
|
|
2333
|
+
}
|
|
2328
2334
|
});
|
|
2329
2335
|
});
|
|
2330
2336
|
}
|
|
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.
|
|
2340
|
+
*
|
|
2341
|
+
* @param {string} type - The event name (e.g., 'click', 'focus', 'keyup')
|
|
2342
|
+
* @param {function} listener - The callback function invoked when the event fires
|
|
2343
|
+
* @param {boolean|object} [options] - Optional event options:
|
|
2344
|
+
* - `boolean capture`: Whether to listen in the capture phase (default: `false`)
|
|
2345
|
+
* - `object signal`: An `AbortSignal` for later removal of the listener (default: `undefined`)
|
|
2346
|
+
*
|
|
2347
|
+
* @example
|
|
2348
|
+
* daterangepicker.addEventListener('click', (e) => {
|
|
2349
|
+
* console.log('Picker element was clicked', e);
|
|
2350
|
+
* });
|
|
2351
|
+
*
|
|
2352
|
+
*/
|
|
2353
|
+
addEventListener(type, listener, options) {
|
|
2354
|
+
this.element.addEventListener(type, listener, options);
|
|
2355
|
+
}
|
|
2331
2356
|
}
|
|
2332
2357
|
function createElementFromHTML(html) {
|
|
2333
2358
|
const template = document.createElement("template");
|
|
@@ -2373,13 +2398,15 @@ var DateRangePicker = (function(exports, luxon2) {
|
|
|
2373
2398
|
}
|
|
2374
2399
|
function daterangepicker(element, options, callback) {
|
|
2375
2400
|
if (element instanceof HTMLElement) {
|
|
2376
|
-
|
|
2377
|
-
|
|
2401
|
+
element._daterangepicker = new DateRangePicker2(element, options || {}, callback);
|
|
2402
|
+
return element._daterangepicker;
|
|
2403
|
+
} else if (element instanceof NodeList || element instanceof HTMLCollection) {
|
|
2378
2404
|
const ret = [];
|
|
2379
2405
|
for (const el of Array.from(element)) {
|
|
2380
2406
|
if (el._daterangepicker && typeof el._daterangepicker.remove === "function")
|
|
2381
2407
|
el._daterangepicker.remove();
|
|
2382
|
-
|
|
2408
|
+
el._daterangepicker = new DateRangePicker2(el, options || {}, callback);
|
|
2409
|
+
ret.push(el._daterangepicker);
|
|
2383
2410
|
}
|
|
2384
2411
|
return ret;
|
|
2385
2412
|
} else if (typeof element === "string") {
|
|
@@ -2388,22 +2415,29 @@ var DateRangePicker = (function(exports, luxon2) {
|
|
|
2388
2415
|
for (const el of Array.from(document.querySelectorAll(element))) {
|
|
2389
2416
|
if (el._daterangepicker && typeof el._daterangepicker.remove === "function")
|
|
2390
2417
|
el._daterangepicker.remove();
|
|
2391
|
-
|
|
2418
|
+
el._daterangepicker = new DateRangePicker2(el, options || {}, callback);
|
|
2419
|
+
ret.push(el._daterangepicker);
|
|
2392
2420
|
}
|
|
2393
2421
|
return ret;
|
|
2394
2422
|
} else if (document.querySelectorAll(element).length === 1) {
|
|
2395
|
-
|
|
2423
|
+
const picker = new DateRangePicker2(element, options || {}, callback);
|
|
2424
|
+
document.querySelector(element)._daterangepicker = picker;
|
|
2425
|
+
return picker;
|
|
2396
2426
|
} else {
|
|
2397
|
-
return
|
|
2427
|
+
return void 0;
|
|
2398
2428
|
}
|
|
2429
|
+
} else if (element == null) {
|
|
2430
|
+
return new DateRangePicker2(element, options || {}, callback);
|
|
2399
2431
|
} else {
|
|
2400
|
-
return
|
|
2432
|
+
return void 0;
|
|
2401
2433
|
}
|
|
2402
2434
|
}
|
|
2403
|
-
function getDateRangePicker(
|
|
2404
|
-
if (typeof
|
|
2405
|
-
|
|
2406
|
-
|
|
2435
|
+
function getDateRangePicker(element) {
|
|
2436
|
+
if (typeof element === "string") {
|
|
2437
|
+
return document.querySelector(element)._daterangepicker;
|
|
2438
|
+
} else {
|
|
2439
|
+
return element instanceof HTMLElement ? element._daterangepicker : void 0;
|
|
2440
|
+
}
|
|
2407
2441
|
}
|
|
2408
2442
|
if (window.jQuery?.fn) {
|
|
2409
2443
|
jQuery.fn.daterangepicker = function(options, callback) {
|