@lion/ui 0.23.0 → 0.25.0
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/README.md +50 -20
- package/components/accordion/src/LionAccordion.js +31 -42
- package/components/accordion/test/lion-accordion.test.js +108 -134
- package/components/button/src/LionButton.js +9 -12
- package/components/button/src/LionButtonReset.js +0 -5
- package/components/button/src/LionButtonSubmit.js +7 -12
- package/components/button/test/demos.screenshots-test.js +50 -11
- package/components/button/test/lion-button.test.js +0 -1
- package/components/button/test-suites/LionButton.suite.js +135 -145
- package/components/button/test-suites/LionButtonReset.suite.js +54 -72
- package/components/button/test-suites/LionButtonSubmit.suite.js +49 -68
- package/components/calendar/src/LionCalendar.js +151 -104
- package/components/calendar/src/calendarStyle.js +0 -1
- package/components/calendar/src/utils/createMonth.js +3 -4
- package/components/calendar/src/utils/createMultipleMonth.js +15 -7
- package/components/calendar/src/utils/createWeek.js +0 -2
- package/components/calendar/src/utils/dataTemplate.js +8 -4
- package/components/calendar/src/utils/dayTemplate.js +0 -6
- package/components/calendar/src/utils/getDayMonthYear.js +6 -2
- package/components/calendar/test/demos.screenshots-test.js +40 -9
- package/components/calendar/test/lion-calendar.test.js +171 -282
- package/components/calendar/test/utils/createMonth.test.js +61 -22
- package/components/calendar/test/utils/createMultipleMonth.test.js +14 -7
- package/components/calendar/test/utils/createWeek.test.js +51 -17
- package/components/calendar/test/utils/dataTemplate.test.js +3 -4
- package/components/calendar/test/utils/dayTemplate.test.js +106 -34
- package/components/calendar/test/utils/getFirstDayNextMonth.test.js +0 -1
- package/components/calendar/test/utils/getLastDayPreviousMonth.test.js +0 -1
- package/components/calendar/test/utils/isSameDate.test.js +0 -1
- package/components/calendar/test/utils/snapshots/monthTemplate_en-GB_Sunday_2018-12.js +1 -2
- package/components/calendar/test-helpers/CalendarObject.js +31 -62
- package/components/calendar/test-helpers/DayObject.js +7 -15
- package/components/calendar/test-suites/LionCalendar.suite.js +7 -9
- package/components/checkbox-group/src/LionCheckboxIndeterminate.js +17 -30
- package/components/checkbox-group/test/lion-checkbox-group-integrations.test.js +0 -1
- package/components/checkbox-group/test/lion-checkbox-group.test.js +21 -16
- package/components/checkbox-group/test/lion-checkbox-indeterminate-integrations.test.js +3 -3
- package/components/checkbox-group/test/lion-checkbox-integrations.test.js +3 -2
- package/components/checkbox-group/test/lion-checkbox.test.js +30 -16
- package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +147 -191
- package/components/collapsible/src/LionCollapsible.js +10 -15
- package/components/collapsible/test/lion-collapsible.test.js +4 -18
- package/components/combobox/src/LionCombobox.js +35 -53
- package/components/combobox/src/utils/makeMatchingTextBold.js +2 -5
- package/components/combobox/src/validators.js +0 -1
- package/components/combobox/test/lion-combobox-integrations.test.js +6 -6
- package/components/combobox/test/lion-combobox.test.js +576 -869
- package/components/combobox/test/validators.test.js +6 -13
- package/components/combobox/test-helpers/combobox-helpers.js +24 -11
- package/components/core/src/DisabledMixin.js +61 -66
- package/components/core/src/DisabledWithTabIndexMixin.js +76 -83
- package/components/core/src/EventTargetShim.js +1 -4
- package/components/core/src/ScopedElementsMixin.js +4 -15
- package/components/core/src/ScopedStylesController.js +1 -5
- package/components/core/src/SlotMixin.js +236 -239
- package/components/core/src/browserDetection.js +5 -12
- package/components/core/test/DisabledMixin.test.js +24 -39
- package/components/core/test/DisabledWithTabIndexMixin.test.js +21 -34
- package/components/core/test/EventTargetShim.test.js +0 -8
- package/components/core/test/ScopedElementsMixin.test.js +22 -38
- package/components/core/test/ScopedStylesController.test.js +11 -20
- package/components/core/test/SlotMixin.test.js +102 -154
- package/components/core/test-helpers/getCachedFixture.js +5 -11
- package/components/core/types/SlotMixinTypes.ts +8 -3
- package/components/dialog/src/LionDialog.js +4 -3
- package/components/dialog/test/lion-dialog.integration.test.js +10 -20
- package/components/dialog/test/lion-dialog.test.js +48 -62
- package/components/dialog/test-helpers/test-router.js +4 -6
- package/components/drawer/src/LionDrawer.js +18 -34
- package/components/drawer/src/drawerStyle.js +0 -1
- package/components/drawer/test/lion-drawer.test.js +1 -17
- package/components/fieldset/test/lion-fieldset.test.js +6 -4
- package/components/form/src/LionForm.js +18 -13
- package/components/form/test/lion-form.test.js +22 -52
- package/components/form-core/src/FocusMixin.js +172 -174
- package/components/form-core/src/FormControlMixin.js +811 -813
- package/components/form-core/src/FormatMixin.js +537 -537
- package/components/form-core/src/InteractionStateMixin.js +196 -183
- package/components/form-core/src/LionField.js +9 -5
- package/components/form-core/src/NativeTextFieldMixin.js +114 -116
- package/components/form-core/src/choice-group/ChoiceGroupMixin.js +322 -364
- package/components/form-core/src/choice-group/ChoiceInputMixin.js +306 -296
- package/components/form-core/src/choice-group/CustomChoiceGroupMixin.js +114 -139
- package/components/form-core/src/form-group/FormElementsHaveNoError.js +0 -2
- package/components/form-core/src/form-group/FormGroupMixin.js +551 -557
- package/components/form-core/src/registration/FormRegisteringMixin.js +72 -71
- package/components/form-core/src/registration/FormRegistrarMixin.js +201 -217
- package/components/form-core/src/registration/FormRegistrarPortalMixin.js +31 -37
- package/components/form-core/src/utils/SyncUpdatableMixin.js +106 -117
- package/components/form-core/src/utils/getAriaElementsInRightDomOrder.js +1 -2
- package/components/form-core/src/validate/LionValidationFeedback.js +12 -8
- package/components/form-core/src/validate/Unparseable.js +4 -2
- package/components/form-core/src/validate/ValidateMixin.js +829 -883
- package/components/form-core/src/validate/Validator.js +3 -6
- package/components/form-core/src/validate/resultValidators/DefaultSuccess.js +1 -2
- package/components/form-core/src/validate/validators/DateValidators.js +0 -5
- package/components/form-core/src/validate/validators/NumberValidators.js +1 -5
- package/components/form-core/src/validate/validators/Required.js +1 -1
- package/components/form-core/src/validate/validators/StringValidators.js +1 -8
- package/components/form-core/test/FocusMixin.test.js +96 -82
- package/components/form-core/test/FormControlMixin.test.js +120 -176
- package/components/form-core/test/FormRegistrationMixins.test.js +0 -2
- package/components/form-core/test/FormatMixin.test.js +0 -1
- package/components/form-core/test/InteractionStateMixin.test.js +0 -1
- package/components/form-core/test/NativeTextFieldMixin.test.js +0 -1
- package/components/form-core/test/choice-group/ChoiceGroupMixin.test.js +0 -1
- package/components/form-core/test/choice-group/ChoiceInputMixin.test.js +0 -1
- package/components/form-core/test/choice-group/CustomChoiceGroupMixin.integrations.test.js +6 -8
- package/components/form-core/test/choice-group/CustomChoiceGroupMixin.test.js +0 -3
- package/components/form-core/test/form-group/FormGroupMixin.test.js +0 -1
- package/components/form-core/test/lion-field.test.js +88 -98
- package/components/form-core/test/utils/SyncUpdatableMixin.test.js +51 -65
- package/components/form-core/test/utils/getAriaElementsInRightDomOrder.test.js +3 -3
- package/components/form-core/test/validate/DateValidators.test.js +5 -27
- package/components/form-core/test/validate/NumberValidators.test.js +4 -16
- package/components/form-core/test/validate/Required.test.js +8 -21
- package/components/form-core/test/validate/ResultValidator.test.js +1 -2
- package/components/form-core/test/validate/StringValidators.test.js +4 -35
- package/components/form-core/test/validate/ValidateMixin.test.js +0 -1
- package/components/form-core/test/validate/ValidateMixinFeedbackPart.test.js +0 -1
- package/components/form-core/test/validate/Validator.test.js +39 -34
- package/components/form-core/test/validate/lion-validation-feedback.test.js +81 -43
- package/components/form-core/test-helpers/ExampleValidators.js +0 -5
- package/components/form-core/test-helpers/getFormControlMembers.js +2 -2
- package/components/form-core/test-helpers/mimicUserInput.js +5 -1
- package/components/form-core/test-suites/FormRegistrationMixins.suite.js +65 -122
- package/components/form-core/test-suites/FormatMixin.suite.js +202 -227
- package/components/form-core/test-suites/InteractionStateMixin.suite.js +47 -60
- package/components/form-core/test-suites/NativeTextFieldMixin.suite.js +8 -11
- package/components/form-core/test-suites/ValidateMixin.suite.js +280 -359
- package/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.js +112 -163
- package/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.js +185 -218
- package/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.js +116 -109
- package/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.js +36 -70
- package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +57 -65
- package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +664 -523
- package/components/form-core/translations/bg-BG.js +0 -1
- package/components/form-core/translations/cs-CZ.js +0 -1
- package/components/form-core/translations/de-DE.js +0 -1
- package/components/form-core/translations/en-AU.js +0 -1
- package/components/form-core/translations/en-GB.js +0 -1
- package/components/form-core/translations/en-US.js +0 -1
- package/components/form-core/translations/es-ES.js +0 -1
- package/components/form-core/translations/fr-BE.js +0 -1
- package/components/form-core/translations/fr-FR.js +0 -1
- package/components/form-core/translations/hu-HU.js +0 -1
- package/components/form-core/translations/it-IT.js +0 -1
- package/components/form-core/translations/nl-BE.js +0 -1
- package/components/form-core/translations/nl-NL.js +0 -1
- package/components/form-core/translations/pl-PL.js +0 -1
- package/components/form-core/translations/ro-RO.js +0 -1
- package/components/form-core/translations/ru-RU.js +0 -1
- package/components/form-core/translations/sk-SK.js +0 -1
- package/components/form-core/translations/tr-TR.js +0 -1
- package/components/form-core/translations/uk-UA.js +0 -1
- package/components/form-integrations/test/dialog-integrations.test.js +1 -4
- package/components/form-integrations/test/form-group-methods.test.js +28 -31
- package/components/form-integrations/test/form-integrations.test.js +27 -28
- package/components/form-integrations/test/form-validation-integrations.test.js +21 -29
- package/components/form-integrations/test/helpers/umbrella-form.js +3 -5
- package/components/form-integrations/test/model-value-consistency.test.js +75 -77
- package/components/form-integrations/test/model-value-event.test.js +10 -20
- package/components/helpers/src/SbActionLogger.js +13 -17
- package/components/helpers/src/SbLocaleSwitcher.js +5 -5
- package/components/helpers/src/sortEachDepth.js +0 -2
- package/components/helpers/test/renderLitAsNode.test.js +0 -4
- package/components/helpers/test/sb-action-logger.test.js +24 -55
- package/components/icon/src/IconManager.js +0 -2
- package/components/icon/src/LionIcon.js +2 -7
- package/components/icon/src/icons.js +0 -2
- package/components/icon/test/IconManager.test.js +0 -15
- package/components/icon/test/hammer.svg.js +3 -4
- package/components/icon/test/heart.svg.js +3 -4
- package/components/icon/test/lion-icon.test.js +14 -43
- package/components/input/src/LionInput.js +2 -8
- package/components/input/test/input-integrations.test.js +0 -5
- package/components/input/test/lion-input-integrations.test.js +0 -4
- package/components/input/test/lion-input.test.js +28 -58
- package/components/input/test-helpers/getInputMembers.js +2 -2
- package/components/input-amount/src/LionInputAmount.js +20 -20
- package/components/input-amount/src/formatters.js +0 -3
- package/components/input-amount/src/parsers.js +0 -3
- package/components/input-amount/test/formatters.test.js +24 -16
- package/components/input-amount/test/lion-input-amount-integrations.test.js +0 -4
- package/components/input-amount/test/lion-input-amount.test.js +123 -147
- package/components/input-amount/test/parsers.test.js +33 -17
- package/components/input-amount/test/preprocessors.test.js +0 -3
- package/components/input-amount-dropdown/src/LionInputAmountDropdown.js +49 -59
- package/components/input-amount-dropdown/src/currencyUtil.js +8 -7
- package/components/input-amount-dropdown/src/parsers.js +0 -1
- package/components/input-amount-dropdown/src/validators.js +0 -1
- package/components/input-amount-dropdown/test/LionInputAmountDropdown.test.js +34 -36
- package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +18 -13
- package/components/input-amount-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
- package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +132 -107
- package/components/input-date/src/LionInputDate.js +4 -3
- package/components/input-date/test/lion-input-date-integrations.test.js +0 -3
- package/components/input-date/test/lion-input-date.test.js +19 -32
- package/components/input-datepicker/src/LionInputDatepicker.js +17 -29
- package/components/input-datepicker/src/localizeNamespaceLoader.js +1 -2
- package/components/input-datepicker/test/lion-input-datepicker-integrations.test.js +0 -3
- package/components/input-datepicker/test/lion-input-datepicker.test.js +88 -153
- package/components/input-datepicker/test-helpers/DatepickerInputObject.js +9 -12
- package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +6 -4
- package/components/input-datepicker/translations/bg-BG.js +0 -1
- package/components/input-datepicker/translations/cs-CZ.js +0 -1
- package/components/input-datepicker/translations/de-DE.js +0 -1
- package/components/input-datepicker/translations/en-AU.js +0 -1
- package/components/input-datepicker/translations/en-GB.js +0 -1
- package/components/input-datepicker/translations/en-US.js +0 -1
- package/components/input-datepicker/translations/es-ES.js +0 -1
- package/components/input-datepicker/translations/fr-BE.js +0 -1
- package/components/input-datepicker/translations/fr-FR.js +0 -1
- package/components/input-datepicker/translations/hu-HU.js +0 -1
- package/components/input-datepicker/translations/it-IT.js +0 -1
- package/components/input-datepicker/translations/nl-BE.js +0 -1
- package/components/input-datepicker/translations/nl-NL.js +0 -1
- package/components/input-datepicker/translations/pl-PL.js +0 -1
- package/components/input-datepicker/translations/ro-RO.js +0 -1
- package/components/input-datepicker/translations/ru-RU.js +0 -1
- package/components/input-datepicker/translations/sk-SK.js +0 -1
- package/components/input-datepicker/translations/tr-TR.js +0 -1
- package/components/input-datepicker/translations/uk-UA.js +0 -1
- package/components/input-email/test/lion-input-email-integrations.test.js +0 -2
- package/components/input-email/test/lion-input-email.test.js +1 -7
- package/components/input-file/src/FileHandle.js +0 -3
- package/components/input-file/src/LionInputFile.js +85 -83
- package/components/input-file/src/LionSelectedFileList.js +12 -12
- package/components/input-file/src/validators.js +10 -9
- package/components/input-file/test/FileValidators.test.js +170 -80
- package/components/input-file/test/lion-input-file.test.js +160 -244
- package/components/input-file/test/lion-selected-file-list.test.js +13 -22
- package/components/input-file/translations/bg-BG.js +0 -1
- package/components/input-file/translations/cs-CZ.js +0 -1
- package/components/input-file/translations/de-DE.js +0 -1
- package/components/input-file/translations/en-AU.js +0 -1
- package/components/input-file/translations/en-GB.js +0 -1
- package/components/input-file/translations/en-PH.js +0 -1
- package/components/input-file/translations/en-US.js +0 -1
- package/components/input-file/translations/en.js +2 -1
- package/components/input-file/translations/es-ES.js +0 -1
- package/components/input-file/translations/fr-BE.js +0 -1
- package/components/input-file/translations/fr-FR.js +0 -1
- package/components/input-file/translations/hu-HU.js +0 -1
- package/components/input-file/translations/id-ID.js +0 -1
- package/components/input-file/translations/id.js +2 -1
- package/components/input-file/translations/it-IT.js +0 -1
- package/components/input-file/translations/nl-BE.js +0 -1
- package/components/input-file/translations/nl-NL.js +0 -1
- package/components/input-file/translations/pl-PL.js +0 -1
- package/components/input-file/translations/ro-RO.js +0 -1
- package/components/input-file/translations/ru-RU.js +0 -1
- package/components/input-file/translations/sk-SK.js +0 -1
- package/components/input-file/translations/uk-UA.js +0 -1
- package/components/input-file/translations/zh-CN.js +0 -1
- package/components/input-iban/src/validators.js +6 -11
- package/components/input-iban/test/formatters.test.js +0 -3
- package/components/input-iban/test/lion-input-iban-integrations.test.js +0 -2
- package/components/input-iban/test/lion-input-iban.test.js +1 -9
- package/components/input-iban/test/parsers.test.js +0 -2
- package/components/input-iban/test/validators.test.js +0 -12
- package/components/input-iban/translations/bg-BG.js +0 -1
- package/components/input-iban/translations/cs-CZ.js +0 -1
- package/components/input-iban/translations/de-DE.js +0 -1
- package/components/input-iban/translations/en-AU.js +0 -1
- package/components/input-iban/translations/en-GB.js +0 -1
- package/components/input-iban/translations/en-US.js +0 -1
- package/components/input-iban/translations/es-ES.js +0 -1
- package/components/input-iban/translations/fr-BE.js +0 -1
- package/components/input-iban/translations/fr-FR.js +0 -1
- package/components/input-iban/translations/hu-HU.js +0 -1
- package/components/input-iban/translations/it-IT.js +0 -1
- package/components/input-iban/translations/nl-BE.js +0 -1
- package/components/input-iban/translations/nl-NL.js +0 -1
- package/components/input-iban/translations/pl-PL.js +0 -1
- package/components/input-iban/translations/ro-RO.js +0 -1
- package/components/input-iban/translations/ru-RU.js +0 -1
- package/components/input-iban/translations/sk-SK.js +0 -1
- package/components/input-iban/translations/uk-UA.js +0 -1
- package/components/input-range/src/LionInputRange.js +18 -19
- package/components/input-range/test/lion-input-range.test.js +23 -48
- package/components/input-range/translations/bg-BG.js +0 -1
- package/components/input-range/translations/cs-CZ.js +0 -1
- package/components/input-range/translations/de-DE.js +0 -1
- package/components/input-range/translations/en-AU.js +0 -1
- package/components/input-range/translations/en-GB.js +0 -1
- package/components/input-range/translations/en-PH.js +0 -1
- package/components/input-range/translations/en-US.js +0 -1
- package/components/input-range/translations/es-ES.js +0 -1
- package/components/input-range/translations/fr-BE.js +0 -1
- package/components/input-range/translations/fr-FR.js +0 -1
- package/components/input-range/translations/hu-HU.js +0 -1
- package/components/input-range/translations/it-IT.js +0 -1
- package/components/input-range/translations/nl-BE.js +0 -1
- package/components/input-range/translations/nl-NL.js +0 -1
- package/components/input-range/translations/pl-PL.js +0 -1
- package/components/input-range/translations/ro-RO.js +0 -1
- package/components/input-range/translations/ru-RU.js +0 -1
- package/components/input-range/translations/sk-SK.js +0 -1
- package/components/input-range/translations/uk-UA.js +0 -1
- package/components/input-range/translations/zh-CN.js +0 -1
- package/components/input-stepper/src/LionInputStepper.js +19 -38
- package/components/input-stepper/test/lion-input-stepper-integrations.test.js +0 -1
- package/components/input-stepper/test/lion-input-stepper.test.js +0 -1
- package/components/input-stepper/test-suites/lion-input-stepper.integration.suite.js +0 -2
- package/components/input-stepper/test-suites/lion-input-stepper.suite.js +56 -105
- package/components/input-stepper/translations/bg-BG.js +0 -1
- package/components/input-stepper/translations/cs-CZ.js +0 -1
- package/components/input-stepper/translations/de-DE.js +0 -1
- package/components/input-stepper/translations/en-AU.js +0 -1
- package/components/input-stepper/translations/en-GB.js +0 -1
- package/components/input-stepper/translations/en-US.js +0 -1
- package/components/input-stepper/translations/es-ES.js +0 -1
- package/components/input-stepper/translations/fr-BE.js +0 -1
- package/components/input-stepper/translations/fr-FR.js +0 -1
- package/components/input-stepper/translations/hu-HU.js +0 -1
- package/components/input-stepper/translations/it-IT.js +0 -1
- package/components/input-stepper/translations/nl-BE.js +0 -1
- package/components/input-stepper/translations/nl-NL.js +0 -1
- package/components/input-stepper/translations/pl-PL.js +0 -1
- package/components/input-stepper/translations/ro-RO.js +0 -1
- package/components/input-stepper/translations/ru-RU.js +0 -1
- package/components/input-stepper/translations/sk-SK.js +0 -1
- package/components/input-stepper/translations/uk-UA.js +0 -1
- package/components/input-tel/src/LionInputTel.js +53 -37
- package/components/input-tel/src/PhoneUtilManager.js +6 -4
- package/components/input-tel/src/formatters.js +12 -10
- package/components/input-tel/src/parsers.js +3 -3
- package/components/input-tel/src/preprocessors.js +15 -7
- package/components/input-tel/src/validators.js +4 -6
- package/components/input-tel/test/LionInputTel.test.js +4 -2
- package/components/input-tel/test/formatters.test.js +22 -10
- package/components/input-tel/test/parsers.test.js +127 -11
- package/components/input-tel/test/preprocessors.test.js +24 -13
- package/components/input-tel/test/validators.test.js +7 -14
- package/components/input-tel/test-helpers/mockPhoneUtilManager.js +20 -8
- package/components/input-tel/test-suites/LionInputTel.suite.js +33 -73
- package/components/input-tel/translations/bg-BG.js +0 -1
- package/components/input-tel/translations/cs-CZ.js +0 -1
- package/components/input-tel/translations/de-DE.js +0 -1
- package/components/input-tel/translations/en-AU.js +0 -1
- package/components/input-tel/translations/en-GB.js +0 -1
- package/components/input-tel/translations/en-US.js +0 -1
- package/components/input-tel/translations/es-ES.js +0 -1
- package/components/input-tel/translations/fr-BE.js +0 -1
- package/components/input-tel/translations/fr-FR.js +0 -1
- package/components/input-tel/translations/hu-HU.js +0 -1
- package/components/input-tel/translations/it-IT.js +0 -1
- package/components/input-tel/translations/nl-BE.js +0 -1
- package/components/input-tel/translations/nl-NL.js +0 -1
- package/components/input-tel/translations/pl-PL.js +0 -1
- package/components/input-tel/translations/ro-RO.js +0 -1
- package/components/input-tel/translations/ru-RU.js +0 -1
- package/components/input-tel/translations/sk-SK.js +0 -1
- package/components/input-tel/translations/uk-UA.js +0 -1
- package/components/input-tel-dropdown/src/LionInputTelDropdown.js +10 -28
- package/components/input-tel-dropdown/src/regionCodeToLocale.js +3 -1
- package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +31 -38
- package/components/input-tel-dropdown/test/regionCodeToLocale.test.js +0 -1
- package/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
- package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +16 -11
- package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +54 -79
- package/components/listbox/src/LionListbox.js +5 -2
- package/components/listbox/src/LionOption.js +8 -7
- package/components/listbox/src/LionOptions.js +0 -3
- package/components/listbox/src/ListboxMixin.js +786 -820
- package/components/listbox/test/lion-listbox.test.js +0 -1
- package/components/listbox/test/lion-option.test.js +53 -64
- package/components/listbox/test/lion-options.test.js +3 -4
- package/components/listbox/test-helpers/getListboxMembers.js +6 -3
- package/components/listbox/test-suites/ListboxMixin.suite.js +101 -261
- package/components/localize/src/LocalizeManager.js +40 -40
- package/components/localize/src/LocalizeMixin.js +130 -157
- package/components/localize/src/date/formatDate.js +1 -5
- package/components/localize/src/date/getDateFormatBasedOnLocale.js +5 -3
- package/components/localize/src/date/getMonthNames.js +3 -5
- package/components/localize/src/date/getWeekdayNames.js +1 -5
- package/components/localize/src/date/parseDate.js +5 -20
- package/components/localize/src/date/utils/normalizeIntlDate.js +0 -7
- package/components/localize/src/getLocalizeManager.js +0 -3
- package/components/localize/src/number/formatNumber.js +3 -7
- package/components/localize/src/number/formatNumberToParts.js +52 -18
- package/components/localize/src/number/getCurrencyName.js +5 -5
- package/components/localize/src/number/getFractionDigits.js +4 -4
- package/components/localize/src/number/getSeparatorsFromNumber.js +1 -3
- package/components/localize/src/number/parseNumber.js +0 -3
- package/components/localize/src/number/utils/normalize-format-number-to-parts/forceAddGroupSeparators.js +0 -1
- package/components/localize/src/number/utils/normalize-format-number-to-parts/forceSpaceBetweenCurrencyCodeAndNumber.js +4 -1
- package/components/localize/test/LocalizeManager.test.js +385 -278
- package/components/localize/test/LocalizeMixin.test.js +28 -112
- package/components/localize/test/date/formatDate.test.js +18 -48
- package/components/localize/test/date/getDateFormatBasedOnLocale.test.js +0 -3
- package/components/localize/test/date/getMonthNames.test.js +27 -12
- package/components/localize/test/date/getWeekdayNames.test.js +93 -49
- package/components/localize/test/date/normalizeDateTime.test.js +0 -2
- package/components/localize/test/date/parseDate.test.js +12 -16
- package/components/localize/test/getLocalizeManager.test.js +0 -3
- package/components/localize/test/isLocalizeESModule.test.js +32 -13
- package/components/localize/test/localize.test.js +0 -4
- package/components/localize/test/number/formatNumber.test.js +215 -106
- package/components/localize/test/number/formatNumberToParts.test.js +31 -38
- package/components/localize/test/number/getCurrencyName.test.js +20 -6
- package/components/localize/test/number/getDecimalSeparator.test.js +5 -4
- package/components/localize/test/number/getFractionDigits.test.js +0 -2
- package/components/localize/test/number/getGroupSeparator.test.js +0 -2
- package/components/localize/test/number/getSeparatorsFromNumber.test.js +5 -3
- package/components/localize/test/number/parseNumber.test.js +123 -56
- package/components/localize/test/side-effect-free-entrypoint.test.js +0 -6
- package/components/localize/test-helpers/fake-imports.js +11 -6
- package/components/localize/test-helpers/localizeTearDown.js +0 -1
- package/components/menu/src/InteractiveListMixin.js +637 -638
- package/components/menu/src/LionMenu.js +46 -59
- package/components/menu/src/MoreButtonMenuMixin.js +215 -238
- package/components/menu/src/MultiLevelListMixin.js +240 -246
- package/components/menu/src/utils/isInView.js +0 -1
- package/components/menu/src/utils/listItemInteractions.js +4 -4
- package/components/menu/test/InteractiveListMixin.test.js +0 -1
- package/components/menu/test/MoreButtonMenuMixin.test.js +3 -2
- package/components/menu/test/MultiLevelListMixin.test.js +0 -1
- package/components/menu/test/lion-menu-interactions.test.js +0 -1
- package/components/menu/test/lion-menu.test.js +6 -2
- package/components/menu/test-helpers/mimicKeyPress.js +12 -2
- package/components/menu/test-suites/InteractiveListMixin.suite.js +4 -43
- package/components/menu/test-suites/LionMenu.suite.js +1 -8
- package/components/menu/test-suites/LionMenuInteractions.suite.js +22 -44
- package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +34 -41
- package/components/menu/test-suites/MultiLevelListMixin.suite.js +5 -23
- package/components/overlays/src/ArrowMixin.js +111 -127
- package/components/overlays/src/OverlayController.js +172 -152
- package/components/overlays/src/OverlayMixin.js +64 -69
- package/components/overlays/src/OverlaysManager.js +30 -32
- package/components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js +0 -1
- package/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js +11 -11
- package/components/overlays/src/configurations/withBottomSheetConfig.js +12 -13
- package/components/overlays/src/configurations/withDropdownConfig.js +4 -2
- package/components/overlays/src/configurations/withModalDialogConfig.js +12 -13
- package/components/overlays/src/configurations/withPopoverConfig.js +27 -25
- package/components/overlays/src/configurations/withTooltipConfig.js +15 -13
- package/components/overlays/src/overlayDocumentStyle.js +1 -1
- package/components/overlays/src/overlayShadowDomStyle.js +0 -1
- package/components/overlays/src/singleton.js +0 -2
- package/components/overlays/src/utils/adopt-styles.js +18 -18
- package/components/overlays/src/utils/deep-contains.js +7 -6
- package/components/overlays/src/utils/get-focusable-elements.js +7 -10
- package/components/overlays/src/utils/inert-siblings.js +2 -4
- package/components/overlays/src/utils/is-equal-config.js +2 -3
- package/components/overlays/src/utils/is-visible.js +0 -1
- package/components/overlays/src/utils/simulate-tab.js +1 -4
- package/components/overlays/src/utils/sort-by-tabindex.js +2 -4
- package/components/overlays/test/ArrowMixin.test.js +18 -30
- package/components/overlays/test/OverlayController.test.js +406 -555
- package/components/overlays/test/OverlayMixin.test.js +0 -2
- package/components/overlays/test/OverlaysManager.test.js +30 -35
- package/components/overlays/test/global-positioning.test.js +6 -10
- package/components/overlays/test/invoker-compatibility.test.js +37 -0
- package/components/overlays/test/local-positioning.test.js +101 -103
- package/components/overlays/test/utils-tests/active-element.test.js +12 -27
- package/components/overlays/test/utils-tests/adopt-styles.test.js +25 -56
- package/components/overlays/test/utils-tests/deep-contains.test.js +73 -74
- package/components/overlays/test/utils-tests/get-focusable-elements.test.js +6 -23
- package/components/overlays/test/utils-tests/is-equal-config.test.js +32 -13
- package/components/overlays/test/utils-tests/visibility.test.js +44 -79
- package/components/overlays/test-helpers/createShadowHost.js +5 -3
- package/components/overlays/test-helpers/normalizeTransformStyle.js +2 -4
- package/components/overlays/test-suites/OverlayMixin.suite.js +152 -181
- package/components/overlays/test-suites/WithHoverInteraction.suite.js +96 -79
- package/components/overlays/translations/bg-BG.js +0 -1
- package/components/overlays/translations/cs-CZ.js +0 -1
- package/components/overlays/translations/de-DE.js +0 -1
- package/components/overlays/translations/en-AU.js +0 -1
- package/components/overlays/translations/en-GB.js +0 -1
- package/components/overlays/translations/en-US.js +0 -1
- package/components/overlays/translations/es-ES.js +0 -1
- package/components/overlays/translations/fr-BE.js +0 -1
- package/components/overlays/translations/fr-FR.js +0 -1
- package/components/overlays/translations/hu-HU.js +0 -1
- package/components/overlays/translations/it-IT.js +0 -1
- package/components/overlays/translations/nl-BE.js +0 -1
- package/components/overlays/translations/nl-NL.js +0 -1
- package/components/overlays/translations/pl-PL.js +0 -1
- package/components/overlays/translations/ro-RO.js +0 -1
- package/components/overlays/translations/ru-RU.js +0 -1
- package/components/overlays/translations/sk-SK.js +0 -1
- package/components/overlays/translations/tr-TR.js +0 -1
- package/components/overlays/translations/uk-UA.js +0 -1
- package/components/pagination/src/LionPagination.js +9 -12
- package/components/pagination/test/lion-pagination.test.js +18 -50
- package/components/progress-indicator/src/LionProgressIndicator.js +10 -12
- package/components/progress-indicator/test/lion-progress-indicator.test.js +1 -22
- package/components/radio-group/src/LionRadioGroup.js +1 -2
- package/components/radio-group/test/lion-radio-group-integrations.test.js +0 -1
- package/components/radio-group/test/lion-radio-group.test.js +27 -27
- package/components/radio-group/test/lion-radio-integrations.test.js +3 -2
- package/components/radio-group/test/lion-radio.test.js +30 -16
- package/components/select/src/LionSelect.js +12 -13
- package/components/select/test/lion-select.test.js +7 -12
- package/components/select-rich/src/LionSelectInvoker.js +18 -11
- package/components/select-rich/src/LionSelectRich.js +22 -44
- package/components/select-rich/test/demos.screenshots-test.js +40 -9
- package/components/select-rich/test/lion-select-invoker.test.js +26 -43
- package/components/select-rich/test/lion-select-listbox-suite-integration.test.js +3 -3
- package/components/select-rich/test/lion-select-rich-dialog-integration.test.js +4 -9
- package/components/select-rich/test/lion-select-rich-interaction.test.js +116 -116
- package/components/select-rich/test/lion-select-rich-upgrade.test.js +3 -7
- package/components/select-rich/test/lion-select-rich.test.js +153 -195
- package/components/select-rich/test-helpers/getSelectRichMembers.js +4 -1
- package/components/steps/src/LionStep.js +21 -12
- package/components/steps/src/LionSteps.js +25 -25
- package/components/steps/test/lion-step.test.js +18 -25
- package/components/steps/test/lion-steps.test.js +45 -78
- package/components/switch/src/LionSwitch.js +2 -7
- package/components/switch/src/LionSwitchButton.js +5 -6
- package/components/switch/test/lion-switch-button.test.js +16 -28
- package/components/switch/test/lion-switch.test.js +17 -31
- package/components/tabs/src/LionTabs.js +25 -28
- package/components/tabs/test/lion-tabs.test.js +156 -154
- package/components/textarea/src/LionTextarea.js +4 -23
- package/components/textarea/test/lion-textarea-integrations.test.js +0 -5
- package/components/textarea/test/lion-textarea.test.js +2 -28
- package/components/tooltip/src/LionTooltip.js +6 -6
- package/components/tooltip/test/lion-tooltip.test.js +75 -102
- package/components/validate-messages/src/getLocalizedMessage.js +8 -7
- package/components/validate-messages/src/loadDefaultFeedbackMessages.js +3 -1
- package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -5
- package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +5 -2
- package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +99 -35
- package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +4 -3
- package/components/validate-messages/test/loadDefaultFeedbackMessages.test.js +5 -3
- package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.js +80 -45
- package/components/validate-messages/translations/bg-BG.js +0 -1
- package/components/validate-messages/translations/cs-CZ.js +0 -1
- package/components/validate-messages/translations/de-DE.js +0 -1
- package/components/validate-messages/translations/en-AU.js +0 -1
- package/components/validate-messages/translations/en-GB.js +0 -1
- package/components/validate-messages/translations/en-PH.js +0 -1
- package/components/validate-messages/translations/en-US.js +0 -1
- package/components/validate-messages/translations/es-ES.js +0 -1
- package/components/validate-messages/translations/fr-BE.js +0 -1
- package/components/validate-messages/translations/fr-FR.js +0 -1
- package/components/validate-messages/translations/hu-HU.js +0 -1
- package/components/validate-messages/translations/it-IT.js +0 -1
- package/components/validate-messages/translations/nl-BE.js +0 -1
- package/components/validate-messages/translations/nl-NL.js +0 -1
- package/components/validate-messages/translations/pl-PL.js +0 -1
- package/components/validate-messages/translations/ro-RO.js +0 -1
- package/components/validate-messages/translations/ru-RU.js +0 -1
- package/components/validate-messages/translations/sk-SK.js +0 -1
- package/components/validate-messages/translations/tr-TR.js +0 -1
- package/components/validate-messages/translations/uk-UA.js +0 -1
- package/custom-elements.json +229 -85
- package/dist-types/components/core/src/SlotMixin.d.ts +6 -1
- package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
- package/dist-types/components/core/types/SlotMixinTypes.d.ts +5 -1
- package/dist-types/components/core/types/SlotMixinTypes.d.ts.map +1 -1
- package/dist-types/components/form-core/src/LionField.d.ts +3 -1
- package/dist-types/components/form-core/src/LionField.d.ts.map +1 -1
- package/dist-types/components/input-tel/src/LionInputTel.d.ts +6 -6
- package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
- package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts +2 -2
- package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts.map +1 -1
- package/dist-types/components/input-tel/src/formatters.d.ts +2 -2
- package/dist-types/components/input-tel/src/formatters.d.ts.map +1 -1
- package/dist-types/components/input-tel/src/preprocessors.d.ts +2 -2
- package/dist-types/components/input-tel/src/preprocessors.d.ts.map +1 -1
- package/dist-types/components/input-tel/test/validators.test.d.ts +1 -1
- package/dist-types/components/input-tel/test/validators.test.d.ts.map +1 -1
- package/dist-types/components/input-tel/test-helpers/mockPhoneUtilManager.d.ts +5 -0
- package/dist-types/components/input-tel/test-helpers/mockPhoneUtilManager.d.ts.map +1 -1
- package/dist-types/components/listbox/src/LionListbox.d.ts +2 -2
- package/dist-types/components/listbox/src/LionListbox.d.ts.map +1 -1
- package/dist-types/components/listbox/src/LionOption.d.ts +5 -2
- package/dist-types/components/listbox/src/LionOption.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlayController.d.ts +3 -1
- package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlaysManager.d.ts.map +1 -1
- package/dist-types/components/overlays/src/overlayDocumentStyle.d.ts.map +1 -1
- package/dist-types/components/overlays/test/invoker-compatibility.test.d.ts +3 -0
- package/dist-types/components/overlays/test/invoker-compatibility.test.d.ts.map +1 -0
- package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts +3 -1
- package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts.map +1 -1
- package/dist-types/components/select-rich/src/LionSelectRich.d.ts +6 -5
- package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- package/docs/components/accordion/overview.md +2 -2
- package/docs/components/accordion/reference.md +2 -2
- package/docs/components/accordion/use-cases.md +2 -2
- package/docs/components/button/examples.md +2 -2
- package/docs/components/button/extensions.md +2 -2
- package/docs/components/button/overview.md +2 -2
- package/docs/components/button/use-cases.md +2 -2
- package/docs/components/calendar/overview.md +2 -2
- package/docs/components/calendar/use-cases.md +2 -2
- package/docs/components/checkbox-group/overview.md +4 -4
- package/docs/components/checkbox-group/use-cases.md +2 -2
- package/docs/components/collapsible/examples.md +2 -2
- package/docs/components/collapsible/overview.md +3 -3
- package/docs/components/collapsible/use-cases.md +2 -2
- package/docs/components/combobox/api-table.md +1 -1
- package/docs/components/combobox/extensions.md +2 -2
- package/docs/components/combobox/overview.md +3 -3
- package/docs/components/combobox/use-cases.md +3 -3
- package/docs/components/dialog/overview.md +3 -3
- package/docs/components/dialog/use-cases.md +2 -2
- package/docs/components/drawer/overview.md +2 -2
- package/docs/components/drawer/use-cases.md +2 -2
- package/docs/components/fieldset/overview.md +7 -7
- package/docs/components/fieldset/use-cases.md +2 -2
- package/docs/components/form/overview.md +5 -5
- package/docs/components/form/use-cases.md +4 -4
- package/docs/components/icon/overview.md +2 -2
- package/docs/components/icon/use-cases.md +3 -3
- package/docs/components/input/overview.md +3 -3
- package/docs/components/input/use-cases.md +2 -2
- package/docs/components/input-amount/overview.md +5 -5
- package/docs/components/input-amount/use-cases.md +2 -2
- package/docs/components/input-amount-dropdown/use-cases.md +2 -2
- package/docs/components/input-date/overview.md +5 -5
- package/docs/components/input-date/use-cases.md +2 -2
- package/docs/components/input-datepicker/overview.md +7 -7
- package/docs/components/input-datepicker/use-cases.md +2 -2
- package/docs/components/input-email/overview.md +4 -4
- package/docs/components/input-email/use-cases.md +2 -2
- package/docs/components/input-file/overview.md +3 -3
- package/docs/components/input-file/use-cases.md +2 -2
- package/docs/components/input-iban/overview.md +4 -4
- package/docs/components/input-iban/use-cases.md +2 -2
- package/docs/components/input-range/overview.md +4 -4
- package/docs/components/input-range/use-cases.md +2 -2
- package/docs/components/input-stepper/overview.md +3 -3
- package/docs/components/input-stepper/use-cases.md +2 -2
- package/docs/components/input-tel/overview.md +3 -3
- package/docs/components/input-tel/use-cases.md +8 -8
- package/docs/components/input-tel-dropdown/extensions.md +2 -2
- package/docs/components/input-tel-dropdown/overview.md +3 -3
- package/docs/components/input-tel-dropdown/use-cases.md +2 -2
- package/docs/components/listbox/api-table.md +4 -4
- package/docs/components/listbox/overview.md +2 -2
- package/docs/components/listbox/use-cases.md +3 -3
- package/docs/components/menu/extensions.md +2 -2
- package/docs/components/menu/migration.md +2 -2
- package/docs/components/menu/overview.md +2 -2
- package/docs/components/menu/use-cases.md +1 -1
- package/docs/components/pagination/overview.md +2 -2
- package/docs/components/pagination/use-cases.md +2 -2
- package/docs/components/progress-indicator/examples.md +2 -2
- package/docs/components/progress-indicator/overview.md +2 -2
- package/docs/components/radio-group/overview.md +5 -5
- package/docs/components/radio-group/use-cases.md +2 -2
- package/docs/components/select/overview.md +2 -2
- package/docs/components/select/use-cases.md +3 -3
- package/docs/components/select-rich/api-table.md +1 -1
- package/docs/components/select-rich/examples.md +2 -2
- package/docs/components/select-rich/overview.md +2 -2
- package/docs/components/select-rich/use-cases.md +4 -4
- package/docs/components/steps/overview.md +2 -2
- package/docs/components/steps/use-cases.md +2 -2
- package/docs/components/switch/overview.md +2 -2
- package/docs/components/switch/reference.md +2 -2
- package/docs/components/switch/use-cases.md +2 -2
- package/docs/components/tabs/examples.md +3 -3
- package/docs/components/tabs/overview.md +2 -2
- package/docs/components/tabs/use-cases.md +2 -2
- package/docs/components/textarea/overview.md +2 -2
- package/docs/components/textarea/use-cases.md +2 -2
- package/docs/components/tooltip/examples.md +2 -2
- package/docs/components/tooltip/overview.md +2 -2
- package/docs/components/tooltip/use-cases.md +2 -2
- package/docs/fundamentals/index.md +4 -4
- package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +2 -2
- package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +2 -2
- package/docs/fundamentals/node-tools/providence-analytics/index.md +2 -2
- package/docs/fundamentals/node-tools/providence-analytics/overview.md +2 -2
- package/docs/fundamentals/node-tools/publish-docs/index.md +2 -2
- package/docs/fundamentals/node-tools/publish-docs/overview.md +5 -5
- package/docs/fundamentals/node-tools/remark-extend/index.md +2 -2
- package/docs/fundamentals/node-tools/remark-extend/overview.md +2 -2
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +2 -2
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +4 -4
- package/docs/fundamentals/rationales/TypeScript.md +62 -2
- package/docs/fundamentals/rationales/accessibility.md +5 -5
- package/docs/fundamentals/rationales/side-effects.md +2 -2
- package/docs/fundamentals/rationales/versioning.md +2 -2
- package/docs/fundamentals/systems/core/SlotMixin.md +3 -3
- package/docs/fundamentals/systems/core/index.md +2 -2
- package/docs/fundamentals/systems/core/overview.md +3 -3
- package/docs/fundamentals/systems/form/formatting-and-parsing.md +6 -6
- package/docs/fundamentals/systems/form/index.md +2 -2
- package/docs/fundamentals/systems/form/interaction-states.md +2 -2
- package/docs/fundamentals/systems/form/model-value.md +3 -3
- package/docs/fundamentals/systems/form/overview.md +30 -30
- package/docs/fundamentals/systems/form/styling.md +2 -2
- package/docs/fundamentals/systems/form/use-cases.md +2 -2
- package/docs/fundamentals/systems/form/validate.md +4 -4
- package/docs/fundamentals/systems/icon/index.md +2 -2
- package/docs/fundamentals/systems/icon/overview.md +2 -2
- package/docs/fundamentals/systems/localize/dates.md +2 -2
- package/docs/fundamentals/systems/localize/index.md +2 -2
- package/docs/fundamentals/systems/localize/numbers.md +2 -2
- package/docs/fundamentals/systems/localize/overview.md +6 -6
- package/docs/fundamentals/systems/localize/rationale.md +2 -2
- package/docs/fundamentals/systems/localize/text.md +2 -2
- package/docs/fundamentals/systems/localize/use-cases.md +2 -2
- package/docs/fundamentals/systems/overlays/_edge-cases.md +2 -2
- package/docs/fundamentals/systems/overlays/api-table.md +1 -1
- package/docs/fundamentals/systems/overlays/configuration.md +4 -4
- package/docs/fundamentals/systems/overlays/index.md +2 -2
- package/docs/fundamentals/systems/overlays/overview.md +7 -7
- package/docs/fundamentals/systems/overlays/rationale.md +2 -2
- package/docs/fundamentals/systems/overlays/use-cases.md +4 -4
- package/docs/fundamentals/tools/ajax/index.md +2 -2
- package/docs/fundamentals/tools/ajax/overview.md +2 -2
- package/docs/fundamentals/tools/ajax/use-cases.md +2 -2
- package/docs/fundamentals/tools/helpers/action-logger.md +2 -2
- package/docs/fundamentals/tools/helpers/index.md +2 -2
- package/docs/fundamentals/tools/helpers/overview.md +3 -3
- package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/example-success/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/overview.md +6 -6
- package/docs/guides/how-to/create-a-custom-field.md +7 -7
- package/docs/guides/how-to/create-a-form.md +6 -6
- package/docs/guides/how-to/extend-a-native-input.md +4 -4
- package/docs/guides/how-to/get-started.md +2 -2
- package/docs/guides/how-to/index.md +1 -1
- package/docs/guides/index.md +8 -8
- package/docs/guides/principles/definitions-and-terms.md +2 -2
- package/docs/guides/principles/index.md +5 -5
- package/docs/guides/principles/scoped-elements.md +2 -2
- package/docs/guides/principles/styling.md +3 -3
- package/docs/guides/principles/subclasser-apis.md +2 -2
- package/exports/define/lion-accordion.js +0 -1
- package/exports/define/lion-button-reset.js +0 -1
- package/exports/define/lion-button-submit.js +0 -1
- package/exports/define/lion-button.js +0 -1
- package/exports/define/lion-calendar.js +0 -1
- package/exports/define/lion-checkbox-group.js +0 -1
- package/exports/define/lion-checkbox-indeterminate.js +0 -1
- package/exports/define/lion-checkbox.js +0 -1
- package/exports/define/lion-collapsible.js +0 -1
- package/exports/define/lion-combobox.js +0 -1
- package/exports/define/lion-dialog.js +0 -1
- package/exports/define/lion-drawer.js +0 -1
- package/exports/define/lion-field.js +0 -1
- package/exports/define/lion-fieldset.js +0 -1
- package/exports/define/lion-form.js +0 -1
- package/exports/define/lion-icon.js +0 -1
- package/exports/define/lion-input-amount-dropdown.js +0 -1
- package/exports/define/lion-input-amount.js +0 -1
- package/exports/define/lion-input-date.js +0 -1
- package/exports/define/lion-input-datepicker.js +0 -1
- package/exports/define/lion-input-email.js +0 -1
- package/exports/define/lion-input-file.js +0 -1
- package/exports/define/lion-input-iban.js +0 -1
- package/exports/define/lion-input-range.js +0 -1
- package/exports/define/lion-input-stepper.js +0 -1
- package/exports/define/lion-input-tel-dropdown.js +0 -1
- package/exports/define/lion-input-tel.js +0 -1
- package/exports/define/lion-input.js +0 -1
- package/exports/define/lion-item.js +0 -1
- package/exports/define/lion-listbox.js +0 -1
- package/exports/define/lion-menu.js +0 -1
- package/exports/define/lion-menuitem.js +0 -1
- package/exports/define/lion-option.js +0 -1
- package/exports/define/lion-options.js +0 -1
- package/exports/define/lion-pagination.js +0 -1
- package/exports/define/lion-progress-indicator.js +0 -1
- package/exports/define/lion-radio-group.js +0 -1
- package/exports/define/lion-radio.js +0 -1
- package/exports/define/lion-select-invoker.js +0 -1
- package/exports/define/lion-select-rich.js +0 -1
- package/exports/define/lion-select.js +0 -1
- package/exports/define/lion-selected-file-list.js +0 -1
- package/exports/define/lion-step.js +0 -1
- package/exports/define/lion-steps.js +0 -1
- package/exports/define/lion-switch-button.js +0 -1
- package/exports/define/lion-switch.js +0 -1
- package/exports/define/lion-tabs.js +0 -1
- package/exports/define/lion-textarea.js +0 -1
- package/exports/define/lion-tooltip.js +0 -1
- package/exports/define/lion-validation-feedback.js +0 -1
- package/exports/define-helpers/sb-action-logger.js +0 -1
- package/exports/define-helpers/sb-locale-switcher.js +0 -1
- package/exports/form-core.js +0 -8
- package/exports/localize-no-side-effects.js +0 -1
- package/exports/localize.js +0 -2
- package/exports/overlays.js +0 -4
- package/generated/awesome-phonenumber/LICENSE +22 -0
- package/generated/awesome-phonenumber/LICENSE.closure-library +176 -0
- package/generated/awesome-phonenumber/LICENSE.libphonenumber +176 -0
- package/generated/awesome-phonenumber/checksums.json +6 -0
- package/generated/awesome-phonenumber/index-esm.mjs +817 -0
- package/generated/awesome-phonenumber/index.d.ts +227 -0
- package/generated/awesome-phonenumber/index.js +45 -0
- package/generated/awesome-phonenumber/lib/index.js +710 -0
- package/generated/awesome-phonenumber/package.json +9 -0
- package/generated/awesome-phonenumber/provenance.json +13 -0
- package/package.json +38 -15
- package/vscode.html-custom-data.json +5 -5
- package/web-types.json +1 -1
- package/vendor/README.md +0 -61
- package/vendor/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz +0 -0
|
@@ -9,7 +9,6 @@ import { sendKeys, setViewport } from '@web/test-runner-commands';
|
|
|
9
9
|
import { AlwaysInvalid } from '@lion/ui/form-core-test-helpers.js';
|
|
10
10
|
import { DatepickerInputObject } from '@lion/ui/input-datepicker-test-helpers.js';
|
|
11
11
|
import { LionInputDatepicker } from '@lion/ui/input-datepicker.js';
|
|
12
|
-
|
|
13
12
|
import '@lion/ui/define/lion-input-datepicker.js';
|
|
14
13
|
import { runDatepickerSuite } from '../test-suites/LionInputDatepicker.suite.js';
|
|
15
14
|
|
|
@@ -38,30 +37,26 @@ function getProtectedMembersCalendar(calendarEl) {
|
|
|
38
37
|
dateSelectedByUser: (...args) => calendarEl.__dateSelectedByUser(...args),
|
|
39
38
|
};
|
|
40
39
|
}
|
|
41
|
-
|
|
42
|
-
const fixture = /** @type {(arg: TemplateResult) => Promise<LionInputDatepicker>} */ (_fixture);
|
|
43
|
-
|
|
40
|
+
const fixture = /** @type {(arg: TemplateResult) => Promise<LionInputDatepicker>} */ _fixture;
|
|
44
41
|
describe('<lion-input-datepicker>', () => {
|
|
45
42
|
describe('Calendar Overlay', () => {
|
|
46
43
|
it('implements calendar-overlay Style component', async () => {
|
|
47
44
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
48
45
|
const elObj = new DatepickerInputObject(el);
|
|
49
46
|
await elObj.openCalendar();
|
|
50
|
-
|
|
51
47
|
expect(
|
|
52
|
-
/** @type {ShadowRoot} */
|
|
48
|
+
/** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay'),
|
|
53
49
|
).not.to.equal(null);
|
|
54
50
|
expect(
|
|
55
|
-
/** @type {ShadowRoot} */
|
|
51
|
+
/** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__header'),
|
|
56
52
|
).not.to.equal(null);
|
|
57
53
|
expect(
|
|
58
|
-
/** @type {ShadowRoot} */
|
|
54
|
+
/** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__heading'),
|
|
59
55
|
).not.to.equal(null);
|
|
60
56
|
expect(
|
|
61
|
-
/** @type {ShadowRoot} */
|
|
57
|
+
/** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__close-button'),
|
|
62
58
|
).not.to.equal(null);
|
|
63
59
|
});
|
|
64
|
-
|
|
65
60
|
it('has a close button, with a tooltip "Close"', async () => {
|
|
66
61
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
67
62
|
const elObj = new DatepickerInputObject(el);
|
|
@@ -70,7 +65,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
70
65
|
expect(elObj.overlayCloseButtonEl.getAttribute('title')).to.equal('Close');
|
|
71
66
|
expect(elObj.overlayCloseButtonEl.getAttribute('aria-label')).to.equal('Close');
|
|
72
67
|
});
|
|
73
|
-
|
|
74
68
|
it('has a default title based on input label', async () => {
|
|
75
69
|
const el = await fixture(html`
|
|
76
70
|
<lion-input-datepicker
|
|
@@ -82,7 +76,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
82
76
|
await elObj.openCalendar();
|
|
83
77
|
expect(elObj.overlayHeadingEl.textContent).to.equal('Pick your date');
|
|
84
78
|
});
|
|
85
|
-
|
|
86
79
|
it('can have a custom heading', async () => {
|
|
87
80
|
const el = await fixture(html`
|
|
88
81
|
<lion-input-datepicker
|
|
@@ -94,37 +87,33 @@ describe('<lion-input-datepicker>', () => {
|
|
|
94
87
|
await elObj.openCalendar();
|
|
95
88
|
expect(elObj.overlayHeadingEl.innerText).to.equal('foo');
|
|
96
89
|
});
|
|
97
|
-
|
|
98
90
|
it('closes the calendar on [esc] key', async () => {
|
|
99
91
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
100
92
|
const elObj = new DatepickerInputObject(el);
|
|
101
93
|
await elObj.openCalendar();
|
|
102
94
|
expect(elObj.overlayController.isShown).to.equal(true);
|
|
103
|
-
|
|
104
95
|
elObj.overlayController.contentNode.dispatchEvent(
|
|
105
|
-
new KeyboardEvent('keyup', {
|
|
96
|
+
new KeyboardEvent('keyup', {
|
|
97
|
+
key: 'Escape',
|
|
98
|
+
}),
|
|
106
99
|
);
|
|
107
100
|
await nextFrame();
|
|
108
101
|
expect(elObj.overlayController.isShown).to.equal(false);
|
|
109
102
|
});
|
|
110
|
-
|
|
111
103
|
it('closes the calendar via close button', async () => {
|
|
112
104
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
113
105
|
const elObj = new DatepickerInputObject(el);
|
|
114
106
|
await elObj.openCalendar();
|
|
115
107
|
expect(elObj.overlayController.isShown).to.equal(true);
|
|
116
|
-
|
|
117
108
|
elObj.overlayCloseButtonEl.click();
|
|
118
109
|
await nextFrame();
|
|
119
110
|
expect(elObj.overlayController.isShown).to.equal(false);
|
|
120
111
|
});
|
|
121
|
-
|
|
122
112
|
it('closes the calendar via outside click event', async () => {
|
|
123
113
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
124
114
|
const elObj = new DatepickerInputObject(el);
|
|
125
115
|
await elObj.openCalendar();
|
|
126
116
|
expect(elObj.overlayController.isShown).to.equal(true);
|
|
127
|
-
|
|
128
117
|
mimicClick(document.body);
|
|
129
118
|
await aTimeout(0);
|
|
130
119
|
expect(elObj.overlayController.isShown).to.be.false;
|
|
@@ -135,7 +124,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
135
124
|
* - centralDate can be overridden
|
|
136
125
|
*/
|
|
137
126
|
});
|
|
138
|
-
|
|
139
127
|
describe('Calendar Invoker', () => {
|
|
140
128
|
it('adds invoker button that toggles the overlay on click in suffix slot ', async () => {
|
|
141
129
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
@@ -145,30 +133,35 @@ describe('<lion-input-datepicker>', () => {
|
|
|
145
133
|
await elObj.openCalendar();
|
|
146
134
|
expect(elObj.overlayController.isShown).to.equal(true);
|
|
147
135
|
});
|
|
148
|
-
|
|
149
136
|
it('delegates disabled state of host input', async () => {
|
|
150
137
|
const el = await fixture(html`<lion-input-datepicker disabled></lion-input-datepicker>`);
|
|
151
138
|
const elObj = new DatepickerInputObject(el);
|
|
152
139
|
expect(elObj.overlayController.isShown).to.equal(false);
|
|
153
|
-
await elObj.openCalendar({
|
|
140
|
+
await elObj.openCalendar({
|
|
141
|
+
click: true,
|
|
142
|
+
});
|
|
154
143
|
expect(elObj.overlayController.isShown).to.equal(false);
|
|
155
144
|
el.disabled = false;
|
|
156
|
-
await elObj.openCalendar({
|
|
145
|
+
await elObj.openCalendar({
|
|
146
|
+
click: true,
|
|
147
|
+
});
|
|
157
148
|
expect(elObj.overlayController.isShown).to.equal(true);
|
|
158
149
|
});
|
|
159
|
-
|
|
160
150
|
it('disables invoker when host input is readonly', async () => {
|
|
161
151
|
const el = await fixture(html`<lion-input-datepicker readonly></lion-input-datepicker>`);
|
|
162
152
|
const elObj = new DatepickerInputObject(el);
|
|
163
153
|
expect(elObj.overlayController.isShown).to.equal(false);
|
|
164
|
-
await elObj.openCalendar({
|
|
154
|
+
await elObj.openCalendar({
|
|
155
|
+
click: true,
|
|
156
|
+
});
|
|
165
157
|
expect(elObj.overlayController.isShown).to.equal(false);
|
|
166
158
|
el.readOnly = false;
|
|
167
|
-
await elObj.openCalendar({
|
|
159
|
+
await elObj.openCalendar({
|
|
160
|
+
click: true,
|
|
161
|
+
});
|
|
168
162
|
expect(elObj.overlayController.isShown).to.equal(true);
|
|
169
163
|
});
|
|
170
164
|
});
|
|
171
|
-
|
|
172
165
|
describe('Input - calendar synchronization', () => {
|
|
173
166
|
it('syncs modelValue with lion-calendar', async () => {
|
|
174
167
|
const myDate = new Date('2019/06/15');
|
|
@@ -180,28 +173,23 @@ describe('<lion-input-datepicker>', () => {
|
|
|
180
173
|
await elObj.openCalendar();
|
|
181
174
|
expect(elObj.calendarEl.selectedDate).to.equal(myDate);
|
|
182
175
|
await elObj.selectMonthDay(myOtherDate.getDate());
|
|
183
|
-
expect(isSameDate(/** @type {Date} */
|
|
176
|
+
expect(isSameDate(/** @type {Date} */ el.modelValue, myOtherDate)).to.be.true;
|
|
184
177
|
});
|
|
185
|
-
|
|
186
178
|
it('restores centralDate when modelValue is cleared', async () => {
|
|
187
179
|
const myDate = new Date('2019/06/15');
|
|
188
180
|
const el = await fixture(html` <lion-input-datepicker></lion-input-datepicker> `);
|
|
189
181
|
const elObj = new DatepickerInputObject(el);
|
|
190
182
|
const initialCentralDate = elObj.calendarEl.centralDate;
|
|
191
183
|
el.modelValue = myDate;
|
|
192
|
-
|
|
193
184
|
await elObj.openCalendar();
|
|
194
185
|
expect(elObj.calendarEl.selectedDate).to.equal(myDate);
|
|
195
186
|
expect(elObj.calendarEl.centralDate).to.equal(myDate);
|
|
196
|
-
|
|
197
187
|
el.modelValue = undefined;
|
|
198
188
|
expect(elObj.calendarEl.centralDate).to.equal(myDate);
|
|
199
189
|
await elObj.closeCalendar();
|
|
200
190
|
await elObj.openCalendar();
|
|
201
|
-
|
|
202
191
|
expect(elObj.calendarEl.centralDate).to.equal(initialCentralDate);
|
|
203
192
|
});
|
|
204
|
-
|
|
205
193
|
it('closes the calendar overlay on "user-selected-date-changed"', async () => {
|
|
206
194
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
207
195
|
const elObj = new DatepickerInputObject(el);
|
|
@@ -213,7 +201,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
213
201
|
await el.updateComplete; // safari take a little longer
|
|
214
202
|
expect(elObj.overlayController.isShown).to.equal(false);
|
|
215
203
|
});
|
|
216
|
-
|
|
217
204
|
it('focuses selected date on opening of calendar', async () => {
|
|
218
205
|
const el = await fixture(html`
|
|
219
206
|
<lion-input-datepicker .modelValue="${new Date()}"></lion-input-datepicker>
|
|
@@ -223,25 +210,20 @@ describe('<lion-input-datepicker>', () => {
|
|
|
223
210
|
await aTimeout(0);
|
|
224
211
|
expect(
|
|
225
212
|
isSameDate(
|
|
226
|
-
/** @type {Date} */
|
|
227
|
-
/** @type {Date} */
|
|
213
|
+
/** @type {Date} */ elObj.calendarEl.focusedDate,
|
|
214
|
+
/** @type {Date} */ elObj.calendarEl.selectedDate,
|
|
228
215
|
),
|
|
229
216
|
).to.be.true;
|
|
230
217
|
});
|
|
231
|
-
|
|
232
218
|
it('focuses central date on opening of calendar if no date selected', async () => {
|
|
233
219
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
234
220
|
const elObj = new DatepickerInputObject(el);
|
|
235
221
|
await elObj.openCalendar();
|
|
236
222
|
await aTimeout(0);
|
|
237
223
|
expect(
|
|
238
|
-
isSameDate(
|
|
239
|
-
/** @type {Date} */ (elObj.calendarEl.focusedDate),
|
|
240
|
-
elObj.calendarEl.centralDate,
|
|
241
|
-
),
|
|
224
|
+
isSameDate(/** @type {Date} */ elObj.calendarEl.focusedDate, elObj.calendarEl.centralDate),
|
|
242
225
|
).to.be.true;
|
|
243
226
|
});
|
|
244
|
-
|
|
245
227
|
it('fires model-value-changed with isTriggeredByUser on click', async () => {
|
|
246
228
|
let isTriggeredByUser;
|
|
247
229
|
const myDate = new Date('2019/12/15');
|
|
@@ -255,7 +237,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
255
237
|
>
|
|
256
238
|
</lion-input-datepicker>
|
|
257
239
|
`);
|
|
258
|
-
|
|
259
240
|
const elObj = new DatepickerInputObject(el);
|
|
260
241
|
// Make sure the calendar overlay is opened
|
|
261
242
|
await elObj.openCalendar();
|
|
@@ -266,34 +247,26 @@ describe('<lion-input-datepicker>', () => {
|
|
|
266
247
|
expect(isTriggeredByUser).to.be.true;
|
|
267
248
|
expect(el.value).to.equal('18/12/2019');
|
|
268
249
|
});
|
|
269
|
-
|
|
270
250
|
describe('localization', () => {
|
|
271
251
|
/** @type {import('@lion/ui/localize.js').LocalizeManager} */ let localizeManager;
|
|
272
|
-
|
|
273
252
|
before(async () => {
|
|
274
253
|
const { getLocalizeManager } = await import('@lion/ui/localize-no-side-effects.js');
|
|
275
254
|
localizeManager = getLocalizeManager();
|
|
276
255
|
});
|
|
277
|
-
|
|
278
256
|
it('should update formatted value and value in accordance of localization upon model value update', async () => {
|
|
279
257
|
localizeManager.locale = 'nl-NL';
|
|
280
|
-
|
|
281
258
|
const el = await fixture(html`
|
|
282
259
|
<lion-input-datepicker .modelValue="${new Date('2022/12/30')}"></lion-input-datepicker>
|
|
283
260
|
`);
|
|
284
|
-
|
|
285
261
|
await el.updateComplete;
|
|
286
|
-
|
|
287
262
|
expect(el.formattedValue).to.equal('30-12-2022');
|
|
288
263
|
expect(el.value).to.equal('30-12-2022');
|
|
289
264
|
});
|
|
290
|
-
|
|
291
265
|
after(() => {
|
|
292
266
|
// @ts-ignore - using protected method to undo setting explict locale
|
|
293
267
|
localizeManager.locale = localizeManager._fallbackLocale;
|
|
294
268
|
});
|
|
295
269
|
});
|
|
296
|
-
|
|
297
270
|
describe('Validators', () => {
|
|
298
271
|
/**
|
|
299
272
|
* Validators are the Application Developer facing API in <lion-input-datepicker>:
|
|
@@ -302,19 +275,17 @@ describe('<lion-input-datepicker>', () => {
|
|
|
302
275
|
* lion-calendar
|
|
303
276
|
*/
|
|
304
277
|
it('converts IsDateDisabled validator to "disableDates" property', async () => {
|
|
305
|
-
const no15th = /** @param {Date} d */ d => d.getDate() !== 15;
|
|
306
|
-
const no16th = /** @param {Date} d */ d => d.getDate() !== 16;
|
|
307
|
-
const no15thOr16th = /** @param {Date} d */ d => no15th(d) && no16th(d);
|
|
278
|
+
const no15th = /** @param {Date} d */ (d) => d.getDate() !== 15;
|
|
279
|
+
const no16th = /** @param {Date} d */ (d) => d.getDate() !== 16;
|
|
280
|
+
const no15thOr16th = /** @param {Date} d */ (d) => no15th(d) && no16th(d);
|
|
308
281
|
const el = await fixture(html`
|
|
309
282
|
<lion-input-datepicker .validators="${[new IsDateDisabled(no15thOr16th)]}">
|
|
310
283
|
</lion-input-datepicker>
|
|
311
284
|
`);
|
|
312
285
|
const elObj = new DatepickerInputObject(el);
|
|
313
286
|
await elObj.openCalendar();
|
|
314
|
-
|
|
315
287
|
expect(elObj.calendarEl.disableDates).to.equal(no15thOr16th);
|
|
316
288
|
});
|
|
317
|
-
|
|
318
289
|
it('converts MinDate validator to "minDate" property', async () => {
|
|
319
290
|
const myMinDate = new Date('2019/06/15');
|
|
320
291
|
const el = await fixture(
|
|
@@ -323,10 +294,8 @@ describe('<lion-input-datepicker>', () => {
|
|
|
323
294
|
);
|
|
324
295
|
const elObj = new DatepickerInputObject(el);
|
|
325
296
|
await elObj.openCalendar();
|
|
326
|
-
|
|
327
297
|
expect(elObj.calendarEl.minDate).to.equal(myMinDate);
|
|
328
298
|
});
|
|
329
|
-
|
|
330
299
|
it('converts MaxDate validator to "maxDate" property', async () => {
|
|
331
300
|
const myMaxDate = new Date('2030/06/15');
|
|
332
301
|
const el = await fixture(html`
|
|
@@ -334,26 +303,27 @@ describe('<lion-input-datepicker>', () => {
|
|
|
334
303
|
`);
|
|
335
304
|
const elObj = new DatepickerInputObject(el);
|
|
336
305
|
await elObj.openCalendar();
|
|
337
|
-
|
|
338
306
|
expect(elObj.calendarEl.maxDate).to.equal(myMaxDate);
|
|
339
307
|
});
|
|
340
|
-
|
|
341
308
|
it('converts MinMaxDate validator to "minDate" and "maxDate" property', async () => {
|
|
342
309
|
const myMinDate = new Date('2019/06/15');
|
|
343
310
|
const myMaxDate = new Date('2030/06/15');
|
|
344
311
|
const el = await fixture(html`
|
|
345
312
|
<lion-input-datepicker
|
|
346
|
-
.validators=${[
|
|
313
|
+
.validators=${[
|
|
314
|
+
new MinMaxDate({
|
|
315
|
+
min: myMinDate,
|
|
316
|
+
max: myMaxDate,
|
|
317
|
+
}),
|
|
318
|
+
]}
|
|
347
319
|
>
|
|
348
320
|
</lion-input-datepicker>
|
|
349
321
|
`);
|
|
350
322
|
const elObj = new DatepickerInputObject(el);
|
|
351
323
|
await elObj.openCalendar();
|
|
352
|
-
|
|
353
324
|
expect(elObj.calendarEl.minDate).to.equal(myMinDate);
|
|
354
325
|
expect(elObj.calendarEl.maxDate).to.equal(myMaxDate);
|
|
355
326
|
});
|
|
356
|
-
|
|
357
327
|
it('does not converts MaxDate validator to "maxDate" property if validator type other then "error"', async () => {
|
|
358
328
|
const myMaxDate = new Date('2030/06/15');
|
|
359
329
|
const tagName = 'custom-input-datepicker';
|
|
@@ -369,75 +339,70 @@ describe('<lion-input-datepicker>', () => {
|
|
|
369
339
|
);
|
|
370
340
|
}
|
|
371
341
|
const el = await fixture(html`
|
|
372
|
-
<custom-input-datepicker
|
|
342
|
+
<custom-input-datepicker
|
|
343
|
+
.validators=${[
|
|
344
|
+
new MaxDate(myMaxDate, {
|
|
345
|
+
type: 'warning',
|
|
346
|
+
}),
|
|
347
|
+
]}
|
|
348
|
+
>
|
|
373
349
|
</custom-input-datepicker>
|
|
374
350
|
`);
|
|
375
351
|
const elObj = new DatepickerInputObject(el);
|
|
376
352
|
await elObj.openCalendar();
|
|
377
|
-
|
|
378
353
|
expect(elObj.calendarEl.maxDate).to.be.undefined;
|
|
379
354
|
});
|
|
380
|
-
|
|
381
355
|
it('should sync MinDate validator param with Calendar MinDate', async () => {
|
|
382
356
|
const myMinDateValidator = new MinDate(new Date('2020/02/02'));
|
|
383
357
|
const el = await fixture(html`
|
|
384
358
|
<lion-input-datepicker .validators="${[myMinDateValidator]}"> </lion-input-datepicker>
|
|
385
359
|
`);
|
|
386
360
|
myMinDateValidator.param = new Date('2020/01/01');
|
|
387
|
-
|
|
388
361
|
expect(el.__calendarMinDate.toString()).to.equal(new Date('2020/01/01').toString());
|
|
389
362
|
});
|
|
390
|
-
|
|
391
363
|
it('should sync MaxDate validator param with Calendar MaxDate', async () => {
|
|
392
364
|
const myMaxDateValidator = new MaxDate(new Date('2020/02/02'));
|
|
393
365
|
const el = await fixture(html`
|
|
394
366
|
<lion-input-datepicker .validators="${[myMaxDateValidator]}"> </lion-input-datepicker>
|
|
395
367
|
`);
|
|
396
368
|
myMaxDateValidator.param = new Date('2020/03/03');
|
|
397
|
-
|
|
398
369
|
expect(el.__calendarMaxDate.toString()).to.equal(new Date('2020/03/03').toString());
|
|
399
370
|
});
|
|
400
|
-
|
|
401
371
|
it('should sync MinMaxDate validator param with Calendar Min And Max Date', async () => {
|
|
402
372
|
const myMinDate = new Date('2019/06/15');
|
|
403
373
|
const myMaxDate = new Date('2030/06/15');
|
|
404
|
-
const myMinMaxDateValidator = new MinMaxDate({
|
|
374
|
+
const myMinMaxDateValidator = new MinMaxDate({
|
|
375
|
+
min: myMinDate,
|
|
376
|
+
max: myMaxDate,
|
|
377
|
+
});
|
|
405
378
|
const el = await fixture(html`
|
|
406
379
|
<lion-input-datepicker .validators=${[myMinMaxDateValidator]}> </lion-input-datepicker>
|
|
407
380
|
`);
|
|
408
|
-
|
|
409
381
|
myMinMaxDateValidator.param = {
|
|
410
382
|
min: new Date('2019/05/15'),
|
|
411
383
|
max: new Date('2019/07/15'),
|
|
412
384
|
};
|
|
413
|
-
|
|
414
385
|
expect(el.__calendarMinDate.toString()).to.equal(new Date('2019/05/15').toString());
|
|
415
386
|
expect(el.__calendarMaxDate.toString()).to.equal(new Date('2019/07/15').toString());
|
|
416
387
|
});
|
|
417
|
-
|
|
418
388
|
it('should update the central date of Calendar if updated validator made the current central date disabled', async () => {
|
|
419
389
|
const initialValidators = [new MaxDate(new Date('2000/01/01'))];
|
|
420
390
|
const updatedValidators = [new MaxDate(new Date('2020/01/01'))];
|
|
421
|
-
|
|
422
391
|
const el = await fixture(html`
|
|
423
392
|
<lion-input-datepicker .validators="${initialValidators}"></lion-input-datepicker>
|
|
424
393
|
`);
|
|
425
394
|
const obj = new DatepickerInputObject(el);
|
|
426
395
|
await obj.openCalendar();
|
|
427
|
-
|
|
428
396
|
expect(getProtectedMembersDatepicker(el).calendarNode.centralDate.toString()).to.equal(
|
|
429
397
|
new Date('2000/01/01').toString(),
|
|
430
398
|
);
|
|
431
|
-
|
|
432
399
|
await obj.closeCalendar();
|
|
433
400
|
el.validators = updatedValidators;
|
|
434
401
|
await obj.openCalendar();
|
|
435
|
-
|
|
436
402
|
expect(getProtectedMembersDatepicker(el).calendarNode.centralDate.toString()).to.equal(
|
|
437
403
|
new Date('2020/01/01').toString(),
|
|
438
404
|
);
|
|
439
405
|
});
|
|
440
|
-
|
|
441
406
|
it('should show error on invalid date passed to modelValue', async () => {
|
|
442
407
|
const myDate = new Date('foo');
|
|
443
408
|
const el = await fixture(html`
|
|
@@ -447,7 +412,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
447
412
|
expect(el.validationStates).to.have.property('error');
|
|
448
413
|
expect(el.validationStates.error).to.have.property('IsDate');
|
|
449
414
|
});
|
|
450
|
-
|
|
451
415
|
it('should show error on date with invalid format passed to modelValue', async () => {
|
|
452
416
|
const myDate = new Date('30/01/2022');
|
|
453
417
|
const el = await fixture(html`
|
|
@@ -457,12 +421,10 @@ describe('<lion-input-datepicker>', () => {
|
|
|
457
421
|
expect(el.validationStates).to.have.property('error');
|
|
458
422
|
expect(el.validationStates.error).to.have.property('IsDate');
|
|
459
423
|
});
|
|
460
|
-
|
|
461
424
|
it('syncs view value from calendar if custom validator is in error state', async () => {
|
|
462
425
|
const el = await fixture(html`
|
|
463
426
|
<lion-input-datepicker .validators=${[new AlwaysInvalid()]}></lion-input-datepicker>
|
|
464
427
|
`);
|
|
465
|
-
|
|
466
428
|
const elObj = new DatepickerInputObject(el);
|
|
467
429
|
await elObj.openCalendar();
|
|
468
430
|
await elObj.selectMonthDay(12);
|
|
@@ -473,19 +435,19 @@ describe('<lion-input-datepicker>', () => {
|
|
|
473
435
|
expect(el.validationStates.error).to.have.property('AlwaysInvalid');
|
|
474
436
|
expect(
|
|
475
437
|
isSameDate(
|
|
476
|
-
/** @type {Date} */
|
|
477
|
-
/** @type {Date} */
|
|
438
|
+
/** @type {Date} */ parseDate(el.value),
|
|
439
|
+
/** @type {Date} */ elObj.calendarEl.selectedDate,
|
|
478
440
|
),
|
|
479
441
|
).to.be.true;
|
|
480
442
|
expect(
|
|
481
443
|
isSameDate(
|
|
482
444
|
// @ts-ignore [allow-protected] in test
|
|
483
|
-
/** @type {Date} */
|
|
484
|
-
|
|
445
|
+
/** @type {Date} */
|
|
446
|
+
parseDate(el._inputNode.value),
|
|
447
|
+
/** @type {Date} */ elObj.calendarEl.selectedDate,
|
|
485
448
|
),
|
|
486
449
|
).to.be.true;
|
|
487
450
|
});
|
|
488
|
-
|
|
489
451
|
it('syncs view value from calendar if custom validator is in error state, when there was a previous modelValue', async () => {
|
|
490
452
|
const modelValue = new Date('2022/12/30');
|
|
491
453
|
const el = await fixture(html`
|
|
@@ -494,8 +456,7 @@ describe('<lion-input-datepicker>', () => {
|
|
|
494
456
|
.validators=${[new AlwaysInvalid()]}
|
|
495
457
|
></lion-input-datepicker>
|
|
496
458
|
`);
|
|
497
|
-
expect(isSameDate(/** @type {Date} */
|
|
498
|
-
|
|
459
|
+
expect(isSameDate(/** @type {Date} */ parseDate(el.value), modelValue)).to.be.true;
|
|
499
460
|
const elObj = new DatepickerInputObject(el);
|
|
500
461
|
await elObj.openCalendar();
|
|
501
462
|
await elObj.selectMonthDay(12);
|
|
@@ -506,15 +467,16 @@ describe('<lion-input-datepicker>', () => {
|
|
|
506
467
|
expect(el.validationStates.error).to.have.property('AlwaysInvalid');
|
|
507
468
|
expect(
|
|
508
469
|
isSameDate(
|
|
509
|
-
/** @type {Date} */
|
|
510
|
-
/** @type {Date} */
|
|
470
|
+
/** @type {Date} */ parseDate(el.value),
|
|
471
|
+
/** @type {Date} */ elObj.calendarEl.selectedDate,
|
|
511
472
|
),
|
|
512
473
|
).to.be.true;
|
|
513
474
|
expect(
|
|
514
475
|
isSameDate(
|
|
515
476
|
// @ts-ignore [allow-protected] in test
|
|
516
|
-
/** @type {Date} */
|
|
517
|
-
|
|
477
|
+
/** @type {Date} */
|
|
478
|
+
parseDate(el._inputNode.value),
|
|
479
|
+
/** @type {Date} */ elObj.calendarEl.selectedDate,
|
|
518
480
|
),
|
|
519
481
|
).to.be.true;
|
|
520
482
|
});
|
|
@@ -525,25 +487,20 @@ describe('<lion-input-datepicker>', () => {
|
|
|
525
487
|
*/
|
|
526
488
|
});
|
|
527
489
|
});
|
|
528
|
-
|
|
529
490
|
describe('Calendar smoke tests', () => {
|
|
530
491
|
it('responds properly to keyboard events', async () => {
|
|
531
492
|
const el = await fixture(html`
|
|
532
493
|
<lion-input-datepicker calendar-heading="foo"></lion-input-datepicker>
|
|
533
494
|
`);
|
|
534
|
-
const calendarEl = /** @type {LionCalendar} */ (
|
|
535
|
-
el.shadowRoot?.querySelector('lion-calendar')
|
|
536
|
-
);
|
|
495
|
+
const calendarEl = /** @type {LionCalendar} */ el.shadowRoot?.querySelector('lion-calendar');
|
|
537
496
|
const { dateSelectedByUser } = getProtectedMembersCalendar(calendarEl);
|
|
538
497
|
// First set a fixed date as if selected by a user
|
|
539
498
|
dateSelectedByUser(new Date('December 17, 2020 03:24:00 GMT+0000'));
|
|
540
|
-
|
|
541
499
|
await el.updateComplete;
|
|
542
500
|
const elObj = new DatepickerInputObject(el);
|
|
543
501
|
|
|
544
502
|
// Open the calendar
|
|
545
503
|
await elObj.openCalendar();
|
|
546
|
-
|
|
547
504
|
const selectedDateEl = calendarEl?.shadowRoot?.querySelector(
|
|
548
505
|
'.calendar__day-button[selected]',
|
|
549
506
|
);
|
|
@@ -551,20 +508,18 @@ describe('<lion-input-datepicker>', () => {
|
|
|
551
508
|
selectedDateEl?.focus();
|
|
552
509
|
|
|
553
510
|
// Move focus to 18th of December
|
|
554
|
-
await sendKeys({
|
|
555
|
-
|
|
556
|
-
|
|
511
|
+
await sendKeys({
|
|
512
|
+
press: 'ArrowRight',
|
|
513
|
+
});
|
|
514
|
+
expect(/** @type {Date} */ calendarEl.focusedDate.getTime()).to.equal(
|
|
557
515
|
new Date('December 18, 2020 03:24:00 GMT+0000').getTime(),
|
|
558
516
|
);
|
|
559
517
|
});
|
|
560
|
-
|
|
561
518
|
it('responds properly to click events', async () => {
|
|
562
519
|
const el = await fixture(html`
|
|
563
520
|
<lion-input-datepicker calendar-heading="foo"></lion-input-datepicker>
|
|
564
521
|
`);
|
|
565
|
-
const calendarEl = /** @type {LionCalendar} */ (
|
|
566
|
-
el.shadowRoot?.querySelector('lion-calendar')
|
|
567
|
-
);
|
|
522
|
+
const calendarEl = /** @type {LionCalendar} */ el.shadowRoot?.querySelector('lion-calendar');
|
|
568
523
|
const { dateSelectedByUser } = getProtectedMembersCalendar(calendarEl);
|
|
569
524
|
|
|
570
525
|
// First set a fixed date as if selected by a user
|
|
@@ -576,17 +531,15 @@ describe('<lion-input-datepicker>', () => {
|
|
|
576
531
|
await elObj.openCalendar();
|
|
577
532
|
|
|
578
533
|
// Select the first date button, which is 29th of previous month (November)
|
|
579
|
-
const firstDateBtn =
|
|
580
|
-
|
|
581
|
-
|
|
534
|
+
const firstDateBtn =
|
|
535
|
+
/** @type {HTMLButtonElement} */
|
|
536
|
+
calendarEl?.shadowRoot?.querySelector('.calendar__day-button');
|
|
582
537
|
firstDateBtn.click();
|
|
583
|
-
|
|
584
|
-
expect(/** @type {Date} */ (el.modelValue).getTime()).to.equal(
|
|
538
|
+
expect(/** @type {Date} */ el.modelValue.getTime()).to.equal(
|
|
585
539
|
new Date('November 29, 2020 03:24:00 GMT+0000').getTime(),
|
|
586
540
|
);
|
|
587
541
|
});
|
|
588
542
|
});
|
|
589
|
-
|
|
590
543
|
describe('Accessibility', () => {
|
|
591
544
|
it('has a heading of level 1', async () => {
|
|
592
545
|
const el = await fixture(html`
|
|
@@ -594,72 +547,58 @@ describe('<lion-input-datepicker>', () => {
|
|
|
594
547
|
`);
|
|
595
548
|
const elObj = new DatepickerInputObject(el);
|
|
596
549
|
await elObj.openCalendar();
|
|
597
|
-
|
|
598
550
|
const hNode = elObj.overlayHeadingEl;
|
|
599
551
|
const headingIsLevel1 =
|
|
600
552
|
hNode.tagName === 'H1' ||
|
|
601
553
|
(hNode.getAttribute('role') === 'heading' && hNode.getAttribute('aria-level') === '1');
|
|
602
554
|
expect(headingIsLevel1).to.be.true;
|
|
603
555
|
});
|
|
604
|
-
|
|
605
556
|
it('adds accessible label to invoker button', async () => {
|
|
606
557
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
607
558
|
const elObj = new DatepickerInputObject(el);
|
|
608
559
|
await elObj.openCalendar();
|
|
609
|
-
|
|
610
560
|
expect(elObj.invokerEl.getAttribute('title')).to.equal('Open "date" picker');
|
|
611
561
|
expect(elObj.invokerEl.getAttribute('aria-label')).to.equal('Open "date" picker');
|
|
612
562
|
});
|
|
613
|
-
|
|
614
563
|
it('adds [aria-expanded] to invoker button', async () => {
|
|
615
564
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
616
565
|
const elObj = new DatepickerInputObject(el);
|
|
617
|
-
|
|
618
566
|
expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
|
|
619
567
|
await elObj.openCalendar();
|
|
620
568
|
expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
|
|
621
569
|
await elObj.closeCalendar();
|
|
622
570
|
expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
|
|
623
571
|
});
|
|
624
|
-
|
|
625
572
|
it('is accessible when closed', async () => {
|
|
626
573
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
627
574
|
const elObj = new DatepickerInputObject(el);
|
|
628
|
-
|
|
629
575
|
await expect(elObj.invokerEl).to.be.accessible();
|
|
630
576
|
await expect(elObj.calendarEl).to.be.accessible();
|
|
631
577
|
});
|
|
632
|
-
|
|
633
578
|
it('is accessible when open', async () => {
|
|
634
579
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
635
580
|
const elObj = new DatepickerInputObject(el);
|
|
636
581
|
await elObj.openCalendar();
|
|
637
|
-
|
|
638
582
|
await expect(elObj.calendarEl).to.be.accessible();
|
|
639
583
|
elObj.overlayCloseButtonEl.click();
|
|
640
584
|
});
|
|
641
|
-
|
|
642
585
|
it('has accessible invoker when open', async () => {
|
|
643
586
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
644
587
|
const elObj = new DatepickerInputObject(el);
|
|
645
588
|
await elObj.openCalendar();
|
|
646
|
-
|
|
647
589
|
await expect(elObj.invokerEl).to.be.accessible();
|
|
648
590
|
elObj.overlayCloseButtonEl.click();
|
|
649
591
|
});
|
|
650
|
-
|
|
651
592
|
it('is accessible with a disabled date', async () => {
|
|
652
|
-
const no15th = /** @param {Date} d */ d => d.getDate() !== 15;
|
|
593
|
+
const no15th = /** @param {Date} d */ (d) => d.getDate() !== 15;
|
|
653
594
|
const el = await fixture(html`
|
|
654
595
|
<lion-input-datepicker .validators=${[new IsDateDisabled(no15th)]}> </lion-input-datepicker>
|
|
655
596
|
`);
|
|
656
597
|
const elObj = new DatepickerInputObject(el);
|
|
657
598
|
await elObj.openCalendar();
|
|
658
|
-
|
|
659
599
|
await expect(elObj.calendarEl).to.be.accessible();
|
|
660
600
|
elObj.overlayCloseButtonEl.click();
|
|
661
601
|
});
|
|
662
|
-
|
|
663
602
|
it('have different aria-label when multiple invoker', async () => {
|
|
664
603
|
const el = await fixture(html`
|
|
665
604
|
<lion-input-datepicker label="Start date" name="startDate"></lion-input-datepicker>
|
|
@@ -672,11 +611,9 @@ describe('<lion-input-datepicker>', () => {
|
|
|
672
611
|
const startLabel = elements.startDate.querySelector('button').ariaLabel;
|
|
673
612
|
// @ts-expect-error
|
|
674
613
|
const endLabel = elements.endDate.querySelector('button').ariaLabel;
|
|
675
|
-
|
|
676
614
|
expect(startLabel).to.not.equal(endLabel);
|
|
677
615
|
});
|
|
678
616
|
});
|
|
679
|
-
|
|
680
617
|
describe.skip('Subclassers', () => {
|
|
681
618
|
describe('Providing a custom invoker', () => {
|
|
682
619
|
it('can override the invoker template', async () => {
|
|
@@ -688,7 +625,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
688
625
|
}
|
|
689
626
|
},
|
|
690
627
|
);
|
|
691
|
-
|
|
692
628
|
const myEl = await fixture(html`<${myTag}></${myTag}>`);
|
|
693
629
|
const myElObj = new DatepickerInputObject(myEl);
|
|
694
630
|
const { invokerId } = getProtectedMembersDatepicker(myEl);
|
|
@@ -704,7 +640,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
704
640
|
await myElObj.openCalendar();
|
|
705
641
|
expect(myElObj.overlayController.isShown).to.equal(true);
|
|
706
642
|
});
|
|
707
|
-
|
|
708
643
|
it('can allocate the picker in a different slot supported by LionField', async () => {
|
|
709
644
|
/**
|
|
710
645
|
* It's important that this api is used instead of Subclassers providing a slot.
|
|
@@ -719,13 +654,11 @@ describe('<lion-input-datepicker>', () => {
|
|
|
719
654
|
}
|
|
720
655
|
},
|
|
721
656
|
);
|
|
722
|
-
|
|
723
657
|
const myEl = await fixture(html`<${myTag}></${myTag}>`);
|
|
724
658
|
const myElObj = new DatepickerInputObject(myEl);
|
|
725
659
|
expect(myElObj.invokerEl.getAttribute('slot')).to.equal('prefix');
|
|
726
660
|
});
|
|
727
661
|
});
|
|
728
|
-
|
|
729
662
|
describe('Providing a custom calendar', () => {
|
|
730
663
|
it('can override the calendar template', async () => {
|
|
731
664
|
customElements.define(
|
|
@@ -739,7 +672,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
739
672
|
}
|
|
740
673
|
},
|
|
741
674
|
);
|
|
742
|
-
|
|
743
675
|
const myTag = defineCE(
|
|
744
676
|
class extends LionInputDatepicker {
|
|
745
677
|
_calendarTemplate() {
|
|
@@ -747,7 +679,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
747
679
|
}
|
|
748
680
|
},
|
|
749
681
|
);
|
|
750
|
-
|
|
751
682
|
const myEl = await fixture(html`<${myTag}></${myTag}>`);
|
|
752
683
|
const myElObj = new DatepickerInputObject(myEl);
|
|
753
684
|
|
|
@@ -756,7 +687,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
756
687
|
expect(myElObj.calendarEl.tagName.toLowerCase()).to.equal('my-calendar');
|
|
757
688
|
});
|
|
758
689
|
});
|
|
759
|
-
|
|
760
690
|
describe('Providing a custom overlay', () => {
|
|
761
691
|
it('can override the overlay template', async () => {
|
|
762
692
|
// Keep in mind there is no logic inside this overlay frame; it only handles visuals.
|
|
@@ -780,10 +710,8 @@ describe('<lion-input-datepicker>', () => {
|
|
|
780
710
|
}
|
|
781
711
|
},
|
|
782
712
|
);
|
|
783
|
-
|
|
784
713
|
let myOverlayOpenedCbHandled = false;
|
|
785
714
|
let myUserSelectedChangedCbHandled = false;
|
|
786
|
-
|
|
787
715
|
const myTag = defineCE(
|
|
788
716
|
class extends LionInputDatepicker {
|
|
789
717
|
// TODO: this method doesn't exist on LionInputDatepicker, so if we re-enable these tests, they should be redone
|
|
@@ -807,12 +735,15 @@ describe('<lion-input-datepicker>', () => {
|
|
|
807
735
|
* @param {{ target: { selectedDate: Date }}} opts
|
|
808
736
|
*/
|
|
809
737
|
_onCalendarUserSelectedChanged({ target: { selectedDate } }) {
|
|
810
|
-
super._onCalendarUserSelectedChanged({
|
|
738
|
+
super._onCalendarUserSelectedChanged({
|
|
739
|
+
target: {
|
|
740
|
+
selectedDate,
|
|
741
|
+
},
|
|
742
|
+
});
|
|
811
743
|
myUserSelectedChangedCbHandled = true;
|
|
812
744
|
}
|
|
813
745
|
},
|
|
814
746
|
);
|
|
815
|
-
|
|
816
747
|
const myEl = await fixture(html`<${myTag}></${myTag}>`);
|
|
817
748
|
const myElObj = new DatepickerInputObject(myEl);
|
|
818
749
|
|
|
@@ -823,11 +754,9 @@ describe('<lion-input-datepicker>', () => {
|
|
|
823
754
|
await myElObj.selectMonthDay(1);
|
|
824
755
|
expect(myUserSelectedChangedCbHandled).to.be.true;
|
|
825
756
|
});
|
|
826
|
-
|
|
827
757
|
it.skip('can configure the overlay presentation based on media query switch', async () => {});
|
|
828
758
|
});
|
|
829
759
|
});
|
|
830
|
-
|
|
831
760
|
describe('regression tests', async () => {
|
|
832
761
|
it('does not submit a form when datepicker is opened', async () => {
|
|
833
762
|
const submitSpy = sinon.spy();
|
|
@@ -836,7 +765,7 @@ describe('<lion-input-datepicker>', () => {
|
|
|
836
765
|
<lion-input-datepicker></lion-input-datepicker>
|
|
837
766
|
</form>
|
|
838
767
|
`);
|
|
839
|
-
const el = /** @type {LionInputDatepicker} */
|
|
768
|
+
const el = /** @type {LionInputDatepicker} */ form.children[0];
|
|
840
769
|
await el.updateComplete;
|
|
841
770
|
const elObj = new DatepickerInputObject(el);
|
|
842
771
|
await elObj.openCalendar();
|
|
@@ -846,7 +775,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
846
775
|
// TODO: remove: became irrelevant after we don't need dialog-frame
|
|
847
776
|
it.skip('is hidden when attribute hidden is true', async () => {
|
|
848
777
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
849
|
-
|
|
850
778
|
await el.updateComplete;
|
|
851
779
|
const myElObj = new DatepickerInputObject(el);
|
|
852
780
|
await myElObj.openCalendar();
|
|
@@ -855,10 +783,12 @@ describe('<lion-input-datepicker>', () => {
|
|
|
855
783
|
expect(getComputedStyle(myElObj.overlayEl).display).to.equal('none', 'Display is not none');
|
|
856
784
|
});
|
|
857
785
|
});
|
|
858
|
-
|
|
859
786
|
describe('responsive', async () => {
|
|
860
787
|
it('opens as bottom sheet on mobile', async () => {
|
|
861
|
-
await setViewport({
|
|
788
|
+
await setViewport({
|
|
789
|
+
width: 360,
|
|
790
|
+
height: 640,
|
|
791
|
+
});
|
|
862
792
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
863
793
|
const myElObj = new DatepickerInputObject(el);
|
|
864
794
|
await myElObj.openCalendar();
|
|
@@ -868,9 +798,11 @@ describe('<lion-input-datepicker>', () => {
|
|
|
868
798
|
'Datepicker does not get rendered as bottom sheet',
|
|
869
799
|
).to.be.false;
|
|
870
800
|
});
|
|
871
|
-
|
|
872
801
|
it('opens as popover on desktop', async () => {
|
|
873
|
-
await setViewport({
|
|
802
|
+
await setViewport({
|
|
803
|
+
width: 1200,
|
|
804
|
+
height: 640,
|
|
805
|
+
});
|
|
874
806
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
875
807
|
const myElObj = new DatepickerInputObject(el);
|
|
876
808
|
await myElObj.openCalendar();
|
|
@@ -886,16 +818,20 @@ describe('<lion-input-datepicker>', () => {
|
|
|
886
818
|
const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
|
|
887
819
|
await el.updateComplete;
|
|
888
820
|
const myElObj = new DatepickerInputObject(el);
|
|
889
|
-
|
|
890
|
-
|
|
821
|
+
await setViewport({
|
|
822
|
+
width: 360,
|
|
823
|
+
height: 640,
|
|
824
|
+
});
|
|
891
825
|
await myElObj.openCalendar();
|
|
892
826
|
expect(
|
|
893
827
|
el?.shadowRoot?.contains(myElObj.overlayController.contentNode),
|
|
894
828
|
'Datepicker does not get rendered as bottom sheet',
|
|
895
829
|
).to.be.false;
|
|
896
|
-
|
|
897
830
|
await myElObj.closeCalendar();
|
|
898
|
-
await setViewport({
|
|
831
|
+
await setViewport({
|
|
832
|
+
width: 1200,
|
|
833
|
+
height: 640,
|
|
834
|
+
});
|
|
899
835
|
await myElObj.openCalendar();
|
|
900
836
|
expect(
|
|
901
837
|
el?.shadowRoot?.contains(myElObj.overlayController.contentNode),
|
|
@@ -903,7 +839,6 @@ describe('<lion-input-datepicker>', () => {
|
|
|
903
839
|
).to.be.true;
|
|
904
840
|
});
|
|
905
841
|
});
|
|
906
|
-
|
|
907
842
|
describe('Run suite', () => {
|
|
908
843
|
runDatepickerSuite();
|
|
909
844
|
});
|