@wernfried/daterangepicker 5.4.10 → 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 +21 -5
- package/README.md +21 -19
- package/dist/cjs/daterangepicker.cjs +30 -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 +30 -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 +30 -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
|
@@ -39,6 +39,7 @@ class DateRangePicker {
|
|
|
39
39
|
this.isInvalidTime = null;
|
|
40
40
|
this.isCustomDate = null;
|
|
41
41
|
this.onOutsideClick = "apply";
|
|
42
|
+
this.stopPropagation = true;
|
|
42
43
|
this.opens = this.element?.classList.contains("pull-right") ? "left" : "right";
|
|
43
44
|
this.drops = this.element?.classList.contains("dropup") ? "up" : "down";
|
|
44
45
|
this.buttonClasses = "btn btn-sm";
|
|
@@ -220,7 +221,8 @@ class DateRangePicker {
|
|
|
220
221
|
"autoApply",
|
|
221
222
|
"autoUpdateInput",
|
|
222
223
|
"showLabel",
|
|
223
|
-
"showOnClick"
|
|
224
|
+
"showOnClick",
|
|
225
|
+
"stopPropagation"
|
|
224
226
|
]) {
|
|
225
227
|
if (typeof options[key2] === "boolean")
|
|
226
228
|
this[key2] = options[key2];
|
|
@@ -2319,33 +2321,50 @@ class DateRangePicker {
|
|
|
2319
2321
|
* @private
|
|
2320
2322
|
*/
|
|
2321
2323
|
addListener(element, eventName, selector, delegate) {
|
|
2324
|
+
const stopPropagation = this.stopPropagation;
|
|
2322
2325
|
this.container.querySelectorAll(element).forEach((el) => {
|
|
2323
2326
|
el.addEventListener(eventName, function(event) {
|
|
2324
2327
|
const target = event.target.closest(selector);
|
|
2325
|
-
if (target && el.contains(target))
|
|
2328
|
+
if (target && el.contains(target)) {
|
|
2329
|
+
if (stopPropagation)
|
|
2330
|
+
event.stopPropagation();
|
|
2326
2331
|
delegate.call(target, event);
|
|
2332
|
+
}
|
|
2327
2333
|
});
|
|
2328
2334
|
});
|
|
2329
2335
|
}
|
|
2330
2336
|
/**
|
|
2331
|
-
*
|
|
2332
|
-
*
|
|
2337
|
+
* Adding event listener to input element where dateragnepicker is attached to.
|
|
2338
|
+
* Wrapper to give easy access for `addEventListener()` on DateRangePicker instance.
|
|
2333
2339
|
*
|
|
2334
|
-
* @param {string} type - The event name (
|
|
2340
|
+
* @param {string} type - The event name, either native DOM-Event or [DateRangePicker](API_Doc.md#event) specific event
|
|
2335
2341
|
* @param {function} listener - The callback function invoked when the event fires
|
|
2336
2342
|
* @param {boolean|object} [options] - Optional event options:
|
|
2337
2343
|
* - `boolean capture`: Whether to listen in the capture phase (default: `false`)
|
|
2338
2344
|
* - `object signal`: An `AbortSignal` for later removal of the listener (default: `undefined`)
|
|
2339
2345
|
*
|
|
2340
2346
|
* @example
|
|
2341
|
-
*
|
|
2342
|
-
* console.log('Picker element was
|
|
2347
|
+
* picker.addEventListener('hide', (e) => {
|
|
2348
|
+
* console.log('Picker element was hidden', e);
|
|
2343
2349
|
* });
|
|
2344
2350
|
*
|
|
2345
2351
|
*/
|
|
2346
2352
|
addEventListener(type, listener, options) {
|
|
2347
2353
|
this.element.addEventListener(type, listener, options);
|
|
2348
2354
|
}
|
|
2355
|
+
/**
|
|
2356
|
+
* Counterpart to `addEventListener()`
|
|
2357
|
+
* Note, `listener` most be a named function to enable remove.
|
|
2358
|
+
*
|
|
2359
|
+
* @param {string} type - The event name, either native
|
|
2360
|
+
* @param {function} listener - The callback function invoked when the event fires
|
|
2361
|
+
* @param {boolean|object} [options] - Optional event options:
|
|
2362
|
+
* - `boolean capture`: Whether to listen in the capture phase (default: `false`)
|
|
2363
|
+
* - `object signal`: An `AbortSignal` for later removal of the listener (default: `undefined`)
|
|
2364
|
+
*/
|
|
2365
|
+
removeEventListener(type, listener, options) {
|
|
2366
|
+
this.element.removeEventListener(type, listener, options);
|
|
2367
|
+
}
|
|
2349
2368
|
}
|
|
2350
2369
|
function createElementFromHTML(html) {
|
|
2351
2370
|
const template = document.createElement("template");
|
|
@@ -2398,9 +2417,8 @@ function daterangepicker(element, options, callback) {
|
|
|
2398
2417
|
for (const el of Array.from(element)) {
|
|
2399
2418
|
if (el._daterangepicker && typeof el._daterangepicker.remove === "function")
|
|
2400
2419
|
el._daterangepicker.remove();
|
|
2401
|
-
|
|
2402
|
-
el._daterangepicker
|
|
2403
|
-
ret.push(picker);
|
|
2420
|
+
el._daterangepicker = new DateRangePicker(el, options || {}, callback);
|
|
2421
|
+
ret.push(el._daterangepicker);
|
|
2404
2422
|
}
|
|
2405
2423
|
return ret;
|
|
2406
2424
|
} else if (typeof element === "string") {
|
|
@@ -2409,9 +2427,8 @@ function daterangepicker(element, options, callback) {
|
|
|
2409
2427
|
for (const el of Array.from(document.querySelectorAll(element))) {
|
|
2410
2428
|
if (el._daterangepicker && typeof el._daterangepicker.remove === "function")
|
|
2411
2429
|
el._daterangepicker.remove();
|
|
2412
|
-
|
|
2413
|
-
el._daterangepicker
|
|
2414
|
-
ret.push(picker);
|
|
2430
|
+
el._daterangepicker = new DateRangePicker(el, options || {}, callback);
|
|
2431
|
+
ret.push(el._daterangepicker);
|
|
2415
2432
|
}
|
|
2416
2433
|
return ret;
|
|
2417
2434
|
} else if (document.querySelectorAll(element).length === 1) {
|