@os-design/core 1.0.135 → 1.0.138
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/cjs/Alert/index.js +1 -1
- package/dist/cjs/Alert/index.js.map +1 -1
- package/dist/cjs/Avatar/index.js +1 -1
- package/dist/cjs/Avatar/index.js.map +1 -1
- package/dist/cjs/Avatar/utils/nameToInitials.js.map +1 -1
- package/dist/cjs/Avatar/utils/strToHue.js.map +1 -1
- package/dist/cjs/AvatarSkeleton/index.js +1 -1
- package/dist/cjs/AvatarSkeleton/index.js.map +1 -1
- package/dist/cjs/Breadcrumb/index.js +1 -1
- package/dist/cjs/Breadcrumb/index.js.map +1 -1
- package/dist/cjs/BreadcrumbItem/index.js +1 -1
- package/dist/cjs/BreadcrumbItem/index.js.map +1 -1
- package/dist/cjs/Button/ButtonContent.js.map +1 -1
- package/dist/cjs/Button/index.js +1 -1
- package/dist/cjs/Button/index.js.map +1 -1
- package/dist/cjs/Button/utils/useButtonColors.js.map +1 -1
- package/dist/cjs/Checkbox/index.js +1 -1
- package/dist/cjs/Checkbox/index.js.map +1 -1
- package/dist/cjs/CheckboxSkeleton/index.js +1 -1
- package/dist/cjs/CheckboxSkeleton/index.js.map +1 -1
- package/dist/cjs/DatePicker/DatePickerCalendar.js +1 -1
- package/dist/cjs/DatePicker/DatePickerCalendar.js.map +1 -1
- package/dist/cjs/DatePicker/index.js +1 -1
- package/dist/cjs/DatePicker/index.js.map +1 -1
- package/dist/cjs/Drawer/index.js +1 -1
- package/dist/cjs/Drawer/index.js.map +1 -1
- package/dist/cjs/Form/FormConfigContext.js.map +1 -1
- package/dist/cjs/Form/index.js +1 -1
- package/dist/cjs/Form/index.js.map +1 -1
- package/dist/cjs/FormDivider/index.js +1 -1
- package/dist/cjs/FormDivider/index.js.map +1 -1
- package/dist/cjs/FormItem/index.js +1 -1
- package/dist/cjs/FormItem/index.js.map +1 -1
- package/dist/cjs/FormItem/utils/firstChildHasType.js.map +1 -1
- package/dist/cjs/GlobalStyles/index.js.map +1 -1
- package/dist/cjs/GlobalStyles/resetStyles.js.map +1 -1
- package/dist/cjs/GlobalStyles/typographyStyles.js.map +1 -1
- package/dist/cjs/HeaderSkeleton/index.js +1 -1
- package/dist/cjs/HeaderSkeleton/index.js.map +1 -1
- package/dist/cjs/Image/index.js +1 -1
- package/dist/cjs/Image/index.js.map +1 -1
- package/dist/cjs/ImageSkeleton/index.js +1 -1
- package/dist/cjs/ImageSkeleton/index.js.map +1 -1
- package/dist/cjs/Input/index.js +1 -1
- package/dist/cjs/Input/index.js.map +1 -1
- package/dist/cjs/Input/utils/getFocusableElements.js.map +1 -1
- package/dist/cjs/InputNumber/index.js +1 -1
- package/dist/cjs/InputNumber/index.js.map +1 -1
- package/dist/cjs/InputNumber/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/InputPassword/index.js +1 -1
- package/dist/cjs/InputPassword/index.js.map +1 -1
- package/dist/cjs/InputPassword/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/InputSearch/index.js +1 -1
- package/dist/cjs/InputSearch/index.js.map +1 -1
- package/dist/cjs/InputSearch/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/InputSkeleton/index.js +1 -1
- package/dist/cjs/InputSkeleton/index.js.map +1 -1
- package/dist/cjs/Layout/LayoutContext.js.map +1 -1
- package/dist/cjs/Layout/index.js.map +1 -1
- package/dist/cjs/Link/index.js +1 -1
- package/dist/cjs/Link/index.js.map +1 -1
- package/dist/cjs/LinkButton/index.js +1 -1
- package/dist/cjs/LinkButton/index.js.map +1 -1
- package/dist/cjs/List/WindowScroller.js.map +1 -1
- package/dist/cjs/List/index.js +3 -5
- package/dist/cjs/List/index.js.map +1 -1
- package/dist/cjs/List/utils/bodyPointerEvents.js.map +1 -1
- package/dist/cjs/List/utils/frameTimeout.js.map +1 -1
- package/dist/cjs/List/utils/useRWLoadNext.js.map +1 -1
- package/dist/cjs/ListItem/ListItemContent.js +1 -1
- package/dist/cjs/ListItem/ListItemContent.js.map +1 -1
- package/dist/cjs/ListItem/index.js +1 -1
- package/dist/cjs/ListItem/index.js.map +1 -1
- package/dist/cjs/ListItemLink/index.js +1 -1
- package/dist/cjs/ListItemLink/index.js.map +1 -1
- package/dist/cjs/ListSkeleton/index.js +1 -1
- package/dist/cjs/ListSkeleton/index.js.map +1 -1
- package/dist/cjs/LogoLink/index.js +1 -1
- package/dist/cjs/LogoLink/index.js.map +1 -1
- package/dist/cjs/Menu/index.js +1 -1
- package/dist/cjs/Menu/index.js.map +1 -1
- package/dist/cjs/Menu/utils/useFocusWithArrows.js.map +1 -1
- package/dist/cjs/MenuDivider/index.js +1 -1
- package/dist/cjs/MenuDivider/index.js.map +1 -1
- package/dist/cjs/MenuGroup/index.js +1 -1
- package/dist/cjs/MenuGroup/index.js.map +1 -1
- package/dist/cjs/MenuItem/index.js +1 -1
- package/dist/cjs/MenuItem/index.js.map +1 -1
- package/dist/cjs/Modal/index.js +1 -1
- package/dist/cjs/Modal/index.js.map +1 -1
- package/dist/cjs/Modal/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/Navigation/index.js +1 -1
- package/dist/cjs/Navigation/index.js.map +1 -1
- package/dist/cjs/Navigation/utils/useScrollFlags.js.map +1 -1
- package/dist/cjs/NavigationItem/index.js +1 -1
- package/dist/cjs/NavigationItem/index.js.map +1 -1
- package/dist/cjs/PageContent/index.js +1 -1
- package/dist/cjs/PageContent/index.js.map +1 -1
- package/dist/cjs/PageHeader/index.js +1 -1
- package/dist/cjs/PageHeader/index.js.map +1 -1
- package/dist/cjs/PageHeader/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/PageHeaderInputSearch/index.js +1 -1
- package/dist/cjs/PageHeaderInputSearch/index.js.map +1 -1
- package/dist/cjs/PageHeaderInputSearch/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/PageHeaderSkeleton/index.js +1 -1
- package/dist/cjs/PageHeaderSkeleton/index.js.map +1 -1
- package/dist/cjs/ParagraphSkeleton/index.js +1 -1
- package/dist/cjs/ParagraphSkeleton/index.js.map +1 -1
- package/dist/cjs/Popover/index.js +1 -1
- package/dist/cjs/Popover/index.js.map +1 -1
- package/dist/cjs/Popover/utils/usePopoverPosition.js.map +1 -1
- package/dist/cjs/Progress/index.js +1 -1
- package/dist/cjs/Progress/index.js.map +1 -1
- package/dist/cjs/RadioGroup/index.js +1 -1
- package/dist/cjs/RadioGroup/index.js.map +1 -1
- package/dist/cjs/RadioGroupSkeleton/index.js +1 -1
- package/dist/cjs/RadioGroupSkeleton/index.js.map +1 -1
- package/dist/cjs/Result/index.js +1 -1
- package/dist/cjs/Result/index.js.map +1 -1
- package/dist/cjs/ScrollButton/index.js +1 -1
- package/dist/cjs/ScrollButton/index.js.map +1 -1
- package/dist/cjs/ScrollButton/utils/useContainerPosition.js.map +1 -1
- package/dist/cjs/ScrollButton/utils/useVisibility.js.map +1 -1
- package/dist/cjs/Select/SelectList.js +3 -5
- package/dist/cjs/Select/SelectList.js.map +1 -1
- package/dist/cjs/Select/SelectToggle.js.map +1 -1
- package/dist/cjs/Select/index.js +1 -1
- package/dist/cjs/Select/index.js.map +1 -1
- package/dist/cjs/Select/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/Skeleton/index.js +1 -1
- package/dist/cjs/Skeleton/index.js.map +1 -1
- package/dist/cjs/Switch/index.js +1 -1
- package/dist/cjs/Switch/index.js.map +1 -1
- package/dist/cjs/SwitchSkeleton/index.js +1 -1
- package/dist/cjs/SwitchSkeleton/index.js.map +1 -1
- package/dist/cjs/Tag/index.js +1 -1
- package/dist/cjs/Tag/index.js.map +1 -1
- package/dist/cjs/TagLink/index.js +1 -1
- package/dist/cjs/TagLink/index.js.map +1 -1
- package/dist/cjs/TagList/index.js +1 -1
- package/dist/cjs/TagList/index.js.map +1 -1
- package/dist/cjs/TagListSkeleton/index.js +1 -1
- package/dist/cjs/TagListSkeleton/index.js.map +1 -1
- package/dist/cjs/TagSkeleton/index.js +1 -1
- package/dist/cjs/TagSkeleton/index.js.map +1 -1
- package/dist/cjs/TextArea/index.js +1 -1
- package/dist/cjs/TextArea/index.js.map +1 -1
- package/dist/cjs/TextAreaSkeleton/index.js +1 -1
- package/dist/cjs/TextAreaSkeleton/index.js.map +1 -1
- package/dist/cjs/ThemeSwitcher/index.js +1 -1
- package/dist/cjs/ThemeSwitcher/index.js.map +1 -1
- package/dist/cjs/YouTubeVideo/index.js +1 -1
- package/dist/cjs/YouTubeVideo/index.js.map +1 -1
- package/dist/cjs/emotion.d.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/message/AlertIcon.js.map +1 -1
- package/dist/cjs/message/Message.js.map +1 -1
- package/dist/cjs/message/index.js.map +1 -1
- package/dist/cjs/message/styles.js.map +1 -1
- package/dist/esm/Alert/index.js +1 -1
- package/dist/esm/Alert/index.js.map +1 -1
- package/dist/esm/Avatar/index.js +1 -1
- package/dist/esm/Avatar/index.js.map +1 -1
- package/dist/esm/Avatar/utils/nameToInitials.js.map +1 -1
- package/dist/esm/Avatar/utils/strToHue.js.map +1 -1
- package/dist/esm/AvatarSkeleton/index.js +1 -1
- package/dist/esm/AvatarSkeleton/index.js.map +1 -1
- package/dist/esm/Breadcrumb/index.js +1 -1
- package/dist/esm/Breadcrumb/index.js.map +1 -1
- package/dist/esm/BreadcrumbItem/index.js +1 -1
- package/dist/esm/BreadcrumbItem/index.js.map +1 -1
- package/dist/esm/Button/ButtonContent.js.map +1 -1
- package/dist/esm/Button/index.js +1 -1
- package/dist/esm/Button/index.js.map +1 -1
- package/dist/esm/Button/utils/useButtonColors.js.map +1 -1
- package/dist/esm/Checkbox/index.js +1 -1
- package/dist/esm/Checkbox/index.js.map +1 -1
- package/dist/esm/CheckboxSkeleton/index.js +1 -1
- package/dist/esm/CheckboxSkeleton/index.js.map +1 -1
- package/dist/esm/DatePicker/DatePickerCalendar.js +1 -1
- package/dist/esm/DatePicker/DatePickerCalendar.js.map +1 -1
- package/dist/esm/DatePicker/index.js +1 -1
- package/dist/esm/DatePicker/index.js.map +1 -1
- package/dist/esm/Drawer/index.js +1 -1
- package/dist/esm/Drawer/index.js.map +1 -1
- package/dist/esm/Form/FormConfigContext.js.map +1 -1
- package/dist/esm/Form/index.js +1 -1
- package/dist/esm/Form/index.js.map +1 -1
- package/dist/esm/FormDivider/index.js +1 -1
- package/dist/esm/FormDivider/index.js.map +1 -1
- package/dist/esm/FormItem/index.js +1 -1
- package/dist/esm/FormItem/index.js.map +1 -1
- package/dist/esm/FormItem/utils/firstChildHasType.js.map +1 -1
- package/dist/esm/GlobalStyles/index.js.map +1 -1
- package/dist/esm/GlobalStyles/resetStyles.js.map +1 -1
- package/dist/esm/GlobalStyles/typographyStyles.js.map +1 -1
- package/dist/esm/HeaderSkeleton/index.js +1 -1
- package/dist/esm/HeaderSkeleton/index.js.map +1 -1
- package/dist/esm/Image/index.js +1 -1
- package/dist/esm/Image/index.js.map +1 -1
- package/dist/esm/ImageSkeleton/index.js +1 -1
- package/dist/esm/ImageSkeleton/index.js.map +1 -1
- package/dist/esm/Input/index.js +1 -1
- package/dist/esm/Input/index.js.map +1 -1
- package/dist/esm/Input/utils/getFocusableElements.js.map +1 -1
- package/dist/esm/InputNumber/index.js +1 -1
- package/dist/esm/InputNumber/index.js.map +1 -1
- package/dist/esm/InputNumber/utils/defaultLocale.js.map +1 -1
- package/dist/esm/InputPassword/index.js +1 -1
- package/dist/esm/InputPassword/index.js.map +1 -1
- package/dist/esm/InputPassword/utils/defaultLocale.js.map +1 -1
- package/dist/esm/InputSearch/index.js +1 -1
- package/dist/esm/InputSearch/index.js.map +1 -1
- package/dist/esm/InputSearch/utils/defaultLocale.js.map +1 -1
- package/dist/esm/InputSkeleton/index.js +1 -1
- package/dist/esm/InputSkeleton/index.js.map +1 -1
- package/dist/esm/Layout/LayoutContext.js.map +1 -1
- package/dist/esm/Layout/index.js.map +1 -1
- package/dist/esm/Link/index.js +1 -1
- package/dist/esm/Link/index.js.map +1 -1
- package/dist/esm/LinkButton/index.js +1 -1
- package/dist/esm/LinkButton/index.js.map +1 -1
- package/dist/esm/List/WindowScroller.js.map +1 -1
- package/dist/esm/List/index.js +4 -6
- package/dist/esm/List/index.js.map +1 -1
- package/dist/esm/List/utils/bodyPointerEvents.js.map +1 -1
- package/dist/esm/List/utils/frameTimeout.js.map +1 -1
- package/dist/esm/List/utils/useRWLoadNext.js.map +1 -1
- package/dist/esm/ListItem/ListItemContent.js +1 -1
- package/dist/esm/ListItem/ListItemContent.js.map +1 -1
- package/dist/esm/ListItem/index.js +1 -1
- package/dist/esm/ListItem/index.js.map +1 -1
- package/dist/esm/ListItemLink/index.js +1 -1
- package/dist/esm/ListItemLink/index.js.map +1 -1
- package/dist/esm/ListSkeleton/index.js +1 -1
- package/dist/esm/ListSkeleton/index.js.map +1 -1
- package/dist/esm/LogoLink/index.js +1 -1
- package/dist/esm/LogoLink/index.js.map +1 -1
- package/dist/esm/Menu/index.js +1 -1
- package/dist/esm/Menu/index.js.map +1 -1
- package/dist/esm/Menu/utils/useFocusWithArrows.js.map +1 -1
- package/dist/esm/MenuDivider/index.js +1 -1
- package/dist/esm/MenuDivider/index.js.map +1 -1
- package/dist/esm/MenuGroup/index.js +1 -1
- package/dist/esm/MenuGroup/index.js.map +1 -1
- package/dist/esm/MenuItem/index.js +1 -1
- package/dist/esm/MenuItem/index.js.map +1 -1
- package/dist/esm/Modal/index.js +1 -1
- package/dist/esm/Modal/index.js.map +1 -1
- package/dist/esm/Modal/utils/defaultLocale.js.map +1 -1
- package/dist/esm/Navigation/index.js +1 -1
- package/dist/esm/Navigation/index.js.map +1 -1
- package/dist/esm/Navigation/utils/useScrollFlags.js.map +1 -1
- package/dist/esm/NavigationItem/index.js +1 -1
- package/dist/esm/NavigationItem/index.js.map +1 -1
- package/dist/esm/PageContent/index.js +1 -1
- package/dist/esm/PageContent/index.js.map +1 -1
- package/dist/esm/PageHeader/index.js +1 -1
- package/dist/esm/PageHeader/index.js.map +1 -1
- package/dist/esm/PageHeader/utils/defaultLocale.js.map +1 -1
- package/dist/esm/PageHeaderInputSearch/index.js +1 -1
- package/dist/esm/PageHeaderInputSearch/index.js.map +1 -1
- package/dist/esm/PageHeaderInputSearch/utils/defaultLocale.js.map +1 -1
- package/dist/esm/PageHeaderSkeleton/index.js +1 -1
- package/dist/esm/PageHeaderSkeleton/index.js.map +1 -1
- package/dist/esm/ParagraphSkeleton/index.js +1 -1
- package/dist/esm/ParagraphSkeleton/index.js.map +1 -1
- package/dist/esm/Popover/index.js +1 -1
- package/dist/esm/Popover/index.js.map +1 -1
- package/dist/esm/Popover/utils/usePopoverPosition.js.map +1 -1
- package/dist/esm/Progress/index.js +1 -1
- package/dist/esm/Progress/index.js.map +1 -1
- package/dist/esm/RadioGroup/index.js +1 -1
- package/dist/esm/RadioGroup/index.js.map +1 -1
- package/dist/esm/RadioGroupSkeleton/index.js +1 -1
- package/dist/esm/RadioGroupSkeleton/index.js.map +1 -1
- package/dist/esm/Result/index.js +1 -1
- package/dist/esm/Result/index.js.map +1 -1
- package/dist/esm/ScrollButton/index.js +1 -1
- package/dist/esm/ScrollButton/index.js.map +1 -1
- package/dist/esm/ScrollButton/utils/useContainerPosition.js.map +1 -1
- package/dist/esm/ScrollButton/utils/useVisibility.js.map +1 -1
- package/dist/esm/Select/SelectList.js +5 -7
- package/dist/esm/Select/SelectList.js.map +1 -1
- package/dist/esm/Select/SelectToggle.js.map +1 -1
- package/dist/esm/Select/index.js +1 -1
- package/dist/esm/Select/index.js.map +1 -1
- package/dist/esm/Select/utils/defaultLocale.js.map +1 -1
- package/dist/esm/Skeleton/index.js +1 -1
- package/dist/esm/Skeleton/index.js.map +1 -1
- package/dist/esm/Switch/index.js +1 -1
- package/dist/esm/Switch/index.js.map +1 -1
- package/dist/esm/SwitchSkeleton/index.js +1 -1
- package/dist/esm/SwitchSkeleton/index.js.map +1 -1
- package/dist/esm/Tag/index.js +1 -1
- package/dist/esm/Tag/index.js.map +1 -1
- package/dist/esm/TagLink/index.js +1 -1
- package/dist/esm/TagLink/index.js.map +1 -1
- package/dist/esm/TagList/index.js +1 -1
- package/dist/esm/TagList/index.js.map +1 -1
- package/dist/esm/TagListSkeleton/index.js +1 -1
- package/dist/esm/TagListSkeleton/index.js.map +1 -1
- package/dist/esm/TagSkeleton/index.js +1 -1
- package/dist/esm/TagSkeleton/index.js.map +1 -1
- package/dist/esm/TextArea/index.js +1 -1
- package/dist/esm/TextArea/index.js.map +1 -1
- package/dist/esm/TextAreaSkeleton/index.js +1 -1
- package/dist/esm/TextAreaSkeleton/index.js.map +1 -1
- package/dist/esm/ThemeSwitcher/index.js +1 -1
- package/dist/esm/ThemeSwitcher/index.js.map +1 -1
- package/dist/esm/YouTubeVideo/index.js +1 -1
- package/dist/esm/YouTubeVideo/index.js.map +1 -1
- package/dist/esm/emotion.d.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/message/AlertIcon.js.map +1 -1
- package/dist/esm/message/Message.js.map +1 -1
- package/dist/esm/message/index.js.map +1 -1
- package/dist/esm/message/styles.js.map +1 -1
- package/dist/types/AvatarSkeleton/index.d.ts +1 -1
- package/dist/types/AvatarSkeleton/index.d.ts.map +1 -1
- package/dist/types/Button/index.d.ts +2 -2
- package/dist/types/Button/index.d.ts.map +1 -1
- package/dist/types/CheckboxSkeleton/index.d.ts +1 -1
- package/dist/types/CheckboxSkeleton/index.d.ts.map +1 -1
- package/dist/types/ImageSkeleton/index.d.ts +1 -1
- package/dist/types/ImageSkeleton/index.d.ts.map +1 -1
- package/dist/types/Input/index.d.ts +4 -3
- package/dist/types/Input/index.d.ts.map +1 -1
- package/dist/types/InputSkeleton/index.d.ts +1 -1
- package/dist/types/InputSkeleton/index.d.ts.map +1 -1
- package/dist/types/LinkButton/index.d.ts +268 -1
- package/dist/types/LinkButton/index.d.ts.map +1 -1
- package/dist/types/List/index.d.ts.map +1 -1
- package/dist/types/ListItem/ListItemContent.d.ts +2 -2
- package/dist/types/ListItem/index.d.ts +2 -2
- package/dist/types/ListItem/index.d.ts.map +1 -1
- package/dist/types/ListItemLink/index.d.ts +1 -1
- package/dist/types/ListItemLink/index.d.ts.map +1 -1
- package/dist/types/MenuDivider/index.d.ts +1 -1
- package/dist/types/MenuDivider/index.d.ts.map +1 -1
- package/dist/types/Modal/index.d.ts +3 -2
- package/dist/types/Modal/index.d.ts.map +1 -1
- package/dist/types/PageHeader/index.d.ts +1 -1
- package/dist/types/ScrollButton/utils/useContainerPosition.d.ts +1 -1
- package/dist/types/ScrollButton/utils/useContainerPosition.d.ts.map +1 -1
- package/dist/types/Select/SelectList.d.ts.map +1 -1
- package/dist/types/Select/SelectToggle.d.ts +7 -6
- package/dist/types/Select/SelectToggle.d.ts.map +1 -1
- package/dist/types/Select/index.d.ts +5 -2
- package/dist/types/Select/index.d.ts.map +1 -1
- package/dist/types/SwitchSkeleton/index.d.ts +1 -1
- package/dist/types/SwitchSkeleton/index.d.ts.map +1 -1
- package/dist/types/Tag/index.d.ts +4 -4
- package/dist/types/Tag/index.d.ts.map +1 -1
- package/dist/types/TagLink/index.d.ts +1 -1
- package/dist/types/TagLink/index.d.ts.map +1 -1
- package/dist/types/TextAreaSkeleton/index.d.ts +1 -1
- package/dist/types/TextAreaSkeleton/index.d.ts.map +1 -1
- package/dist/types/ThemeSwitcher/index.d.ts +268 -1
- package/dist/types/ThemeSwitcher/index.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useVisibility.js","names":["useVisibility","container","scrollTo","minOffset","useState","visible","setVisible","updateVisibility","useCallback","offset","window","scrollY","document","body","scrollHeight","innerHeight","containerElement","Element","current","scrollTop","clientHeight","useBrowserLayoutEffect","useEvent","undefined"],"sources":["../../../../src/ScrollButton/utils/useVisibility.ts"],"sourcesContent":["import { RefObject, useCallback, useState } from 'react';\nimport { useEvent, useBrowserLayoutEffect } from '@os-design/utils';\n\ninterface UseVisibilityProps {\n container?: Element | RefObject<Element>;\n scrollTo: 'top' | 'bottom';\n minOffset: number;\n}\n\n/**\n * Controls the visibility of the button.\n */\nconst useVisibility = ({\n container,\n scrollTo,\n minOffset,\n}: UseVisibilityProps): boolean => {\n const [visible, setVisible] = useState(false);\n\n // Update the visibility of the button when the user scrolls the container\n const updateVisibility = useCallback(() => {\n let offset = 0;\n\n if (!container) {\n offset =\n scrollTo === 'top'\n ? window.scrollY\n : document.body.scrollHeight - window.scrollY - window.innerHeight;\n } else {\n const containerElement =\n container instanceof Element ? container : container.current;\n if (containerElement === null) return;\n\n offset =\n scrollTo === 'top'\n ? containerElement.scrollTop\n : containerElement.scrollHeight -\n containerElement.scrollTop -\n containerElement.clientHeight;\n }\n\n setVisible(offset >= minOffset);\n }, [container, scrollTo, minOffset]);\n\n useBrowserLayoutEffect(() => updateVisibility(), [updateVisibility]);\n useEvent(\n container ||\n ((typeof window !== 'undefined' ? window : undefined) as EventTarget),\n 'scroll',\n updateVisibility\n );\n\n return visible;\n};\n\nexport default useVisibility;\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;;;;;AAQA;AACA;AACA;AACA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAIa;EAAA,IAHjCC,SAGiC,QAHjCA,SAGiC;EAAA,IAFjCC,QAEiC,QAFjCA,QAEiC;EAAA,IADjCC,SACiC,QADjCA,SACiC;;EACjC,gBAA8B,IAAAC,eAAA,EAAS,KAAT,CAA9B;EAAA;EAAA,IAAOC,OAAP;EAAA,IAAgBC,UAAhB,iBADiC,CAGjC;;;EACA,IAAMC,gBAAgB,GAAG,IAAAC,kBAAA,EAAY,YAAM;IACzC,IAAIC,MAAM,GAAG,CAAb;;IAEA,IAAI,CAACR,SAAL,EAAgB;MACdQ,MAAM,GACJP,QAAQ,KAAK,KAAb,GACIQ,MAAM,CAACC,OADX,GAEIC,QAAQ,CAACC,IAAT,CAAcC,YAAd,GAA6BJ,MAAM,CAACC,OAApC,GAA8CD,MAAM,CAACK,WAH3D;IAID,CALD,MAKO;MACL,IAAMC,gBAAgB,GACpBf,SAAS,YAAYgB,OAArB,GAA+BhB,SAA/B,GAA2CA,SAAS,CAACiB,OADvD;MAEA,IAAIF,gBAAgB,KAAK,IAAzB,EAA+B;MAE/BP,MAAM,GACJP,QAAQ,KAAK,KAAb,GACIc,gBAAgB,CAACG,SADrB,GAEIH,gBAAgB,CAACF,YAAjB,GACAE,gBAAgB,CAACG,SADjB,GAEAH,gBAAgB,CAACI,YALvB;IAMD;;IAEDd,UAAU,CAACG,MAAM,IAAIN,SAAX,CAAV;EACD,CAtBwB,EAsBtB,CAACF,SAAD,EAAYC,QAAZ,EAAsBC,SAAtB,CAtBsB,CAAzB;EAwBA,IAAAkB,6BAAA,EAAuB;IAAA,OAAMd,gBAAgB,EAAtB;EAAA,CAAvB,EAAiD,CAACA,gBAAD,CAAjD;EACA,IAAAe,eAAA,EACErB,SAAS,KACL,OAAOS,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCa,SADpC,CADX,EAGE,QAHF,EAIEhB,gBAJF;EAOA,OAAOF,OAAP;AACD,CAzCD;;eA2CeL,a"}
|
|
@@ -32,7 +32,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
32
32
|
|
|
33
33
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
34
34
|
|
|
35
|
-
function _extends() { _extends = Object.assign
|
|
35
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
36
36
|
|
|
37
37
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
38
38
|
|
|
@@ -108,20 +108,18 @@ var SelectList = function SelectList(_ref) {
|
|
|
108
108
|
maxSelectedItems: maxSelectedItems
|
|
109
109
|
}); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
110
|
|
|
111
|
-
var InnerElement =
|
|
111
|
+
var InnerElement = (0, _react.useCallback)(function (_ref2) {
|
|
112
112
|
var style = _ref2.style,
|
|
113
113
|
innerElementRest = _objectWithoutProperties(_ref2, _excluded);
|
|
114
114
|
|
|
115
115
|
return /*#__PURE__*/_react["default"].createElement("div", _extends({
|
|
116
|
-
ref: innerElementRef,
|
|
117
116
|
style: _objectSpread(_objectSpread({}, style), {}, {
|
|
118
117
|
height: "".concat(parseFloat(style.height) + paddingTop + paddingBottom, "px")
|
|
119
118
|
}),
|
|
120
119
|
role: "listbox",
|
|
121
120
|
id: id
|
|
122
121
|
}, innerElementRest));
|
|
123
|
-
});
|
|
124
|
-
InnerElement.displayName = 'InnerElement';
|
|
122
|
+
}, [id, paddingBottom, paddingTop]);
|
|
125
123
|
var listItemFn = (0, _react.useCallback)(function (_ref3) {
|
|
126
124
|
var index = _ref3.index,
|
|
127
125
|
style = _ref3.style;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Select/SelectList.tsx"],"names":["SelectList","searchVisible","options","visibleCount","overscanCount","threshold","onLoadNext","maxSelectedItems","containerRef","value","onChange","id","size","windowSize","isMinXs","fontSize","document","body","theme","scaleFactor","s","includes","sizes","Number","replace","paddingBottom","paddingEm","menuPaddingVertical","modalBodyPaddingVertical","paddingTop","searchInputHeight","baseHeight","itemSize","menuItemHeight","height","maxHeight","modalHeaderHeight","curHeight","length","count","scrollHandler","itemCount","onSelect","InnerElement","innerElementRef","style","innerElementRest","parseFloat","displayName","listItemFn","index","optionTitle","title","optionValue","optionOnClick","onClick","restOption","top","toString","e","current","focus","scrollOffset"],"mappings":"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","sourcesContent":["import React, { forwardRef, RefObject, useCallback, useMemo } from 'react';\nimport { FixedSizeList } from 'react-window';\nimport { useFontSize, useSize } from '@os-design/utils';\nimport { useTheme } from '@os-design/theming';\nimport { useIsMinWidth } from '@os-design/media';\nimport { WithSize } from '@os-design/styles';\nimport { useSelectHandler } from '@os-design/menu-utils';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\n\nexport interface OptionProps extends MenuItemProps {\n title?: string;\n}\n\ninterface SelectListProps extends WithSize {\n searchVisible: boolean;\n options: OptionProps[];\n visibleCount: number;\n overscanCount: number;\n threshold: number;\n onLoadNext: () => void;\n maxSelectedItems: number | 'all';\n containerRef: RefObject<HTMLDivElement>;\n value?: string[];\n onChange?: (value: string[]) => void;\n id?: string;\n}\n\nconst SelectList: React.FC<SelectListProps> = ({\n searchVisible,\n options,\n visibleCount,\n overscanCount,\n threshold,\n onLoadNext,\n maxSelectedItems,\n containerRef,\n value,\n onChange = () => {},\n id,\n size,\n}) => {\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight = options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count = options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n const onSelect = useSelectHandler({\n value: value || [],\n onChange,\n maxSelectedItems,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = forwardRef<HTMLDivElement, any>(\n ({ style, ...innerElementRest }, innerElementRef) => (\n <div\n ref={innerElementRef}\n style={{\n ...style,\n height: `${parseFloat(style.height) + paddingTop + paddingBottom}px`,\n }}\n role='listbox'\n id={id}\n {...innerElementRest}\n />\n )\n );\n InnerElement.displayName = 'InnerElement';\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={(value || []).includes(optionValue || '')}\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if the max number of selected items equals 1\n // and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && maxSelectedItems === 1) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={(value || []).includes(optionValue || '')}\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, maxSelectedItems, onSelect, options, paddingTop, value]\n );\n\n return (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n );\n};\n\nSelectList.displayName = 'SelectList';\n\nexport default SelectList;\n"],"file":"SelectList.js"}
|
|
1
|
+
{"version":3,"file":"SelectList.js","names":["SelectList","searchVisible","options","visibleCount","overscanCount","threshold","onLoadNext","maxSelectedItems","containerRef","value","onChange","id","size","windowSize","useSize","isMinXs","useIsMinWidth","fontSize","useFontSize","document","body","useTheme","theme","scaleFactor","useMemo","s","includes","sizes","Number","replace","paddingBottom","paddingEm","menuPaddingVertical","modalBodyPaddingVertical","paddingTop","searchInputHeight","baseHeight","itemSize","menuItemHeight","height","maxHeight","modalHeaderHeight","curHeight","length","count","scrollHandler","useRWLoadNext","itemCount","onSelect","useSelectHandler","InnerElement","useCallback","style","innerElementRest","parseFloat","listItemFn","index","optionTitle","title","optionValue","optionOnClick","onClick","restOption","top","toString","e","current","focus","scrollOffset","displayName"],"sources":["../../../src/Select/SelectList.tsx"],"sourcesContent":["import React, { RefObject, useCallback, useMemo } from 'react';\nimport { FixedSizeList } from 'react-window';\nimport { useFontSize, useSize } from '@os-design/utils';\nimport { useTheme } from '@os-design/theming';\nimport { useIsMinWidth } from '@os-design/media';\nimport { WithSize } from '@os-design/styles';\nimport { useSelectHandler } from '@os-design/menu-utils';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\n\nexport interface OptionProps extends MenuItemProps {\n title?: string;\n}\n\ninterface SelectListProps extends WithSize {\n searchVisible: boolean;\n options: OptionProps[];\n visibleCount: number;\n overscanCount: number;\n threshold: number;\n onLoadNext: () => void;\n maxSelectedItems: number | 'all';\n containerRef: RefObject<HTMLDivElement>;\n value?: string[];\n onChange?: (value: string[]) => void;\n id?: string;\n}\n\nconst SelectList: React.FC<SelectListProps> = ({\n searchVisible,\n options,\n visibleCount,\n overscanCount,\n threshold,\n onLoadNext,\n maxSelectedItems,\n containerRef,\n value,\n onChange = () => {},\n id,\n size,\n}) => {\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight = options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count = options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n const onSelect = useSelectHandler({\n value: value || [],\n onChange,\n maxSelectedItems,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${parseFloat(style.height) + paddingTop + paddingBottom}px`,\n }}\n role='listbox'\n id={id}\n {...innerElementRest}\n />\n ),\n [id, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={(value || []).includes(optionValue || '')}\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if the max number of selected items equals 1\n // and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && maxSelectedItems === 1) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={(value || []).includes(optionValue || '')}\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, maxSelectedItems, onSelect, options, paddingTop, value]\n );\n\n return (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n );\n};\n\nSelectList.displayName = 'SelectList';\n\nexport default SelectList;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Select/SelectToggle.tsx"],"names":["Placeholder","styled","span","p","theme","inputColorPlaceholder","ellipsisStyles","unborderedTitleStyles","unbordered","css","disabled","colorPrimary","disabledStyles","inputDisabledColorText","Title","colorText","ListItem","Tag","selectToggleListItemHeight","List","div","selectToggleListItemGap","DeleteButton","button","resetButtonStyles","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","unborderedIconContainerStyles","IconContainer","inputPaddingHorizontal","selectColorIcon","ClearButtonContainer","ClearIcon","CloseCircle","SelectToggle","selectedItems","onDelete","onClear","opened","multiple","placeholder","loading","clearVisible","locale","renderContent","length","map","title","value","e","stopPropagation","deleteLabel","undefined","icon","key","clearLabel","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport styled from '@emotion/styled';\nimport { Up, Down, Loading, Close, CloseCircle } from '@os-design/icons';\nimport {\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\nimport { css } from '@emotion/react';\nimport Tag from '../Tag';\nimport Button from '../Button';\nimport { SelectLocale } from './utils/defaultLocale';\n\ninterface SelectToggleProps {\n selectedItems: Array<{ title: string; value: string }>;\n onDelete: (value: string) => void;\n onClear: () => void;\n opened: boolean;\n multiple: boolean;\n placeholder?: string;\n unbordered?: boolean;\n loading?: boolean;\n disabled?: boolean;\n clearVisible?: boolean;\n locale: SelectLocale;\n}\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst unborderedTitleStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectToggleProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${unborderedTitleStyles};\n ${disabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ListItemProps = Pick<SelectToggleProps, 'disabled'>;\nconst ListItem = styled(Tag, omitEmotionProps('disabled'))<ListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${disabledStyles};\n`;\n\nconst List = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst unborderedIconContainerStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface IconContainerProps {\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const IconContainer = styled(\n 'span',\n omitEmotionProps('unbordered', 'disabled')\n)<IconContainerProps>`\n position: absolute;\n top: 0;\n right: ${(p) => p.theme.inputPaddingHorizontal}em;\n bottom: 0;\n\n display: flex;\n align-items: center;\n color: ${(p) => clr(p.theme.selectColorIcon)};\n\n ${unborderedIconContainerStyles};\n`;\n\nexport const ClearButtonContainer = styled(IconContainer)`\n right: 0;\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\nconst SelectToggle: React.FC<SelectToggleProps> = ({\n selectedItems,\n onDelete,\n onClear,\n opened,\n unbordered,\n multiple,\n placeholder,\n loading,\n disabled,\n clearVisible,\n locale,\n}) => {\n const renderContent = useCallback(() => {\n if (selectedItems.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n if (multiple) {\n return (\n <List>\n {selectedItems.map(({ title, value }) => (\n <ListItem\n key={value}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(value);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ListItem>\n ))}\n </List>\n );\n }\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {selectedItems[0].title}\n </Title>\n );\n }, [\n selectedItems,\n multiple,\n disabled,\n unbordered,\n placeholder,\n locale.deleteLabel,\n onDelete,\n ]);\n\n const icon = useMemo(() => {\n if (loading) return <Loading />;\n return opened ? <Up /> : <Down />;\n }, [loading, opened]);\n\n return (\n <>\n {renderContent()}\n {clearVisible && selectedItems.length > 0 ? (\n <ClearButtonContainer unbordered={unbordered} disabled={disabled}>\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n onClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') onClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n </ClearButtonContainer>\n ) : (\n <IconContainer unbordered={unbordered} disabled={disabled}>\n {icon}\n </IconContainer>\n )}\n </>\n );\n};\n\nSelectToggle.displayName = 'SelectToggle';\n\nexport default SelectToggle;\n"],"file":"SelectToggle.js"}
|
|
1
|
+
{"version":3,"file":"SelectToggle.js","names":["Placeholder","styled","span","p","clr","theme","inputColorPlaceholder","ellipsisStyles","unborderedTitleStyles","unbordered","css","disabled","colorPrimary","disabledStyles","inputDisabledColorText","Title","omitEmotionProps","colorText","ListItem","Tag","selectToggleListItemHeight","List","div","selectToggleListItemGap","DeleteButton","button","resetButtonStyles","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","transitionStyles","unborderedIconContainerStyles","IconContainer","inputPaddingHorizontal","selectColorIcon","ClearButtonContainer","ClearIcon","CloseCircle","SelectToggle","selectedItems","onDelete","onClear","opened","multiple","placeholder","loading","clearVisible","locale","renderContent","useCallback","length","map","title","value","e","stopPropagation","deleteLabel","undefined","icon","useMemo","key","clearLabel","displayName"],"sources":["../../../src/Select/SelectToggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport styled from '@emotion/styled';\nimport { Up, Down, Loading, Close, CloseCircle } from '@os-design/icons';\nimport {\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\nimport { css } from '@emotion/react';\nimport Tag from '../Tag';\nimport Button from '../Button';\nimport { SelectLocale } from './utils/defaultLocale';\n\ninterface SelectToggleProps {\n selectedItems: Array<{ title: string; value: string }>;\n onDelete: (value: string) => void;\n onClear: () => void;\n opened: boolean;\n multiple: boolean;\n placeholder?: string;\n unbordered?: boolean;\n loading?: boolean;\n disabled?: boolean;\n clearVisible?: boolean;\n locale: SelectLocale;\n}\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst unborderedTitleStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectToggleProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${unborderedTitleStyles};\n ${disabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ListItemProps = Pick<SelectToggleProps, 'disabled'>;\nconst ListItem = styled(Tag, omitEmotionProps('disabled'))<ListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${disabledStyles};\n`;\n\nconst List = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst unborderedIconContainerStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface IconContainerProps {\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const IconContainer = styled(\n 'span',\n omitEmotionProps('unbordered', 'disabled')\n)<IconContainerProps>`\n position: absolute;\n top: 0;\n right: ${(p) => p.theme.inputPaddingHorizontal}em;\n bottom: 0;\n\n display: flex;\n align-items: center;\n color: ${(p) => clr(p.theme.selectColorIcon)};\n\n ${unborderedIconContainerStyles};\n`;\n\nexport const ClearButtonContainer = styled(IconContainer)`\n right: 0;\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\nconst SelectToggle: React.FC<SelectToggleProps> = ({\n selectedItems,\n onDelete,\n onClear,\n opened,\n unbordered,\n multiple,\n placeholder,\n loading,\n disabled,\n clearVisible,\n locale,\n}) => {\n const renderContent = useCallback(() => {\n if (selectedItems.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n if (multiple) {\n return (\n <List>\n {selectedItems.map(({ title, value }) => (\n <ListItem\n key={value}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(value);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ListItem>\n ))}\n </List>\n );\n }\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {selectedItems[0].title}\n </Title>\n );\n }, [\n selectedItems,\n multiple,\n disabled,\n unbordered,\n placeholder,\n locale.deleteLabel,\n onDelete,\n ]);\n\n const icon = useMemo(() => {\n if (loading) return <Loading />;\n return opened ? <Up /> : <Down />;\n }, [loading, opened]);\n\n return (\n <>\n {renderContent()}\n {clearVisible && selectedItems.length > 0 ? (\n <ClearButtonContainer unbordered={unbordered} disabled={disabled}>\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n onClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') onClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n </ClearButtonContainer>\n ) : (\n <IconContainer unbordered={unbordered} disabled={disabled}>\n {icon}\n </IconContainer>\n )}\n </>\n );\n};\n\nSelectToggle.displayName = 'SelectToggle';\n\nexport default SelectToggle;\n"],"mappings":"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"}
|
package/dist/cjs/Select/index.js
CHANGED
|
@@ -43,7 +43,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
43
43
|
|
|
44
44
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
45
45
|
|
|
46
|
-
function _extends() { _extends = Object.assign
|
|
46
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
47
47
|
|
|
48
48
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
49
49
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Select/index.tsx"],"names":["paddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","css","inputPaddingHorizontal","openedStyles","opened","unbordered","inputFocusColorBorder","inputFocusColorShadow","unborderedStyles","unborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","InputContainer","SelectMenu","Menu","m","min","xs","width","NotFound","styled","div","menuItemHeight","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","Select","ref","options","placeholder","searchVisible","searchProps","notFoundText","loading","clearVisible","threshold","visibleCount","overscanCount","maxSelectedItems","locale","defaultLocale","value","defaultValue","onChange","onLoadNext","size","placement","rest","containerRef","mergedContainerRef","setWidth","inputSearchContainerRef","setOpened","forwardedValue","setForwardedValue","resizeHandler","window","requestAnimationFrame","current","nextWidth","getBoundingClientRect","undefined","setAttribute","selectedItems","map","v","option","find","item","title","listBoxId","Math","random","toString","slice","e","includes","key","preventDefault","filter","focus","length","displayName"],"mappings":";;;;;;;;;AAAA;;AAOA;;AACA;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAAO;AAC3B,MAAMC,eAAe,GACnB,CAACD,CAAC,CAACE,KAAF,CAAQC,UAAR,GAAqBH,CAAC,CAACE,KAAF,CAAQE,0BAA9B,IAA4D,CAD9D;AAGA,aAAOC,WAAP,oJACkBJ,eADlB,EAEWA,eAFX,EAEuCD,CAAC,CAACE,KAAF,CAAQI,sBAF/C;AAID,CARD;;AAUA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACP,CAAD;AAAA,SACnBA,CAAC,CAACQ,MAAF,IACA,CAACR,CAAC,CAACS,UADH,QAEAJ,WAFA,0IAGkB,kBAAIL,CAAC,CAACE,KAAF,CAAQQ,qBAAZ,CAHlB,EAI6B,kBAAIV,CAAC,CAACE,KAAF,CAAQS,qBAAZ,CAJ7B,CADmB;AAAA,CAArB;;AAQA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACZ,CAAD;AAAA,SACvBA,CAAC,CAACS,UAAF,QACAJ,WADA,qKAKI,8BAAiB,kBAAjB,EAAqCL,CAArC,CALJ,CADuB;AAAA,CAAzB;;AASA,IAAMa,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACb,CAAD;AAAA,SAC5BA,CAAC,CAACS,UAAF,IACA,CAACT,CAAC,CAACc,QADH,QAEAT,WAFA,4LAM0B,kBAAIL,CAAC,CAACE,KAAF,CAAQa,uBAAZ,CAN1B,CAD4B;AAAA,CAA9B;;AAiBO,IAAMC,eAAe,GAAG,wBAC7BC,qBAD6B,EAE7B,6BAAiB,QAAjB,EAA2B,YAA3B,EAAyC,UAAzC,CAF6B,CAAH,mQAIhB,UAACjB,CAAD;AAAA,SAAQ,CAACA,CAAC,CAACc,QAAH,GAAc,SAAd,GAA0B,aAAlC;AAAA,CAJgB,EAWZ,UAACd,CAAD;AAAA,SAAOA,CAAC,CAACE,KAAF,CAAQC,UAAf;AAAA,CAXY,EAaxBJ,aAbwB,EAcxBQ,YAdwB,EAexBK,gBAfwB,EAgBxBC,qBAhBwB,CAArB;;AAsBP,IAAMK,UAAU,GAAG,wBAAOC,gBAAP,EAAa,6BAAiB,OAAjB,CAAb,CAAH,8KAKZC,SAAEC,GAAF,CAAMC,EALM,EAMH,UAACtB,CAAD;AAAA,SAAOA,CAAC,CAACuB,KAAT;AAAA,CANG,CAAhB;;AAUA,IAAMC,QAAQ,GAAGC,mBAAOC,GAAV,+KACF,UAAC1B,CAAD;AAAA,SAAOA,CAAC,CAACE,KAAF,CAAQyB,cAAf;AAAA,CADE,EAKC,UAAC3B,CAAD;AAAA,SAAOA,CAAC,CAACE,KAAF,CAAQI,sBAAf;AAAA,CALD,EAMH,UAACN,CAAD;AAAA,SAAO,kBAAIA,CAAC,CAACE,KAAF,CAAQ0B,uBAAZ,CAAP;AAAA,CANG,CAAd;;AASA,IAAMC,oBAAoB,GAAGJ,mBAAOC,GAAV,4GACb,UAAC1B,CAAD;AAAA,SAAOA,CAAC,CAACE,KAAF,CAAQ4B,mBAAf;AAAA,CADa,EAEpB,UAAC9B,CAAD;AAAA,SAAOA,CAAC,CAACE,KAAF,CAAQI,sBAAf;AAAA,CAFoB,CAA1B;AAKA;AACA;AACA;;;AACA,IAAMyB,MAAM,gBAAG,uBACb,gBAwBEC,GAxBF,EAyBK;AAAA,0BAvBDC,OAuBC;AAAA,MAvBDA,OAuBC,6BAvBS,EAuBT;AAAA,MAtBDC,WAsBC,QAtBDA,WAsBC;AAAA,gCArBDC,aAqBC;AAAA,MArBDA,aAqBC,mCArBe,KAqBf;AAAA,8BApBDC,WAoBC;AAAA,MApBDA,WAoBC,iCApBa,EAoBb;AAAA,+BAnBDC,YAmBC;AAAA,MAnBDA,YAmBC,kCAnBc,WAmBd;AAAA,6BAlBD5B,UAkBC;AAAA,MAlBDA,UAkBC,gCAlBY,KAkBZ;AAAA,0BAjBD6B,OAiBC;AAAA,MAjBDA,OAiBC,6BAjBS,KAiBT;AAAA,2BAhBDxB,QAgBC;AAAA,MAhBDA,QAgBC,8BAhBU,KAgBV;AAAA,+BAfDyB,YAeC;AAAA,MAfDA,YAeC,kCAfc,KAed;AAAA,4BAdDC,SAcC;AAAA,MAdDA,SAcC,+BAdW,EAcX;AAAA,+BAbDC,YAaC;AAAA,MAbDA,YAaC,kCAbc,CAad;AAAA,gCAZDC,aAYC;AAAA,MAZDA,aAYC,mCAZe,EAYf;AAAA,mCAXDC,gBAWC;AAAA,MAXDA,gBAWC,sCAXkB,CAWlB;AAAA,yBAVDC,MAUC;AAAA,MAVDA,MAUC,4BAVQC,yBAUR;AAAA,MATDC,KASC,QATDA,KASC;AAAA,MARDC,YAQC,QARDA,YAQC;AAAA,MAPDC,QAOC,QAPDA,QAOC;AAAA,6BANDC,UAMC;AAAA,MANDA,UAMC,gCANY,YAAM,CAAE,CAMpB;AAAA,MALDC,IAKC,QALDA,IAKC;AAAA,MAJDC,SAIC,QAJDA,SAIC;AAAA,MAHEC,IAGF;;AACH,yBAA2C,4BAAgBpB,GAAhB,CAA3C;AAAA;AAAA,MAAOqB,YAAP;AAAA,MAAqBC,kBAArB;;AACA,kBAA0B,qBAAS,CAAT,CAA1B;AAAA;AAAA,MAAO/B,KAAP;AAAA,MAAcgC,QAAd;;AACA,MAAMC,uBAAuB,GAAG,mBAAuB,IAAvB,CAAhC;;AACA,mBAA4B,qBAAS,KAAT,CAA5B;AAAA;AAAA,MAAOhD,MAAP;AAAA,MAAeiD,SAAf;;AACA,2BAA4C,8BAAkB;AAC5DX,IAAAA,KAAK,EAALA,KAD4D;AAE5DC,IAAAA,YAAY,EAAZA,YAF4D;AAG5DC,IAAAA,QAAQ,EAARA;AAH4D,GAAlB,CAA5C;AAAA;AAAA,MAAOU,cAAP;AAAA,MAAuBC,iBAAvB;AAMA;AACJ;AACA;AACA;;;AACI,MAAMC,aAAa,GAAG,wBAAY,YAAM;AACtCC,IAAAA,MAAM,CAACC,qBAAP,CAA6B,YAAM;AACjC,UAAI,CAACtD,MAAD,IAAW,CAAC6C,YAAY,CAACU,OAA7B,EAAsC;AACtC,UAAMC,SAAS,GAAGX,YAAY,CAACU,OAAb,CAAqBE,qBAArB,GAA6C1C,KAA/D;AACA,UAAIA,KAAK,KAAKyC,SAAd,EAAyB;AACzBT,MAAAA,QAAQ,CAACS,SAAD,CAAR;AACD,KALD;AAMD,GAPqB,EAOnB,CAACxD,MAAD,EAAS6C,YAAT,EAAuB9B,KAAvB,CAPmB,CAAtB;AAQA,qCAAuB;AAAA,WAAMqC,aAAa,EAAnB;AAAA,GAAvB,EAA8C,CAACA,aAAD,CAA9C;AACA,gCAAkBP,YAAlB,EAAgCO,aAAhC;AACA,uBACG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCK,SAD5C,EAEE,QAFF,EAGEN,aAHF,EAzBG,CA+BH;;AACA,qCAAuB,YAAM;AAC3B,QAAI,CAACP,YAAY,CAACU,OAAlB,EAA2B;AAC3BV,IAAAA,YAAY,CAACU,OAAb,CAAqBI,YAArB,CAAkC,eAAlC,EAAmD,SAAnD;AACD,GAHD,EAGG,EAHH;AAKA,MAAMC,aAAa,GAAG,oBACpB;AAAA,WACE,CAACV,cAAc,IAAI,EAAnB,EAAuBW,GAAvB,CAA2B,UAACC,CAAD,EAAO;AAChC,UAAMC,MAAM,GAAG,CAACtC,OAAO,IAAI,EAAZ,EAAgBuC,IAAhB,CAAqB,UAACC,IAAD;AAAA,eAAUA,IAAI,CAAC3B,KAAL,KAAewB,CAAzB;AAAA,OAArB,CAAf;AACA,aAAO;AAAEI,QAAAA,KAAK,EAAEH,MAAM,GAAGA,MAAM,CAACG,KAAP,IAAgB,EAAnB,GAAwB,EAAvC;AAA2C5B,QAAAA,KAAK,EAAEwB;AAAlD,OAAP;AACD,KAHD,CADF;AAAA,GADoB,EAMpB,CAACZ,cAAD,EAAiBzB,OAAjB,CANoB,CAAtB;AASA,MAAM0C,SAAS,GAAG,oBAChB;AAAA,6BAAiBC,IAAI,CAACC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,KAA3B,CAAiC,CAAjC,EAAoC,EAApC,CAAjB;AAAA,GADgB,EAEhB,EAFgB,CAAlB;AAKA,sBACE,+EACE,gCAAC,eAAD;AACE,IAAA,MAAM,EAAEvE,MADV;AAEE,IAAA,UAAU,EAAEC,UAFd;AAGE,IAAA,QAAQ,EAAEK,QAHZ;AAIE,IAAA,IAAI,EAAEoC,IAJR;AAKE,IAAA,QAAQ,EAAE,CAACpC,QAAD,GAAY,CAAZ,GAAgB,CAAC,CAL7B;AAME,IAAA,OAAO,EAAE,mBAAM;AACb,UAAIA,QAAJ,EAAc;AACd2C,MAAAA,SAAS,CAAC,CAACjD,MAAF,CAAT;AACD,KATH;AAUE,IAAA,SAAS,EAAE,mBAACwE,CAAD,EAAO;AAChB,UAAIlE,QAAJ,EAAc;;AACd,UAAI,CAAC,OAAD,EAAU,GAAV,EAAemE,QAAf,CAAwBD,CAAC,CAACE,GAA1B,CAAJ,EAAoC;AAClCzB,QAAAA,SAAS,CAAC,CAACjD,MAAF,CAAT;AACAwE,QAAAA,CAAC,CAACG,cAAF;AACD;AACF,KAhBH;AAiBE,IAAA,WAAW,EAAE,qBAACH,CAAD;AAAA,aAAOA,CAAC,CAACG,cAAF,EAAP;AAAA,KAjBf;AAkBE,IAAA,IAAI,EAAC,UAlBP;AAmBE,qBAAerE,QAnBjB;AAoBE,iBAAWwB,OApBb;AAqBE,qBAAc,SArBhB;AAsBE,iBAAWqC;AAtBb,KAuBMvB,IAvBN;AAwBE,IAAA,GAAG,EAAEE;AAxBP,mBA0BE,gCAAC,wBAAD;AACE,IAAA,aAAa,EAAEc,aADjB;AAEE,IAAA,QAAQ,EAAE,kBAACE,CAAD;AAAA,aACRX,iBAAiB,CACf,CAACD,cAAc,IAAI,EAAnB,EAAuB0B,MAAvB,CAA8B,UAACX,IAAD;AAAA,eAAUA,IAAI,KAAKH,CAAnB;AAAA,OAA9B,CADe,CADT;AAAA,KAFZ;AAOE,IAAA,OAAO,EAAE,mBAAM;AACbX,MAAAA,iBAAiB,CAAC,EAAD,CAAjB;AACA,UAAI,CAACN,YAAY,CAACU,OAAlB,EAA2B;AAC3BV,MAAAA,YAAY,CAACU,OAAb,CAAqBsB,KAArB;AACD,KAXH;AAYE,IAAA,MAAM,EAAE7E,MAZV;AAaE,IAAA,UAAU,EAAEC,UAbd;AAcE,IAAA,QAAQ,EAAEkC,gBAAgB,KAAK,CAdjC;AAeE,IAAA,QAAQ,EAAE7B,QAfZ;AAgBE,IAAA,YAAY,EAAEyB,YAhBhB;AAiBE,IAAA,WAAW,EAAEL,WAjBf;AAkBE,IAAA,OAAO,EAAEI,OAlBX;AAmBE,IAAA,MAAM,EAAEM;AAnBV,IA1BF,CADF,eAkDE,gCAAC,UAAD;AACE,IAAA,OAAO,EAAES,YADX;AAEE,IAAA,OAAO,EAAE7C,MAFX;AAGE,IAAA,OAAO,EAAE;AAAA,aAAMiD,SAAS,CAAC,KAAD,CAAf;AAAA,KAHX;AAIE,IAAA,IAAI,EAAEP,IAJR;AAKE,IAAA,KAAK,EAAE3B,KALT;AAME,IAAA,aAAa,EAAEoB,gBAAgB,KAAK,CANtC;AAOE,IAAA,UAAU,EAAET,WAPd;AAQE,IAAA,SAAS,EAAEiB;AARb,KAUGhB,aAAa,iBACZ,gCAAC,oBAAD;AAAsB,IAAA,GAAG,EAAEqB;AAA3B,kBACE,gCAAC,uBAAD,EAAiBpB,WAAjB,CADF,CAXJ,EAgBGH,OAAO,CAACqD,MAAR,GAAiB,CAAjB,gBACC,gCAAC,sBAAD;AACE,IAAA,aAAa,EAAEnD,aADjB;AAEE,IAAA,OAAO,EAAEF,OAFX;AAGE,IAAA,YAAY,EAAEQ,YAHhB;AAIE,IAAA,aAAa,EAAEC,aAJjB;AAKE,IAAA,SAAS,EAAEF,SALb;AAME,IAAA,UAAU,EAAES,UANd;AAOE,IAAA,gBAAgB,EAAEN,gBAPpB;AAQE,IAAA,YAAY,EAAEU,YARhB;AASE,IAAA,KAAK,EAAEK,cATT;AAUE,IAAA,QAAQ,EAAEC,iBAVZ;AAWE,IAAA,EAAE,EAAEgB,SAXN;AAYE,IAAA,IAAI,EAAEzB;AAZR,IADD,gBAgBC,gCAAC,QAAD,QAAWb,YAAX,CAhCJ,CAlDF,CADF;AAwFD,CArKY,CAAf;AAwKAN,MAAM,CAACwD,WAAP,GAAqB,QAArB;eAEexD,M","sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { transitionStyles, WithSize } from '@os-design/styles';\nimport {\n omitEmotionProps,\n useEvent,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useBrowserLayoutEffect,\n} from '@os-design/utils';\nimport styled from '@emotion/styled';\nimport { m } from '@os-design/media';\nimport { css } from '@emotion/react';\nimport { clr } from '@os-design/theming';\nimport { InputContainer } from '../Input';\nimport Menu from '../Menu';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport SelectToggle from './SelectToggle';\nimport SelectList, { OptionProps } from './SelectList';\nimport { PopoverProps } from '../Popover';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\nexport interface SelectProps\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: OptionProps[];\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default Not found\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select.\n * @default 1\n */\n maxSelectedItems?: number | 'all';\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: string[];\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: string[];\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string[]) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n}\n\nconst paddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 3.5em\n calc(${paddingVertical}em - 1px) ${p.theme.inputPaddingHorizontal}em;\n `;\n};\n\nconst openedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst unborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n padding-right: 1.8em;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst unborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${paddingStyles};\n ${openedStyles};\n ${unborderedStyles};\n ${unborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n maxSelectedItems = 1,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const inputSearchContainerRef = useRef<HTMLDivElement>(null);\n const [opened, setOpened] = useState(false);\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const selectedItems = useMemo(\n () =>\n (forwardedValue || []).map((v) => {\n const option = (options || []).find((item) => item.value === v);\n return { title: option ? option.title || '' : '', value: v };\n }),\n [forwardedValue, options]\n );\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <SelectToggle\n selectedItems={selectedItems}\n onDelete={(v) =>\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n )\n }\n onClear={() => {\n setForwardedValue([]);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }}\n opened={opened}\n unbordered={unbordered}\n multiple={maxSelectedItems !== 1}\n disabled={disabled}\n clearVisible={clearVisible}\n placeholder={placeholder}\n loading={loading}\n locale={locale}\n />\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={maxSelectedItems === 1}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer ref={inputSearchContainerRef}>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <SelectList\n searchVisible={searchVisible}\n options={options}\n visibleCount={visibleCount}\n overscanCount={overscanCount}\n threshold={threshold}\n onLoadNext={onLoadNext}\n maxSelectedItems={maxSelectedItems}\n containerRef={containerRef}\n value={forwardedValue}\n onChange={setForwardedValue}\n id={listBoxId}\n size={size}\n />\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["paddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","css","inputPaddingHorizontal","openedStyles","opened","unbordered","clr","inputFocusColorBorder","inputFocusColorShadow","unborderedStyles","transitionStyles","unborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","styled","InputContainer","omitEmotionProps","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","Select","forwardRef","ref","options","placeholder","searchVisible","searchProps","notFoundText","loading","clearVisible","threshold","visibleCount","overscanCount","maxSelectedItems","locale","defaultLocale","value","defaultValue","onChange","onLoadNext","size","placement","rest","useForwardedRef","containerRef","mergedContainerRef","useState","setWidth","inputSearchContainerRef","useRef","setOpened","useForwardedState","forwardedValue","setForwardedValue","resizeHandler","useCallback","window","requestAnimationFrame","current","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","undefined","setAttribute","selectedItems","useMemo","map","v","option","find","item","title","listBoxId","Math","random","toString","slice","e","includes","key","preventDefault","filter","focus","length","displayName"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { transitionStyles, WithSize } from '@os-design/styles';\nimport {\n omitEmotionProps,\n useEvent,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useBrowserLayoutEffect,\n} from '@os-design/utils';\nimport styled from '@emotion/styled';\nimport { m } from '@os-design/media';\nimport { css } from '@emotion/react';\nimport { clr } from '@os-design/theming';\nimport { InputContainer } from '../Input';\nimport Menu from '../Menu';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport SelectToggle from './SelectToggle';\nimport SelectList, { OptionProps } from './SelectList';\nimport { PopoverProps } from '../Popover';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\nexport interface SelectProps\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: OptionProps[];\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default Not found\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select.\n * @default 1\n */\n maxSelectedItems?: number | 'all';\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: string[];\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: string[];\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string[]) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n}\n\nconst paddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 3.5em\n calc(${paddingVertical}em - 1px) ${p.theme.inputPaddingHorizontal}em;\n `;\n};\n\nconst openedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst unborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n padding-right: 1.8em;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst unborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${paddingStyles};\n ${openedStyles};\n ${unborderedStyles};\n ${unborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n maxSelectedItems = 1,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const inputSearchContainerRef = useRef<HTMLDivElement>(null);\n const [opened, setOpened] = useState(false);\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const selectedItems = useMemo(\n () =>\n (forwardedValue || []).map((v) => {\n const option = (options || []).find((item) => item.value === v);\n return { title: option ? option.title || '' : '', value: v };\n }),\n [forwardedValue, options]\n );\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <SelectToggle\n selectedItems={selectedItems}\n onDelete={(v) =>\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n )\n }\n onClear={() => {\n setForwardedValue([]);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }}\n opened={opened}\n unbordered={unbordered}\n multiple={maxSelectedItems !== 1}\n disabled={disabled}\n clearVisible={clearVisible}\n placeholder={placeholder}\n loading={loading}\n locale={locale}\n />\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={maxSelectedItems === 1}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer ref={inputSearchContainerRef}>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <SelectList\n searchVisible={searchVisible}\n options={options}\n visibleCount={visibleCount}\n overscanCount={overscanCount}\n threshold={threshold}\n onLoadNext={onLoadNext}\n maxSelectedItems={maxSelectedItems}\n containerRef={containerRef}\n value={forwardedValue}\n onChange={setForwardedValue}\n id={listBoxId}\n size={size}\n />\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":";;;;;;;;;AAAA;;AAOA;;AACA;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAAO;EAC3B,IAAMC,eAAe,GACnB,CAACD,CAAC,CAACE,KAAF,CAAQC,UAAR,GAAqBH,CAAC,CAACE,KAAF,CAAQE,0BAA9B,IAA4D,CAD9D;EAGA,WAAOC,WAAP,oJACkBJ,eADlB,EAEWA,eAFX,EAEuCD,CAAC,CAACE,KAAF,CAAQI,sBAF/C;AAID,CARD;;AAUA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACP,CAAD;EAAA,OACnBA,CAAC,CAACQ,MAAF,IACA,CAACR,CAAC,CAACS,UADH,QAEAJ,WAFA,0IAGkB,IAAAK,YAAA,EAAIV,CAAC,CAACE,KAAF,CAAQS,qBAAZ,CAHlB,EAI6B,IAAAD,YAAA,EAAIV,CAAC,CAACE,KAAF,CAAQU,qBAAZ,CAJ7B,CADmB;AAAA,CAArB;;AAQA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACb,CAAD;EAAA,OACvBA,CAAC,CAACS,UAAF,QACAJ,WADA,qKAKI,IAAAS,wBAAA,EAAiB,kBAAjB,EAAqCd,CAArC,CALJ,CADuB;AAAA,CAAzB;;AASA,IAAMe,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACf,CAAD;EAAA,OAC5BA,CAAC,CAACS,UAAF,IACA,CAACT,CAAC,CAACgB,QADH,QAEAX,WAFA,4LAM0B,IAAAK,YAAA,EAAIV,CAAC,CAACE,KAAF,CAAQe,uBAAZ,CAN1B,CAD4B;AAAA,CAA9B;;AAiBO,IAAMC,eAAe,GAAG,IAAAC,kBAAA,EAC7BC,qBAD6B,EAE7B,IAAAC,uBAAA,EAAiB,QAAjB,EAA2B,YAA3B,EAAyC,UAAzC,CAF6B,CAAH,mQAIhB,UAACrB,CAAD;EAAA,OAAQ,CAACA,CAAC,CAACgB,QAAH,GAAc,SAAd,GAA0B,aAAlC;AAAA,CAJgB,EAWZ,UAAChB,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQC,UAAf;AAAA,CAXY,EAaxBJ,aAbwB,EAcxBQ,YAdwB,EAexBM,gBAfwB,EAgBxBE,qBAhBwB,CAArB;;AAsBP,IAAMO,UAAU,GAAG,IAAAH,kBAAA,EAAOI,gBAAP,EAAa,IAAAF,uBAAA,EAAiB,OAAjB,CAAb,CAAH,8KAKZG,QAAA,CAAEC,GAAF,CAAMC,EALM,EAMH,UAAC1B,CAAD;EAAA,OAAOA,CAAC,CAAC2B,KAAT;AAAA,CANG,CAAhB;;AAUA,IAAMC,QAAQ,GAAGT,kBAAA,CAAOU,GAAV,+KACF,UAAC7B,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQ4B,cAAf;AAAA,CADE,EAKC,UAAC9B,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQI,sBAAf;AAAA,CALD,EAMH,UAACN,CAAD;EAAA,OAAO,IAAAU,YAAA,EAAIV,CAAC,CAACE,KAAF,CAAQ6B,uBAAZ,CAAP;AAAA,CANG,CAAd;;AASA,IAAMC,oBAAoB,GAAGb,kBAAA,CAAOU,GAAV,4GACb,UAAC7B,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQ+B,mBAAf;AAAA,CADa,EAEpB,UAACjC,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQI,sBAAf;AAAA,CAFoB,CAA1B;AAKA;AACA;AACA;;;AACA,IAAM4B,MAAM,gBAAG,IAAAC,iBAAA,EACb,gBAwBEC,GAxBF,EAyBK;EAAA,wBAvBDC,OAuBC;EAAA,IAvBDA,OAuBC,6BAvBS,EAuBT;EAAA,IAtBDC,WAsBC,QAtBDA,WAsBC;EAAA,8BArBDC,aAqBC;EAAA,IArBDA,aAqBC,mCArBe,KAqBf;EAAA,4BApBDC,WAoBC;EAAA,IApBDA,WAoBC,iCApBa,EAoBb;EAAA,6BAnBDC,YAmBC;EAAA,IAnBDA,YAmBC,kCAnBc,WAmBd;EAAA,2BAlBDhC,UAkBC;EAAA,IAlBDA,UAkBC,gCAlBY,KAkBZ;EAAA,wBAjBDiC,OAiBC;EAAA,IAjBDA,OAiBC,6BAjBS,KAiBT;EAAA,yBAhBD1B,QAgBC;EAAA,IAhBDA,QAgBC,8BAhBU,KAgBV;EAAA,6BAfD2B,YAeC;EAAA,IAfDA,YAeC,kCAfc,KAed;EAAA,0BAdDC,SAcC;EAAA,IAdDA,SAcC,+BAdW,EAcX;EAAA,6BAbDC,YAaC;EAAA,IAbDA,YAaC,kCAbc,CAad;EAAA,8BAZDC,aAYC;EAAA,IAZDA,aAYC,mCAZe,EAYf;EAAA,iCAXDC,gBAWC;EAAA,IAXDA,gBAWC,sCAXkB,CAWlB;EAAA,uBAVDC,MAUC;EAAA,IAVDA,MAUC,4BAVQC,yBAUR;EAAA,IATDC,KASC,QATDA,KASC;EAAA,IARDC,YAQC,QARDA,YAQC;EAAA,IAPDC,QAOC,QAPDA,QAOC;EAAA,2BANDC,UAMC;EAAA,IANDA,UAMC,gCANY,YAAM,CAAE,CAMpB;EAAA,IALDC,IAKC,QALDA,IAKC;EAAA,IAJDC,SAIC,QAJDA,SAIC;EAAA,IAHEC,IAGF;;EACH,uBAA2C,IAAAC,sBAAA,EAAgBrB,GAAhB,CAA3C;EAAA;EAAA,IAAOsB,YAAP;EAAA,IAAqBC,kBAArB;;EACA,gBAA0B,IAAAC,eAAA,EAAS,CAAT,CAA1B;EAAA;EAAA,IAAOjC,KAAP;EAAA,IAAckC,QAAd;;EACA,IAAMC,uBAAuB,GAAG,IAAAC,aAAA,EAAuB,IAAvB,CAAhC;;EACA,iBAA4B,IAAAH,eAAA,EAAS,KAAT,CAA5B;EAAA;EAAA,IAAOpD,MAAP;EAAA,IAAewD,SAAf;;EACA,yBAA4C,IAAAC,wBAAA,EAAkB;IAC5Df,KAAK,EAALA,KAD4D;IAE5DC,YAAY,EAAZA,YAF4D;IAG5DC,QAAQ,EAARA;EAH4D,CAAlB,CAA5C;EAAA;EAAA,IAAOc,cAAP;EAAA,IAAuBC,iBAAvB;EAMA;AACJ;AACA;AACA;;;EACI,IAAMC,aAAa,GAAG,IAAAC,kBAAA,EAAY,YAAM;IACtCC,MAAM,CAACC,qBAAP,CAA6B,YAAM;MACjC,IAAI,CAAC/D,MAAD,IAAW,CAACkD,YAAY,CAACc,OAA7B,EAAsC;MACtC,IAAMC,SAAS,GAAGf,YAAY,CAACc,OAAb,CAAqBE,qBAArB,GAA6C/C,KAA/D;MACA,IAAIA,KAAK,KAAK8C,SAAd,EAAyB;MACzBZ,QAAQ,CAACY,SAAD,CAAR;IACD,CALD;EAMD,CAPqB,EAOnB,CAACjE,MAAD,EAASkD,YAAT,EAAuB/B,KAAvB,CAPmB,CAAtB;EAQA,IAAAgD,6BAAA,EAAuB;IAAA,OAAMP,aAAa,EAAnB;EAAA,CAAvB,EAA8C,CAACA,aAAD,CAA9C;EACA,IAAAQ,wBAAA,EAAkBlB,YAAlB,EAAgCU,aAAhC;EACA,IAAAS,eAAA,EACG,OAAOP,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCQ,SAD5C,EAEE,QAFF,EAGEV,aAHF,EAzBG,CA+BH;;EACA,IAAAO,6BAAA,EAAuB,YAAM;IAC3B,IAAI,CAACjB,YAAY,CAACc,OAAlB,EAA2B;IAC3Bd,YAAY,CAACc,OAAb,CAAqBO,YAArB,CAAkC,eAAlC,EAAmD,SAAnD;EACD,CAHD,EAGG,EAHH;EAKA,IAAMC,aAAa,GAAG,IAAAC,cAAA,EACpB;IAAA,OACE,CAACf,cAAc,IAAI,EAAnB,EAAuBgB,GAAvB,CAA2B,UAACC,CAAD,EAAO;MAChC,IAAMC,MAAM,GAAG,CAAC/C,OAAO,IAAI,EAAZ,EAAgBgD,IAAhB,CAAqB,UAACC,IAAD;QAAA,OAAUA,IAAI,CAACpC,KAAL,KAAeiC,CAAzB;MAAA,CAArB,CAAf;MACA,OAAO;QAAEI,KAAK,EAAEH,MAAM,GAAGA,MAAM,CAACG,KAAP,IAAgB,EAAnB,GAAwB,EAAvC;QAA2CrC,KAAK,EAAEiC;MAAlD,CAAP;IACD,CAHD,CADF;EAAA,CADoB,EAMpB,CAACjB,cAAD,EAAiB7B,OAAjB,CANoB,CAAtB;EASA,IAAMmD,SAAS,GAAG,IAAAP,cAAA,EAChB;IAAA,yBAAiBQ,IAAI,CAACC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,KAA3B,CAAiC,CAAjC,EAAoC,EAApC,CAAjB;EAAA,CADgB,EAEhB,EAFgB,CAAlB;EAKA,oBACE,+EACE,gCAAC,eAAD;IACE,MAAM,EAAEpF,MADV;IAEE,UAAU,EAAEC,UAFd;IAGE,QAAQ,EAAEO,QAHZ;IAIE,IAAI,EAAEsC,IAJR;IAKE,QAAQ,EAAE,CAACtC,QAAD,GAAY,CAAZ,GAAgB,CAAC,CAL7B;IAME,OAAO,EAAE,mBAAM;MACb,IAAIA,QAAJ,EAAc;MACdgD,SAAS,CAAC,CAACxD,MAAF,CAAT;IACD,CATH;IAUE,SAAS,EAAE,mBAACqF,CAAD,EAAO;MAChB,IAAI7E,QAAJ,EAAc;;MACd,IAAI,CAAC,OAAD,EAAU,GAAV,EAAe8E,QAAf,CAAwBD,CAAC,CAACE,GAA1B,CAAJ,EAAoC;QAClC/B,SAAS,CAAC,CAACxD,MAAF,CAAT;QACAqF,CAAC,CAACG,cAAF;MACD;IACF,CAhBH;IAiBE,WAAW,EAAE,qBAACH,CAAD;MAAA,OAAOA,CAAC,CAACG,cAAF,EAAP;IAAA,CAjBf;IAkBE,IAAI,EAAC,UAlBP;IAmBE,iBAAehF,QAnBjB;IAoBE,aAAW0B,OApBb;IAqBE,iBAAc,SArBhB;IAsBE,aAAW8C;EAtBb,GAuBMhC,IAvBN;IAwBE,GAAG,EAAEG;EAxBP,iBA0BE,gCAAC,wBAAD;IACE,aAAa,EAAEqB,aADjB;IAEE,QAAQ,EAAE,kBAACG,CAAD;MAAA,OACRhB,iBAAiB,CACf,CAACD,cAAc,IAAI,EAAnB,EAAuB+B,MAAvB,CAA8B,UAACX,IAAD;QAAA,OAAUA,IAAI,KAAKH,CAAnB;MAAA,CAA9B,CADe,CADT;IAAA,CAFZ;IAOE,OAAO,EAAE,mBAAM;MACbhB,iBAAiB,CAAC,EAAD,CAAjB;MACA,IAAI,CAACT,YAAY,CAACc,OAAlB,EAA2B;MAC3Bd,YAAY,CAACc,OAAb,CAAqB0B,KAArB;IACD,CAXH;IAYE,MAAM,EAAE1F,MAZV;IAaE,UAAU,EAAEC,UAbd;IAcE,QAAQ,EAAEsC,gBAAgB,KAAK,CAdjC;IAeE,QAAQ,EAAE/B,QAfZ;IAgBE,YAAY,EAAE2B,YAhBhB;IAiBE,WAAW,EAAEL,WAjBf;IAkBE,OAAO,EAAEI,OAlBX;IAmBE,MAAM,EAAEM;EAnBV,EA1BF,CADF,eAkDE,gCAAC,UAAD;IACE,OAAO,EAAEU,YADX;IAEE,OAAO,EAAElD,MAFX;IAGE,OAAO,EAAE;MAAA,OAAMwD,SAAS,CAAC,KAAD,CAAf;IAAA,CAHX;IAIE,IAAI,EAAEV,IAJR;IAKE,KAAK,EAAE3B,KALT;IAME,aAAa,EAAEoB,gBAAgB,KAAK,CANtC;IAOE,UAAU,EAAET,WAPd;IAQE,SAAS,EAAEiB;EARb,GAUGhB,aAAa,iBACZ,gCAAC,oBAAD;IAAsB,GAAG,EAAEuB;EAA3B,gBACE,gCAAC,uBAAD,EAAiBtB,WAAjB,CADF,CAXJ,EAgBGH,OAAO,CAAC8D,MAAR,GAAiB,CAAjB,gBACC,gCAAC,sBAAD;IACE,aAAa,EAAE5D,aADjB;IAEE,OAAO,EAAEF,OAFX;IAGE,YAAY,EAAEQ,YAHhB;IAIE,aAAa,EAAEC,aAJjB;IAKE,SAAS,EAAEF,SALb;IAME,UAAU,EAAES,UANd;IAOE,gBAAgB,EAAEN,gBAPpB;IAQE,YAAY,EAAEW,YARhB;IASE,KAAK,EAAEQ,cATT;IAUE,QAAQ,EAAEC,iBAVZ;IAWE,EAAE,EAAEqB,SAXN;IAYE,IAAI,EAAElC;EAZR,EADD,gBAgBC,gCAAC,QAAD,QAAWb,YAAX,CAhCJ,CAlDF,CADF;AAwFD,CArKY,CAAf;AAwKAP,MAAM,CAACkE,WAAP,GAAqB,QAArB;eAEelE,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"defaultLocale.js","names":["defaultLocale","deleteLabel","clearLabel"],"sources":["../../../../src/Select/utils/defaultLocale.ts"],"sourcesContent":["export interface SelectLocale {\n deleteLabel: string;\n clearLabel: string;\n}\n\nconst defaultLocale: SelectLocale = {\n deleteLabel: 'Delete',\n clearLabel: 'Clear',\n};\n\nexport default defaultLocale;\n"],"mappings":";;;;;;AAKA,IAAMA,aAA2B,GAAG;EAClCC,WAAW,EAAE,QADqB;EAElCC,UAAU,EAAE;AAFsB,CAApC;eAKeF,a"}
|
|
@@ -27,7 +27,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
27
27
|
|
|
28
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
29
29
|
|
|
30
|
-
function _extends() { _extends = Object.assign
|
|
30
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
31
31
|
|
|
32
32
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
33
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["SkeletonAnimation","keyframes","StyledSkeleton","styled","omitEmotionProps","p","width","clr","theme","skeletonColorBgFrom","skeletonColorBgTo","borderRadius","Skeleton","forwardRef","ref","rest","displayName"],"sources":["../../../src/Skeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { keyframes } from '@emotion/react';\nimport React, { forwardRef } from 'react';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface SkeletonProps extends JsxDivProps {\n /**\n * The width of the skeleton.\n * @default 100%\n */\n width?: string;\n}\n\nconst SkeletonAnimation = keyframes`\n from { background-position: 100% 50%; }\n to { background-position: 0 50%; }\n`;\n\ntype StyledSkeletonProps = Required<Pick<SkeletonProps, 'width'>>;\nconst StyledSkeleton = styled(\n 'div',\n omitEmotionProps('width', 'size')\n)<StyledSkeletonProps>`\n width: ${(p) => p.width};\n height: 1em;\n\n background: linear-gradient(\n 90deg,\n ${(p) => clr(p.theme.skeletonColorBgFrom)} 25%,\n ${(p) => clr(p.theme.skeletonColorBgTo)} 37%,\n ${(p) => clr(p.theme.skeletonColorBgFrom)} 63%\n );\n background-size: 400% 100%;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n animation: ${SkeletonAnimation} 1.4s ease infinite;\n`;\n\n/**\n * Provides a basic placeholder while a user waits for the content to load.\n */\nconst Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n ({ width = '100%', ...rest }, ref) => (\n <StyledSkeleton width={width} aria-busy {...rest} ref={ref} />\n )\n);\n\nSkeleton.displayName = 'Skeleton';\n\nexport default Skeleton;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAWA,IAAMA,iBAAiB,OAAGC,gBAAH,yJAAvB;AAMA,IAAMC,cAAc,GAAG,IAAAC,kBAAA,EACrB,KADqB,EAErB,IAAAC,uBAAA,EAAiB,OAAjB,EAA0B,MAA1B,CAFqB,CAAH,4SAIT,UAACC,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAT;AAAA,CAJS,EASd,UAACD,CAAD;EAAA,OAAO,IAAAE,YAAA,EAAIF,CAAC,CAACG,KAAF,CAAQC,mBAAZ,CAAP;AAAA,CATc,EAUd,UAACJ,CAAD;EAAA,OAAO,IAAAE,YAAA,EAAIF,CAAC,CAACG,KAAF,CAAQE,iBAAZ,CAAP;AAAA,CAVc,EAWd,UAACL,CAAD;EAAA,OAAO,IAAAE,YAAA,EAAIF,CAAC,CAACG,KAAF,CAAQC,mBAAZ,CAAP;AAAA,CAXc,EAeD,UAACJ,CAAD;EAAA,OAAOA,CAAC,CAACG,KAAF,CAAQG,YAAf;AAAA,CAfC,EAgBLX,iBAhBK,CAApB;AAmBA;AACA;AACA;;AACA,IAAMY,QAAQ,gBAAG,IAAAC,kBAAA,EACf,gBAA8BC,GAA9B;EAAA,sBAAGR,KAAH;EAAA,IAAGA,KAAH,2BAAW,MAAX;EAAA,IAAsBS,IAAtB;;EAAA,oBACE,iCAAC,cAAD;IAAgB,KAAK,EAAET,KAAvB;IAA8B;EAA9B,GAA4CS,IAA5C;IAAkD,GAAG,EAAED;EAAvD,GADF;AAAA,CADe,CAAjB;AAMAF,QAAQ,CAACI,WAAT,GAAuB,UAAvB;eAEeJ,Q"}
|
package/dist/cjs/Switch/index.js
CHANGED
|
@@ -29,7 +29,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
29
29
|
|
|
30
30
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
31
|
|
|
32
|
-
function _extends() { _extends = Object.assign
|
|
32
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
33
33
|
|
|
34
34
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
35
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["FRACTION_DIGITS","uncheckedStyles","p","checked","css","clr","theme","switchUncheckedColorBg","switchHeight","switchCircleSize","toFixed","checkedStyles","switchCheckedColorBg","switchWidth","hoverUncheckedStyles","switchUncheckedColorBgHover","hoverCheckedStyles","switchCheckedColorBgHover","hoverStyles","disabled","disabledUncheckedStyles","switchDisabledUncheckedColorBg","disabledCheckedStyles","switchDisabledCheckedColorBg","disabledStyles","StyledSwitch","styled","omitEmotionProps","resetButtonStyles","switchColorCircleBg","transitionStyles","sizeStyles","Switch","forwardRef","ref","value","defaultValue","onChange","size","onMouseDown","rest","useForwardedState","forwardedValue","setForwardedValue","e","preventDefault","displayName"],"sources":["../../../src/Switch/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\nimport {\n resetButtonStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { omitEmotionProps, useForwardedState } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\n\ntype JsxButtonProps = Omit<\n JSX.IntrinsicElements['button'],\n 'value' | 'defaultValue' | 'onChange' | 'onClick' | 'ref'\n>;\nexport interface SwitchProps extends JsxButtonProps, WithSize {\n /**\n * Whether the switch is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the switch is checked.\n * @default false\n */\n value?: boolean;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: boolean;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: boolean) => void;\n}\n\nconst FRACTION_DIGITS = 4;\n\nconst uncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchUncheckedColorBg)};\n &::after {\n left: ${+((p.theme.switchHeight - p.theme.switchCircleSize) / 2).toFixed(\n FRACTION_DIGITS\n )}em;\n }\n `;\n\nconst checkedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchCheckedColorBg)};\n &::after {\n left: ${+(\n p.theme.switchWidth -\n p.theme.switchCircleSize -\n (p.theme.switchHeight - p.theme.switchCircleSize) / 2\n ).toFixed(FRACTION_DIGITS)}em;\n }\n `;\n\nconst hoverUncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchUncheckedColorBgHover)};\n `;\n\nconst hoverCheckedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchCheckedColorBgHover)};\n `;\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n ${hoverUncheckedStyles(p)};\n ${hoverCheckedStyles(p)};\n }\n }\n `;\n\nconst disabledUncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchDisabledUncheckedColorBg)};\n `;\n\nconst disabledCheckedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchDisabledCheckedColorBg)};\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n ${disabledUncheckedStyles(p)};\n ${disabledCheckedStyles(p)};\n `;\n\ninterface StyledSwitchProps extends Pick<SwitchProps, 'disabled' | 'size'> {\n checked: SwitchProps['value'];\n}\nconst StyledSwitch = styled(\n 'button',\n omitEmotionProps('size', 'checked')\n)<StyledSwitchProps>`\n ${resetButtonStyles};\n position: relative;\n cursor: pointer;\n user-select: none;\n display: block;\n\n width: ${(p) => p.theme.switchWidth}em;\n height: ${(p) => p.theme.switchHeight}em;\n border-radius: ${(p) => p.theme.switchHeight / 2}em;\n\n &::after {\n position: absolute;\n top: ${(p) =>\n +((p.theme.switchHeight - p.theme.switchCircleSize) / 2).toFixed(\n FRACTION_DIGITS\n )}em;\n\n width: ${(p) => p.theme.switchCircleSize}em;\n height: ${(p) => p.theme.switchCircleSize}em;\n border-radius: 50%;\n\n background-color: ${(p) => clr(p.theme.switchColorCircleBg)};\n content: ' ';\n\n ${transitionStyles('left')};\n }\n\n ${uncheckedStyles};\n ${checkedStyles};\n ${hoverStyles};\n ${disabledStyles};\n\n ${sizeStyles};\n ${transitionStyles('background-color')};\n`;\n\n/**\n * The switch that can be enabled or disabled.\n */\nconst Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n disabled = false,\n value,\n defaultValue,\n onChange = () => {},\n size,\n onMouseDown = () => {},\n ...rest\n },\n ref\n ) => {\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n return (\n <StyledSwitch\n disabled={disabled}\n checked={forwardedValue}\n size={size}\n onClick={() => {\n if (disabled) return;\n setForwardedValue(!forwardedValue);\n }}\n onMouseDown={(e) => {\n onMouseDown(e);\n e.preventDefault();\n }}\n role='switch'\n aria-checked={forwardedValue}\n {...rest}\n ref={ref}\n />\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
25
25
|
|
|
26
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
27
|
|
|
28
|
-
function _extends() { _extends = Object.assign
|
|
28
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
29
29
|
|
|
30
30
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
31
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["StyledSwitchSkeleton","styled","Skeleton","omitEmotionProps","p","theme","switchWidth","switchHeight","sizeStyles","SwitchSkeleton","forwardRef","props","ref","displayName"],"sources":["../../../src/SwitchSkeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport React, { forwardRef } from 'react';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport Skeleton, { SkeletonProps } from '../Skeleton';\n\nexport type SwitchSkeletonProps = Omit<SkeletonProps, 'width'> & WithSize;\n\nconst StyledSwitchSkeleton = styled(\n Skeleton,\n omitEmotionProps('size')\n)<WithSize>`\n width: ${(p) => p.theme.switchWidth}em;\n height: ${(p) => p.theme.switchHeight}em;\n border-radius: ${(p) => p.theme.switchHeight / 2}em;\n ${sizeStyles};\n`;\n\n/**\n * Provides a switch placeholder while a user waits for the content to load.\n */\nconst SwitchSkeleton = forwardRef<HTMLDivElement, SwitchSkeletonProps>(\n (props, ref) => <StyledSwitchSkeleton width='100%' {...props} ref={ref} />\n);\n\nSwitchSkeleton.displayName = 'SwitchSkeleton';\n\nexport default SwitchSkeleton;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAIA,IAAMA,oBAAoB,GAAG,IAAAC,kBAAA,EAC3BC,oBAD2B,EAE3B,IAAAC,uBAAA,EAAiB,MAAjB,CAF2B,CAAH,gJAIf,UAACC,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQC,WAAf;AAAA,CAJe,EAKd,UAACF,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQE,YAAf;AAAA,CALc,EAMP,UAACH,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQE,YAAR,GAAuB,CAA9B;AAAA,CANO,EAOtBC,kBAPsB,CAA1B;AAUA;AACA;AACA;;AACA,IAAMC,cAAc,gBAAG,IAAAC,iBAAA,EACrB,UAACC,KAAD,EAAQC,GAAR;EAAA,oBAAgB,gCAAC,oBAAD;IAAsB,KAAK,EAAC;EAA5B,GAAuCD,KAAvC;IAA8C,GAAG,EAAEC;EAAnD,GAAhB;AAAA,CADqB,CAAvB;AAIAH,cAAc,CAACI,WAAf,GAA6B,gBAA7B;eAEeJ,c"}
|
package/dist/cjs/Tag/index.js
CHANGED
|
@@ -27,7 +27,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
27
27
|
|
|
28
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
29
|
|
|
30
|
-
function _extends() { _extends = Object.assign
|
|
30
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
31
31
|
|
|
32
32
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
33
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["TagContainer","styled","omitEmotionProps","p","clr","theme","tagColorBg","tagColorText","borderRadius","tagPaddingVertical","tagPaddingHorizontal","sizeStyles","transitionStyles","Content","div","ellipsisStyles","LeftAddon","tagAddonPaddingHorizontal","RightAddon","Tag","forwardRef","ref","left","right","children","rest","displayName"],"sources":["../../../src/Tag/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport styled from '@emotion/styled';\nimport {\n ellipsisStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\n\nexport interface BaseTagProps extends WithSize {\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n}\n\nexport type TagProps = JsxDivProps & BaseTagProps;\n\nexport const TagContainer = styled('div', omitEmotionProps('size'))<WithSize>`\n display: inline-flex;\n align-items: center;\n overflow: hidden;\n\n background-color: ${(p) => clr(p.theme.tagColorBg)};\n color: ${(p) => clr(p.theme.tagColorText)};\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n padding: ${(p) => p.theme.tagPaddingVertical}em\n ${(p) => p.theme.tagPaddingHorizontal}em;\n\n ${sizeStyles};\n ${transitionStyles('background-color')};\n`;\n\nconst Content = styled.div`\n ${ellipsisStyles};\n`;\n\nexport const LeftAddon = styled.div`\n display: inherit;\n padding-right: ${(p) => p.theme.tagAddonPaddingHorizontal}em;\n`;\n\nexport const RightAddon = styled.div`\n display: inherit;\n padding-left: ${(p) => p.theme.tagAddonPaddingHorizontal}em;\n`;\n\n/**\n * The component to display a label, tag, or category.\n */\nconst Tag = forwardRef<HTMLDivElement, TagProps>(\n ({ left, right, children, ...rest }, ref) => (\n <TagContainer {...rest} ref={ref}>\n {left && <LeftAddon>{left}</LeftAddon>}\n <Content>{children}</Content>\n {right && <RightAddon>{right}</RightAddon>}\n </TagContainer>\n )\n);\n\nTag.displayName = 'Tag';\n\nexport default Tag;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAMA;;AACA;;;;;;;;;;;;;;;;;;;;AAmBO,IAAMA,YAAY,GAAG,IAAAC,kBAAA,EAAO,KAAP,EAAc,IAAAC,uBAAA,EAAiB,MAAjB,CAAd,CAAH,2QAKH,UAACC,CAAD;EAAA,OAAO,IAAAC,YAAA,EAAID,CAAC,CAACE,KAAF,CAAQC,UAAZ,CAAP;AAAA,CALG,EAMd,UAACH,CAAD;EAAA,OAAO,IAAAC,YAAA,EAAID,CAAC,CAACE,KAAF,CAAQE,YAAZ,CAAP;AAAA,CANc,EAQN,UAACJ,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQG,YAAf;AAAA,CARM,EASZ,UAACL,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQI,kBAAf;AAAA,CATY,EAUnB,UAACN,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQK,oBAAf;AAAA,CAVmB,EAYrBC,kBAZqB,EAarB,IAAAC,wBAAA,EAAiB,kBAAjB,CAbqB,CAAlB;;;AAgBP,IAAMC,OAAO,GAAGZ,kBAAA,CAAOa,GAAV,mFACTC,sBADS,CAAb;;AAIO,IAAMC,SAAS,GAAGf,kBAAA,CAAOa,GAAV,yHAEH,UAACX,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQY,yBAAf;AAAA,CAFG,CAAf;;;;AAKA,IAAMC,UAAU,GAAGjB,kBAAA,CAAOa,GAAV,wHAEL,UAACX,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQY,yBAAf;AAAA,CAFK,CAAhB;AAKP;AACA;AACA;;;;AACA,IAAME,GAAG,gBAAG,IAAAC,iBAAA,EACV,gBAAqCC,GAArC;EAAA,IAAGC,IAAH,QAAGA,IAAH;EAAA,IAASC,KAAT,QAASA,KAAT;EAAA,IAAgBC,QAAhB,QAAgBA,QAAhB;EAAA,IAA6BC,IAA7B;;EAAA,oBACE,gCAAC,YAAD,eAAkBA,IAAlB;IAAwB,GAAG,EAAEJ;EAA7B,IACGC,IAAI,iBAAI,gCAAC,SAAD,QAAYA,IAAZ,CADX,eAEE,gCAAC,OAAD,QAAUE,QAAV,CAFF,EAGGD,KAAK,iBAAI,gCAAC,UAAD,QAAaA,KAAb,CAHZ,CADF;AAAA,CADU,CAAZ;AAUAJ,GAAG,CAACO,WAAJ,GAAkB,KAAlB;eAEeP,G"}
|
|
@@ -27,7 +27,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
27
27
|
|
|
28
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
29
|
|
|
30
|
-
function _extends() { _extends = Object.assign
|
|
30
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
31
31
|
|
|
32
32
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
33
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["StyledTagLink","styled","TagContainer","withComponent","omitEmotionProps","p","clr","theme","tagColorBgHover","TagLink","forwardRef","ref","left","right","as","onMouseDown","children","rest","e","preventDefault","displayName"],"sources":["../../../src/TagLink/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport styled from '@emotion/styled';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { BaseTagProps, TagContainer, LeftAddon, RightAddon } from '../Tag';\nimport { LinkProps, ReactRouterLinkProps } from '../Link';\n\ntype JsxAProps = Omit<JSX.IntrinsicElements['a'], 'ref'>;\nexport type TagLinkProps = JsxAProps &\n ReactRouterLinkProps &\n Pick<LinkProps, 'as'> &\n BaseTagProps;\n\nconst StyledTagLink = styled(\n TagContainer.withComponent('a'),\n omitEmotionProps('as')\n)`\n cursor: pointer;\n text-decoration: none;\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${(p) => clr(p.theme.tagColorBgHover)};\n }\n }\n`;\n\n/**\n * The tag component with a link.\n */\nconst TagLink = forwardRef<HTMLAnchorElement, TagLinkProps>(\n ({ left, right, as, onMouseDown = () => {}, children, ...rest }, ref) => (\n <StyledTagLink\n as={as}\n onMouseDown={(e) => {\n onMouseDown(e);\n e.preventDefault();\n }}\n {...rest}\n ref={ref}\n >\n {left && <LeftAddon>{left}</LeftAddon>}\n {children}\n {right && <RightAddon>{right}</RightAddon>}\n </StyledTagLink>\n )\n);\n\nTagLink.displayName = 'TagLink';\n\nexport default TagLink;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,aAAa,GAAG,IAAAC,kBAAA,EACpBC,iBAAA,CAAaC,aAAb,CAA2B,GAA3B,CADoB,EAEpB,IAAAC,uBAAA,EAAiB,IAAjB,CAFoB,CAAH,2NAUO,UAACC,CAAD;EAAA,OAAO,IAAAC,YAAA,EAAID,CAAC,CAACE,KAAF,CAAQC,eAAZ,CAAP;AAAA,CAVP,CAAnB;AAeA;AACA;AACA;;AACA,IAAMC,OAAO,gBAAG,IAAAC,iBAAA,EACd,gBAAiEC,GAAjE;EAAA,IAAGC,IAAH,QAAGA,IAAH;EAAA,IAASC,KAAT,QAASA,KAAT;EAAA,IAAgBC,EAAhB,QAAgBA,EAAhB;EAAA,4BAAoBC,WAApB;EAAA,IAAoBA,YAApB,iCAAkC,YAAM,CAAE,CAA1C;EAAA,IAA4CC,QAA5C,QAA4CA,QAA5C;EAAA,IAAyDC,IAAzD;;EAAA,oBACE,gCAAC,aAAD;IACE,EAAE,EAAEH,EADN;IAEE,WAAW,EAAE,qBAACI,CAAD,EAAO;MAClBH,YAAW,CAACG,CAAD,CAAX;;MACAA,CAAC,CAACC,cAAF;IACD;EALH,GAMMF,IANN;IAOE,GAAG,EAAEN;EAPP,IASGC,IAAI,iBAAI,gCAAC,cAAD,QAAYA,IAAZ,CATX,EAUGI,QAVH,EAWGH,KAAK,iBAAI,gCAAC,eAAD,QAAaA,KAAb,CAXZ,CADF;AAAA,CADc,CAAhB;AAkBAJ,OAAO,CAACW,WAAR,GAAsB,SAAtB;eAEeX,O"}
|
|
@@ -31,7 +31,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
31
31
|
|
|
32
32
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
33
|
|
|
34
|
-
function _extends() { _extends = Object.assign
|
|
34
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
35
35
|
|
|
36
36
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
37
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["collapsibleStyles","p","collapsible","opened","css","theme","lineHeight","tagPaddingVertical","Container","styled","omitEmotionProps","sizeStyles","Content","div","tagListGap","Control","OpenButton","Button","TagList","forwardRef","ref","size","children","rest","useState","setOpened","displayName"],"sources":["../../../src/TagList/index.tsx"],"sourcesContent":["import React, { forwardRef, useState } from 'react';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\nimport { Down, Up } from '@os-design/icons';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport Button from '../Button';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface TagListProps extends JsxDivProps, WithSize {\n /**\n * Whether the tag list is collapsible.\n * @default false\n */\n collapsible?: boolean;\n}\n\nconst collapsibleStyles = (p) =>\n p.collapsible &&\n !p.opened &&\n css`\n // The height of the tag\n height: ${p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n `;\n\ninterface ContainerProps extends Pick<TagListProps, 'collapsible' | 'size'> {\n opened: boolean;\n}\nconst Container = styled(\n 'div',\n omitEmotionProps('opened', 'collapsible', 'size')\n)<ContainerProps>`\n display: flex;\n overflow: hidden;\n ${collapsibleStyles};\n ${sizeStyles};\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-wrap: wrap;\n flex-grow: 1;\n\n margin: ${(p) => -p.theme.tagListGap}em 0 0 ${(p) => -p.theme.tagListGap}em;\n & > * {\n margin: ${(p) => p.theme.tagListGap}em 0 0 ${(p) => p.theme.tagListGap}em;\n }\n`;\n\nconst Control = styled.div`\n margin-left: 0.2em;\n`;\n\nconst OpenButton = styled(Button)`\n // The height of the tag\n height: ${(p) => p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n padding: 0 0.5em;\n`;\n\n/**\n * The component to display a list of tags.\n */\nconst TagList = forwardRef<HTMLDivElement, TagListProps>(\n ({ collapsible = false, size, children, ...rest }, ref) => {\n const [opened, setOpened] = useState(false);\n\n return (\n <Container\n opened={opened}\n collapsible={collapsible}\n size={size}\n {...rest}\n ref={ref}\n >\n <Content>{children}</Content>\n\n {collapsible && (\n <Control>\n <OpenButton\n type='ghost'\n wide='never'\n onClick={() => setOpened(!opened)}\n >\n {opened ? <Up /> : <Down />}\n </OpenButton>\n </Control>\n )}\n </Container>\n );\n }\n);\n\nTagList.displayName = 'TagList';\n\nexport default TagList;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,CAAD;EAAA,OACxBA,CAAC,CAACC,WAAF,IACA,CAACD,CAAC,CAACE,MADH,QAEAC,WAFA,8HAIYH,CAAC,CAACI,KAAF,CAAQC,UAAR,GAAqBL,CAAC,CAACI,KAAF,CAAQE,kBAAR,GAA6B,CAJ9D,CADwB;AAAA,CAA1B;;AAWA,IAAMC,SAAS,GAAG,IAAAC,kBAAA,EAChB,KADgB,EAEhB,IAAAC,uBAAA,EAAiB,QAAjB,EAA2B,aAA3B,EAA0C,MAA1C,CAFgB,CAAH,mIAMXV,iBANW,EAOXW,kBAPW,CAAf;;AAUA,IAAMC,OAAO,GAAGH,kBAAA,CAAOI,GAAV,iNAKD,UAACZ,CAAD;EAAA,OAAO,CAACA,CAAC,CAACI,KAAF,CAAQS,UAAhB;AAAA,CALC,EAKmC,UAACb,CAAD;EAAA,OAAO,CAACA,CAAC,CAACI,KAAF,CAAQS,UAAhB;AAAA,CALnC,EAOC,UAACb,CAAD;EAAA,OAAOA,CAAC,CAACI,KAAF,CAAQS,UAAf;AAAA,CAPD,EAOoC,UAACb,CAAD;EAAA,OAAOA,CAAC,CAACI,KAAF,CAAQS,UAAf;AAAA,CAPpC,CAAb;;AAWA,IAAMC,OAAO,GAAGN,kBAAA,CAAOI,GAAV,gGAAb;;AAIA,IAAMG,UAAU,GAAG,IAAAP,kBAAA,EAAOQ,kBAAP,CAAH,8IAEJ,UAAChB,CAAD;EAAA,OAAOA,CAAC,CAACI,KAAF,CAAQC,UAAR,GAAqBL,CAAC,CAACI,KAAF,CAAQE,kBAAR,GAA6B,CAAzD;AAAA,CAFI,CAAhB;AAMA;AACA;AACA;;AACA,IAAMW,OAAO,gBAAG,IAAAC,iBAAA,EACd,gBAAmDC,GAAnD,EAA2D;EAAA,4BAAxDlB,WAAwD;EAAA,IAAxDA,WAAwD,iCAA1C,KAA0C;EAAA,IAAnCmB,IAAmC,QAAnCA,IAAmC;EAAA,IAA7BC,QAA6B,QAA7BA,QAA6B;EAAA,IAAhBC,IAAgB;;EACzD,gBAA4B,IAAAC,eAAA,EAAS,KAAT,CAA5B;EAAA;EAAA,IAAOrB,MAAP;EAAA,IAAesB,SAAf;;EAEA,oBACE,gCAAC,SAAD;IACE,MAAM,EAAEtB,MADV;IAEE,WAAW,EAAED,WAFf;IAGE,IAAI,EAAEmB;EAHR,GAIME,IAJN;IAKE,GAAG,EAAEH;EALP,iBAOE,gCAAC,OAAD,QAAUE,QAAV,CAPF,EASGpB,WAAW,iBACV,gCAAC,OAAD,qBACE,gCAAC,UAAD;IACE,IAAI,EAAC,OADP;IAEE,IAAI,EAAC,OAFP;IAGE,OAAO,EAAE;MAAA,OAAMuB,SAAS,CAAC,CAACtB,MAAF,CAAf;IAAA;EAHX,GAKGA,MAAM,gBAAG,gCAAC,SAAD,OAAH,gBAAY,gCAAC,WAAD,OALrB,CADF,CAVJ,CADF;AAuBD,CA3Ba,CAAhB;AA8BAe,OAAO,CAACQ,WAAR,GAAsB,SAAtB;eAEeR,O"}
|
|
@@ -21,7 +21,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
21
21
|
|
|
22
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
23
|
|
|
24
|
-
function _extends() { _extends = Object.assign
|
|
24
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
25
25
|
|
|
26
26
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
27
27
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["tagIndex","TagListSkeleton","forwardRef","ref","width","tagsCount","rest","Array","fill","map","displayName"],"sources":["../../../src/TagListSkeleton/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport TagList, { TagListProps } from '../TagList';\nimport TagSkeleton from '../TagSkeleton';\n\nexport interface TagListSkeletonProps extends TagListProps {\n /**\n * The width of the tag skeleton.\n * @default undefined\n */\n width?: string;\n /**\n * The number of tag skeletons.\n * @default 3\n */\n tagsCount?: number;\n}\n\nlet tagIndex = 0;\n\n/**\n * Provides a tag list placeholder while a user waits for the content to load.\n */\nconst TagListSkeleton = forwardRef<HTMLDivElement, TagListSkeletonProps>(\n ({ width, tagsCount = 3, ...rest }, ref) => (\n <TagList {...rest} ref={ref}>\n {Array(tagsCount)\n .fill({})\n .map(() => {\n tagIndex += 1;\n return <TagSkeleton key={tagIndex} width={width} />;\n })}\n </TagList>\n )\n);\n\nTagListSkeleton.displayName = 'TagListSkeleton';\n\nexport default TagListSkeleton;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;;;;;AAeA,IAAIA,QAAQ,GAAG,CAAf;AAEA;AACA;AACA;;AACA,IAAMC,eAAe,gBAAG,IAAAC,iBAAA,EACtB,gBAAoCC,GAApC;EAAA,IAAGC,KAAH,QAAGA,KAAH;EAAA,0BAAUC,SAAV;EAAA,IAAUA,SAAV,+BAAsB,CAAtB;EAAA,IAA4BC,IAA5B;;EAAA,oBACE,gCAAC,mBAAD,eAAaA,IAAb;IAAmB,GAAG,EAAEH;EAAxB,IACGI,KAAK,CAACF,SAAD,CAAL,CACEG,IADF,CACO,EADP,EAEEC,GAFF,CAEM,YAAM;IACTT,QAAQ,IAAI,CAAZ;IACA,oBAAO,gCAAC,uBAAD;MAAa,GAAG,EAAEA,QAAlB;MAA4B,KAAK,EAAEI;IAAnC,EAAP;EACD,CALF,CADH,CADF;AAAA,CADsB,CAAxB;AAaAH,eAAe,CAACS,WAAhB,GAA8B,iBAA9B;eAEeT,e"}
|
|
@@ -27,7 +27,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
27
27
|
|
|
28
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
29
29
|
|
|
30
|
-
function _extends() { _extends = Object.assign
|
|
30
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
31
31
|
|
|
32
32
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
33
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["StyledTagSkeleton","styled","Skeleton","omitEmotionProps","p","width","theme","lineHeight","tagPaddingVertical","sizeStyles","TagSkeleton","forwardRef","ref","rest","displayName"],"sources":["../../../src/TagSkeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport React, { forwardRef } from 'react';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport Skeleton, { SkeletonProps } from '../Skeleton';\n\nexport interface TagSkeletonProps\n extends Omit<SkeletonProps, 'width'>,\n WithSize {\n /**\n * The width of the skeleton.\n * @default 6em\n */\n width?: string;\n}\n\ntype StyledTagSkeletonProps = Pick<TagSkeletonProps, 'width' | 'size'>;\nconst StyledTagSkeleton = styled(\n Skeleton,\n omitEmotionProps('width', 'size')\n)<StyledTagSkeletonProps>`\n width: ${(p) => p.width};\n height: ${(p) => p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n ${sizeStyles};\n`;\n\n/**\n * Provides a tag placeholder while a user waits for the content to load.\n */\nconst TagSkeleton = forwardRef<HTMLDivElement, TagSkeletonProps>(\n ({ width = '6em', ...rest }, ref) => (\n <StyledTagSkeleton width={width} {...rest} ref={ref} />\n )\n);\n\nTagSkeleton.displayName = 'TagSkeleton';\n\nexport default TagSkeleton;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAaA,IAAMA,iBAAiB,GAAG,IAAAC,kBAAA,EACxBC,oBADwB,EAExB,IAAAC,uBAAA,EAAiB,OAAjB,EAA0B,MAA1B,CAFwB,CAAH,oHAIZ,UAACC,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAT;AAAA,CAJY,EAKX,UAACD,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQC,UAAR,GAAqBH,CAAC,CAACE,KAAF,CAAQE,kBAAR,GAA6B,CAAzD;AAAA,CALW,EAMnBC,kBANmB,CAAvB;AASA;AACA;AACA;;AACA,IAAMC,WAAW,gBAAG,IAAAC,iBAAA,EAClB,gBAA6BC,GAA7B;EAAA,sBAAGP,KAAH;EAAA,IAAGA,KAAH,2BAAW,KAAX;EAAA,IAAqBQ,IAArB;;EAAA,oBACE,gCAAC,iBAAD;IAAmB,KAAK,EAAER;EAA1B,GAAqCQ,IAArC;IAA2C,GAAG,EAAED;EAAhD,GADF;AAAA,CADkB,CAApB;AAMAF,WAAW,CAACI,WAAZ,GAA0B,aAA1B;eAEeJ,W"}
|