@eos-ui/vue 0.1.0 → 0.2.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/THIRD_PARTY.md +1 -1
- package/dist/component-names.js +1 -1
- package/dist/component-names.js.map +1 -1
- package/dist/components/Actions/EActions.js.map +1 -1
- package/dist/components/Actions/EActions.vue.d.ts +3 -1
- package/dist/components/Actions/EActions.vue_vue_type_script_setup_true_lang.js +12 -3
- package/dist/components/Actions/EActions.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/AppHeader/EAppHeader.js.map +1 -1
- package/dist/components/AppHeader/EAppHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/AppShell/EAppShell.js.map +1 -1
- package/dist/components/AppShell/EAppShell.vue.d.ts +2 -2
- package/dist/components/AppShell/EAppShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Avatar/EAvatar.js.map +1 -1
- package/dist/components/Avatar/EAvatar.vue.d.ts +4 -4
- package/dist/components/Avatar/EAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Breadcrumb/EBreadcrumb.js.map +1 -1
- package/dist/components/Breadcrumb/EBreadcrumb.vue.d.ts +2 -2
- package/dist/components/Breadcrumb/EBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Button/EButton.js.map +1 -1
- package/dist/components/Button/EButton.vue.d.ts +5 -3
- package/dist/components/Button/EButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Calendar/ECalendar.js.map +1 -1
- package/dist/components/Calendar/ECalendar.vue.d.ts +12 -9
- package/dist/components/Calendar/ECalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Checkbox/ECheckbox.js.map +1 -1
- package/dist/components/Checkbox/ECheckbox.vue.d.ts +6 -3
- package/dist/components/Checkbox/ECheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/CodeBlock/ECodeBlock.js.map +1 -1
- package/dist/components/CodeBlock/ECodeBlock.vue.d.ts +2 -2
- package/dist/components/CodeBlock/ECodeBlock.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ColorField/EColorField.js.map +1 -1
- package/dist/components/ColorField/EColorField.vue.d.ts +5 -3
- package/dist/components/ColorField/EColorField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Combobox/ECombobox.js.map +1 -1
- package/dist/components/Combobox/ECombobox.vue.d.ts +7 -5
- package/dist/components/Combobox/ECombobox.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/Combobox/ECombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Combobox/EComboboxBase.js.map +1 -1
- package/dist/components/Combobox/EComboboxBase.vue.d.ts +6 -14
- package/dist/components/Combobox/EComboboxBase.vue_vue_type_script_setup_true_lang.js +9 -8
- package/dist/components/Combobox/EComboboxBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Combobox/EComboboxOption.js.map +1 -1
- package/dist/components/Combobox/EComboboxOption.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/Combobox/EComboboxOption.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Combobox/{EHighlight.js → matchHighlight.js} +3 -3
- package/dist/components/Combobox/matchHighlight.js.map +1 -0
- package/dist/components/Combobox/types.d.ts +13 -8
- package/dist/components/CurrencyField/ECurrencyField.js.map +1 -1
- package/dist/components/CurrencyField/ECurrencyField.vue.d.ts +8 -6
- package/dist/components/CurrencyField/ECurrencyField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/DataGrid/EDataGrid.js.map +1 -1
- package/dist/components/DataGrid/EDataGrid.vue.d.ts +20 -15
- package/dist/components/DataGrid/EDataGrid.vue_vue_type_script_setup_true_lang.js +213 -213
- package/dist/components/DataGrid/EDataGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/DatePicker/EDatePicker.js.map +1 -1
- package/dist/components/DatePicker/EDatePicker.vue.d.ts +9 -6
- package/dist/components/DatePicker/EDatePicker.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/DatePicker/EDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Definition/EDefinition.js +8 -0
- package/dist/components/Definition/EDefinition.js.map +1 -0
- package/dist/components/{Popover/EPopover.vue.d.ts → Definition/EDefinition.vue.d.ts} +2 -1
- package/dist/components/{Popover/EPopover.vue_vue_type_script_setup_true_lang.js → Definition/EDefinition.vue_vue_type_script_setup_true_lang.js} +4 -4
- package/dist/components/Definition/EDefinition.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/Definition/index.d.ts +1 -0
- package/dist/components/DescriptionList/EDescriptionList.js.map +1 -1
- package/dist/components/DescriptionList/EDescriptionList.vue.d.ts +32 -5
- package/dist/components/DescriptionList/EDescriptionList.vue_vue_type_script_setup_true_lang.js +70 -8
- package/dist/components/DescriptionList/EDescriptionList.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Dialog/DialogFrame.js.map +1 -1
- package/dist/components/Dialog/DialogFrame.vue.d.ts +1 -0
- package/dist/components/Dialog/DialogFrame.vue_vue_type_script_setup_true_lang.js +19 -18
- package/dist/components/Dialog/DialogFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Dialog/EDialog.js.map +1 -1
- package/dist/components/Dialog/EDialog.vue.d.ts +4 -1
- package/dist/components/Dialog/EDialog.vue_vue_type_script_setup_true_lang.js +3 -0
- package/dist/components/Dialog/EDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Disclosure/EDisclosure.js.map +1 -1
- package/dist/components/Disclosure/EDisclosure.vue.d.ts +6 -9
- package/dist/components/Disclosure/EDisclosure.vue_vue_type_script_setup_true_lang.js +14 -19
- package/dist/components/Disclosure/EDisclosure.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Drawer/EDrawer.js.map +1 -1
- package/dist/components/Drawer/EDrawer.vue.d.ts +4 -1
- package/dist/components/Drawer/EDrawer.vue_vue_type_script_setup_true_lang.js +3 -0
- package/dist/components/Drawer/EDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/EmptyState/EEmptyState.js.map +1 -1
- package/dist/components/EmptyState/EEmptyState.vue.d.ts +1 -1
- package/dist/components/EmptyState/EEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ExpandableRow/EExpandableRow.js +8 -0
- package/dist/components/ExpandableRow/EExpandableRow.js.map +1 -0
- package/dist/components/{ButtonGroup/EButtonGroup.vue.d.ts → ExpandableRow/EExpandableRow.vue.d.ts} +12 -4
- package/dist/components/ExpandableRow/EExpandableRow.vue_vue_type_script_setup_true_lang.js +40 -0
- package/dist/components/ExpandableRow/EExpandableRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/ExpandableRow/index.d.ts +1 -0
- package/dist/components/Field/EField.js.map +1 -1
- package/dist/components/Field/EField.vue.d.ts +1 -1
- package/dist/components/Field/EField.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/Field/EField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Field/labelProps.d.ts +2 -2
- package/dist/components/Fieldset/EFieldset.js.map +1 -1
- package/dist/components/Fieldset/EFieldset.vue.d.ts +5 -3
- package/dist/components/Fieldset/EFieldset.vue_vue_type_script_setup_true_lang.js +54 -35
- package/dist/components/Fieldset/EFieldset.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Grid/EGrid.js.map +1 -1
- package/dist/components/Grid/EGrid.vue.d.ts +5 -2
- package/dist/components/Grid/EGrid.vue_vue_type_script_setup_true_lang.js +15 -11
- package/dist/components/Grid/EGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Heading/EHeading.js.map +1 -1
- package/dist/components/Heading/EHeading.vue.d.ts +1 -1
- package/dist/components/Heading/EHeading.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/Heading/EHeading.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Highlight/EHighlight.js.map +1 -1
- package/dist/components/Highlight/EHighlight.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/IconButton/EIconButton.js.map +1 -1
- package/dist/components/IconButton/EIconButton.vue.d.ts +1 -0
- package/dist/components/IconButton/EIconButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Inline/EInline.js.map +1 -1
- package/dist/components/Inline/EInline.vue.d.ts +3 -3
- package/dist/components/Inline/EInline.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Kbd/EKbd.js.map +1 -1
- package/dist/components/Kbd/EKbd.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Link/ELink.js.map +1 -1
- package/dist/components/Link/ELink.vue.d.ts +2 -2
- package/dist/components/Link/ELink.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Menu/EMenu.js.map +1 -1
- package/dist/components/Menu/EMenu.vue.d.ts +4 -3
- package/dist/components/Menu/EMenu.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/Menu/EMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/NavList/ENavList.js.map +1 -1
- package/dist/components/NavList/ENavList.vue.d.ts +7 -9
- package/dist/components/NavList/ENavList.vue_vue_type_script_setup_true_lang.js +2 -3
- package/dist/components/NavList/ENavList.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/{Tabs → NavList}/LinkNav.js +1 -1
- package/dist/components/NavList/LinkNav.js.map +1 -0
- package/dist/components/{Tabs → NavList}/LinkNav.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/NavList/LinkNav.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/Notice/ENotice.js.map +1 -1
- package/dist/components/Notice/ENotice.vue.d.ts +2 -2
- package/dist/components/Notice/ENotice.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/NumberField/ENumberField.js.map +1 -1
- package/dist/components/NumberField/ENumberField.vue.d.ts +5 -3
- package/dist/components/NumberField/ENumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/OtpField/EOtpField.js.map +1 -1
- package/dist/components/OtpField/EOtpField.vue.d.ts +10 -8
- package/dist/components/OtpField/EOtpField.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/OtpField/EOtpField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/PageHeader/EPageHeader.js.map +1 -1
- package/dist/components/PageHeader/EPageHeader.vue.d.ts +1 -1
- package/dist/components/PageHeader/EPageHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Pagination/EPagination.js.map +1 -1
- package/dist/components/Pagination/EPagination.vue.d.ts +1 -0
- package/dist/components/Pagination/EPagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/PasswordField/EPasswordField.js.map +1 -1
- package/dist/components/PasswordField/EPasswordField.vue.d.ts +14 -10
- package/dist/components/PasswordField/EPasswordField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/PhoneField/EPhoneField.js.map +1 -1
- package/dist/components/PhoneField/EPhoneField.vue.d.ts +6 -4
- package/dist/components/PhoneField/EPhoneField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Progress/EProgress.js.map +1 -1
- package/dist/components/Progress/EProgress.vue.d.ts +5 -5
- package/dist/components/Progress/EProgress.vue_vue_type_script_setup_true_lang.js +20 -14
- package/dist/components/Progress/EProgress.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/RadioGroup/ERadioGroup.js.map +1 -1
- package/dist/components/RadioGroup/ERadioGroup.vue.d.ts +8 -4
- package/dist/components/RadioGroup/ERadioGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/RadioGroup/ERadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/RangePicker/ERangePicker.js.map +1 -1
- package/dist/components/RangePicker/ERangePicker.vue.d.ts +12 -8
- package/dist/components/RangePicker/ERangePicker.vue_vue_type_script_setup_true_lang.js +65 -65
- package/dist/components/RangePicker/ERangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/SearchBar/ESearchBar.js.map +1 -1
- package/dist/components/SearchBar/ESearchBar.vue.d.ts +8 -7
- package/dist/components/SearchBar/ESearchBar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/SearchBar/ESearchBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/SearchResults/ESearchResults.js.map +1 -1
- package/dist/components/SearchResults/ESearchResults.vue.d.ts +3 -3
- package/dist/components/SearchResults/ESearchResults.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/SearchResults/ESearchResults.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Segmented/ESegmented.js.map +1 -1
- package/dist/components/Segmented/ESegmented.vue.d.ts +10 -6
- package/dist/components/Segmented/ESegmented.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Select/ESelect.js.map +1 -1
- package/dist/components/Select/ESelect.vue.d.ts +9 -6
- package/dist/components/Select/ESelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Select/ESelectControl.js.map +1 -1
- package/dist/components/Select/ESelectControl.vue.d.ts +2 -2
- package/dist/components/Select/ESelectControl.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/Select/ESelectControl.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Select/options.d.ts +1 -1
- package/dist/components/Select/options.js.map +1 -1
- package/dist/components/SignatureField/ESignatureField.js.map +1 -1
- package/dist/components/SignatureField/ESignatureField.vue.d.ts +14 -10
- package/dist/components/SignatureField/ESignatureField.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/SignatureField/ESignatureField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/SignaturePad/ESignaturePad.js.map +1 -1
- package/dist/components/SignaturePad/ESignaturePad.vue.d.ts +3 -1
- package/dist/components/SignaturePad/ESignaturePad.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Skeleton/ESkeleton.js.map +1 -1
- package/dist/components/Skeleton/ESkeleton.vue.d.ts +3 -3
- package/dist/components/Skeleton/ESkeleton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Stack/EStack.js.map +1 -1
- package/dist/components/Stack/EStack.vue.d.ts +2 -2
- package/dist/components/Stack/EStack.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Stamp/EStamp.js.map +1 -1
- package/dist/components/Stamp/EStamp.vue.d.ts +18 -12
- package/dist/components/Stamp/EStamp.vue_vue_type_script_setup_true_lang.js +27 -40
- package/dist/components/Stamp/EStamp.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Stepper/EStepper.js.map +1 -1
- package/dist/components/Stepper/EStepper.vue.d.ts +2 -2
- package/dist/components/Stepper/EStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Surface/ESurface.js.map +1 -1
- package/dist/components/Surface/ESurface.vue.d.ts +5 -5
- package/dist/components/Surface/ESurface.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/Surface/ESurface.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Switch/ESwitch.js.map +1 -1
- package/dist/components/Switch/ESwitch.vue.d.ts +3 -1
- package/dist/components/Switch/ESwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Tabs/ETabs.js.map +1 -1
- package/dist/components/Tabs/ETabs.vue.d.ts +10 -32
- package/dist/components/Tabs/ETabs.vue_vue_type_script_setup_true_lang.js +21 -50
- package/dist/components/Tabs/ETabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Tabs/index.d.ts +1 -1
- package/dist/components/Text/EText.js.map +1 -1
- package/dist/components/Text/EText.vue.d.ts +4 -3
- package/dist/components/Text/EText.vue_vue_type_script_setup_true_lang.js +7 -2
- package/dist/components/Text/EText.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TextField/ETextField.js.map +1 -1
- package/dist/components/TextField/ETextField.vue.d.ts +8 -6
- package/dist/components/TextField/ETextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Textarea/ETextarea.js.map +1 -1
- package/dist/components/Textarea/ETextarea.vue.d.ts +4 -2
- package/dist/components/Textarea/ETextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Toast/EToast.js.map +1 -1
- package/dist/components/Toast/EToast.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/Toast/EToast.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ToastProvider/EToastProvider.js.map +1 -1
- package/dist/components/ToastProvider/EToastProvider.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Tooltip/ETooltip.js.map +1 -1
- package/dist/components/Tooltip/ETooltip.vue.d.ts +1 -0
- package/dist/components/Tooltip/ETooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/Upload/EUpload.js.map +1 -1
- package/dist/components/Upload/EUpload.vue.d.ts +5 -3
- package/dist/components/Upload/EUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/fonts.css +1 -1
- package/dist/index.d.ts +2 -25
- package/dist/index.js +71 -94
- package/dist/messages.d.ts +0 -13
- package/dist/messages.js +0 -13
- package/dist/messages.js.map +1 -1
- package/dist/style.css +2655 -3121
- package/package.json +4 -2
- package/dist/components/Accordion/EAccordion.js +0 -8
- package/dist/components/Accordion/EAccordion.js.map +0 -1
- package/dist/components/Accordion/EAccordion.vue.d.ts +0 -32
- package/dist/components/Accordion/EAccordion.vue_vue_type_script_setup_true_lang.js +0 -35
- package/dist/components/Accordion/EAccordion.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Accordion/index.d.ts +0 -2
- package/dist/components/AddressField/EAddressField.js +0 -8
- package/dist/components/AddressField/EAddressField.js.map +0 -1
- package/dist/components/AddressField/EAddressField.vue.d.ts +0 -39
- package/dist/components/AddressField/EAddressField.vue_vue_type_script_setup_true_lang.js +0 -119
- package/dist/components/AddressField/EAddressField.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/AddressField/index.d.ts +0 -2
- package/dist/components/AddressField/usStates.d.ts +0 -5
- package/dist/components/AddressField/usStates.js +0 -211
- package/dist/components/AddressField/usStates.js.map +0 -1
- package/dist/components/Amount/EAmount.js +0 -8
- package/dist/components/Amount/EAmount.js.map +0 -1
- package/dist/components/Amount/EAmount.vue.d.ts +0 -21
- package/dist/components/Amount/EAmount.vue_vue_type_script_setup_true_lang.js +0 -38
- package/dist/components/Amount/EAmount.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Amount/index.d.ts +0 -2
- package/dist/components/Autocomplete/EAutocomplete.js +0 -7
- package/dist/components/Autocomplete/EAutocomplete.js.map +0 -1
- package/dist/components/Autocomplete/EAutocomplete.vue.d.ts +0 -44
- package/dist/components/Autocomplete/EAutocomplete.vue_vue_type_script_setup_true_lang.js +0 -58
- package/dist/components/Autocomplete/EAutocomplete.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Autocomplete/index.d.ts +0 -1
- package/dist/components/BackLink/EBackLink.js +0 -8
- package/dist/components/BackLink/EBackLink.js.map +0 -1
- package/dist/components/BackLink/EBackLink.vue.d.ts +0 -23
- package/dist/components/BackLink/EBackLink.vue_vue_type_script_setup_true_lang.js +0 -27
- package/dist/components/BackLink/EBackLink.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/BackLink/index.d.ts +0 -1
- package/dist/components/BookingCard/EBookingCard.js +0 -8
- package/dist/components/BookingCard/EBookingCard.js.map +0 -1
- package/dist/components/BookingCard/EBookingCard.vue.d.ts +0 -46
- package/dist/components/BookingCard/EBookingCard.vue_vue_type_script_setup_true_lang.js +0 -86
- package/dist/components/BookingCard/EBookingCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/BookingCard/index.d.ts +0 -2
- package/dist/components/ButtonGroup/EButtonGroup.js +0 -8
- package/dist/components/ButtonGroup/EButtonGroup.js.map +0 -1
- package/dist/components/ButtonGroup/EButtonGroup.vue_vue_type_script_setup_true_lang.js +0 -18
- package/dist/components/ButtonGroup/EButtonGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ButtonGroup/index.d.ts +0 -1
- package/dist/components/CardField/ECardField.js +0 -8
- package/dist/components/CardField/ECardField.js.map +0 -1
- package/dist/components/CardField/ECardField.vue.d.ts +0 -31
- package/dist/components/CardField/ECardField.vue_vue_type_script_setup_true_lang.js +0 -65
- package/dist/components/CardField/ECardField.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/CardField/index.d.ts +0 -1
- package/dist/components/Chip/EChip.js +0 -8
- package/dist/components/Chip/EChip.js.map +0 -1
- package/dist/components/Chip/EChip.vue.d.ts +0 -22
- package/dist/components/Chip/EChip.vue_vue_type_script_setup_true_lang.js +0 -18
- package/dist/components/Chip/EChip.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Chip/index.d.ts +0 -2
- package/dist/components/Combobox/EHighlight.js.map +0 -1
- package/dist/components/DetailRow/EDetailRow.js +0 -8
- package/dist/components/DetailRow/EDetailRow.js.map +0 -1
- package/dist/components/DetailRow/EDetailRow.vue.d.ts +0 -30
- package/dist/components/DetailRow/EDetailRow.vue_vue_type_script_setup_true_lang.js +0 -53
- package/dist/components/DetailRow/EDetailRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/DetailRow/index.d.ts +0 -1
- package/dist/components/ErrorSummary/EErrorSummary.js +0 -8
- package/dist/components/ErrorSummary/EErrorSummary.js.map +0 -1
- package/dist/components/ErrorSummary/EErrorSummary.vue.d.ts +0 -30
- package/dist/components/ErrorSummary/EErrorSummary.vue_vue_type_script_setup_true_lang.js +0 -52
- package/dist/components/ErrorSummary/EErrorSummary.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ErrorSummary/index.d.ts +0 -2
- package/dist/components/FormSection/EFormSection.js +0 -8
- package/dist/components/FormSection/EFormSection.js.map +0 -1
- package/dist/components/FormSection/EFormSection.vue.d.ts +0 -28
- package/dist/components/FormSection/EFormSection.vue_vue_type_script_setup_true_lang.js +0 -38
- package/dist/components/FormSection/EFormSection.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/FormSection/index.d.ts +0 -1
- package/dist/components/ItemList/EItemList.js +0 -8
- package/dist/components/ItemList/EItemList.js.map +0 -1
- package/dist/components/ItemList/EItemList.vue.d.ts +0 -13
- package/dist/components/ItemList/EItemList.vue_vue_type_script_setup_true_lang.js +0 -17
- package/dist/components/ItemList/EItemList.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ItemList/context.d.ts +0 -3
- package/dist/components/ItemList/context.js +0 -6
- package/dist/components/ItemList/context.js.map +0 -1
- package/dist/components/ItemList/index.d.ts +0 -1
- package/dist/components/ItemRow/EItemRow.js +0 -8
- package/dist/components/ItemRow/EItemRow.js.map +0 -1
- package/dist/components/ItemRow/EItemRow.vue.d.ts +0 -29
- package/dist/components/ItemRow/EItemRow.vue_vue_type_script_setup_true_lang.js +0 -54
- package/dist/components/ItemRow/EItemRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ItemRow/index.d.ts +0 -1
- package/dist/components/LinkCard/ELinkCard.js +0 -8
- package/dist/components/LinkCard/ELinkCard.js.map +0 -1
- package/dist/components/LinkCard/ELinkCard.vue.d.ts +0 -39
- package/dist/components/LinkCard/ELinkCard.vue_vue_type_script_setup_true_lang.js +0 -61
- package/dist/components/LinkCard/ELinkCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/LinkCard/index.d.ts +0 -1
- package/dist/components/LoadingBar/ELoadingBar.js +0 -8
- package/dist/components/LoadingBar/ELoadingBar.js.map +0 -1
- package/dist/components/LoadingBar/ELoadingBar.vue.d.ts +0 -7
- package/dist/components/LoadingBar/ELoadingBar.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/LoadingBar/ELoadingBar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/LoadingBar/index.d.ts +0 -1
- package/dist/components/MetaList/EMetaList.js +0 -8
- package/dist/components/MetaList/EMetaList.js.map +0 -1
- package/dist/components/MetaList/EMetaList.vue.d.ts +0 -15
- package/dist/components/MetaList/EMetaList.vue_vue_type_script_setup_true_lang.js +0 -19
- package/dist/components/MetaList/EMetaList.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/MetaList/index.d.ts +0 -2
- package/dist/components/MultiSelect/EMultiSelect.js +0 -7
- package/dist/components/MultiSelect/EMultiSelect.js.map +0 -1
- package/dist/components/MultiSelect/EMultiSelect.vue.d.ts +0 -44
- package/dist/components/MultiSelect/EMultiSelect.vue_vue_type_script_setup_true_lang.js +0 -58
- package/dist/components/MultiSelect/EMultiSelect.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/MultiSelect/index.d.ts +0 -1
- package/dist/components/Panel/EPanel.js +0 -8
- package/dist/components/Panel/EPanel.js.map +0 -1
- package/dist/components/Panel/EPanel.vue.d.ts +0 -25
- package/dist/components/Panel/EPanel.vue_vue_type_script_setup_true_lang.js +0 -38
- package/dist/components/Panel/EPanel.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Panel/index.d.ts +0 -1
- package/dist/components/Popover/EPopover.js +0 -8
- package/dist/components/Popover/EPopover.js.map +0 -1
- package/dist/components/Popover/EPopover.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Popover/index.d.ts +0 -1
- package/dist/components/SlotPicker/ESlotPicker.js +0 -8
- package/dist/components/SlotPicker/ESlotPicker.js.map +0 -1
- package/dist/components/SlotPicker/ESlotPicker.vue.d.ts +0 -55
- package/dist/components/SlotPicker/ESlotPicker.vue_vue_type_script_setup_true_lang.js +0 -82
- package/dist/components/SlotPicker/ESlotPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/SlotPicker/index.d.ts +0 -2
- package/dist/components/StatementCard/EStatementCard.js +0 -8
- package/dist/components/StatementCard/EStatementCard.js.map +0 -1
- package/dist/components/StatementCard/EStatementCard.vue.d.ts +0 -20
- package/dist/components/StatementCard/EStatementCard.vue_vue_type_script_setup_true_lang.js +0 -96
- package/dist/components/StatementCard/EStatementCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/StatementCard/index.d.ts +0 -2
- package/dist/components/StatementCard/types.d.ts +0 -37
- package/dist/components/StatementRow/EStatementRow.js +0 -8
- package/dist/components/StatementRow/EStatementRow.js.map +0 -1
- package/dist/components/StatementRow/EStatementRow.vue.d.ts +0 -14
- package/dist/components/StatementRow/EStatementRow.vue_vue_type_script_setup_true_lang.js +0 -96
- package/dist/components/StatementRow/EStatementRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/StatementRow/index.d.ts +0 -1
- package/dist/components/Tabs/LinkNav.js.map +0 -1
- package/dist/components/Tabs/LinkNav.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Timeline/ETimeline.js +0 -8
- package/dist/components/Timeline/ETimeline.js.map +0 -1
- package/dist/components/Timeline/ETimeline.vue.d.ts +0 -15
- package/dist/components/Timeline/ETimeline.vue_vue_type_script_setup_true_lang.js +0 -43
- package/dist/components/Timeline/ETimeline.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Timeline/index.d.ts +0 -2
- package/dist/components/Toggle/EToggle.js +0 -8
- package/dist/components/Toggle/EToggle.js.map +0 -1
- package/dist/components/Toggle/EToggle.vue.d.ts +0 -27
- package/dist/components/Toggle/EToggle.vue_vue_type_script_setup_true_lang.js +0 -40
- package/dist/components/Toggle/EToggle.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/Toggle/index.d.ts +0 -1
- /package/dist/components/Combobox/{EHighlight.d.ts → matchHighlight.d.ts} +0 -0
- /package/dist/components/{Tabs → NavList}/LinkNav.vue.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERadioGroup.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","EFieldset","_unref","_withCtx","_createElementBlock","_Fragment","_renderList","_createElementVNode","_normalizeClass","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode","EFieldset_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","ERadioGroup_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","props","__props","model","useModel","name","useUid","slots","useSlots","normalised","o","hasContent","nodes","n","Comment","Fragment","rows","chosen","option","Nodes","p","openBlock","createBlock","unref","withCtx","createElementBlock","renderList","row","createElementVNode","normalizeClass","createTextVNode","toDisplayString","createCommentVNode","createVNode"],"sources":["../../../src/components/RadioGroup/ERadioGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface RadioOption {\n value: string;\n label: string;\n /** A line of detail under the label. */\n description?: string;\n disabled?: boolean;\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Comment, Fragment, useSlots, type FunctionalComponent, type VNode } from \"vue\";\nimport EFieldset from \"../Fieldset/EFieldset.vue\";\nimport { useUid } from \"../../composables/useUid.js\";\nimport \"../../styles/base.css\";\nimport \"../Checkbox/choice.css\";\n\nconst props = defineProps<{\n /** The question, as the group's legend. */\n label: string;\n /** Keep the legend for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Five or fewer. A string is both value and label. */\n options: (string | RadioOption)[];\n /** Help that is announced with the group. */\n hint?: string;\n /** What to fix. Replaces the hint and is announced with the group. */\n error?: string;\n required?: boolean;\n /** A word beside the legend. Flag whichever is rarer. */\n optional?: boolean;\n /** Disables every option. */\n disabled?: boolean;\n /**
|
|
1
|
+
{"version":3,"file":"ERadioGroup.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","EFieldset","_unref","_withCtx","_createElementBlock","_Fragment","_renderList","_createElementVNode","_normalizeClass","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode","EFieldset_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","ERadioGroup_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","props","__props","model","useModel","name","useUid","slots","useSlots","normalised","o","hasContent","nodes","n","Comment","Fragment","rows","chosen","option","Nodes","p","openBlock","createBlock","unref","withCtx","createElementBlock","renderList","row","createElementVNode","normalizeClass","createTextVNode","toDisplayString","createCommentVNode","createVNode"],"sources":["../../../src/components/RadioGroup/ERadioGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface RadioOption {\n value: string;\n label: string;\n /** A line of detail under the label. */\n description?: string;\n disabled?: boolean;\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Comment, Fragment, useSlots, type FunctionalComponent, type VNode } from \"vue\";\nimport EFieldset from \"../Fieldset/EFieldset.vue\";\nimport { useUid } from \"../../composables/useUid.js\";\nimport \"../../styles/base.css\";\nimport \"../Checkbox/choice.css\";\n\nconst props = defineProps<{\n /** The question, as the group's legend. */\n label: string;\n /** Keep the legend for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Five or fewer. A string is both value and label. `RadioOption`: `{ value, label, description?, disabled? }`. */\n options: (string | RadioOption)[];\n /** Help that is announced with the group. */\n hint?: string;\n /** What to fix. Replaces the hint and is announced with the group. */\n error?: string;\n /** A word beside the legend, and `required` on the radios. */\n required?: boolean;\n /** A word beside the legend. Flag whichever is rarer. */\n optional?: boolean;\n /** Disables every option. */\n disabled?: boolean;\n /** Shared by the radios, submitted with a form. @default generated */\n name?: string;\n}>();\n\ndefineSlots<{\n /** A control shown under its option while that option is chosen, such as an amount field under \"Another amount\". Render nothing for an option that has none. */\n reveal(props: { option: RadioOption }): unknown;\n}>();\n\n/** The chosen value. */\nconst model = defineModel<string>();\n\nconst name = useUid(() => props.name);\nconst slots = useSlots();\n\nconst normalised = (): RadioOption[] => props.options.map((o) => (typeof o === \"string\" ? { value: o, label: o } : o));\n\nfunction hasContent(nodes: VNode[]): boolean {\n return nodes.some((n) =>\n n.type === Comment ? false : n.type === Fragment ? hasContent((n.children as VNode[] | null) ?? []) : true,\n );\n}\n\nfunction rows() {\n return normalised().map((option) => {\n const chosen = model.value === option.value;\n const nodes = chosen ? slots.reveal?.({ option }) : undefined;\n return { option, chosen, reveal: nodes && hasContent(nodes) ? nodes : null };\n });\n}\n\nconst Nodes: FunctionalComponent<{ nodes: VNode[] }> = (p) => p.nodes;\nNodes.props = [\"nodes\"];\n</script>\n\n<template>\n <EFieldset\n :id=\"`${name}-fs`\"\n class=\"e-radiogroup\"\n legend-class=\"e-radiogroup-legend\"\n bare\n :legend=\"label\"\n :hide-legend=\"hideLabel\"\n :hint=\"hint\"\n :error=\"error\"\n :required=\"required\"\n :optional=\"optional\"\n :disabled=\"disabled\"\n >\n <template v-for=\"row in rows()\" :key=\"row.option.value\">\n <label class=\"e-choice\" :class=\"{ 'e-choice--disabled': row.option.disabled, 'e-choice--open': row.reveal }\">\n <input\n type=\"radio\"\n class=\"e-radio\"\n :name=\"name\"\n :value=\"row.option.value\"\n :required=\"required\"\n :checked=\"row.chosen\"\n :disabled=\"row.option.disabled\"\n @change=\"model = row.option.value\"\n />\n <span class=\"e-choice-text\">\n {{ row.option.label }}\n <span v-if=\"row.option.description\" class=\"e-choice-desc\">{{ row.option.description }}</span>\n </span>\n </label>\n <div v-if=\"row.reveal\" class=\"e-choice-reveal\"><Nodes :nodes=\"row.reveal\" /></div>\n </template>\n </EFieldset>\n</template>\n\n<style>\n@layer e.controls {\n .e-radiogroup {\n display: grid;\n gap: 0;\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n }\n\n .e-radiogroup-legend {\n padding: 0;\n }\n\n .e-radiogroup > .e-field-hint,\n .e-radiogroup > .e-field-error {\n margin-top: calc(var(--e-space-1) - var(--e-space-2) - var(--e-focus-gap));\n }\n\n .e-choice--open {\n min-height: 0;\n padding-bottom: var(--e-space-1);\n }\n\n .e-choice-reveal {\n padding: var(--e-space-1) 0 var(--e-space-2);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBA,IAAMuB,IAAQC,GA2BRC,IAAQzB,EAAmBwB,GAAA,YAAC,GAE5BG,IAAOC,QAAaL,EAAM,IAAI,GAC9BM,IAAQC,EAAS,GAEjBC,UAAkCR,EAAM,QAAQ,KAAK,MAAO,OAAOS,KAAM,WAAW;GAAE,OAAOA;GAAG,OAAOA;EAAE,IAAIA,CAAE;EAErH,SAASC,EAAW,GAAyB;GAC3C,OAAOC,EAAM,MAAM,MACjBC,EAAE,SAASC,IAAU,KAAQD,EAAE,SAASE,KAAWJ,EAAYE,EAAE,YAA+B,CAAC,CAAC,CACpG;EACF;EAEA,SAASG,IAAO;GACd,OAAOP,EAAW,CAAC,CAAC,KAAK,MAAW;IAClC,IAAMQ,IAASd,EAAM,UAAUe,EAAO,OAChCN,IAAQK,IAASV,EAAM,SAAS,EAAE,UAAO,CAAC,IAAI,KAAA;IACpD,OAAO;KAAE;KAAQ;KAAQ,QAAQK,KAASD,EAAWC,CAAK,IAAIA,IAAQ;IAAK;GAC7E,CAAC;EACH;EAEA,IAAMO,KAAkD,MAAMC,EAAE;E,OAChE,EAAM,QAAQ,CAAC,OAAO,I,UAIpBzC,EAAA,GAAAC,EAgCYC,GAAA;GA/BT,IAAE,GAAKC,EAAAuB,CAAA,EAAI;GACZ,OAAM;GACN,gBAAa;GACb,MAAA;GACC,QAAQH,EAAA;GACR,eAAaA,EAAA;GACb,MAAMA,EAAA;GACN,OAAOA,EAAA;GACP,UAAUA,EAAA;GACV,UAAUA,EAAA;GACV,UAAUA,EAAA;;GAED,SAAAnB,QAAqB,EAA/BJ,EAAA,EAAA,GAAAK,EAkBWC,GAAA,MAAAC,EAlBa8B,EAAI,IAAX,O,YAAqB,KAAAW,EAAI,OAAO,M,IAC/CxC,EAeQ,SAAA,EAfD,OAAKC,EAAA,CAAC,YAAU;IAAA,sBAAiCuC,EAAI,OAAO;IAAQ,kBAAoBA,EAAI;GAAM,CAAA,CAAA,E,IACvGxC,EASE,SAAA;IARA,MAAK;IACL,OAAM;IACL,MAAML,EAAAuB,CAAA;IACN,OAAOsB,EAAI,OAAO;IAClB,UAAUzB,EAAA;IACV,SAASyB,EAAI;IACb,UAAUA,EAAI,OAAO;IACrB,WAAM,MAAE,EAAA,QAAQA,EAAI,OAAO;G,iBAE9BxC,EAGO,QAHPQ,GAGO,CAFFN,EAAAC,EAAAqC,EAAI,OAAO,KAAK,IAAG,KACtB,CAAA,GAAYA,EAAI,OAAO,eAAvBhD,EAAA,GAAAK,EAA6F,QAA7FY,GAA6FN,EAAhCqC,EAAI,OAAO,WAAW,GAAA,CAAA,K,kBAG5EA,EAAI,UAAfhD,EAAA,GAAAK,EAAkF,OAAlFa,GAAkF,CAAnCL,EAA6B2B,GAAA,EAArB,OAAOQ,EAAI,O"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERangePicker.js","names":["_sfc_main","ERangePicker_vue_vue_type_script_setup_true_lang_default","ERangePicker_default"],"sources":["../../../src/components/RangePicker/ERangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from \"reka-ui\";\nimport EButton from \"../Button/EButton.vue\";\nimport ECalendar from \"../Calendar/ECalendar.vue\";\nimport type { CalendarRange } from \"../Calendar/ECalendar.vue\";\nimport EField from \"../Field/EField.vue\";\nimport EIcon from \"../Icon/EIcon.vue\";\nimport { addDays, compareDays, isoDate, startOfDay } from \"../Calendar/dates.js\";\nimport { useConfig, useMessages, usePortalTarget } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useQuietFocus } from \"../Select/quietFocus.js\";\nimport { useLocale } from \"../../composables/useLocale.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\nimport \"../Combobox/combo.css\";\nimport \"../DatePicker/picker.css\";\n\nexport interface RangePreset {\n /** The button text, such as \"Last 7 days\". */\n label: string;\n /** The span the button chooses. */\n get: () => { start: Date; end: Date };\n}\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the field. */\n label: string;\n /** Keep the label for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Help that stays under the field. */\n hint?: string;\n /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */\n error?: string;\n /** A word beside the label. */\n required?: boolean;\n /** A word beside the label. Flag whichever is rarer. */\n optional?: boolean;\n disabled?: boolean;\n /** The earliest date that can be chosen or typed. */\n min?: Date;\n /** The latest date that can be chosen or typed. */\n max?: Date;\n /** Submits the first date as `YYYY-MM-DD` with a form. */\n startName?: string;\n /** Submits the last date as `YYYY-MM-DD` with a form. */\n endName?: string;\n /** Buttons under the calendar that choose a span at once. Default: Last 7 days, Last 30 days, This month. */\n presets?: RangePreset[];\n /** The id of the start box; the label points at it. Generated when left out. */\n id?: string;\n}>();\n\nconst start = defineModel<Date | null>(\"start\", { default: null });\nconst end = defineModel<Date | null>(\"end\", { default: null });\n\nconst t = useMessages();\nconst config = useConfig();\nconst loc = useLocale();\nconst portal = usePortalTarget();\nconst attrs = useFieldAttrs();\n\nconst open = defineModel<boolean>(\"open\", { default: false });\nconst shown = computed(() => open.value && !props.disabled);\nconst quiet = useQuietFocus(shown, (el) => !!el.closest(\".e-calpanel, .e-combo\"));\nconst trigger = { onClick: quiet.intent, onKeydown: quiet.intent };\n\nconst startText = ref(loc.formatDate(start.value));\nconst endText = ref(loc.formatDate(end.value));\nconst typedError = ref(\"\");\nconst draft = ref<CalendarRange>({ start: start.value, end: end.value });\nconst calendar = ref<InstanceType<typeof ECalendar> | null>(null);\nconst startInput = ref<HTMLInputElement | null>(null);\n\nwatch([() => start.value?.getTime(), () => end.value?.getTime(), () => config.locale], () => {\n startText.value = loc.formatDate(start.value);\n endText.value = loc.formatDate(end.value);\n});\nwatch(open, (isOpen) => {\n if (isOpen) draft.value = { start: start.value, end: end.value };\n});\n\nconst shownError = computed(() => props.error || typedError.value);\n\nconst presets = computed<RangePreset[]>(() => {\n if (props.presets) return props.presets;\n const today = startOfDay(new Date());\n return [\n { label: t(\"last7\"), get: () => ({ start: addDays(today, -6), end: today }) },\n { label: t(\"last30\"), get: () => ({ start: addDays(today, -29), end: today }) },\n {\n label: t(\"thisMonth\"),\n get: () => ({ start: new Date(today.getFullYear(), today.getMonth(), 1, 12), end: today }),\n },\n ];\n});\n\nfunction setRange(r: { start: Date | null; end: Date | null }) {\n start.value = r.start;\n end.value = r.end;\n startText.value = loc.formatDate(r.start);\n endText.value = loc.formatDate(r.end);\n typedError.value = \"\";\n}\n\nconst outOfBounds = (d: Date) =>\n (!!props.min && compareDays(d, props.min) < 0) || (!!props.max && compareDays(d, props.max) > 0);\n\nfunction commitText() {\n const a = startText.value.trim() ? loc.parseDate(startText.value) : null;\n const b = endText.value.trim() ? loc.parseDate(endText.value) : null;\n if ((startText.value.trim() && !a) || (endText.value.trim() && !b)) {\n typedError.value = t(\"datesError\", { format: loc.dateFormatLabel() });\n return;\n }\n const bad = [a, b].find((d) => d && outOfBounds(d));\n if (bad) {\n typedError.value = t(\"dateBetween\", {\n min: loc.formatDate(props.min || bad),\n max: loc.formatDate(props.max || bad),\n });\n return;\n }\n if (a && b && compareDays(b, a) < 0) {\n typedError.value = t(\"endBeforeStart\");\n return;\n }\n setRange({ start: a, end: b });\n}\n\nfunction onRange(r: CalendarRange) {\n draft.value = r;\n if (r.start && r.end) {\n setRange(r);\n open.value = false;\n }\n}\nfunction applyPreset(p: RangePreset) {\n setRange(p.get());\n open.value = false;\n}\n\nfunction onOpenFocus(e: Event) {\n e.preventDefault();\n if (!quiet.personOpened()) return;\n void nextTick(() => calendar.value?.focusDay());\n}\nfunction onCloseFocus(e: Event) {\n if (!quiet.returnsFocus()) e.preventDefault();\n}\nfunction onEscape(e: KeyboardEvent) {\n if (calendar.value && calendar.value.view !== \"days\") e.preventDefault();\n}\nfunction onKey(e: KeyboardEvent) {\n if (e.key === \"Enter\") commitText();\n else if (e.key === \"ArrowDown\" && e.altKey && !props.disabled) {\n e.preventDefault();\n quiet.intent();\n open.value = true;\n }\n}\n\ndefineExpose({\n input: startInput,\n focus: () => startInput.value?.focus(),\n});\n</script>\n\n<template>\n <EField\n v-bind=\"attrs.wrapper()\"\n :id=\"id\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :hint=\"hint\"\n :error=\"shownError\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <PopoverRoot :open=\"shown\" @update:open=\"open = $event\">\n <PopoverAnchor as-child>\n <div\n v-bind=\"attrs.input()\"\n class=\"e-input-wrap e-combo e-rangefield\"\n role=\"group\"\n :aria-labelledby=\"`${field.id}-label`\"\n :data-invalid=\"shownError ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n >\n <input\n :id=\"field.id\"\n ref=\"startInput\"\n v-model=\"startText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('startDate')\"\n :aria-label=\"t('startDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <span class=\"e-range-sep\" aria-hidden=\"true\">{{ t(\"to\") }}</span>\n <input\n v-model=\"endText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('endDate')\"\n :aria-label=\"t('endDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <input v-if=\"startName\" type=\"hidden\" :name=\"startName\" :value=\"isoDate(start)\" />\n <input v-if=\"endName\" type=\"hidden\" :name=\"endName\" :value=\"isoDate(end)\" />\n <PopoverTrigger as-child v-bind=\"trigger\">\n <button type=\"button\" class=\"e-combo-btn\" :aria-label=\"t('chooseDates')\" :disabled=\"disabled\">\n <EIcon name=\"calendar\" />\n </button>\n </PopoverTrigger>\n </div>\n </PopoverAnchor>\n <PopoverPortal :to=\"portal\">\n <PopoverContent\n class=\"e-calpanel e-root\"\n :aria-label=\"t('chooseDates')\"\n :dir=\"config.dir ?? undefined\"\n side=\"bottom\"\n align=\"start\"\n :side-offset=\"6\"\n :collision-padding=\"8\"\n @open-auto-focus=\"onOpenFocus\"\n @close-auto-focus=\"onCloseFocus\"\n @escape-key-down=\"onEscape\"\n >\n <ECalendar\n ref=\"calendar\"\n mode=\"range\"\n :start=\"draft.start\"\n :end=\"draft.end\"\n :min=\"min\"\n :max=\"max\"\n :footer=\"false\"\n @range-change=\"onRange\"\n />\n <div class=\"e-cal-presets\">\n <EButton v-for=\"p in presets\" :key=\"p.label\" variant=\"outline\" @click=\"applyPreset(p)\">\n {{ p.label }}\n </EButton>\n </div>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.composites {\n .e-cal-presets {\n display: flex;\n flex-wrap: wrap;\n gap: var(--e-space-2);\n margin-top: var(--e-space-3);\n padding-top: var(--e-space-3);\n border-top: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-rangefield .e-input {\n flex: 1 1 5rem;\n }\n\n .e-range-sep {\n flex: none;\n font: 500 var(--e-text-sm) / 1 var(--e-font-sans);\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ERangePicker.js","names":["_sfc_main","ERangePicker_vue_vue_type_script_setup_true_lang_default","ERangePicker_default"],"sources":["../../../src/components/RangePicker/ERangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from \"reka-ui\";\nimport EButton from \"../Button/EButton.vue\";\nimport ECalendar from \"../Calendar/ECalendar.vue\";\nimport type { CalendarRange } from \"../Calendar/ECalendar.vue\";\nimport EField from \"../Field/EField.vue\";\nimport EIcon from \"../Icon/EIcon.vue\";\nimport { addDays, compareDays, isoDate, startOfDay } from \"../Calendar/dates.js\";\nimport { useConfig, useMessages, usePortalTarget } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useQuietFocus } from \"../Select/quietFocus.js\";\nimport { useLocale } from \"../../composables/useLocale.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\nimport \"../Combobox/combo.css\";\nimport \"../DatePicker/picker.css\";\n\nexport interface RangePreset {\n /** The button text, such as \"Last 7 days\". */\n label: string;\n /** The span the button chooses. */\n get: () => { start: Date; end: Date };\n}\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the field. It also names the group. */\n label: string;\n /** Keep the label for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Help that stays under the field. */\n hint?: string;\n /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */\n error?: string;\n /** The `required` attribute and a word beside the label. */\n required?: boolean;\n /** A word beside the label. Flag whichever is rarer. */\n optional?: boolean;\n /** Disables both boxes and the button. */\n disabled?: boolean;\n /** The earliest date that can be chosen or typed. */\n min?: Date;\n /** The latest date that can be chosen or typed. */\n max?: Date;\n /** Submits the first date as `YYYY-MM-DD` with a form, through a hidden input. */\n startName?: string;\n /** Submits the last date as `YYYY-MM-DD` with a form, through a hidden input. */\n endName?: string;\n /** Buttons under the calendar; one sets the span and closes. @default Last 7 days, Last 30 days, This month */\n presets?: RangePreset[];\n /** The id of the start box; the label points at it. @default generated */\n id?: string;\n}>();\n\n/** The first date of the span. */\nconst start = defineModel<Date | null>(\"start\", { default: null });\n/** The last date of the span. */\nconst end = defineModel<Date | null>(\"end\", { default: null });\n\nconst t = useMessages();\nconst config = useConfig();\nconst loc = useLocale();\nconst portal = usePortalTarget();\nconst attrs = useFieldAttrs();\n\n/** Whether the calendar is open. A disabled field never opens. */\nconst open = defineModel<boolean>(\"open\", { default: false });\nconst shown = computed(() => open.value && !props.disabled);\nconst quiet = useQuietFocus(shown, (el) => !!el.closest(\".e-calpanel, .e-combo\"));\nconst trigger = { onClick: quiet.intent, onKeydown: quiet.intent };\n\nconst startText = ref(loc.formatDate(start.value));\nconst endText = ref(loc.formatDate(end.value));\nconst typedError = ref(\"\");\nconst draft = ref<CalendarRange>({ start: start.value, end: end.value });\nconst calendar = ref<InstanceType<typeof ECalendar> | null>(null);\nconst startInput = ref<HTMLInputElement | null>(null);\n\nwatch([() => start.value?.getTime(), () => end.value?.getTime(), () => config.locale], () => {\n startText.value = loc.formatDate(start.value);\n endText.value = loc.formatDate(end.value);\n});\nwatch(open, (isOpen) => {\n if (isOpen) draft.value = { start: start.value, end: end.value };\n});\n\nconst shownError = computed(() => props.error || typedError.value);\n\nconst presets = computed<RangePreset[]>(() => {\n if (props.presets) return props.presets;\n const today = startOfDay(new Date());\n return [\n { label: t(\"last7\"), get: () => ({ start: addDays(today, -6), end: today }) },\n { label: t(\"last30\"), get: () => ({ start: addDays(today, -29), end: today }) },\n {\n label: t(\"thisMonth\"),\n get: () => ({ start: new Date(today.getFullYear(), today.getMonth(), 1, 12), end: today }),\n },\n ];\n});\n\nfunction setRange(r: { start: Date | null; end: Date | null }) {\n start.value = r.start;\n end.value = r.end;\n startText.value = loc.formatDate(r.start);\n endText.value = loc.formatDate(r.end);\n typedError.value = \"\";\n}\n\nconst outOfBounds = (d: Date) =>\n (!!props.min && compareDays(d, props.min) < 0) || (!!props.max && compareDays(d, props.max) > 0);\n\nfunction commitText() {\n const a = startText.value.trim() ? loc.parseDate(startText.value) : null;\n const b = endText.value.trim() ? loc.parseDate(endText.value) : null;\n if ((startText.value.trim() && !a) || (endText.value.trim() && !b)) {\n typedError.value = t(\"datesError\", { format: loc.dateFormatLabel() });\n return;\n }\n const bad = [a, b].find((d) => d && outOfBounds(d));\n if (bad) {\n typedError.value = t(\"dateBetween\", {\n min: loc.formatDate(props.min || bad),\n max: loc.formatDate(props.max || bad),\n });\n return;\n }\n if (a && b && compareDays(b, a) < 0) {\n typedError.value = t(\"endBeforeStart\");\n return;\n }\n setRange({ start: a, end: b });\n}\n\nfunction onRange(r: CalendarRange) {\n draft.value = r;\n if (r.start && r.end) {\n setRange(r);\n open.value = false;\n }\n}\nfunction applyPreset(p: RangePreset) {\n setRange(p.get());\n open.value = false;\n}\n\nfunction onOpenFocus(e: Event) {\n e.preventDefault();\n if (!quiet.personOpened()) return;\n void nextTick(() => calendar.value?.focusDay());\n}\nfunction onCloseFocus(e: Event) {\n if (!quiet.returnsFocus()) e.preventDefault();\n}\nfunction onEscape(e: KeyboardEvent) {\n if (calendar.value && calendar.value.view !== \"days\") e.preventDefault();\n}\nfunction onKey(e: KeyboardEvent) {\n if (e.key === \"Enter\") commitText();\n else if (e.key === \"ArrowDown\" && e.altKey && !props.disabled) {\n e.preventDefault();\n quiet.intent();\n open.value = true;\n }\n}\n\ndefineExpose({\n input: startInput,\n focus: () => startInput.value?.focus(),\n});\n</script>\n\n<template>\n <EField\n v-bind=\"attrs.wrapper()\"\n :id=\"id\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :hint=\"hint\"\n :error=\"shownError\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <PopoverRoot :open=\"shown\" @update:open=\"open = $event\">\n <PopoverAnchor as-child>\n <div\n v-bind=\"attrs.input()\"\n class=\"e-input-wrap e-combo e-rangefield\"\n role=\"group\"\n :aria-labelledby=\"`${field.id}-label`\"\n :data-invalid=\"shownError ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n >\n <input\n :id=\"field.id\"\n ref=\"startInput\"\n v-model=\"startText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('startDate')\"\n :aria-label=\"t('startDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <span class=\"e-range-sep\" aria-hidden=\"true\">{{ t(\"to\") }}</span>\n <input\n v-model=\"endText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('endDate')\"\n :aria-label=\"t('endDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <input v-if=\"startName\" type=\"hidden\" :name=\"startName\" :value=\"isoDate(start)\" />\n <input v-if=\"endName\" type=\"hidden\" :name=\"endName\" :value=\"isoDate(end)\" />\n <PopoverTrigger as-child v-bind=\"trigger\">\n <button type=\"button\" class=\"e-combo-btn\" :aria-label=\"t('chooseDates')\" :disabled=\"disabled\">\n <EIcon name=\"calendar\" />\n </button>\n </PopoverTrigger>\n </div>\n </PopoverAnchor>\n <PopoverPortal :to=\"portal\">\n <PopoverContent\n class=\"e-calpanel e-root\"\n :aria-label=\"t('chooseDates')\"\n :dir=\"config.dir ?? undefined\"\n side=\"bottom\"\n align=\"start\"\n :side-offset=\"6\"\n :collision-padding=\"8\"\n @open-auto-focus=\"onOpenFocus\"\n @close-auto-focus=\"onCloseFocus\"\n @escape-key-down=\"onEscape\"\n >\n <ECalendar\n ref=\"calendar\"\n mode=\"range\"\n :start=\"draft.start\"\n :end=\"draft.end\"\n :min=\"min\"\n :max=\"max\"\n :footer=\"false\"\n @range-change=\"onRange\"\n />\n <div class=\"e-cal-presets\">\n <EButton v-for=\"p in presets\" :key=\"p.label\" variant=\"outline\" @click=\"applyPreset(p)\">\n {{ p.label }}\n </EButton>\n </div>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.composites {\n .e-cal-presets {\n display: flex;\n flex-wrap: wrap;\n gap: var(--e-space-2);\n margin-top: var(--e-space-3);\n padding-top: var(--e-space-3);\n border-top: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-rangefield .e-input {\n flex: 1 1 5rem;\n }\n\n .e-range-sep {\n flex: none;\n font: 500 var(--e-text-sm) / 1 var(--e-font-sans);\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -8,7 +8,7 @@ export interface RangePreset {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
type __VLS_Props = {
|
|
11
|
-
/** The visible label, a mono kicker above the field. */
|
|
11
|
+
/** The visible label, a mono kicker above the field. It also names the group. */
|
|
12
12
|
label: string;
|
|
13
13
|
/** Keep the label for screen readers and remove it from the page. */
|
|
14
14
|
hideLabel?: boolean;
|
|
@@ -16,27 +16,31 @@ type __VLS_Props = {
|
|
|
16
16
|
hint?: string;
|
|
17
17
|
/** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */
|
|
18
18
|
error?: string;
|
|
19
|
-
/**
|
|
19
|
+
/** The `required` attribute and a word beside the label. */
|
|
20
20
|
required?: boolean;
|
|
21
21
|
/** A word beside the label. Flag whichever is rarer. */
|
|
22
22
|
optional?: boolean;
|
|
23
|
+
/** Disables both boxes and the button. */
|
|
23
24
|
disabled?: boolean;
|
|
24
25
|
/** The earliest date that can be chosen or typed. */
|
|
25
26
|
min?: Date;
|
|
26
27
|
/** The latest date that can be chosen or typed. */
|
|
27
28
|
max?: Date;
|
|
28
|
-
/** Submits the first date as `YYYY-MM-DD` with a form. */
|
|
29
|
+
/** Submits the first date as `YYYY-MM-DD` with a form, through a hidden input. */
|
|
29
30
|
startName?: string;
|
|
30
|
-
/** Submits the last date as `YYYY-MM-DD` with a form. */
|
|
31
|
+
/** Submits the last date as `YYYY-MM-DD` with a form, through a hidden input. */
|
|
31
32
|
endName?: string;
|
|
32
|
-
/** Buttons under the calendar
|
|
33
|
+
/** Buttons under the calendar; one sets the span and closes. @default Last 7 days, Last 30 days, This month */
|
|
33
34
|
presets?: RangePreset[];
|
|
34
|
-
/** The id of the start box; the label points at it.
|
|
35
|
+
/** The id of the start box; the label points at it. @default generated */
|
|
35
36
|
id?: string;
|
|
36
37
|
};
|
|
37
38
|
type __VLS_ModelProps = {
|
|
39
|
+
/** The first date of the span. */
|
|
38
40
|
"start"?: Date | null;
|
|
41
|
+
/** The last date of the span. */
|
|
39
42
|
"end"?: Date | null;
|
|
43
|
+
/** Whether the calendar is open. A disabled field never opens. */
|
|
40
44
|
"open"?: boolean;
|
|
41
45
|
};
|
|
42
46
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
@@ -44,13 +48,13 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {
|
|
|
44
48
|
input: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
|
|
45
49
|
focus: () => void | undefined;
|
|
46
50
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
47
|
-
"update:open": (value: boolean) => any;
|
|
48
51
|
"update:start": (value: Date | null) => any;
|
|
49
52
|
"update:end": (value: Date | null) => any;
|
|
53
|
+
"update:open": (value: boolean) => any;
|
|
50
54
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
51
|
-
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
52
55
|
"onUpdate:start"?: ((value: Date | null) => any) | undefined;
|
|
53
56
|
"onUpdate:end"?: ((value: Date | null) => any) | undefined;
|
|
57
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
54
58
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
55
59
|
declare const _default: typeof __VLS_export;
|
|
56
60
|
export default _default;
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import { useConfig as e, useMessages as t, usePortalTarget as n } from "../../config.js";
|
|
3
3
|
import { useFieldAttrs as r } from "../../composables/useFieldAttrs.js";
|
|
4
4
|
import { useLocale as ee } from "../../composables/useLocale.js";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
5
|
+
import i from "../Icon/EIcon.js";
|
|
6
|
+
import a from "../Button/EButton.js";
|
|
7
|
+
import { addDays as o, compareDays as s, isoDate as c, startOfDay as te } from "../Calendar/dates.js";
|
|
8
|
+
import ne from "../Calendar/ECalendar.js";
|
|
9
|
+
import re from "../Field/EField.js";
|
|
7
10
|
/* empty css */
|
|
8
|
-
import { useQuietFocus as a } from "../Select/quietFocus.js";
|
|
9
11
|
/* empty css */
|
|
10
|
-
import
|
|
11
|
-
import { addDays as s, compareDays as c, isoDate as l, startOfDay as ne } from "../Calendar/dates.js";
|
|
12
|
-
import re from "../Calendar/ECalendar.js";
|
|
12
|
+
import { useQuietFocus as ie } from "../Select/quietFocus.js";
|
|
13
13
|
/* empty css */
|
|
14
|
-
import { Fragment as
|
|
15
|
-
import { PopoverAnchor as
|
|
14
|
+
import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, mergeModels as v, mergeProps as y, nextTick as ae, openBlock as b, ref as x, renderList as oe, toDisplayString as S, unref as C, useModel as w, vModelText as T, watch as E, withCtx as D, withDirectives as O } from "vue";
|
|
15
|
+
import { PopoverAnchor as k, PopoverContent as A, PopoverPortal as se, PopoverRoot as ce, PopoverTrigger as le } from "reka-ui";
|
|
16
16
|
//#region src/components/RangePicker/ERangePicker.vue?vue&type=script&setup=true&lang.ts
|
|
17
17
|
var ue = [
|
|
18
18
|
"aria-labelledby",
|
|
@@ -36,10 +36,10 @@ var ue = [
|
|
|
36
36
|
"required",
|
|
37
37
|
"aria-invalid",
|
|
38
38
|
"aria-describedby"
|
|
39
|
-
], me = ["name", "value"], j = ["name", "value"], M = ["aria-label", "disabled"], N = { class: "e-cal-presets" }, P = /*@__PURE__*/
|
|
39
|
+
], me = ["name", "value"], j = ["name", "value"], M = ["aria-label", "disabled"], N = { class: "e-cal-presets" }, P = /*@__PURE__*/ _({
|
|
40
40
|
inheritAttrs: !1,
|
|
41
41
|
__name: "ERangePicker",
|
|
42
|
-
props: /*@__PURE__*/
|
|
42
|
+
props: /*@__PURE__*/ v({
|
|
43
43
|
label: {},
|
|
44
44
|
hideLabel: { type: Boolean },
|
|
45
45
|
hint: {},
|
|
@@ -69,21 +69,21 @@ var ue = [
|
|
|
69
69
|
"update:end",
|
|
70
70
|
"update:open"
|
|
71
71
|
],
|
|
72
|
-
setup(
|
|
73
|
-
let P =
|
|
72
|
+
setup(_, { expose: v }) {
|
|
73
|
+
let P = _, F = w(_, "start"), I = w(_, "end"), L = t(), R = e(), z = ee(), he = n(), B = r(), V = w(_, "open"), H = u(() => V.value && !P.disabled), U = ie(H, (e) => !!e.closest(".e-calpanel, .e-combo")), ge = {
|
|
74
74
|
onClick: U.intent,
|
|
75
75
|
onKeydown: U.intent
|
|
76
76
|
}, W = x(z.formatDate(F.value)), G = x(z.formatDate(I.value)), K = x(""), q = x({
|
|
77
77
|
start: F.value,
|
|
78
78
|
end: I.value
|
|
79
79
|
}), J = x(null), Y = x(null);
|
|
80
|
-
|
|
80
|
+
E([
|
|
81
81
|
() => F.value?.getTime(),
|
|
82
82
|
() => I.value?.getTime(),
|
|
83
83
|
() => R.locale
|
|
84
84
|
], () => {
|
|
85
85
|
W.value = z.formatDate(F.value), G.value = z.formatDate(I.value);
|
|
86
|
-
}),
|
|
86
|
+
}), E(V, (e) => {
|
|
87
87
|
e && (q.value = {
|
|
88
88
|
start: F.value,
|
|
89
89
|
end: I.value
|
|
@@ -91,19 +91,19 @@ var ue = [
|
|
|
91
91
|
});
|
|
92
92
|
let X = u(() => P.error || K.value), _e = u(() => {
|
|
93
93
|
if (P.presets) return P.presets;
|
|
94
|
-
let e =
|
|
94
|
+
let e = te(/* @__PURE__ */ new Date());
|
|
95
95
|
return [
|
|
96
96
|
{
|
|
97
97
|
label: L("last7"),
|
|
98
98
|
get: () => ({
|
|
99
|
-
start:
|
|
99
|
+
start: o(e, -6),
|
|
100
100
|
end: e
|
|
101
101
|
})
|
|
102
102
|
},
|
|
103
103
|
{
|
|
104
104
|
label: L("last30"),
|
|
105
105
|
get: () => ({
|
|
106
|
-
start:
|
|
106
|
+
start: o(e, -29),
|
|
107
107
|
end: e
|
|
108
108
|
})
|
|
109
109
|
},
|
|
@@ -119,7 +119,7 @@ var ue = [
|
|
|
119
119
|
function Z(e) {
|
|
120
120
|
F.value = e.start, I.value = e.end, W.value = z.formatDate(e.start), G.value = z.formatDate(e.end), K.value = "";
|
|
121
121
|
}
|
|
122
|
-
let ve = (e) => !!P.min &&
|
|
122
|
+
let ve = (e) => !!P.min && s(e, P.min) < 0 || !!P.max && s(e, P.max) > 0;
|
|
123
123
|
function Q() {
|
|
124
124
|
let e = W.value.trim() ? z.parseDate(W.value) : null, t = G.value.trim() ? z.parseDate(G.value) : null;
|
|
125
125
|
if (W.value.trim() && !e || G.value.trim() && !t) {
|
|
@@ -130,7 +130,7 @@ var ue = [
|
|
|
130
130
|
n ? K.value = L("dateBetween", {
|
|
131
131
|
min: z.formatDate(P.min || n),
|
|
132
132
|
max: z.formatDate(P.max || n)
|
|
133
|
-
}) : e && t &&
|
|
133
|
+
}) : e && t && s(t, e) < 0 ? K.value = L("endBeforeStart") : Z({
|
|
134
134
|
start: e,
|
|
135
135
|
end: t
|
|
136
136
|
});
|
|
@@ -142,7 +142,7 @@ var ue = [
|
|
|
142
142
|
Z(e.get()), V.value = !1;
|
|
143
143
|
}
|
|
144
144
|
function xe(e) {
|
|
145
|
-
e.preventDefault(), U.personOpened() &&
|
|
145
|
+
e.preventDefault(), U.personOpened() && ae(() => J.value?.focusDay());
|
|
146
146
|
}
|
|
147
147
|
function Se(e) {
|
|
148
148
|
U.returnsFocus() || e.preventDefault();
|
|
@@ -153,31 +153,31 @@ var ue = [
|
|
|
153
153
|
function $(e) {
|
|
154
154
|
e.key === "Enter" ? Q() : e.key === "ArrowDown" && e.altKey && !P.disabled && (e.preventDefault(), U.intent(), V.value = !0);
|
|
155
155
|
}
|
|
156
|
-
return
|
|
156
|
+
return v({
|
|
157
157
|
input: Y,
|
|
158
158
|
focus: () => Y.value?.focus()
|
|
159
|
-
}), (e, t) => (b(), d(
|
|
160
|
-
id:
|
|
161
|
-
label:
|
|
162
|
-
"hide-label":
|
|
163
|
-
hint:
|
|
159
|
+
}), (e, t) => (b(), d(re, y(C(B).wrapper(), {
|
|
160
|
+
id: _.id,
|
|
161
|
+
label: _.label,
|
|
162
|
+
"hide-label": _.hideLabel,
|
|
163
|
+
hint: _.hint,
|
|
164
164
|
error: X.value,
|
|
165
|
-
required:
|
|
166
|
-
optional:
|
|
165
|
+
required: _.required,
|
|
166
|
+
optional: _.optional
|
|
167
167
|
}), {
|
|
168
|
-
default:
|
|
168
|
+
default: D((e) => [g(C(ce), {
|
|
169
169
|
open: H.value,
|
|
170
170
|
"onUpdate:open": t[4] ||= (e) => V.value = e
|
|
171
171
|
}, {
|
|
172
|
-
default:
|
|
173
|
-
default:
|
|
172
|
+
default: D(() => [g(C(k), { "as-child": "" }, {
|
|
173
|
+
default: D(() => [m("div", y(C(B).input(), {
|
|
174
174
|
class: "e-input-wrap e-combo e-rangefield",
|
|
175
175
|
role: "group",
|
|
176
176
|
"aria-labelledby": `${e.id}-label`,
|
|
177
177
|
"data-invalid": X.value ? "" : void 0,
|
|
178
|
-
"data-disabled":
|
|
178
|
+
"data-disabled": _.disabled ? "" : void 0
|
|
179
179
|
}), [
|
|
180
|
-
|
|
180
|
+
O(m("input", {
|
|
181
181
|
id: e.id,
|
|
182
182
|
ref_key: "startInput",
|
|
183
183
|
ref: Y,
|
|
@@ -186,61 +186,61 @@ var ue = [
|
|
|
186
186
|
type: "text",
|
|
187
187
|
inputmode: "numeric",
|
|
188
188
|
autocomplete: "off",
|
|
189
|
-
placeholder:
|
|
190
|
-
"aria-label":
|
|
191
|
-
disabled:
|
|
192
|
-
required:
|
|
189
|
+
placeholder: C(L)("startDate"),
|
|
190
|
+
"aria-label": C(L)("startDate"),
|
|
191
|
+
disabled: _.disabled,
|
|
192
|
+
required: _.required,
|
|
193
193
|
"aria-invalid": e.ariaInvalid,
|
|
194
194
|
"aria-describedby": e.ariaDescribedby,
|
|
195
195
|
onInput: t[1] ||= (e) => K.value = "",
|
|
196
196
|
onBlur: Q,
|
|
197
197
|
onKeydown: $
|
|
198
|
-
}, null, 40, de), [[
|
|
199
|
-
m("span", fe, C(
|
|
200
|
-
|
|
198
|
+
}, null, 40, de), [[T, W.value]]),
|
|
199
|
+
m("span", fe, S(C(L)("to")), 1),
|
|
200
|
+
O(m("input", {
|
|
201
201
|
"onUpdate:modelValue": t[2] ||= (e) => G.value = e,
|
|
202
202
|
class: "e-input e-combo-input",
|
|
203
203
|
type: "text",
|
|
204
204
|
inputmode: "numeric",
|
|
205
205
|
autocomplete: "off",
|
|
206
|
-
placeholder:
|
|
207
|
-
"aria-label":
|
|
208
|
-
disabled:
|
|
209
|
-
required:
|
|
206
|
+
placeholder: C(L)("endDate"),
|
|
207
|
+
"aria-label": C(L)("endDate"),
|
|
208
|
+
disabled: _.disabled,
|
|
209
|
+
required: _.required,
|
|
210
210
|
"aria-invalid": e.ariaInvalid,
|
|
211
211
|
"aria-describedby": e.ariaDescribedby,
|
|
212
212
|
onInput: t[3] ||= (e) => K.value = "",
|
|
213
213
|
onBlur: Q,
|
|
214
214
|
onKeydown: $
|
|
215
|
-
}, null, 40, pe), [[
|
|
216
|
-
|
|
215
|
+
}, null, 40, pe), [[T, G.value]]),
|
|
216
|
+
_.startName ? (b(), p("input", {
|
|
217
217
|
key: 0,
|
|
218
218
|
type: "hidden",
|
|
219
|
-
name:
|
|
220
|
-
value:
|
|
219
|
+
name: _.startName,
|
|
220
|
+
value: C(c)(F.value)
|
|
221
221
|
}, null, 8, me)) : f("", !0),
|
|
222
|
-
|
|
222
|
+
_.endName ? (b(), p("input", {
|
|
223
223
|
key: 1,
|
|
224
224
|
type: "hidden",
|
|
225
|
-
name:
|
|
226
|
-
value:
|
|
225
|
+
name: _.endName,
|
|
226
|
+
value: C(c)(I.value)
|
|
227
227
|
}, null, 8, j)) : f("", !0),
|
|
228
|
-
|
|
229
|
-
default:
|
|
228
|
+
g(C(le), y({ "as-child": "" }, ge), {
|
|
229
|
+
default: D(() => [m("button", {
|
|
230
230
|
type: "button",
|
|
231
231
|
class: "e-combo-btn",
|
|
232
|
-
"aria-label":
|
|
233
|
-
disabled:
|
|
234
|
-
}, [
|
|
232
|
+
"aria-label": C(L)("chooseDates"),
|
|
233
|
+
disabled: _.disabled
|
|
234
|
+
}, [g(i, { name: "calendar" })], 8, M)]),
|
|
235
235
|
_: 1
|
|
236
236
|
}, 16)
|
|
237
237
|
], 16, ue)]),
|
|
238
238
|
_: 2
|
|
239
|
-
}, 1024),
|
|
240
|
-
default:
|
|
239
|
+
}, 1024), g(C(se), { to: C(he) }, {
|
|
240
|
+
default: D(() => [g(C(A), {
|
|
241
241
|
class: "e-calpanel e-root",
|
|
242
|
-
"aria-label":
|
|
243
|
-
dir:
|
|
242
|
+
"aria-label": C(L)("chooseDates"),
|
|
243
|
+
dir: C(R).dir ?? void 0,
|
|
244
244
|
side: "bottom",
|
|
245
245
|
align: "start",
|
|
246
246
|
"side-offset": 6,
|
|
@@ -249,14 +249,14 @@ var ue = [
|
|
|
249
249
|
onCloseAutoFocus: Se,
|
|
250
250
|
onEscapeKeyDown: Ce
|
|
251
251
|
}, {
|
|
252
|
-
default:
|
|
252
|
+
default: D(() => [g(ne, {
|
|
253
253
|
ref_key: "calendar",
|
|
254
254
|
ref: J,
|
|
255
255
|
mode: "range",
|
|
256
256
|
start: q.value.start,
|
|
257
257
|
end: q.value.end,
|
|
258
|
-
min:
|
|
259
|
-
max:
|
|
258
|
+
min: _.min,
|
|
259
|
+
max: _.max,
|
|
260
260
|
footer: !1,
|
|
261
261
|
onRangeChange: ye
|
|
262
262
|
}, null, 8, [
|
|
@@ -264,12 +264,12 @@ var ue = [
|
|
|
264
264
|
"end",
|
|
265
265
|
"min",
|
|
266
266
|
"max"
|
|
267
|
-
]), m("div", N, [(b(!0), p(
|
|
267
|
+
]), m("div", N, [(b(!0), p(l, null, oe(_e.value, (e) => (b(), d(a, {
|
|
268
268
|
key: e.label,
|
|
269
269
|
variant: "outline",
|
|
270
270
|
onClick: (t) => be(e)
|
|
271
271
|
}, {
|
|
272
|
-
default:
|
|
272
|
+
default: D(() => [h(S(e.label), 1)]),
|
|
273
273
|
_: 2
|
|
274
274
|
}, 1032, ["onClick"]))), 128))])]),
|
|
275
275
|
_: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERangePicker.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","EField","_mergeProps","_unref","_withCtx","_createVNode","_createElementVNode","_withDirectives","_vModelText","_toDisplayString","_createElementBlock","_createCommentVNode","EIcon","ECalendar","_Fragment","_renderList","EButton","_createTextVNode","EIcon_default","EField_default","EButton_default","ECalendar_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","ERangePicker_vue_vue_type_script_setup_true_lang_default","\"start\"","\"startModifiers\"","\"end\"","\"endModifiers\"","\"open\"","\"openModifiers\"","__expose","props","__props","start","useModel","end","t","useMessages","config","useConfig","loc","useLocale","portal","usePortalTarget","attrs","useFieldAttrs","open","shown","computed","quiet","useQuietFocus","el","trigger","startText","ref","endText","typedError","draft","calendar","startInput","watch","isOpen","shownError","presets","today","startOfDay","addDays","setRange","r","outOfBounds","compareDays","d","commitText","a","b","bad","onRange","applyPreset","p","onOpenFocus","nextTick","onCloseFocus","onEscape","onKey","openBlock","createBlock","mergeProps","unref","withCtx","createVNode","PopoverRoot","_cache","$event","PopoverAnchor","createElementVNode","field","withDirectives","vModelText","toDisplayString","createElementBlock","isoDate","createCommentVNode","PopoverTrigger","PopoverPortal","PopoverContent","Fragment","renderList","createTextVNode"],"sources":["../../../src/components/RangePicker/ERangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from \"reka-ui\";\nimport EButton from \"../Button/EButton.vue\";\nimport ECalendar from \"../Calendar/ECalendar.vue\";\nimport type { CalendarRange } from \"../Calendar/ECalendar.vue\";\nimport EField from \"../Field/EField.vue\";\nimport EIcon from \"../Icon/EIcon.vue\";\nimport { addDays, compareDays, isoDate, startOfDay } from \"../Calendar/dates.js\";\nimport { useConfig, useMessages, usePortalTarget } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useQuietFocus } from \"../Select/quietFocus.js\";\nimport { useLocale } from \"../../composables/useLocale.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\nimport \"../Combobox/combo.css\";\nimport \"../DatePicker/picker.css\";\n\nexport interface RangePreset {\n /** The button text, such as \"Last 7 days\". */\n label: string;\n /** The span the button chooses. */\n get: () => { start: Date; end: Date };\n}\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the field. */\n label: string;\n /** Keep the label for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Help that stays under the field. */\n hint?: string;\n /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */\n error?: string;\n /** A word beside the label. */\n required?: boolean;\n /** A word beside the label. Flag whichever is rarer. */\n optional?: boolean;\n disabled?: boolean;\n /** The earliest date that can be chosen or typed. */\n min?: Date;\n /** The latest date that can be chosen or typed. */\n max?: Date;\n /** Submits the first date as `YYYY-MM-DD` with a form. */\n startName?: string;\n /** Submits the last date as `YYYY-MM-DD` with a form. */\n endName?: string;\n /** Buttons under the calendar that choose a span at once. Default: Last 7 days, Last 30 days, This month. */\n presets?: RangePreset[];\n /** The id of the start box; the label points at it. Generated when left out. */\n id?: string;\n}>();\n\nconst start = defineModel<Date | null>(\"start\", { default: null });\nconst end = defineModel<Date | null>(\"end\", { default: null });\n\nconst t = useMessages();\nconst config = useConfig();\nconst loc = useLocale();\nconst portal = usePortalTarget();\nconst attrs = useFieldAttrs();\n\nconst open = defineModel<boolean>(\"open\", { default: false });\nconst shown = computed(() => open.value && !props.disabled);\nconst quiet = useQuietFocus(shown, (el) => !!el.closest(\".e-calpanel, .e-combo\"));\nconst trigger = { onClick: quiet.intent, onKeydown: quiet.intent };\n\nconst startText = ref(loc.formatDate(start.value));\nconst endText = ref(loc.formatDate(end.value));\nconst typedError = ref(\"\");\nconst draft = ref<CalendarRange>({ start: start.value, end: end.value });\nconst calendar = ref<InstanceType<typeof ECalendar> | null>(null);\nconst startInput = ref<HTMLInputElement | null>(null);\n\nwatch([() => start.value?.getTime(), () => end.value?.getTime(), () => config.locale], () => {\n startText.value = loc.formatDate(start.value);\n endText.value = loc.formatDate(end.value);\n});\nwatch(open, (isOpen) => {\n if (isOpen) draft.value = { start: start.value, end: end.value };\n});\n\nconst shownError = computed(() => props.error || typedError.value);\n\nconst presets = computed<RangePreset[]>(() => {\n if (props.presets) return props.presets;\n const today = startOfDay(new Date());\n return [\n { label: t(\"last7\"), get: () => ({ start: addDays(today, -6), end: today }) },\n { label: t(\"last30\"), get: () => ({ start: addDays(today, -29), end: today }) },\n {\n label: t(\"thisMonth\"),\n get: () => ({ start: new Date(today.getFullYear(), today.getMonth(), 1, 12), end: today }),\n },\n ];\n});\n\nfunction setRange(r: { start: Date | null; end: Date | null }) {\n start.value = r.start;\n end.value = r.end;\n startText.value = loc.formatDate(r.start);\n endText.value = loc.formatDate(r.end);\n typedError.value = \"\";\n}\n\nconst outOfBounds = (d: Date) =>\n (!!props.min && compareDays(d, props.min) < 0) || (!!props.max && compareDays(d, props.max) > 0);\n\nfunction commitText() {\n const a = startText.value.trim() ? loc.parseDate(startText.value) : null;\n const b = endText.value.trim() ? loc.parseDate(endText.value) : null;\n if ((startText.value.trim() && !a) || (endText.value.trim() && !b)) {\n typedError.value = t(\"datesError\", { format: loc.dateFormatLabel() });\n return;\n }\n const bad = [a, b].find((d) => d && outOfBounds(d));\n if (bad) {\n typedError.value = t(\"dateBetween\", {\n min: loc.formatDate(props.min || bad),\n max: loc.formatDate(props.max || bad),\n });\n return;\n }\n if (a && b && compareDays(b, a) < 0) {\n typedError.value = t(\"endBeforeStart\");\n return;\n }\n setRange({ start: a, end: b });\n}\n\nfunction onRange(r: CalendarRange) {\n draft.value = r;\n if (r.start && r.end) {\n setRange(r);\n open.value = false;\n }\n}\nfunction applyPreset(p: RangePreset) {\n setRange(p.get());\n open.value = false;\n}\n\nfunction onOpenFocus(e: Event) {\n e.preventDefault();\n if (!quiet.personOpened()) return;\n void nextTick(() => calendar.value?.focusDay());\n}\nfunction onCloseFocus(e: Event) {\n if (!quiet.returnsFocus()) e.preventDefault();\n}\nfunction onEscape(e: KeyboardEvent) {\n if (calendar.value && calendar.value.view !== \"days\") e.preventDefault();\n}\nfunction onKey(e: KeyboardEvent) {\n if (e.key === \"Enter\") commitText();\n else if (e.key === \"ArrowDown\" && e.altKey && !props.disabled) {\n e.preventDefault();\n quiet.intent();\n open.value = true;\n }\n}\n\ndefineExpose({\n input: startInput,\n focus: () => startInput.value?.focus(),\n});\n</script>\n\n<template>\n <EField\n v-bind=\"attrs.wrapper()\"\n :id=\"id\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :hint=\"hint\"\n :error=\"shownError\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <PopoverRoot :open=\"shown\" @update:open=\"open = $event\">\n <PopoverAnchor as-child>\n <div\n v-bind=\"attrs.input()\"\n class=\"e-input-wrap e-combo e-rangefield\"\n role=\"group\"\n :aria-labelledby=\"`${field.id}-label`\"\n :data-invalid=\"shownError ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n >\n <input\n :id=\"field.id\"\n ref=\"startInput\"\n v-model=\"startText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('startDate')\"\n :aria-label=\"t('startDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <span class=\"e-range-sep\" aria-hidden=\"true\">{{ t(\"to\") }}</span>\n <input\n v-model=\"endText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('endDate')\"\n :aria-label=\"t('endDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <input v-if=\"startName\" type=\"hidden\" :name=\"startName\" :value=\"isoDate(start)\" />\n <input v-if=\"endName\" type=\"hidden\" :name=\"endName\" :value=\"isoDate(end)\" />\n <PopoverTrigger as-child v-bind=\"trigger\">\n <button type=\"button\" class=\"e-combo-btn\" :aria-label=\"t('chooseDates')\" :disabled=\"disabled\">\n <EIcon name=\"calendar\" />\n </button>\n </PopoverTrigger>\n </div>\n </PopoverAnchor>\n <PopoverPortal :to=\"portal\">\n <PopoverContent\n class=\"e-calpanel e-root\"\n :aria-label=\"t('chooseDates')\"\n :dir=\"config.dir ?? undefined\"\n side=\"bottom\"\n align=\"start\"\n :side-offset=\"6\"\n :collision-padding=\"8\"\n @open-auto-focus=\"onOpenFocus\"\n @close-auto-focus=\"onCloseFocus\"\n @escape-key-down=\"onEscape\"\n >\n <ECalendar\n ref=\"calendar\"\n mode=\"range\"\n :start=\"draft.start\"\n :end=\"draft.end\"\n :min=\"min\"\n :max=\"max\"\n :footer=\"false\"\n @range-change=\"onRange\"\n />\n <div class=\"e-cal-presets\">\n <EButton v-for=\"p in presets\" :key=\"p.label\" variant=\"outline\" @click=\"applyPreset(p)\">\n {{ p.label }}\n </EButton>\n </div>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.composites {\n .e-cal-presets {\n display: flex;\n flex-wrap: wrap;\n gap: var(--e-space-2);\n margin-top: var(--e-space-3);\n padding-top: var(--e-space-3);\n border-top: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-rangefield .e-input {\n flex: 1 1 5rem;\n }\n\n .e-range-sep {\n flex: none;\n font: 500 var(--e-text-sm) / 1 var(--e-font-sans);\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ERangePicker.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","EField","_mergeProps","_unref","_withCtx","_createVNode","_createElementVNode","_withDirectives","_vModelText","_toDisplayString","_createElementBlock","_createCommentVNode","EIcon","ECalendar","_Fragment","_renderList","EButton","_createTextVNode","EIcon_default","EButton_default","ECalendar_default","EField_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","ERangePicker_vue_vue_type_script_setup_true_lang_default","\"start\"","\"startModifiers\"","\"end\"","\"endModifiers\"","\"open\"","\"openModifiers\"","__expose","props","__props","start","useModel","end","t","useMessages","config","useConfig","loc","useLocale","portal","usePortalTarget","attrs","useFieldAttrs","open","shown","computed","quiet","useQuietFocus","el","trigger","startText","ref","endText","typedError","draft","calendar","startInput","watch","isOpen","shownError","presets","today","startOfDay","addDays","setRange","r","outOfBounds","compareDays","d","commitText","a","b","bad","onRange","applyPreset","p","onOpenFocus","nextTick","onCloseFocus","onEscape","onKey","openBlock","createBlock","mergeProps","unref","withCtx","createVNode","PopoverRoot","_cache","$event","PopoverAnchor","createElementVNode","field","withDirectives","vModelText","toDisplayString","createElementBlock","isoDate","createCommentVNode","PopoverTrigger","PopoverPortal","PopoverContent","Fragment","renderList","createTextVNode"],"sources":["../../../src/components/RangePicker/ERangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from \"reka-ui\";\nimport EButton from \"../Button/EButton.vue\";\nimport ECalendar from \"../Calendar/ECalendar.vue\";\nimport type { CalendarRange } from \"../Calendar/ECalendar.vue\";\nimport EField from \"../Field/EField.vue\";\nimport EIcon from \"../Icon/EIcon.vue\";\nimport { addDays, compareDays, isoDate, startOfDay } from \"../Calendar/dates.js\";\nimport { useConfig, useMessages, usePortalTarget } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useQuietFocus } from \"../Select/quietFocus.js\";\nimport { useLocale } from \"../../composables/useLocale.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\nimport \"../Combobox/combo.css\";\nimport \"../DatePicker/picker.css\";\n\nexport interface RangePreset {\n /** The button text, such as \"Last 7 days\". */\n label: string;\n /** The span the button chooses. */\n get: () => { start: Date; end: Date };\n}\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the field. It also names the group. */\n label: string;\n /** Keep the label for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Help that stays under the field. */\n hint?: string;\n /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */\n error?: string;\n /** The `required` attribute and a word beside the label. */\n required?: boolean;\n /** A word beside the label. Flag whichever is rarer. */\n optional?: boolean;\n /** Disables both boxes and the button. */\n disabled?: boolean;\n /** The earliest date that can be chosen or typed. */\n min?: Date;\n /** The latest date that can be chosen or typed. */\n max?: Date;\n /** Submits the first date as `YYYY-MM-DD` with a form, through a hidden input. */\n startName?: string;\n /** Submits the last date as `YYYY-MM-DD` with a form, through a hidden input. */\n endName?: string;\n /** Buttons under the calendar; one sets the span and closes. @default Last 7 days, Last 30 days, This month */\n presets?: RangePreset[];\n /** The id of the start box; the label points at it. @default generated */\n id?: string;\n}>();\n\n/** The first date of the span. */\nconst start = defineModel<Date | null>(\"start\", { default: null });\n/** The last date of the span. */\nconst end = defineModel<Date | null>(\"end\", { default: null });\n\nconst t = useMessages();\nconst config = useConfig();\nconst loc = useLocale();\nconst portal = usePortalTarget();\nconst attrs = useFieldAttrs();\n\n/** Whether the calendar is open. A disabled field never opens. */\nconst open = defineModel<boolean>(\"open\", { default: false });\nconst shown = computed(() => open.value && !props.disabled);\nconst quiet = useQuietFocus(shown, (el) => !!el.closest(\".e-calpanel, .e-combo\"));\nconst trigger = { onClick: quiet.intent, onKeydown: quiet.intent };\n\nconst startText = ref(loc.formatDate(start.value));\nconst endText = ref(loc.formatDate(end.value));\nconst typedError = ref(\"\");\nconst draft = ref<CalendarRange>({ start: start.value, end: end.value });\nconst calendar = ref<InstanceType<typeof ECalendar> | null>(null);\nconst startInput = ref<HTMLInputElement | null>(null);\n\nwatch([() => start.value?.getTime(), () => end.value?.getTime(), () => config.locale], () => {\n startText.value = loc.formatDate(start.value);\n endText.value = loc.formatDate(end.value);\n});\nwatch(open, (isOpen) => {\n if (isOpen) draft.value = { start: start.value, end: end.value };\n});\n\nconst shownError = computed(() => props.error || typedError.value);\n\nconst presets = computed<RangePreset[]>(() => {\n if (props.presets) return props.presets;\n const today = startOfDay(new Date());\n return [\n { label: t(\"last7\"), get: () => ({ start: addDays(today, -6), end: today }) },\n { label: t(\"last30\"), get: () => ({ start: addDays(today, -29), end: today }) },\n {\n label: t(\"thisMonth\"),\n get: () => ({ start: new Date(today.getFullYear(), today.getMonth(), 1, 12), end: today }),\n },\n ];\n});\n\nfunction setRange(r: { start: Date | null; end: Date | null }) {\n start.value = r.start;\n end.value = r.end;\n startText.value = loc.formatDate(r.start);\n endText.value = loc.formatDate(r.end);\n typedError.value = \"\";\n}\n\nconst outOfBounds = (d: Date) =>\n (!!props.min && compareDays(d, props.min) < 0) || (!!props.max && compareDays(d, props.max) > 0);\n\nfunction commitText() {\n const a = startText.value.trim() ? loc.parseDate(startText.value) : null;\n const b = endText.value.trim() ? loc.parseDate(endText.value) : null;\n if ((startText.value.trim() && !a) || (endText.value.trim() && !b)) {\n typedError.value = t(\"datesError\", { format: loc.dateFormatLabel() });\n return;\n }\n const bad = [a, b].find((d) => d && outOfBounds(d));\n if (bad) {\n typedError.value = t(\"dateBetween\", {\n min: loc.formatDate(props.min || bad),\n max: loc.formatDate(props.max || bad),\n });\n return;\n }\n if (a && b && compareDays(b, a) < 0) {\n typedError.value = t(\"endBeforeStart\");\n return;\n }\n setRange({ start: a, end: b });\n}\n\nfunction onRange(r: CalendarRange) {\n draft.value = r;\n if (r.start && r.end) {\n setRange(r);\n open.value = false;\n }\n}\nfunction applyPreset(p: RangePreset) {\n setRange(p.get());\n open.value = false;\n}\n\nfunction onOpenFocus(e: Event) {\n e.preventDefault();\n if (!quiet.personOpened()) return;\n void nextTick(() => calendar.value?.focusDay());\n}\nfunction onCloseFocus(e: Event) {\n if (!quiet.returnsFocus()) e.preventDefault();\n}\nfunction onEscape(e: KeyboardEvent) {\n if (calendar.value && calendar.value.view !== \"days\") e.preventDefault();\n}\nfunction onKey(e: KeyboardEvent) {\n if (e.key === \"Enter\") commitText();\n else if (e.key === \"ArrowDown\" && e.altKey && !props.disabled) {\n e.preventDefault();\n quiet.intent();\n open.value = true;\n }\n}\n\ndefineExpose({\n input: startInput,\n focus: () => startInput.value?.focus(),\n});\n</script>\n\n<template>\n <EField\n v-bind=\"attrs.wrapper()\"\n :id=\"id\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :hint=\"hint\"\n :error=\"shownError\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <PopoverRoot :open=\"shown\" @update:open=\"open = $event\">\n <PopoverAnchor as-child>\n <div\n v-bind=\"attrs.input()\"\n class=\"e-input-wrap e-combo e-rangefield\"\n role=\"group\"\n :aria-labelledby=\"`${field.id}-label`\"\n :data-invalid=\"shownError ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n >\n <input\n :id=\"field.id\"\n ref=\"startInput\"\n v-model=\"startText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('startDate')\"\n :aria-label=\"t('startDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <span class=\"e-range-sep\" aria-hidden=\"true\">{{ t(\"to\") }}</span>\n <input\n v-model=\"endText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('endDate')\"\n :aria-label=\"t('endDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <input v-if=\"startName\" type=\"hidden\" :name=\"startName\" :value=\"isoDate(start)\" />\n <input v-if=\"endName\" type=\"hidden\" :name=\"endName\" :value=\"isoDate(end)\" />\n <PopoverTrigger as-child v-bind=\"trigger\">\n <button type=\"button\" class=\"e-combo-btn\" :aria-label=\"t('chooseDates')\" :disabled=\"disabled\">\n <EIcon name=\"calendar\" />\n </button>\n </PopoverTrigger>\n </div>\n </PopoverAnchor>\n <PopoverPortal :to=\"portal\">\n <PopoverContent\n class=\"e-calpanel e-root\"\n :aria-label=\"t('chooseDates')\"\n :dir=\"config.dir ?? undefined\"\n side=\"bottom\"\n align=\"start\"\n :side-offset=\"6\"\n :collision-padding=\"8\"\n @open-auto-focus=\"onOpenFocus\"\n @close-auto-focus=\"onCloseFocus\"\n @escape-key-down=\"onEscape\"\n >\n <ECalendar\n ref=\"calendar\"\n mode=\"range\"\n :start=\"draft.start\"\n :end=\"draft.end\"\n :min=\"min\"\n :max=\"max\"\n :footer=\"false\"\n @range-change=\"onRange\"\n />\n <div class=\"e-cal-presets\">\n <EButton v-for=\"p in presets\" :key=\"p.label\" variant=\"outline\" @click=\"applyPreset(p)\">\n {{ p.label }}\n </EButton>\n </div>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.composites {\n .e-cal-presets {\n display: flex;\n flex-wrap: wrap;\n gap: var(--e-space-2);\n margin-top: var(--e-space-3);\n padding-top: var(--e-space-3);\n border-top: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-rangefield .e-input {\n flex: 1 1 5rem;\n }\n\n .e-range-sep {\n flex: none;\n font: 500 var(--e-text-sm) / 1 var(--e-font-sans);\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ESearchBar.js","names":["_sfc_main","ESearchBar_vue_vue_type_script_setup_true_lang_default","ESearchBar_default"],"sources":["../../../src/components/SearchBar/ESearchBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport EIcon from \"../Icon/EIcon.vue\";\nimport EButton from \"../Button/EButton.vue\";\nimport { ref } from \"vue\";\nimport { useMessages } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nwithDefaults(\n defineProps<{\n /**
|
|
1
|
+
{"version":3,"file":"ESearchBar.js","names":["_sfc_main","ESearchBar_vue_vue_type_script_setup_true_lang_default","ESearchBar_default"],"sources":["../../../src/components/SearchBar/ESearchBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport EIcon from \"../Icon/EIcon.vue\";\nimport EButton from \"../Button/EButton.vue\";\nimport { ref } from \"vue\";\nimport { useMessages } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nwithDefaults(\n defineProps<{\n /** Names the box and the search landmark; there is no visible label. @default \"Search\" */\n label?: string;\n /** Say what can be searched, briefly. @default \"Search\" */\n placeholder?: string;\n /** The text on the button. @default \"Search\" */\n action?: string;\n /** Leaves out the button, for a box that filters or searches as you type. Enter still submits. */\n hideAction?: boolean;\n /** The clear button, shown when there is text. On by default. */\n clearable?: boolean;\n /** The name submitted with a form. @default \"q\" */\n name?: string;\n /** Disables the box and button. Say why in an `ENotice`. */\n disabled?: boolean;\n }>(),\n { clearable: true },\n);\n\nconst emit = defineEmits<{\n /** The person pressed Enter or the button. */\n submit: [value: string];\n}>();\n\n/** The text. */\nconst model = defineModel<string>({ default: \"\" });\n\nconst t = useMessages();\nconst attrs = useFieldAttrs();\nconst box = ref<HTMLInputElement | null>(null);\n\nfunction clear() {\n model.value = \"\";\n box.value?.focus();\n}\n\ndefineExpose({\n input: box,\n focus: () => box.value?.focus(),\n});\n</script>\n\n<template>\n <form\n class=\"e-search\"\n v-bind=\"attrs.wrapper()\"\n role=\"search\"\n :aria-label=\"label || t('search')\"\n @submit.prevent=\"emit('submit', model)\"\n >\n <span class=\"e-search-lead\"><EIcon name=\"search\" /></span>\n <input\n ref=\"box\"\n v-bind=\"attrs.input()\"\n class=\"e-input\"\n :name=\"name || 'q'\"\n :aria-label=\"label || t('search')\"\n :placeholder=\"placeholder || t('search')\"\n :value=\"model\"\n :disabled=\"disabled\"\n @input=\"model = ($event.target as HTMLInputElement).value\"\n />\n <button\n v-if=\"clearable && model && !disabled\"\n type=\"button\"\n class=\"e-search-clear\"\n :aria-label=\"t('clear')\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <EIcon name=\"x\" />\n </button>\n <EButton v-if=\"!hideAction\" type=\"submit\" :disabled=\"disabled\">{{ action || t(\"search\") }}</EButton>\n </form>\n</template>\n\n<style>\n@layer e.controls {\n .e-search {\n display: flex;\n align-items: center;\n gap: var(--e-space-1);\n height: var(--e-control-height);\n padding: 0 var(--e-space-1) 0 var(--e-space-2);\n border: var(--e-stroke-edge) solid var(--e-border-strong);\n\n --e-bc: var(--e-border-strong);\n\n outline: var(--e-stroke-edge) solid var(--e-bc);\n outline-offset: calc(-1 * var(--e-stroke-edge));\n border-radius: var(--e-radius-md);\n background: var(--e-surface);\n box-shadow: var(--e-well);\n transition: border-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-search:hover {\n border-color: var(--e-ink);\n\n --e-bc: var(--e-ink);\n }\n\n .e-search .e-btn {\n position: relative;\n height: calc(var(--e-control-height) - 6px);\n padding: 0 var(--e-space-3);\n font-size: var(--e-text-md);\n }\n\n .e-search .e-btn::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n }\n\n .e-search-clear {\n display: inline-grid;\n place-items: center;\n position: relative;\n flex: none;\n width: calc(var(--e-control-height) - 9px);\n height: calc(var(--e-control-height) - 9px);\n padding: 0;\n border: 0;\n border-radius: var(--e-radius-sm);\n background: transparent;\n color: var(--e-ink);\n cursor: pointer;\n transition: background-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-search-clear::after {\n content: \"\";\n position: absolute;\n inset: -5px;\n }\n\n .e-search-clear:hover {\n background: var(--e-wash-hover);\n box-shadow: inset 0 0 0 var(--e-stroke-hair) var(--e-wash-ring);\n }\n\n .e-search-clear:active {\n background: var(--e-wash-press);\n box-shadow: inset 0 0 0 var(--e-stroke-edge) var(--e-ink);\n }\n\n .e-search-clear:focus-visible {\n outline: var(--e-stroke-focus) solid var(--e-focus-ring);\n outline-offset: calc(-1 * var(--e-stroke-focus));\n }\n\n .e-search-lead {\n display: grid;\n place-items: center;\n flex: none;\n width: var(--e-space-8);\n color: var(--e-muted);\n }\n\n .e-search .e-input {\n flex: 1;\n text-overflow: ellipsis;\n height: 100%;\n border: 0;\n outline: 0;\n background: transparent;\n box-shadow: none;\n font-size: var(--e-text-md);\n padding-inline: var(--e-space-2);\n }\n\n .e-search .e-input:hover,\n .e-search .e-input:focus {\n border: 0;\n background: transparent;\n }\n\n .e-search .e-input:focus-visible {\n outline: none;\n }\n\n .e-search:focus-within {\n border-color: var(--e-focus-field);\n\n --e-bc: var(--e-focus-field);\n\n outline: var(--e-stroke-focus) solid var(--e-focus-field);\n outline-offset: var(--e-focus-gap-field);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-search {\n transition: none;\n }\n }\n\n @media print {\n .e-search {\n display: none;\n }\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
type __VLS_Props = {
|
|
2
|
-
/**
|
|
2
|
+
/** Names the box and the search landmark; there is no visible label. @default "Search" */
|
|
3
3
|
label?: string;
|
|
4
|
-
/** Say what can be searched, briefly.
|
|
4
|
+
/** Say what can be searched, briefly. @default "Search" */
|
|
5
5
|
placeholder?: string;
|
|
6
|
-
/** The text on the button.
|
|
6
|
+
/** The text on the button. @default "Search" */
|
|
7
7
|
action?: string;
|
|
8
8
|
/** Leaves out the button, for a box that filters or searches as you type. Enter still submits. */
|
|
9
9
|
hideAction?: boolean;
|
|
10
10
|
/** The clear button, shown when there is text. On by default. */
|
|
11
11
|
clearable?: boolean;
|
|
12
|
-
/** The name submitted with a form.
|
|
12
|
+
/** The name submitted with a form. @default "q" */
|
|
13
13
|
name?: string;
|
|
14
|
-
/**
|
|
14
|
+
/** Disables the box and button. Say why in an `ENotice`. */
|
|
15
15
|
disabled?: boolean;
|
|
16
16
|
};
|
|
17
17
|
type __VLS_ModelProps = {
|
|
18
|
+
/** The text. */
|
|
18
19
|
modelValue?: string;
|
|
19
20
|
};
|
|
20
21
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
@@ -22,11 +23,11 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {
|
|
|
22
23
|
input: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
|
|
23
24
|
focus: () => void | undefined;
|
|
24
25
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
25
|
-
"update:modelValue": (value: string) => any;
|
|
26
26
|
submit: (value: string) => any;
|
|
27
|
+
"update:modelValue": (value: string) => any;
|
|
27
28
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
28
|
-
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
29
29
|
onSubmit?: ((value: string) => any) | undefined;
|
|
30
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
30
31
|
}>, {
|
|
31
32
|
clearable: boolean;
|
|
32
33
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|