diff --git a/packages/input-datepicker/src/LionInputDatepicker.js b/packages/input-datepicker/src/LionInputDatepicker.js index c71f618a9..f9cf22c78 100644 --- a/packages/input-datepicker/src/LionInputDatepicker.js +++ b/packages/input-datepicker/src/LionInputDatepicker.js @@ -264,6 +264,7 @@ export class LionInputDatepicker extends OverlayMixin(LionInputDate) { contentNode, invokerNode, elementToFocusAfterHide: invokerNode, + hidesOnOutsideClick: true, }); return ctrl; } diff --git a/packages/input-datepicker/test/lion-input-datepicker.test.js b/packages/input-datepicker/test/lion-input-datepicker.test.js index fc6ddc7cc..81fc20e05 100644 --- a/packages/input-datepicker/test/lion-input-datepicker.test.js +++ b/packages/input-datepicker/test/lion-input-datepicker.test.js @@ -1,4 +1,4 @@ -import { expect, fixture, defineCE } from '@open-wc/testing'; +import { expect, fixture, defineCE, aTimeout } from '@open-wc/testing'; import sinon from 'sinon'; import { html, LitElement } from '@lion/core'; import { MaxDate, MinDate, MinMaxDate, IsDateDisabled } from '@lion/validate'; @@ -99,6 +99,19 @@ describe('', () => { expect(elObj.overlayController.isShown).to.equal(false); }); + it('closes the calendar via outside click', async () => { + const el = await fixture(html` + + `); + const elObj = new DatepickerInputObject(el); + await elObj.openCalendar(); + expect(elObj.overlayController.isShown).to.equal(true); + + document.body.click(); + await aTimeout(); + expect(elObj.overlayController.isShown).to.be.false; + }); + /** * Not in scope: * - centralDate can be overridden