@homecode/ui 5.1.9 → 5.1.11
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/dist/esm/index.js +109 -2
- package/dist/esm/node_modules/style-inject/dist/style-inject.es.js +28 -2
- package/dist/esm/src/components/AssistiveText/AssistiveText.js +10 -2
- package/dist/esm/src/components/AssistiveText/AssistiveText.styl.js +7 -2
- package/dist/esm/src/components/Autocomplete/Autocomplete.js +429 -2
- package/dist/esm/src/components/Autocomplete/Autocomplete.styl.js +7 -2
- package/dist/esm/src/components/Button/Button.helpers.js +12 -2
- package/dist/esm/src/components/Button/Button.js +38 -2
- package/dist/esm/src/components/Button/Button.styl.js +7 -2
- package/dist/esm/src/components/ButtonGroup/ButtonGroup.js +10 -2
- package/dist/esm/src/components/ButtonGroup/ButtonGroup.styl.js +7 -2
- package/dist/esm/src/components/Calendar/Calendar.helpers.js +65 -2
- package/dist/esm/src/components/Calendar/Calendar.js +136 -2
- package/dist/esm/src/components/Calendar/Calendar.styl.js +7 -2
- package/dist/esm/src/components/Card/Card.js +55 -2
- package/dist/esm/src/components/Card/Card.styl.js +7 -2
- package/dist/esm/src/components/Checkbox/Checkbox.js +19 -2
- package/dist/esm/src/components/Checkbox/Checkbox.styl.js +7 -2
- package/dist/esm/src/components/Chip/Chip.js +16 -2
- package/dist/esm/src/components/Chip/Chip.styl.js +7 -2
- package/dist/esm/src/components/Container/Container.js +13 -2
- package/dist/esm/src/components/Container/Container.styl.js +7 -2
- package/dist/esm/src/components/DatePicker/DatePicker.helpers.js +33 -2
- package/dist/esm/src/components/DatePicker/DatePicker.js +47 -2
- package/dist/esm/src/components/DatePicker/DatePicker.styl.js +7 -2
- package/dist/esm/src/components/DatePickerInput/DatePickerInput.js +44 -2
- package/dist/esm/src/components/DatePickerInput/DatePickerInput.styl.js +7 -2
- package/dist/esm/src/components/DateTime/DateTime.js +17 -2
- package/dist/esm/src/components/Dialogue/Dialogue.js +107 -2
- package/dist/esm/src/components/Dialogue/Dialogue.styl.js +7 -2
- package/dist/esm/src/components/Draggable/Draggable.js +147 -2
- package/dist/esm/src/components/Draggable/Draggable.styl.js +7 -2
- package/dist/esm/src/components/DropZone/DropZone.js +112 -2
- package/dist/esm/src/components/DropZone/DropZone.styl.js +7 -2
- package/dist/esm/src/components/Expand/Expand.js +24 -2
- package/dist/esm/src/components/Expand/Expand.styl.js +7 -2
- package/dist/esm/src/components/Flex/Flex.js +24 -2
- package/dist/esm/src/components/Flex/Flex.styl.js +7 -2
- package/dist/esm/src/components/Form/Form.helpers.js +42 -2
- package/dist/esm/src/components/Form/Form.js +272 -2
- package/dist/esm/src/components/Form/Form.styl.js +7 -2
- package/dist/esm/src/components/Form/Form.types.js +0 -1
- package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.js +8 -2
- package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.styl.js +7 -2
- package/dist/esm/src/components/Form/Validator.js +24 -6
- package/dist/esm/src/components/Gallery/Dots/Dots.js +9 -2
- package/dist/esm/src/components/Gallery/Dots/Dots.styl.js +7 -2
- package/dist/esm/src/components/Gallery/Gallery.js +222 -2
- package/dist/esm/src/components/Gallery/Gallery.styl.js +7 -2
- package/dist/esm/src/components/Heading/Heading.js +37 -2
- package/dist/esm/src/components/Heading/Heading.styl.js +7 -2
- package/dist/esm/src/components/Icon/Icon.js +21 -2
- package/dist/esm/src/components/Icon/Icon.styl.js +7 -2
- package/dist/esm/src/components/Icon/icons/apple.svg.js +16 -2
- package/dist/esm/src/components/Icon/icons/arrowDown.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/arrowLeft.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/arrowRight.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/arrowUp.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/attach.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/avatar.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/bookmark.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/bookmarkAdd.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/brain.svg.js +22 -2
- package/dist/esm/src/components/Icon/icons/brokenImage.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/call.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/camera.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/chat.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/check.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/checkers.svg.js +18 -2
- package/dist/esm/src/components/Icon/icons/chevronDown.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/chevronLeft.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/chevronRight.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/chevronUp.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/clearAll.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/close.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/colors.svg.js +60 -2
- package/dist/esm/src/components/Icon/icons/compass.svg.js +56 -2
- package/dist/esm/src/components/Icon/icons/copy.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/cubes.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/delete.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/discord.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/draft.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/dragHandlerHorizontal.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/dragHandlerVertical.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/edit.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/email.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/externalLink.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/eye.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/flyover.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/folder.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/folderOpen.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/forward.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/fullscreen.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/fullscreenExit.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/function.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/gear.svg.js +21 -2
- package/dist/esm/src/components/Icon/icons/geolocation.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/github.svg.js +18 -2
- package/dist/esm/src/components/Icon/icons/globe.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/google.svg.js +42 -2
- package/dist/esm/src/components/Icon/icons/group.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/history.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/home.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/image.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/index.js +95 -2
- package/dist/esm/src/components/Icon/icons/instagram.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/layers.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/link.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/linkedin.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/loader.svg.js +45 -2
- package/dist/esm/src/components/Icon/icons/lock.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/lockOpen.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/map.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/menu.svg.js +18 -2
- package/dist/esm/src/components/Icon/icons/mic.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/micMuted.svg.js +27 -2
- package/dist/esm/src/components/Icon/icons/minus.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/moreHorizontal.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/moreVertical.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/output.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/pause.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/play.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/plus.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/redo.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/requiredStar.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/rewind.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/rocket.svg.js +22 -2
- package/dist/esm/src/components/Icon/icons/route.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/routeFrom.svg.js +31 -2
- package/dist/esm/src/components/Icon/icons/routeTo.svg.js +31 -2
- package/dist/esm/src/components/Icon/icons/save.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/search.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/send.svg.js +16 -2
- package/dist/esm/src/components/Icon/icons/settings.svg.js +52 -2
- package/dist/esm/src/components/Icon/icons/shoppingBag.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/smile.svg.js +30 -2
- package/dist/esm/src/components/Icon/icons/soundWave.svg.js +66 -2
- package/dist/esm/src/components/Icon/icons/sparks.svg.js +21 -2
- package/dist/esm/src/components/Icon/icons/star.svg.js +18 -2
- package/dist/esm/src/components/Icon/icons/stop.svg.js +22 -2
- package/dist/esm/src/components/Icon/icons/stopInCircle.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/syncArrows.svg.js +22 -2
- package/dist/esm/src/components/Icon/icons/table.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/telegram.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/tool.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/trafficLight.svg.js +49 -2
- package/dist/esm/src/components/Icon/icons/undo.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/usage.svg.js +25 -2
- package/dist/esm/src/components/Icon/icons/youtube.svg.js +20 -2
- package/dist/esm/src/components/Input/Input.js +281 -2
- package/dist/esm/src/components/Input/Input.styl.js +7 -2
- package/dist/esm/src/components/InputFile/InputFile.js +314 -2
- package/dist/esm/src/components/InputFile/InputFile.styl.js +7 -2
- package/dist/esm/src/components/InputFile/InputFile.types.js +0 -1
- package/dist/esm/src/components/InputFile/Item/Item.js +18 -2
- package/dist/esm/src/components/InputFile/Item/Item.styl.js +7 -2
- package/dist/esm/src/components/Label/Label.constants.json.js +8 -2
- package/dist/esm/src/components/Label/Label.helpers.js +35 -2
- package/dist/esm/src/components/Label/Label.js +58 -2
- package/dist/esm/src/components/Label/Label.styl.js +7 -2
- package/dist/esm/src/components/LangSelector/LangSelector.js +10 -2
- package/dist/esm/src/components/Lazy/Lazy.js +74 -2
- package/dist/esm/src/components/LightBox/LightBox.js +28 -2
- package/dist/esm/src/components/LightBox/LightBox.styl.js +7 -2
- package/dist/esm/src/components/Menu/Menu.js +27 -2
- package/dist/esm/src/components/Menu/Menu.styl.js +7 -2
- package/dist/esm/src/components/Notifications/Notifications.constants.json.js +6 -2
- package/dist/esm/src/components/Notifications/Notifications.js +67 -2
- package/dist/esm/src/components/Notifications/Notifications.styl.js +7 -2
- package/dist/esm/src/components/Notifications/store.js +72 -2
- package/dist/esm/src/components/Paranja/Paranja.js +14 -2
- package/dist/esm/src/components/Paranja/Paranja.styl.js +7 -2
- package/dist/esm/src/components/Popup/Popup.helpers.js +130 -2
- package/dist/esm/src/components/Popup/Popup.js +484 -2
- package/dist/esm/src/components/Popup/Popup.styl.js +7 -2
- package/dist/esm/src/components/PopupMenu/PopupMenu.js +15 -2
- package/dist/esm/src/components/PopupMenu/PopupMenu.styl.js +7 -2
- package/dist/esm/src/components/Portal/Portal.js +33 -2
- package/dist/esm/src/components/Progress/Progress.helpers.js +5 -2
- package/dist/esm/src/components/Progress/Progress.js +12 -2
- package/dist/esm/src/components/Progress/Progress.styl.js +7 -2
- package/dist/esm/src/components/ProgressCircular/ProgressCircular.js +23 -2
- package/dist/esm/src/components/ProgressCircular/ProgressCircular.styl.js +7 -2
- package/dist/esm/src/components/RadioButton/RadioButton.js +33 -2
- package/dist/esm/src/components/RadioButton/RadioButton.styl.js +7 -2
- package/dist/esm/src/components/RadioGroup/RadioGroup.js +31 -2
- package/dist/esm/src/components/RadioGroup/RadioGroup.styl.js +7 -2
- package/dist/esm/src/components/RadioGroup/RadioGroupContext.js +8 -2
- package/dist/esm/src/components/RequiredStar/RequiredStar.js +12 -2
- package/dist/esm/src/components/RequiredStar/RequiredStar.styl.js +7 -2
- package/dist/esm/src/components/Router/Link/Link.js +62 -2
- package/dist/esm/src/components/Router/Link/Link.styl.js +7 -2
- package/dist/esm/src/components/Router/Redirect.js +12 -2
- package/dist/esm/src/components/Router/Route.js +6 -2
- package/dist/esm/src/components/Router/Router.helpers.js +33 -2
- package/dist/esm/src/components/Router/Router.js +72 -2
- package/dist/esm/src/components/Router/context.js +5 -2
- package/dist/esm/src/components/Router/store.js +75 -2
- package/dist/esm/src/components/Scroll/Scroll.js +308 -2
- package/dist/esm/src/components/Scroll/Scroll.styl.js +7 -2
- package/dist/esm/src/components/Select/Select.helpers.js +37 -2
- package/dist/esm/src/components/Select/Select.js +601 -2
- package/dist/esm/src/components/Select/Select.styl.js +7 -2
- package/dist/esm/src/components/Select/Select2.js +334 -2
- package/dist/esm/src/components/Shimmer/Shimmer.js +7 -2
- package/dist/esm/src/components/Shimmer/Shimmer.styl.js +7 -2
- package/dist/esm/src/components/Spinner/Spinner.js +11 -2
- package/dist/esm/src/components/Spinner/Spinner.styl.js +7 -2
- package/dist/esm/src/components/Spinner/spinner.svg.js +24 -2
- package/dist/esm/src/components/Table/Table.js +24 -2
- package/dist/esm/src/components/Table/Table.styl.js +7 -2
- package/dist/esm/src/components/Tabs/Tabs.js +48 -2
- package/dist/esm/src/components/Tabs/Tabs.styl.js +7 -2
- package/dist/esm/src/components/Text/Text.js +44 -2
- package/dist/esm/src/components/Text/Text.styl.js +7 -2
- package/dist/esm/src/components/TextShimmer/TextShimmer.js +29 -0
- package/dist/esm/src/components/TextShimmer/TextShimmer.styl.js +7 -0
- package/dist/esm/src/components/Theme/Theme.defaults.js +53 -2
- package/dist/esm/src/components/Theme/Theme.helpers.js +67 -2
- package/dist/esm/src/components/Theme/Theme.js +15 -2
- package/dist/esm/src/components/Theme/ThemeProvider.js +50 -2
- package/dist/esm/src/components/Toggle/Toggle.js +18 -2
- package/dist/esm/src/components/Toggle/Toggle.styl.js +7 -2
- package/dist/esm/src/components/Tooltip/Tooltip.js +86 -2
- package/dist/esm/src/components/Tooltip/Tooltip.styl.js +7 -2
- package/dist/esm/src/components/VH/VH.js +33 -2
- package/dist/esm/src/components/Virtualized/List/List.js +136 -2
- package/dist/esm/src/components/Virtualized/List/List.styl.js +7 -2
- package/dist/esm/src/components/Virtualized/List/ListScroll.js +22 -2
- package/dist/esm/src/components/Virtualized/List/ListScroll.styl.js +7 -2
- package/dist/esm/src/components/Virtualized/Virtualized.helpers.js +14 -2
- package/dist/esm/src/components/Virtualized/Virtualized.js +218 -2
- package/dist/esm/src/components/Virtualized/Virtualized.styl.js +7 -2
- package/dist/esm/src/components/Virtualized/Virtualized.types.js +0 -1
- package/dist/esm/src/hooks/useDebounce.js +11 -2
- package/dist/esm/src/hooks/useEvent.js +27 -2
- package/dist/esm/src/hooks/useIsMounted.js +11 -2
- package/dist/esm/src/hooks/useListKeyboardControl.js +50 -2
- package/dist/esm/src/hooks/useResizeObserver.js +15 -2
- package/dist/esm/src/hooks/useThrottle.js +31 -2
- package/dist/esm/src/hooks/useToggleState.js +35 -2
- package/dist/esm/src/services/i18n.js +112 -2
- package/dist/esm/src/tools/array.js +60 -2
- package/dist/esm/src/tools/config.js +9 -2
- package/dist/esm/src/tools/date.js +11 -2
- package/dist/esm/src/tools/debounce.js +11 -2
- package/dist/esm/src/tools/dom.js +57 -2
- package/dist/esm/src/tools/env.js +3 -2
- package/dist/esm/src/tools/file.js +11 -2
- package/dist/esm/src/tools/localStorage.js +31 -2
- package/dist/esm/src/tools/number.js +27 -2
- package/dist/esm/src/tools/object.js +5 -2
- package/dist/esm/src/tools/queryParams.js +40 -2
- package/dist/esm/src/tools/rangeMap.js +3 -2
- package/dist/esm/src/tools/resizeObserver.js +68 -2
- package/dist/esm/src/tools/scroll.js +41 -2
- package/dist/esm/src/tools/string.js +7 -2
- package/dist/esm/src/tools/throttle.js +30 -2
- package/dist/esm/src/tools/uid.js +7 -2
- package/dist/esm/types/src/components/Notifications/Notifications.types.d.ts +4 -2
- package/dist/esm/types/src/components/TextShimmer/TextShimmer.d.ts +5 -0
- package/dist/esm/types/src/components/TextShimmer/TextShimmer.types.d.ts +9 -0
- package/dist/esm/types/src/components/TextShimmer/index.d.ts +2 -0
- package/dist/esm/types/src/components/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
- package/dist/esm/src/components/AssistiveText/AssistiveText.js.map +0 -1
- package/dist/esm/src/components/AssistiveText/AssistiveText.styl.js.map +0 -1
- package/dist/esm/src/components/Autocomplete/Autocomplete.js.map +0 -1
- package/dist/esm/src/components/Autocomplete/Autocomplete.styl.js.map +0 -1
- package/dist/esm/src/components/Button/Button.helpers.js.map +0 -1
- package/dist/esm/src/components/Button/Button.js.map +0 -1
- package/dist/esm/src/components/Button/Button.styl.js.map +0 -1
- package/dist/esm/src/components/ButtonGroup/ButtonGroup.js.map +0 -1
- package/dist/esm/src/components/ButtonGroup/ButtonGroup.styl.js.map +0 -1
- package/dist/esm/src/components/Calendar/Calendar.helpers.js.map +0 -1
- package/dist/esm/src/components/Calendar/Calendar.js.map +0 -1
- package/dist/esm/src/components/Calendar/Calendar.styl.js.map +0 -1
- package/dist/esm/src/components/Card/Card.js.map +0 -1
- package/dist/esm/src/components/Card/Card.styl.js.map +0 -1
- package/dist/esm/src/components/Checkbox/Checkbox.js.map +0 -1
- package/dist/esm/src/components/Checkbox/Checkbox.styl.js.map +0 -1
- package/dist/esm/src/components/Chip/Chip.js.map +0 -1
- package/dist/esm/src/components/Chip/Chip.styl.js.map +0 -1
- package/dist/esm/src/components/Container/Container.js.map +0 -1
- package/dist/esm/src/components/Container/Container.styl.js.map +0 -1
- package/dist/esm/src/components/DatePicker/DatePicker.helpers.js.map +0 -1
- package/dist/esm/src/components/DatePicker/DatePicker.js.map +0 -1
- package/dist/esm/src/components/DatePicker/DatePicker.styl.js.map +0 -1
- package/dist/esm/src/components/DatePickerInput/DatePickerInput.js.map +0 -1
- package/dist/esm/src/components/DatePickerInput/DatePickerInput.styl.js.map +0 -1
- package/dist/esm/src/components/DateTime/DateTime.js.map +0 -1
- package/dist/esm/src/components/Dialogue/Dialogue.js.map +0 -1
- package/dist/esm/src/components/Dialogue/Dialogue.styl.js.map +0 -1
- package/dist/esm/src/components/Draggable/Draggable.js.map +0 -1
- package/dist/esm/src/components/Draggable/Draggable.styl.js.map +0 -1
- package/dist/esm/src/components/DropZone/DropZone.js.map +0 -1
- package/dist/esm/src/components/DropZone/DropZone.styl.js.map +0 -1
- package/dist/esm/src/components/Expand/Expand.js.map +0 -1
- package/dist/esm/src/components/Expand/Expand.styl.js.map +0 -1
- package/dist/esm/src/components/Flex/Flex.js.map +0 -1
- package/dist/esm/src/components/Flex/Flex.styl.js.map +0 -1
- package/dist/esm/src/components/Form/Form.helpers.js.map +0 -1
- package/dist/esm/src/components/Form/Form.js.map +0 -1
- package/dist/esm/src/components/Form/Form.styl.js.map +0 -1
- package/dist/esm/src/components/Form/Form.types.js.map +0 -1
- package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.js.map +0 -1
- package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.styl.js.map +0 -1
- package/dist/esm/src/components/Form/Validator.js.map +0 -1
- package/dist/esm/src/components/Gallery/Dots/Dots.js.map +0 -1
- package/dist/esm/src/components/Gallery/Dots/Dots.styl.js.map +0 -1
- package/dist/esm/src/components/Gallery/Gallery.js.map +0 -1
- package/dist/esm/src/components/Gallery/Gallery.styl.js.map +0 -1
- package/dist/esm/src/components/Heading/Heading.js.map +0 -1
- package/dist/esm/src/components/Heading/Heading.styl.js.map +0 -1
- package/dist/esm/src/components/Icon/Icon.js.map +0 -1
- package/dist/esm/src/components/Icon/Icon.styl.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/apple.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/arrowDown.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/arrowLeft.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/arrowRight.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/arrowUp.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/attach.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/avatar.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/bookmark.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/bookmarkAdd.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/brain.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/brokenImage.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/call.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/camera.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chat.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/check.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/checkers.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chevronDown.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chevronLeft.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chevronRight.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chevronUp.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/clearAll.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/close.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/colors.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/compass.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/copy.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/cubes.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/delete.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/discord.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/draft.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/dragHandlerHorizontal.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/dragHandlerVertical.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/edit.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/email.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/externalLink.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/eye.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/flyover.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/folder.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/folderOpen.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/forward.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/fullscreen.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/fullscreenExit.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/function.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/gear.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/geolocation.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/github.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/globe.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/google.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/group.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/history.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/home.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/image.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/index.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/instagram.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/layers.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/link.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/linkedin.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/loader.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/lock.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/lockOpen.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/map.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/menu.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/mic.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/micMuted.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/minus.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/moreHorizontal.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/moreVertical.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/output.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/pause.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/play.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/plus.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/redo.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/requiredStar.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/rewind.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/rocket.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/route.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/routeFrom.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/routeTo.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/save.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/search.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/send.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/settings.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/shoppingBag.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/smile.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/soundWave.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/sparks.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/star.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/stop.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/stopInCircle.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/syncArrows.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/table.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/telegram.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/tool.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/trafficLight.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/undo.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/usage.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/youtube.svg.js.map +0 -1
- package/dist/esm/src/components/Input/Input.js.map +0 -1
- package/dist/esm/src/components/Input/Input.styl.js.map +0 -1
- package/dist/esm/src/components/InputFile/InputFile.js.map +0 -1
- package/dist/esm/src/components/InputFile/InputFile.styl.js.map +0 -1
- package/dist/esm/src/components/InputFile/InputFile.types.js.map +0 -1
- package/dist/esm/src/components/InputFile/Item/Item.js.map +0 -1
- package/dist/esm/src/components/InputFile/Item/Item.styl.js.map +0 -1
- package/dist/esm/src/components/Label/Label.constants.json.js.map +0 -1
- package/dist/esm/src/components/Label/Label.helpers.js.map +0 -1
- package/dist/esm/src/components/Label/Label.js.map +0 -1
- package/dist/esm/src/components/Label/Label.styl.js.map +0 -1
- package/dist/esm/src/components/LangSelector/LangSelector.js.map +0 -1
- package/dist/esm/src/components/Lazy/Lazy.js.map +0 -1
- package/dist/esm/src/components/LightBox/LightBox.js.map +0 -1
- package/dist/esm/src/components/LightBox/LightBox.styl.js.map +0 -1
- package/dist/esm/src/components/Menu/Menu.js.map +0 -1
- package/dist/esm/src/components/Menu/Menu.styl.js.map +0 -1
- package/dist/esm/src/components/Notifications/Notifications.constants.json.js.map +0 -1
- package/dist/esm/src/components/Notifications/Notifications.js.map +0 -1
- package/dist/esm/src/components/Notifications/Notifications.styl.js.map +0 -1
- package/dist/esm/src/components/Notifications/store.js.map +0 -1
- package/dist/esm/src/components/Paranja/Paranja.js.map +0 -1
- package/dist/esm/src/components/Paranja/Paranja.styl.js.map +0 -1
- package/dist/esm/src/components/Popup/Popup.helpers.js.map +0 -1
- package/dist/esm/src/components/Popup/Popup.js.map +0 -1
- package/dist/esm/src/components/Popup/Popup.styl.js.map +0 -1
- package/dist/esm/src/components/PopupMenu/PopupMenu.js.map +0 -1
- package/dist/esm/src/components/PopupMenu/PopupMenu.styl.js.map +0 -1
- package/dist/esm/src/components/Portal/Portal.js.map +0 -1
- package/dist/esm/src/components/Progress/Progress.helpers.js.map +0 -1
- package/dist/esm/src/components/Progress/Progress.js.map +0 -1
- package/dist/esm/src/components/Progress/Progress.styl.js.map +0 -1
- package/dist/esm/src/components/ProgressCircular/ProgressCircular.js.map +0 -1
- package/dist/esm/src/components/ProgressCircular/ProgressCircular.styl.js.map +0 -1
- package/dist/esm/src/components/RadioButton/RadioButton.js.map +0 -1
- package/dist/esm/src/components/RadioButton/RadioButton.styl.js.map +0 -1
- package/dist/esm/src/components/RadioGroup/RadioGroup.js.map +0 -1
- package/dist/esm/src/components/RadioGroup/RadioGroup.styl.js.map +0 -1
- package/dist/esm/src/components/RadioGroup/RadioGroupContext.js.map +0 -1
- package/dist/esm/src/components/RequiredStar/RequiredStar.js.map +0 -1
- package/dist/esm/src/components/RequiredStar/RequiredStar.styl.js.map +0 -1
- package/dist/esm/src/components/Router/Link/Link.js.map +0 -1
- package/dist/esm/src/components/Router/Link/Link.styl.js.map +0 -1
- package/dist/esm/src/components/Router/Redirect.js.map +0 -1
- package/dist/esm/src/components/Router/Route.js.map +0 -1
- package/dist/esm/src/components/Router/Router.helpers.js.map +0 -1
- package/dist/esm/src/components/Router/Router.js.map +0 -1
- package/dist/esm/src/components/Router/context.js.map +0 -1
- package/dist/esm/src/components/Router/store.js.map +0 -1
- package/dist/esm/src/components/Scroll/Scroll.js.map +0 -1
- package/dist/esm/src/components/Scroll/Scroll.styl.js.map +0 -1
- package/dist/esm/src/components/Select/Select.helpers.js.map +0 -1
- package/dist/esm/src/components/Select/Select.js.map +0 -1
- package/dist/esm/src/components/Select/Select.styl.js.map +0 -1
- package/dist/esm/src/components/Select/Select2.js.map +0 -1
- package/dist/esm/src/components/Shimmer/Shimmer.js.map +0 -1
- package/dist/esm/src/components/Shimmer/Shimmer.styl.js.map +0 -1
- package/dist/esm/src/components/Spinner/Spinner.js.map +0 -1
- package/dist/esm/src/components/Spinner/Spinner.styl.js.map +0 -1
- package/dist/esm/src/components/Spinner/spinner.svg.js.map +0 -1
- package/dist/esm/src/components/Table/Table.js.map +0 -1
- package/dist/esm/src/components/Table/Table.styl.js.map +0 -1
- package/dist/esm/src/components/Tabs/Tabs.js.map +0 -1
- package/dist/esm/src/components/Tabs/Tabs.styl.js.map +0 -1
- package/dist/esm/src/components/Text/Text.js.map +0 -1
- package/dist/esm/src/components/Text/Text.styl.js.map +0 -1
- package/dist/esm/src/components/Theme/Theme.defaults.js.map +0 -1
- package/dist/esm/src/components/Theme/Theme.helpers.js.map +0 -1
- package/dist/esm/src/components/Theme/Theme.js.map +0 -1
- package/dist/esm/src/components/Theme/ThemeProvider.js.map +0 -1
- package/dist/esm/src/components/Toggle/Toggle.js.map +0 -1
- package/dist/esm/src/components/Toggle/Toggle.styl.js.map +0 -1
- package/dist/esm/src/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/esm/src/components/Tooltip/Tooltip.styl.js.map +0 -1
- package/dist/esm/src/components/VH/VH.js.map +0 -1
- package/dist/esm/src/components/Virtualized/List/List.js.map +0 -1
- package/dist/esm/src/components/Virtualized/List/List.styl.js.map +0 -1
- package/dist/esm/src/components/Virtualized/List/ListScroll.js.map +0 -1
- package/dist/esm/src/components/Virtualized/List/ListScroll.styl.js.map +0 -1
- package/dist/esm/src/components/Virtualized/Virtualized.helpers.js.map +0 -1
- package/dist/esm/src/components/Virtualized/Virtualized.js.map +0 -1
- package/dist/esm/src/components/Virtualized/Virtualized.styl.js.map +0 -1
- package/dist/esm/src/components/Virtualized/Virtualized.types.js.map +0 -1
- package/dist/esm/src/hooks/useDebounce.js.map +0 -1
- package/dist/esm/src/hooks/useEvent.js.map +0 -1
- package/dist/esm/src/hooks/useIsMounted.js.map +0 -1
- package/dist/esm/src/hooks/useListKeyboardControl.js.map +0 -1
- package/dist/esm/src/hooks/useResizeObserver.js.map +0 -1
- package/dist/esm/src/hooks/useThrottle.js.map +0 -1
- package/dist/esm/src/hooks/useToggleState.js.map +0 -1
- package/dist/esm/src/services/i18n.js.map +0 -1
- package/dist/esm/src/tools/array.js.map +0 -1
- package/dist/esm/src/tools/config.js.map +0 -1
- package/dist/esm/src/tools/date.js.map +0 -1
- package/dist/esm/src/tools/debounce.js.map +0 -1
- package/dist/esm/src/tools/dom.js.map +0 -1
- package/dist/esm/src/tools/env.js.map +0 -1
- package/dist/esm/src/tools/file.js.map +0 -1
- package/dist/esm/src/tools/localStorage.js.map +0 -1
- package/dist/esm/src/tools/number.js.map +0 -1
- package/dist/esm/src/tools/object.js.map +0 -1
- package/dist/esm/src/tools/queryParams.js.map +0 -1
- package/dist/esm/src/tools/rangeMap.js.map +0 -1
- package/dist/esm/src/tools/resizeObserver.js.map +0 -1
- package/dist/esm/src/tools/scroll.js.map +0 -1
- package/dist/esm/src/tools/string.js.map +0 -1
- package/dist/esm/src/tools/throttle.js.map +0 -1
- package/dist/esm/src/tools/uid.js.map +0 -1
|
@@ -1,2 +1,33 @@
|
|
|
1
|
-
function dateToString(
|
|
2
|
-
|
|
1
|
+
function dateToString(date) {
|
|
2
|
+
const month = String(date.month).padStart(2, '0');
|
|
3
|
+
const day = String(date.day).padStart(2, '0');
|
|
4
|
+
return `${date.year}-${month}-${day}`;
|
|
5
|
+
}
|
|
6
|
+
function stringToDate(dateString) {
|
|
7
|
+
const [year, month, day] = dateString.split('-');
|
|
8
|
+
return {
|
|
9
|
+
year: Number(year),
|
|
10
|
+
month: Number(month),
|
|
11
|
+
day: Number(day),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function isDateEqual(date1, date2) {
|
|
15
|
+
return (date1.year === date2.year &&
|
|
16
|
+
date1.month === date2.month &&
|
|
17
|
+
date1.day === date2.day);
|
|
18
|
+
}
|
|
19
|
+
function isDateBefore(date1, date2) {
|
|
20
|
+
return (date1.year < date2.year ||
|
|
21
|
+
(date1.year === date2.year && date1.month < date2.month) ||
|
|
22
|
+
(date1.year === date2.year &&
|
|
23
|
+
date1.month === date2.month &&
|
|
24
|
+
date1.day < date2.day));
|
|
25
|
+
}
|
|
26
|
+
function isDateAfter(date1, date2) {
|
|
27
|
+
return isDateBefore(date2, date1);
|
|
28
|
+
}
|
|
29
|
+
function isDateBetween(date, startDate, endDate) {
|
|
30
|
+
return isDateAfter(date, startDate) && isDateBefore(date, endDate);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { dateToString, isDateAfter, isDateBefore, isDateBetween, isDateEqual, stringToDate };
|
|
@@ -1,2 +1,47 @@
|
|
|
1
|
-
import{jsxs,jsx}from
|
|
2
|
-
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useCallback, createElement } from 'react';
|
|
3
|
+
import cn from 'classnames';
|
|
4
|
+
import { Calendar } from '../Calendar/Calendar.js';
|
|
5
|
+
import { Button } from '../Button/Button.js';
|
|
6
|
+
import { dateToString, isDateAfter, stringToDate, isDateBetween, isDateEqual } from './DatePicker.helpers.js';
|
|
7
|
+
import S from './DatePicker.styl.js';
|
|
8
|
+
|
|
9
|
+
function DatePicker(props) {
|
|
10
|
+
const { value, onChange, size, doubleCalendar, calendarProps = {} } = props;
|
|
11
|
+
const isRange = Array.isArray(value);
|
|
12
|
+
const [isPicking, setIsPicking] = useState(false);
|
|
13
|
+
const onFirstDateChange = useCallback((val) => {
|
|
14
|
+
const valStr = dateToString(val);
|
|
15
|
+
onChange(isRange ? [valStr, value[1]] : valStr);
|
|
16
|
+
}, [value, onChange, isRange]);
|
|
17
|
+
const onPointerDown = () => setIsPicking(true);
|
|
18
|
+
const onPointerUp = () => setIsPicking(false);
|
|
19
|
+
const renderDay = useCallback((val, { className, ...props }) => {
|
|
20
|
+
const { day, year, month } = val;
|
|
21
|
+
const valStr = dateToString(val);
|
|
22
|
+
if (isRange && isPicking) {
|
|
23
|
+
props.onPointerOver = () => {
|
|
24
|
+
const newVal = isDateAfter(stringToDate(value[0]), val)
|
|
25
|
+
? [valStr, value[0]]
|
|
26
|
+
: [value[0], valStr];
|
|
27
|
+
onChange(newVal);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const classes = [className, S.day];
|
|
31
|
+
if (isRange) {
|
|
32
|
+
const from = stringToDate(value[0]);
|
|
33
|
+
const to = stringToDate(value[1]);
|
|
34
|
+
if (isDateBetween(val, from, to))
|
|
35
|
+
classes.push(S.between);
|
|
36
|
+
if (isDateEqual(val, from))
|
|
37
|
+
classes.push(S.start);
|
|
38
|
+
if (isDateEqual(val, to))
|
|
39
|
+
classes.push(S.end);
|
|
40
|
+
}
|
|
41
|
+
return (createElement(Button, { ...props, variant: "clear", className: cn(classes), size: size, key: `${year}-${month}-${day}` }, day));
|
|
42
|
+
}, [size, isPicking, isRange, value, onChange]);
|
|
43
|
+
calendarProps.className = cn(calendarProps.className, S.calendar);
|
|
44
|
+
return (jsxs("div", { className: cn(S.root, doubleCalendar && S.doubleCalendar, props.className), onPointerDown: onPointerDown, onPointerUp: onPointerUp, children: [jsx(Calendar, { size: size, hideOtherMonthDays: isRange, ...calendarProps, renderDay: renderDay, value: stringToDate(isRange ? value[0] : value), onDayPointerDown: onFirstDateChange, onDayPointerUp: undefined }), isRange && doubleCalendar && (jsx(Calendar, { size: size, hideOtherMonthDays: isRange, ...calendarProps, renderDay: renderDay, value: stringToDate(value[1]), onDayPointerDown: val => onChange([value[0], dateToString(val)]), onDayPointerUp: val => onChange([value[0], dateToString(val)]) }))] }));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { DatePicker };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".DatePicker_root__hh-PP{display:flex;flex-direction:row;gap:var(--p-5)}.DatePicker_calendar__0Fk4N{width:100%}.DatePicker_doubleCalendar__4YbNN .DatePicker_calendar__0Fk4N{width:50%}.DatePicker_day__kGD0i.DatePicker_end__KYPnO,.DatePicker_day__kGD0i.DatePicker_start__qd0rW{background-color:var(--active-color-alpha-500)!important}.DatePicker_day__kGD0i.DatePicker_start__qd0rW{border-bottom-right-radius:0;border-top-right-radius:0}.DatePicker_day__kGD0i.DatePicker_end__KYPnO{border-bottom-left-radius:0;border-top-left-radius:0}.DatePicker_day__kGD0i.DatePicker_between__1Bifb{background-color:var(--active-color-alpha-100);border-radius:0}.DatePicker_day__kGD0i:hover{background-color:var(--accent-color-alpha-100)}";
|
|
4
|
+
var S = {"root":"DatePicker_root__hh-PP","calendar":"DatePicker_calendar__0Fk4N","doubleCalendar":"DatePicker_doubleCalendar__4YbNN","day":"DatePicker_day__kGD0i","start":"DatePicker_start__qd0rW","end":"DatePicker_end__KYPnO","between":"DatePicker_between__1Bifb"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -1,2 +1,44 @@
|
|
|
1
|
-
import{jsx,jsxs,Fragment}from
|
|
2
|
-
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useCallback } from 'react';
|
|
3
|
+
import cn from 'classnames';
|
|
4
|
+
import { strToDate } from '../../tools/date.js';
|
|
5
|
+
import { DateTime } from '../DateTime/DateTime.js';
|
|
6
|
+
import { DatePicker } from '../DatePicker/DatePicker.js';
|
|
7
|
+
import { Button } from '../Button/Button.js';
|
|
8
|
+
import { Popup } from '../Popup/Popup.js';
|
|
9
|
+
import S from './DatePickerInput.styl.js';
|
|
10
|
+
|
|
11
|
+
function DatePickerInput(props) {
|
|
12
|
+
const { value, onChange, variant = 'default', size = 'm', popupProps, buttonProps, displayFormat = 'MMM Do YYYY', } = props;
|
|
13
|
+
const isRange = Array.isArray(value);
|
|
14
|
+
const isControlled = popupProps?.isOpen !== undefined;
|
|
15
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
16
|
+
const handleChange = useCallback((newValue) => {
|
|
17
|
+
onChange(newValue);
|
|
18
|
+
if (!isRange) {
|
|
19
|
+
if (!isControlled) {
|
|
20
|
+
setIsOpen(false);
|
|
21
|
+
}
|
|
22
|
+
popupProps?.onClose?.();
|
|
23
|
+
}
|
|
24
|
+
}, [onChange, isRange, isControlled, popupProps]);
|
|
25
|
+
const handleClose = useCallback(() => {
|
|
26
|
+
if (!isControlled) {
|
|
27
|
+
setIsOpen(false);
|
|
28
|
+
}
|
|
29
|
+
popupProps?.onClose?.();
|
|
30
|
+
}, [popupProps, isControlled]);
|
|
31
|
+
const handleOpen = useCallback(() => {
|
|
32
|
+
if (!isControlled) {
|
|
33
|
+
setIsOpen(true);
|
|
34
|
+
}
|
|
35
|
+
popupProps?.onOpen?.();
|
|
36
|
+
}, [popupProps, isControlled]);
|
|
37
|
+
return (jsx(Popup, { size: size, focusControl: true, direction: "bottom-right", isOpen: isControlled ? popupProps.isOpen : isOpen, onOpen: isControlled ? popupProps.onOpen : handleOpen, onClose: isControlled ? popupProps.onClose : handleClose, ...popupProps, trigger:
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
jsx(Button, { variant: variant, size: size, ...buttonProps, children: isRange ? (jsxs(Fragment, { children: [jsx(DateTime, { value: strToDate(value[0]), format: displayFormat }), ' - ', jsx(DateTime, { value: strToDate(value[1]), format: displayFormat })] })) : (jsx(DateTime, { value: strToDate(value), format: displayFormat })) }), contentProps: {
|
|
40
|
+
className: cn(S.popupContent, props.doubleCalendar && S.doubleCalendar, S[`size-${size}`], popupProps?.contentProps?.className),
|
|
41
|
+
}, content: jsx(DatePicker, { ...props, onChange: handleChange, className: S.content, calendarProps: { className: S.calendar } }) }));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { DatePickerInput };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".DatePickerInput_popupContent__rcVHH{min-width:-moz-fit-content;min-width:fit-content}.DatePickerInput_content__yll-b{padding:.5em}.DatePickerInput_range__xWj9K .DatePickerInput_content__yll-b{display:flex;flex-direction:row;flex-wrap:nowrap;gap:1em}.DatePickerInput_doubleCalendar__H5CMo .DatePickerInput_calendar__vf0za{width:50%}.DatePickerInput_size-xs__ECN6b{border-radius:6px!important}.DatePickerInput_size-xs__ECN6b .DatePickerInput_content__yll-b{min-width:10em;padding:8px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-xs__ECN6b .DatePickerInput_content__yll-b{min-width:21em}.DatePickerInput_size-s__5t05o{border-radius:6px!important}.DatePickerInput_size-s__5t05o .DatePickerInput_content__yll-b{min-width:12em;padding:12px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-s__5t05o .DatePickerInput_content__yll-b{min-width:25em}.DatePickerInput_size-m__TTkHV{border-radius:9px!important}.DatePickerInput_size-m__TTkHV .DatePickerInput_content__yll-b{min-width:16em;padding:16px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-m__TTkHV .DatePickerInput_content__yll-b{min-width:33em}.DatePickerInput_size-l__-fWkE{border-radius:12px!important}.DatePickerInput_size-l__-fWkE .DatePickerInput_content__yll-b{min-width:20em;padding:20px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-l__-fWkE .DatePickerInput_content__yll-b{min-width:41em}.DatePickerInput_size-xl__aRXCl{border-radius:15px!important}.DatePickerInput_size-xl__aRXCl .DatePickerInput_content__yll-b{min-width:24em;padding:24px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-xl__aRXCl .DatePickerInput_content__yll-b{min-width:49em}";
|
|
4
|
+
var S = {"popupContent":"DatePickerInput_popupContent__rcVHH","content":"DatePickerInput_content__yll-b","range":"DatePickerInput_range__xWj9K","doubleCalendar":"DatePickerInput_doubleCalendar__H5CMo","calendar":"DatePickerInput_calendar__vf0za","size-xs":"DatePickerInput_size-xs__ECN6b","size-s":"DatePickerInput_size-s__5t05o","size-m":"DatePickerInput_size-m__TTkHV","size-l":"DatePickerInput_size-l__-fWkE","size-xl":"DatePickerInput_size-xl__aRXCl"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
import{jsx,Fragment}from
|
|
2
|
-
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
|
|
4
|
+
function formatDate({ value, format, locale = 'en' }) {
|
|
5
|
+
const d = moment(value).locale(locale);
|
|
6
|
+
if (format) {
|
|
7
|
+
if (d[format])
|
|
8
|
+
return d[format]();
|
|
9
|
+
return d.format(format);
|
|
10
|
+
}
|
|
11
|
+
return d.toString();
|
|
12
|
+
}
|
|
13
|
+
function DateTime({ value = new Date(), format, locale }) {
|
|
14
|
+
return jsx(Fragment, { children: formatDate({ value, format, locale }) });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { DateTime, formatDate };
|
|
@@ -1,2 +1,107 @@
|
|
|
1
|
-
import{jsxs,Fragment,jsx}from
|
|
2
|
-
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import cn from 'classnames';
|
|
3
|
+
import { useState, useRef, useId, useEffect } from 'react';
|
|
4
|
+
import { createPortal } from 'react-dom';
|
|
5
|
+
import { Card, CardHeader, CardContent, CardFooter } from '../Card/Card.js';
|
|
6
|
+
import { Icon } from '../Icon/Icon.js';
|
|
7
|
+
import { isBrowser } from '../../tools/env.js';
|
|
8
|
+
import S from './Dialogue.styl.js';
|
|
9
|
+
|
|
10
|
+
const FOOTER_ALIGN_CLASS = {
|
|
11
|
+
left: S.footerAlignLeft,
|
|
12
|
+
center: S.footerAlignCenter,
|
|
13
|
+
right: S.footerAlignRight,
|
|
14
|
+
};
|
|
15
|
+
function Dialogue({ open, onOpenChange, disabled, trigger, title, subtitle, icon, content, contentClassName, footer, footerAlignment = 'center', size = 'default', className, noScroll, maxHeight, autoScrollBottom, width, }) {
|
|
16
|
+
const [isMounted, setIsMounted] = useState(false);
|
|
17
|
+
const [isAnimating, setIsAnimating] = useState(false);
|
|
18
|
+
const dialogRef = useRef(null);
|
|
19
|
+
const titleId = useId();
|
|
20
|
+
const descriptionId = useId();
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
setIsMounted(true);
|
|
23
|
+
}, []);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (open) {
|
|
26
|
+
setIsAnimating(true);
|
|
27
|
+
requestAnimationFrame(() => {
|
|
28
|
+
requestAnimationFrame(() => {
|
|
29
|
+
setIsAnimating(false);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
setIsAnimating(true);
|
|
35
|
+
}
|
|
36
|
+
}, [open]);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (!open || !dialogRef.current)
|
|
39
|
+
return;
|
|
40
|
+
const previousActiveElement = document.activeElement;
|
|
41
|
+
const focusableElements = dialogRef.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
42
|
+
const firstFocusable = focusableElements[0];
|
|
43
|
+
const lastFocusable = focusableElements[focusableElements.length - 1];
|
|
44
|
+
if (firstFocusable) {
|
|
45
|
+
firstFocusable.focus();
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
dialogRef.current.focus();
|
|
49
|
+
}
|
|
50
|
+
const handleKeyDown = (e) => {
|
|
51
|
+
if (e.key === 'Escape') {
|
|
52
|
+
onOpenChange(false);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (e.key === 'Tab' && focusableElements.length > 0) {
|
|
56
|
+
if (e.shiftKey) {
|
|
57
|
+
if (document.activeElement === firstFocusable) {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
lastFocusable?.focus();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else if (document.activeElement === lastFocusable) {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
firstFocusable?.focus();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
69
|
+
return () => {
|
|
70
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
71
|
+
if (previousActiveElement?.focus) {
|
|
72
|
+
previousActiveElement.focus();
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}, [open, onOpenChange]);
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
if (!open)
|
|
78
|
+
return;
|
|
79
|
+
const originalStyle = window.getComputedStyle(document.body).overflow;
|
|
80
|
+
document.body.style.overflow = 'hidden';
|
|
81
|
+
return () => {
|
|
82
|
+
document.body.style.overflow = originalStyle;
|
|
83
|
+
};
|
|
84
|
+
}, [open]);
|
|
85
|
+
const handleOverlayClick = (e) => {
|
|
86
|
+
if (e.target === e.currentTarget) {
|
|
87
|
+
onOpenChange(false);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const handleCloseClick = () => {
|
|
91
|
+
onOpenChange(false);
|
|
92
|
+
};
|
|
93
|
+
const onTriggerClick = !disabled ? () => onOpenChange(true) : undefined;
|
|
94
|
+
const dialogueContent = (jsxs(Fragment, { children: [jsx("div", { className: cn(S.dialogOverlay, open && !isAnimating && S.isOpen), onClick: handleOverlayClick, "aria-hidden": "true" }), jsxs(Card, { ref: dialogRef, role: "dialog", "aria-modal": "true", "aria-labelledby": title ? titleId : undefined, "aria-describedby": subtitle ? descriptionId : undefined, className: cn(S.dialogContent, S[`size-${size}`], open && !isAnimating && S.isOpen, !open && isAnimating && S.isClosed, className), tabIndex: -1, style: {
|
|
95
|
+
width,
|
|
96
|
+
maxHeight: maxHeight
|
|
97
|
+
? `min(${String(maxHeight)}, calc(100% - var(--p-5)))`
|
|
98
|
+
: undefined,
|
|
99
|
+
}, children: [(title || subtitle || icon) && (jsx(CardHeader, { icon: icon, title: title, description: subtitle, titleId: titleId, descriptionId: descriptionId })), jsx("button", { className: S.dialogClose, onClick: handleCloseClick, "aria-label": "Close dialog", type: "button", children: jsx(Icon, { type: "close", size: "m" }) }), content && (jsx(CardContent, { className: contentClassName, noScroll: noScroll, autoScrollBottom: autoScrollBottom, children: content })), footer && (jsx(CardFooter, { className: FOOTER_ALIGN_CLASS[footerAlignment], children: footer }))] })] }));
|
|
100
|
+
return (jsxs(Fragment, { children: [trigger && jsx("div", { onClick: onTriggerClick, children: trigger }), open &&
|
|
101
|
+
!disabled &&
|
|
102
|
+
isMounted &&
|
|
103
|
+
isBrowser &&
|
|
104
|
+
createPortal(dialogueContent, document.body)] }));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export { Dialogue, S as DialogueStyles };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".Dialogue_dialogOverlay__jjBIa{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:var(--decent-color-alpha-900);inset:0;opacity:0;position:fixed;transition:opacity .2s ease-out;z-index:50}.Dialogue_dialogOverlay__jjBIa.Dialogue_isOpen__gISMb{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_fadeIn__RSEB2;animation-timing-function:ease-out;opacity:1}.Dialogue_dialogContent__-Lxde{border-radius:var(--border-radius-l);box-shadow:0 10px 20px rgba(0,0,0,.3),0 0 0 2px var(--decent-color-alpha-800);display:flex;flex-direction:column;left:50%;max-height:calc(100% - var(--p-5));opacity:0;position:fixed;top:50%;transform:translateX(-50%) translateY(-50%) scale(.95);transition:opacity .2s ease-out,transform .2s ease-out;width:-moz-fit-content;width:fit-content;z-index:50}.Dialogue_dialogContent__-Lxde.Dialogue_isOpen__gISMb{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_dialogueIn__M0tLL;animation-timing-function:ease-out;opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}.Dialogue_dialogContent__-Lxde.Dialogue_isClosed__lHYyZ{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_dialogueOut__6bLTY;animation-timing-function:ease-in;opacity:0;pointer-events:none;transform:translateX(-50%) translateY(-50%) scale(.95)}@media (max-width:700px){.Dialogue_dialogContent__-Lxde{max-width:calc(100% - var(--p-5));width:calc(100% - var(--p-5))}}.Dialogue_size-default__X1sdB{max-width:40rem}.Dialogue_size-login__GyixB{max-width:24rem}.Dialogue_size-wide__HQbiX{max-width:calc(100% - var(--p-5))}@media (min-width:700px){.Dialogue_size-wide__HQbiX{max-width:80rem}}.Dialogue_dialogClose__5q12n{align-items:center;background-color:transparent;border:none;border-radius:var(--border-radius-s);box-shadow:inset 0 0 0 2px none;color:var(--accent-color);cursor:pointer;display:flex;height:2rem;justify-content:center;opacity:.7;position:absolute;right:var(--p-3);top:var(--p-3);transform-origin:center;transition:opacity .2s ease,transform .2s ease;width:2rem;z-index:10}.Dialogue_dialogClose__5q12n:hover{opacity:1;transform:scale(1.1)}.Dialogue_dialogClose__5q12n:focus-visible{box-shadow:0 0 0 2px var(--active-color)}.Dialogue_dialogClose__5q12n:disabled{pointer-events:none}.Dialogue_footerAlignLeft__xQUD8{justify-content:flex-start}.Dialogue_footerAlignCenter__yq9Mu{justify-content:center}.Dialogue_footerAlignRight__Yo7hG{justify-content:flex-end}@keyframes Dialogue_fadeIn__RSEB2{0%{opacity:0}to{opacity:1}}@keyframes Dialogue_dialogueIn__M0tLL{0%{opacity:0;transform:translateX(-50%) translateY(-50%) scale(.95)}to{opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}}@keyframes Dialogue_dialogueOut__6bLTY{0%{opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}to{opacity:0;transform:translateX(-50%) translateY(-50%) scale(.95)}}";
|
|
4
|
+
var S = {"dialogOverlay":"Dialogue_dialogOverlay__jjBIa","isOpen":"Dialogue_isOpen__gISMb","fadeIn":"Dialogue_fadeIn__RSEB2","dialogContent":"Dialogue_dialogContent__-Lxde","dialogueIn":"Dialogue_dialogueIn__M0tLL","isClosed":"Dialogue_isClosed__lHYyZ","dialogueOut":"Dialogue_dialogueOut__6bLTY","size-default":"Dialogue_size-default__X1sdB","size-login":"Dialogue_size-login__GyixB","size-wide":"Dialogue_size-wide__HQbiX","dialogClose":"Dialogue_dialogClose__5q12n","footerAlignLeft":"Dialogue_footerAlignLeft__xQUD8","footerAlignCenter":"Dialogue_footerAlignCenter__yq9Mu","footerAlignRight":"Dialogue_footerAlignRight__Yo7hG"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -1,2 +1,147 @@
|
|
|
1
|
-
import{jsxs,jsx}
|
|
2
|
-
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import 'nanoid';
|
|
3
|
+
import '../../tools/dom.js';
|
|
4
|
+
import throttle from '../../tools/throttle.js';
|
|
5
|
+
import Time from 'timen';
|
|
6
|
+
import 'compareq';
|
|
7
|
+
import 'lodash.pick';
|
|
8
|
+
import '../../tools/queryParams.js';
|
|
9
|
+
import { Component } from 'react';
|
|
10
|
+
import S from './Draggable.styl.js';
|
|
11
|
+
import cn from 'classnames';
|
|
12
|
+
import { createStore } from 'justorm/react';
|
|
13
|
+
|
|
14
|
+
class Draggable extends Component {
|
|
15
|
+
store;
|
|
16
|
+
startPos = null;
|
|
17
|
+
draggingElem = null;
|
|
18
|
+
draggingElemBounds = null;
|
|
19
|
+
dragStartFired = false;
|
|
20
|
+
timers = Time.create();
|
|
21
|
+
constructor(props) {
|
|
22
|
+
super(props);
|
|
23
|
+
this.store = createStore(this, {
|
|
24
|
+
draggingId: null,
|
|
25
|
+
underId: null,
|
|
26
|
+
underOffset: '',
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
componentDidUpdate(prevProps) {
|
|
30
|
+
if (prevProps.items.join(',') !== this.props.items.join(',')) {
|
|
31
|
+
this.dropUnder();
|
|
32
|
+
}
|
|
33
|
+
if (prevProps.disabled !== this.props.disabled) {
|
|
34
|
+
this.dropUnder();
|
|
35
|
+
if (this.props.disabled)
|
|
36
|
+
this.unsubscribeMoveUp();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
componentWillUnmount() {
|
|
40
|
+
this.timers.clear();
|
|
41
|
+
}
|
|
42
|
+
subscribeMoveUp = () => {
|
|
43
|
+
document.addEventListener('pointermove', this.onPointerMove);
|
|
44
|
+
document.addEventListener('pointerup', this.onPointerUp);
|
|
45
|
+
};
|
|
46
|
+
unsubscribeMoveUp = () => {
|
|
47
|
+
document.removeEventListener('pointermove', this.onPointerMove);
|
|
48
|
+
document.removeEventListener('pointerup', this.onPointerUp);
|
|
49
|
+
};
|
|
50
|
+
onPointerDown = e => {
|
|
51
|
+
const { clientX: x, clientY: y, currentTarget } = e;
|
|
52
|
+
e.stopPropagation();
|
|
53
|
+
this.timers.clear();
|
|
54
|
+
this.startPos = { x, y };
|
|
55
|
+
this.draggingElem = currentTarget;
|
|
56
|
+
this.draggingElemBounds = currentTarget.getBoundingClientRect();
|
|
57
|
+
this.subscribeMoveUp();
|
|
58
|
+
};
|
|
59
|
+
onPointerMove = e => {
|
|
60
|
+
if (!this.draggingElem || this.props.disabled)
|
|
61
|
+
return;
|
|
62
|
+
const { clientX: x, clientY: y } = e;
|
|
63
|
+
if (!this.store.draggingId) {
|
|
64
|
+
this.store.draggingId = this.draggingElem.dataset.id;
|
|
65
|
+
}
|
|
66
|
+
if (!this.dragStartFired) {
|
|
67
|
+
this.dragStartFired = true;
|
|
68
|
+
this.props.onDragStart?.(this.store.draggingId);
|
|
69
|
+
}
|
|
70
|
+
const dx = x - this.startPos.x;
|
|
71
|
+
const dy = y - this.startPos.y;
|
|
72
|
+
this.transformInner(this.draggingElem, `translate(${dx}px, ${dy}px)`);
|
|
73
|
+
this.checkUnderElem(x, y);
|
|
74
|
+
};
|
|
75
|
+
checkUnderElem = throttle((x, y) => {
|
|
76
|
+
const underItem = document.elementFromPoint(x, y)?.closest(`.${S.item}`);
|
|
77
|
+
if (!underItem) {
|
|
78
|
+
this.store.underOffset = '';
|
|
79
|
+
this.store.underId = null;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// @ts-ignore
|
|
83
|
+
const { id } = underItem.dataset;
|
|
84
|
+
const { draggingId, underId } = this.store;
|
|
85
|
+
if (!this.startPos || id === draggingId || id === underId)
|
|
86
|
+
return;
|
|
87
|
+
const { x: x1, y: y1 } = this.draggingElemBounds;
|
|
88
|
+
const { x: x2, y: y2 } = this.selectInner(underItem).getBoundingClientRect();
|
|
89
|
+
const dx = x1 - x2;
|
|
90
|
+
const dy = y1 - y2;
|
|
91
|
+
this.store.underOffset = `translate(${dx}px, ${dy}px)`;
|
|
92
|
+
this.store.underId = id;
|
|
93
|
+
}, 100);
|
|
94
|
+
onPointerOut = ({ target }) => {
|
|
95
|
+
const { id } = target.dataset;
|
|
96
|
+
if (!id || id === this.store.draggingId)
|
|
97
|
+
return;
|
|
98
|
+
this.transformInner(target, null);
|
|
99
|
+
this.dropUnder();
|
|
100
|
+
};
|
|
101
|
+
onPointerUp = e => {
|
|
102
|
+
const { underId, draggingId } = this.store;
|
|
103
|
+
const { onChange, onDragEnd } = this.props;
|
|
104
|
+
const { id } = this.draggingElem.dataset;
|
|
105
|
+
if (draggingId) {
|
|
106
|
+
e.stopPropagation();
|
|
107
|
+
e.preventDefault();
|
|
108
|
+
}
|
|
109
|
+
this.unsubscribeMoveUp();
|
|
110
|
+
this.dragStartFired = false;
|
|
111
|
+
this.startPos = null;
|
|
112
|
+
this.store.draggingId = null;
|
|
113
|
+
if (underId && onChange) {
|
|
114
|
+
const newItems = [...this.props.items];
|
|
115
|
+
const draggingIndex = newItems.indexOf(id);
|
|
116
|
+
const underIndex = newItems.indexOf(underId);
|
|
117
|
+
newItems[underIndex] = id;
|
|
118
|
+
newItems[draggingIndex] = underId;
|
|
119
|
+
onChange(newItems);
|
|
120
|
+
}
|
|
121
|
+
this.dropUnder();
|
|
122
|
+
this.timers.after(100, () => {
|
|
123
|
+
if (this.draggingElem) {
|
|
124
|
+
this.selectInner(this.draggingElem).style.transform = null;
|
|
125
|
+
this.draggingElem = null;
|
|
126
|
+
}
|
|
127
|
+
onDragEnd?.(draggingId);
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
selectInner = elem => elem.querySelector('& > div');
|
|
131
|
+
transformInner(elem, str) {
|
|
132
|
+
if (!elem)
|
|
133
|
+
return;
|
|
134
|
+
this.selectInner(elem).style.transform = str;
|
|
135
|
+
}
|
|
136
|
+
dropUnder() {
|
|
137
|
+
this.store.underId = null;
|
|
138
|
+
this.store.underOffset = null;
|
|
139
|
+
}
|
|
140
|
+
render() {
|
|
141
|
+
const { items, className, itemClassName, renderItem, children, disabled } = this.props;
|
|
142
|
+
const { draggingId, underId, underOffset } = this.store;
|
|
143
|
+
return (jsxs("div", { className: cn(S.root, draggingId && S.isDragging, className), children: [items.map((id, index) => (jsx("div", { "data-id": id, className: cn(S.item, itemClassName, id === draggingId && S.active), onPointerDown: disabled ? undefined : this.onPointerDown, children: jsx("div", { className: S.inner, style: underId === id ? { transform: underOffset } : null, children: renderItem(id, index, id === draggingId) }) }, id))), children] }));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export { Draggable };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".Draggable_root__S1BgI{display:flex;flex-wrap:wrap;position:relative;touch-action:none}.Draggable_item__Z1pXk{display:flex}.Draggable_inner__c4syM{height:100%;transition:transform .2s ease-out;width:100%}.Draggable_isDragging__YTPu5 .Draggable_inner__c4syM{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Draggable_isDragging__YTPu5 .Draggable_active__XcFM3{pointer-events:none}.Draggable_isDragging__YTPu5 .Draggable_active__XcFM3 .Draggable_inner__c4syM{transition-duration:0s;z-index:1}";
|
|
4
|
+
var S = {"root":"Draggable_root__S1BgI","item":"Draggable_item__Z1pXk","inner":"Draggable_inner__c4syM","isDragging":"Draggable_isDragging__YTPu5","active":"Draggable_active__XcFM3"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -1,2 +1,112 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
3
|
+
import cn from 'classnames';
|
|
4
|
+
import { generateUID } from '../../tools/uid.js';
|
|
5
|
+
import S from './DropZone.styl.js';
|
|
6
|
+
|
|
7
|
+
function matchesAcceptPart(file, part) {
|
|
8
|
+
const p = part.trim().toLowerCase();
|
|
9
|
+
if (!p)
|
|
10
|
+
return false;
|
|
11
|
+
if (p.startsWith('.')) {
|
|
12
|
+
return file.name.toLowerCase().endsWith(p);
|
|
13
|
+
}
|
|
14
|
+
if (p.includes('/')) {
|
|
15
|
+
const t = file.type.toLowerCase();
|
|
16
|
+
if (p.endsWith('/*')) {
|
|
17
|
+
const prefix = p.slice(0, -1);
|
|
18
|
+
return t.startsWith(prefix);
|
|
19
|
+
}
|
|
20
|
+
return t === p;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
function matchesAccept(file, accept) {
|
|
25
|
+
const trimmed = accept.trim();
|
|
26
|
+
if (!trimmed)
|
|
27
|
+
return true;
|
|
28
|
+
const parts = trimmed
|
|
29
|
+
.split(',')
|
|
30
|
+
.map(s => s.trim())
|
|
31
|
+
.filter(Boolean);
|
|
32
|
+
if (parts.length === 0)
|
|
33
|
+
return true;
|
|
34
|
+
return parts.some(part => matchesAcceptPart(file, part));
|
|
35
|
+
}
|
|
36
|
+
function DropZone(props) {
|
|
37
|
+
const { accept, label, error, disabled = false, ghost = false, id, className, } = props;
|
|
38
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
39
|
+
const dropAreaRef = useRef(null);
|
|
40
|
+
const fallbackInputIdRef = useRef(generateUID());
|
|
41
|
+
const inputId = id ?? fallbackInputIdRef.current;
|
|
42
|
+
const handleDrop = useCallback((e) => {
|
|
43
|
+
e.preventDefault();
|
|
44
|
+
setIsDragging(false);
|
|
45
|
+
if (disabled)
|
|
46
|
+
return;
|
|
47
|
+
const list = Array.from(e.dataTransfer.files).filter(f => matchesAccept(f, accept));
|
|
48
|
+
if (props.multiple === true) {
|
|
49
|
+
if (list.length > 0) {
|
|
50
|
+
props.onFiles(list);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const file = list[0];
|
|
55
|
+
if (file) {
|
|
56
|
+
props.onFile(file);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}, [accept, disabled, props]);
|
|
60
|
+
const handleFileInput = useCallback((e) => {
|
|
61
|
+
if (disabled)
|
|
62
|
+
return;
|
|
63
|
+
const raw = e.target.files;
|
|
64
|
+
if (!raw?.length)
|
|
65
|
+
return;
|
|
66
|
+
const list = Array.from(raw).filter(f => matchesAccept(f, accept));
|
|
67
|
+
if (props.multiple === true) {
|
|
68
|
+
if (list.length > 0) {
|
|
69
|
+
props.onFiles(list);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const file = list[0];
|
|
74
|
+
if (file) {
|
|
75
|
+
props.onFile(file);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
e.target.value = '';
|
|
79
|
+
}, [accept, disabled, props]);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
const dialog = dropAreaRef.current?.closest('[role="dialog"]');
|
|
82
|
+
const targetElement = dialog || document.body;
|
|
83
|
+
const handleGlobalDragOver = (e) => {
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
setIsDragging(true);
|
|
86
|
+
};
|
|
87
|
+
const handleGlobalDragLeave = (e) => {
|
|
88
|
+
if (!e.relatedTarget ||
|
|
89
|
+
!targetElement.contains(e.relatedTarget)) {
|
|
90
|
+
setIsDragging(false);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
const handleGlobalDrop = () => {
|
|
94
|
+
setIsDragging(false);
|
|
95
|
+
};
|
|
96
|
+
targetElement.addEventListener('dragover', handleGlobalDragOver);
|
|
97
|
+
targetElement.addEventListener('dragleave', handleGlobalDragLeave);
|
|
98
|
+
targetElement.addEventListener('drop', handleGlobalDrop);
|
|
99
|
+
return () => {
|
|
100
|
+
targetElement.removeEventListener('dragover', handleGlobalDragOver);
|
|
101
|
+
targetElement.removeEventListener('dragleave', handleGlobalDragLeave);
|
|
102
|
+
targetElement.removeEventListener('drop', handleGlobalDrop);
|
|
103
|
+
};
|
|
104
|
+
}, []);
|
|
105
|
+
const shouldShowDropArea = !ghost || isDragging;
|
|
106
|
+
const multiple = props.multiple === true;
|
|
107
|
+
return (jsxs("div", { className: cn(S.root, className), children: [shouldShowDropArea && (jsxs("div", { ref: dropAreaRef, className: cn(S.dropArea, isDragging && S.isDragging, disabled && S.disabled), onDrop: handleDrop, children: [jsx("input", { type: "file", accept: accept, multiple: multiple, onChange: handleFileInput, className: S.fileInput, id: inputId, disabled: disabled }), jsx("label", { htmlFor: inputId, className: S.label, style: {
|
|
108
|
+
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
109
|
+
}, children: label })] })), error && jsx("div", { className: S.error, children: error })] }));
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export { DropZone };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".DropZone_root__gk-Ef{display:flex;flex-direction:column;gap:var(--p-2)}.DropZone_dropArea__u-8Ye{background-color:var(--accent-color-alpha-100);border:2px dashed var(--decent-color-alpha-200);border-radius:var(--p-4);cursor:pointer;padding:var(--p-4);position:relative;text-align:center;transition:all .2s ease}.DropZone_dropArea__u-8Ye label:before{border-radius:var(--p-4);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.DropZone_dropArea__u-8Ye.DropZone_isDragging__S-aQp,.DropZone_dropArea__u-8Ye:hover:not(.DropZone_disabled__qsAf6){border:2px dashed var(--active-color-alpha-500)}.DropZone_dropArea__u-8Ye:hover:not(.DropZone_disabled__qsAf6){background-color:var(--accent-color-alpha-50)}.DropZone_dropArea__u-8Ye.DropZone_isDragging__S-aQp{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--decent-color-alpha-900)!important;display:flex;height:calc(100% - var(--p-2));justify-content:center;left:var(--p-1);position:fixed;top:var(--p-1);width:calc(100% - var(--p-2));z-index:9999}.DropZone_dropArea__u-8Ye.DropZone_disabled__qsAf6{cursor:not-allowed;opacity:.6}.DropZone_fileInput__E8DeE{display:none}.DropZone_label__u7-Pb{cursor:pointer}.DropZone_error__vSiwM{color:var(--danger-color);font-size:.875rem;padding:var(--p-1) var(--p-2)}";
|
|
4
|
+
var S = {"root":"DropZone_root__gk-Ef","dropArea":"DropZone_dropArea__u-8Ye","disabled":"DropZone_disabled__qsAf6","isDragging":"DropZone_isDragging__S-aQp","fileInput":"DropZone_fileInput__E8DeE","label":"DropZone_label__u7-Pb","error":"DropZone_error__vSiwM"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|