@yoka-ui/ui 1.0.1
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/@Docs-yoka/exports.generated.md +93 -0
- package/@Docs-yoka/llms.txt +23 -0
- package/README.md +113 -0
- package/dist/es/Themes/InputTheme/index.d.ts +6 -0
- package/dist/es/Themes/InputTheme/index.js +22 -0
- package/dist/es/Themes/InputTheme/index.js.map +7 -0
- package/dist/es/Themes/TableTheme/index.d.ts +7 -0
- package/dist/es/Themes/TableTheme/index.js +31 -0
- package/dist/es/Themes/TableTheme/index.js.map +7 -0
- package/dist/es/Themes/TableTheme/index.less +46 -0
- package/dist/es/assets/image/YKUI-logo.png +0 -0
- package/dist/es/assets/less/ant-reset.less +402 -0
- package/dist/es/assets/less/index.less +1 -0
- package/dist/es/assets/less/variables.less +16 -0
- package/dist/es/business/AiChat/MarkdownRender.d.ts +9 -0
- package/dist/es/business/AiChat/MarkdownRender.js +72 -0
- package/dist/es/business/AiChat/MarkdownRender.js.map +7 -0
- package/dist/es/business/AiChat/index.d.ts +16 -0
- package/dist/es/business/AiChat/index.js +733 -0
- package/dist/es/business/AiChat/index.js.map +7 -0
- package/dist/es/business/AiChat/intentRecognizer.d.ts +33 -0
- package/dist/es/business/AiChat/intentRecognizer.js +166 -0
- package/dist/es/business/AiChat/intentRecognizer.js.map +7 -0
- package/dist/es/business/AiChat/navigationManager.d.ts +94 -0
- package/dist/es/business/AiChat/navigationManager.js +208 -0
- package/dist/es/business/AiChat/navigationManager.js.map +7 -0
- package/dist/es/business/AiChat/sse.d.ts +16 -0
- package/dist/es/business/AiChat/sse.js +171 -0
- package/dist/es/business/AiChat/sse.js.map +7 -0
- package/dist/es/business/AiChat/type.d.ts +156 -0
- package/dist/es/business/AiChat/type.js +1 -0
- package/dist/es/business/AiChat/type.js.map +7 -0
- package/dist/es/business/AiChat/useAiChat.d.ts +2 -0
- package/dist/es/business/AiChat/useAiChat.js +268 -0
- package/dist/es/business/AiChat/useAiChat.js.map +7 -0
- package/dist/es/business/AiChat/useTaskWorkflow.d.ts +25 -0
- package/dist/es/business/AiChat/useTaskWorkflow.js +196 -0
- package/dist/es/business/AiChat/useTaskWorkflow.js.map +7 -0
- package/dist/es/business/DrawerPageInfo/index.d.ts +35 -0
- package/dist/es/business/DrawerPageInfo/index.js +133 -0
- package/dist/es/business/DrawerPageInfo/index.js.map +7 -0
- package/dist/es/business/DrawerPageInfo/index.module.less +87 -0
- package/dist/es/business/DrawerPageInfo/test.png +0 -0
- package/dist/es/business/Editor/index.d.ts +11 -0
- package/dist/es/business/Editor/index.js +86 -0
- package/dist/es/business/Editor/index.js.map +7 -0
- package/dist/es/business/Editor/index.less +31 -0
- package/dist/es/business/Empty/empty.png +0 -0
- package/dist/es/business/Empty/index.d.ts +19 -0
- package/dist/es/business/Empty/index.js +51 -0
- package/dist/es/business/Empty/index.js.map +7 -0
- package/dist/es/business/ModCommonFilter/assets/images/empty.png +0 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.d.ts +13 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.js +51 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.js.map +7 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.d.ts +13 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.js +51 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.js.map +7 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/index.d.ts +25 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/index.js +30 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/index.js.map +7 -0
- package/dist/es/business/ModCommonFilter/components/FilterButton/index.module.less +97 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.d.ts +18 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js +74 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js.map +7 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.d.ts +37 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js +216 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js.map +7 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.d.ts +26 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js +102 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js.map +7 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/index.d.ts +51 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/index.js +71 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/index.js.map +7 -0
- package/dist/es/business/ModCommonFilter/components/PopoverContent/index.module.less +260 -0
- package/dist/es/business/ModCommonFilter/index.d.ts +53 -0
- package/dist/es/business/ModCommonFilter/index.js +129 -0
- package/dist/es/business/ModCommonFilter/index.js.map +7 -0
- package/dist/es/business/ModCommonFilter/index.module.less +7 -0
- package/dist/es/business/ModCommonFilter/typing.d.ts +20 -0
- package/dist/es/business/ModCommonFilter/typing.js +1 -0
- package/dist/es/business/ModCommonFilter/typing.js.map +7 -0
- package/dist/es/business/YkPorjectSelect/icon-product.png +0 -0
- package/dist/es/business/YkPorjectSelect/index.d.ts +51 -0
- package/dist/es/business/YkPorjectSelect/index.js +260 -0
- package/dist/es/business/YkPorjectSelect/index.js.map +7 -0
- package/dist/es/business/YkPorjectSelect/index.module.less +334 -0
- package/dist/es/business/YkPorjectSelect/product-close.png +0 -0
- package/dist/es/components/Clock/index.d.ts +19 -0
- package/dist/es/components/Clock/index.js +55 -0
- package/dist/es/components/Clock/index.js.map +7 -0
- package/dist/es/components/DebounceInput/index.d.ts +16 -0
- package/dist/es/components/DebounceInput/index.js +77 -0
- package/dist/es/components/DebounceInput/index.js.map +7 -0
- package/dist/es/components/DebounceInput/index.module.less +23 -0
- package/dist/es/components/MultipleSelect/index.d.ts +23 -0
- package/dist/es/components/MultipleSelect/index.js +249 -0
- package/dist/es/components/MultipleSelect/index.js.map +7 -0
- package/dist/es/components/MultipleSelect/index.module.less +174 -0
- package/dist/es/components/NumericInput/index.d.ts +19 -0
- package/dist/es/components/NumericInput/index.js +56 -0
- package/dist/es/components/NumericInput/index.js.map +7 -0
- package/dist/es/components/RefreshButton/index.d.ts +8 -0
- package/dist/es/components/RefreshButton/index.js +21 -0
- package/dist/es/components/RefreshButton/index.js.map +7 -0
- package/dist/es/components/SearchWithHistory/index.d.ts +21 -0
- package/dist/es/components/SearchWithHistory/index.js +115 -0
- package/dist/es/components/SearchWithHistory/index.js.map +7 -0
- package/dist/es/components/SearchWithHistory/index.module.less +64 -0
- package/dist/es/components/TextWithInput/index.d.ts +15 -0
- package/dist/es/components/TextWithInput/index.js +35 -0
- package/dist/es/components/TextWithInput/index.js.map +7 -0
- package/dist/es/components/TextWithToolTip/index.d.ts +17 -0
- package/dist/es/components/TextWithToolTip/index.js +118 -0
- package/dist/es/components/TextWithToolTip/index.js.map +7 -0
- package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +28 -0
- package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js +161 -0
- package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js.map +7 -0
- package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.less +151 -0
- package/dist/es/components/TreeTransfer/index.d.ts +28 -0
- package/dist/es/components/TreeTransfer/index.js +210 -0
- package/dist/es/components/TreeTransfer/index.js.map +7 -0
- package/dist/es/components/TreeTransfer/index.less +69 -0
- package/dist/es/components/TreeTransfer/types.d.ts +122 -0
- package/dist/es/components/TreeTransfer/types.js +6 -0
- package/dist/es/components/TreeTransfer/types.js.map +7 -0
- package/dist/es/components/TreeTransfer/utils/index.d.ts +120 -0
- package/dist/es/components/TreeTransfer/utils/index.js +195 -0
- package/dist/es/components/TreeTransfer/utils/index.js.map +7 -0
- package/dist/es/components/YkDateRangePicker/YkDateRangePicker.mdx +180 -0
- package/dist/es/components/YkDateRangePicker/index.d.ts +61 -0
- package/dist/es/components/YkDateRangePicker/index.js +317 -0
- package/dist/es/components/YkDateRangePicker/index.js.map +7 -0
- package/dist/es/components/YkDateRangePicker/index.module.less +304 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +193 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +576 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +55 -0
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
- package/dist/es/components/YkRangeDateWithVS/index.d.ts +62 -0
- package/dist/es/components/YkRangeDateWithVS/index.js +130 -0
- package/dist/es/components/YkRangeDateWithVS/index.js.map +7 -0
- package/dist/es/components/YkRangeDateWithVS/index.module.less +566 -0
- package/dist/es/components/YkRangeDateWithVS/styles.d.ts +2 -0
- package/dist/es/components/YkRangeDateWithVS/styles.js +18 -0
- package/dist/es/components/YkRangeDateWithVS/styles.js.map +7 -0
- package/dist/es/components/YkRangeDateWithVS/typing.d.ts +15 -0
- package/dist/es/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
- package/dist/es/components/YkRangeTimeWithRecent/constants.js +288 -0
- package/dist/es/components/YkRangeTimeWithRecent/constants.js.map +7 -0
- package/dist/es/components/YkRangeTimeWithRecent/index.d.ts +26 -0
- package/dist/es/components/YkRangeTimeWithRecent/index.js +647 -0
- package/dist/es/components/YkRangeTimeWithRecent/index.js.map +7 -0
- package/dist/es/components/YkRangeTimeWithRecent/index.module.less +263 -0
- package/dist/es/creative/ButtonRadioWithInfo/index.d.ts +17 -0
- package/dist/es/creative/ButtonRadioWithInfo/index.js +103 -0
- package/dist/es/creative/ButtonRadioWithInfo/index.js.map +7 -0
- package/dist/es/creative/ButtonRadioWithInfo/index.less +106 -0
- package/dist/es/creative/ButtonWithProgress/index.d.ts +11 -0
- package/dist/es/creative/ButtonWithProgress/index.js +79 -0
- package/dist/es/creative/ButtonWithProgress/index.js.map +7 -0
- package/dist/es/creative/ButtonWithProgress/index.less +66 -0
- package/dist/es/global.less +12 -0
- package/dist/es/index.d.ts +43 -0
- package/dist/es/index.js +87 -0
- package/dist/es/index.js.map +7 -0
- package/dist/es/index.less +35 -0
- package/dist/es/layout/FlexGrid/index.d.ts +25 -0
- package/dist/es/layout/FlexGrid/index.js +63 -0
- package/dist/es/layout/FlexGrid/index.js.map +7 -0
- package/dist/es/layout/YkContainer/index.d.ts +27 -0
- package/dist/es/layout/YkContainer/index.js +79 -0
- package/dist/es/layout/YkContainer/index.js.map +7 -0
- package/dist/es/layout/YkDrawer/index.d.ts +22 -0
- package/dist/es/layout/YkDrawer/index.js +160 -0
- package/dist/es/layout/YkDrawer/index.js.map +7 -0
- package/dist/es/layout/YkDrawer/index.module.less +45 -0
- package/dist/es/ui/LabelSelect/demo.d.ts +3 -0
- package/dist/es/ui/LabelSelect/demo.js +83 -0
- package/dist/es/ui/LabelSelect/demo.js.map +7 -0
- package/dist/es/ui/LabelSelect/index.d.ts +41 -0
- package/dist/es/ui/LabelSelect/index.js +136 -0
- package/dist/es/ui/LabelSelect/index.js.map +7 -0
- package/dist/es/ui/LogicOperator/index.d.ts +10 -0
- package/dist/es/ui/LogicOperator/index.js +12 -0
- package/dist/es/ui/LogicOperator/index.js.map +7 -0
- package/dist/es/ui/LogicOperator/index.module.less +97 -0
- package/dist/es/ui/YkButton/index.d.ts +9 -0
- package/dist/es/ui/YkButton/index.js +59 -0
- package/dist/es/ui/YkButton/index.js.map +7 -0
- package/dist/es/ui/YkCard/index.d.ts +4 -0
- package/dist/es/ui/YkCard/index.js +79 -0
- package/dist/es/ui/YkCard/index.js.map +7 -0
- package/dist/es/ui/YkCard/index.module.less +30 -0
- package/dist/es/ui/YkCheckbox/index.d.ts +4 -0
- package/dist/es/ui/YkCheckbox/index.js +45 -0
- package/dist/es/ui/YkCheckbox/index.js.map +7 -0
- package/dist/es/ui/YkCheckbox/index.module.less +22 -0
- package/dist/es/ui/YkDescriptions/index.d.ts +4 -0
- package/dist/es/ui/YkDescriptions/index.js +41 -0
- package/dist/es/ui/YkDescriptions/index.js.map +7 -0
- package/dist/es/ui/YkPagination/index.d.ts +4 -0
- package/dist/es/ui/YkPagination/index.js +63 -0
- package/dist/es/ui/YkPagination/index.js.map +7 -0
- package/dist/es/ui/YkPagination/index.module.less +22 -0
- package/dist/es/ui/YkRadio/index.d.ts +4 -0
- package/dist/es/ui/YkRadio/index.js +51 -0
- package/dist/es/ui/YkRadio/index.js.map +7 -0
- package/dist/es/ui/YkRadio/index.module.less +22 -0
- package/dist/es/ui/YkRadioBtnSpecial/index.d.ts +15 -0
- package/dist/es/ui/YkRadioBtnSpecial/index.js +23 -0
- package/dist/es/ui/YkRadioBtnSpecial/index.js.map +7 -0
- package/dist/es/ui/YkRadioBtnSpecial/index.module.less +112 -0
- package/dist/es/ui/YkSegmented/index.d.ts +4 -0
- package/dist/es/ui/YkSegmented/index.js +41 -0
- package/dist/es/ui/YkSegmented/index.js.map +7 -0
- package/dist/es/ui/YkSelect/index.d.ts +7 -0
- package/dist/es/ui/YkSelect/index.js +54 -0
- package/dist/es/ui/YkSelect/index.js.map +7 -0
- package/dist/es/ui/YkSpin/index.d.ts +4 -0
- package/dist/es/ui/YkSpin/index.js +41 -0
- package/dist/es/ui/YkSpin/index.js.map +7 -0
- package/dist/es/ui/YkStatistic/index.d.ts +4 -0
- package/dist/es/ui/YkStatistic/index.js +41 -0
- package/dist/es/ui/YkStatistic/index.js.map +7 -0
- package/dist/es/ui/YkSwitch/index.d.ts +4 -0
- package/dist/es/ui/YkSwitch/index.js +51 -0
- package/dist/es/ui/YkSwitch/index.js.map +7 -0
- package/dist/es/ui/YkTabs/index.d.ts +12 -0
- package/dist/es/ui/YkTabs/index.js +75 -0
- package/dist/es/ui/YkTabs/index.js.map +7 -0
- package/dist/es/ui/YkTabs/index.module.less +11 -0
- package/dist/es/ui/YkTooltip/index.d.ts +4 -0
- package/dist/es/ui/YkTooltip/index.js +50 -0
- package/dist/es/ui/YkTooltip/index.js.map +7 -0
- package/dist/es/utils/styleUtils.d.ts +18 -0
- package/dist/es/utils/styleUtils.js +57 -0
- package/dist/es/utils/styleUtils.js.map +7 -0
- package/dist/es/utils/ykStorybookDoc.d.ts +17 -0
- package/dist/es/utils/ykStorybookDoc.js +18 -0
- package/dist/es/utils/ykStorybookDoc.js.map +7 -0
- package/dist/lib/Themes/InputTheme/index.d.ts +6 -0
- package/dist/lib/Themes/InputTheme/index.js +52 -0
- package/dist/lib/Themes/InputTheme/index.js.map +7 -0
- package/dist/lib/Themes/TableTheme/index.d.ts +7 -0
- package/dist/lib/Themes/TableTheme/index.js +61 -0
- package/dist/lib/Themes/TableTheme/index.js.map +7 -0
- package/dist/lib/Themes/TableTheme/index.less +46 -0
- package/dist/lib/assets/image/YKUI-logo.png +0 -0
- package/dist/lib/assets/less/ant-reset.less +402 -0
- package/dist/lib/assets/less/index.less +1 -0
- package/dist/lib/assets/less/variables.less +16 -0
- package/dist/lib/business/AiChat/MarkdownRender.d.ts +9 -0
- package/dist/lib/business/AiChat/MarkdownRender.js +102 -0
- package/dist/lib/business/AiChat/MarkdownRender.js.map +7 -0
- package/dist/lib/business/AiChat/index.d.ts +16 -0
- package/dist/lib/business/AiChat/index.js +723 -0
- package/dist/lib/business/AiChat/index.js.map +7 -0
- package/dist/lib/business/AiChat/intentRecognizer.d.ts +33 -0
- package/dist/lib/business/AiChat/intentRecognizer.js +193 -0
- package/dist/lib/business/AiChat/intentRecognizer.js.map +7 -0
- package/dist/lib/business/AiChat/navigationManager.d.ts +94 -0
- package/dist/lib/business/AiChat/navigationManager.js +214 -0
- package/dist/lib/business/AiChat/navigationManager.js.map +7 -0
- package/dist/lib/business/AiChat/sse.d.ts +16 -0
- package/dist/lib/business/AiChat/sse.js +171 -0
- package/dist/lib/business/AiChat/sse.js.map +7 -0
- package/dist/lib/business/AiChat/type.d.ts +156 -0
- package/dist/lib/business/AiChat/type.js +18 -0
- package/dist/lib/business/AiChat/type.js.map +7 -0
- package/dist/lib/business/AiChat/useAiChat.d.ts +2 -0
- package/dist/lib/business/AiChat/useAiChat.js +252 -0
- package/dist/lib/business/AiChat/useAiChat.js.map +7 -0
- package/dist/lib/business/AiChat/useTaskWorkflow.d.ts +25 -0
- package/dist/lib/business/AiChat/useTaskWorkflow.js +182 -0
- package/dist/lib/business/AiChat/useTaskWorkflow.js.map +7 -0
- package/dist/lib/business/DrawerPageInfo/index.d.ts +35 -0
- package/dist/lib/business/DrawerPageInfo/index.js +163 -0
- package/dist/lib/business/DrawerPageInfo/index.js.map +7 -0
- package/dist/lib/business/DrawerPageInfo/index.module.less +87 -0
- package/dist/lib/business/DrawerPageInfo/test.png +0 -0
- package/dist/lib/business/Editor/index.d.ts +11 -0
- package/dist/lib/business/Editor/index.js +99 -0
- package/dist/lib/business/Editor/index.js.map +7 -0
- package/dist/lib/business/Editor/index.less +31 -0
- package/dist/lib/business/Empty/empty.png +0 -0
- package/dist/lib/business/Empty/index.d.ts +19 -0
- package/dist/lib/business/Empty/index.js +65 -0
- package/dist/lib/business/Empty/index.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/assets/images/empty.png +0 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.d.ts +13 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js +50 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.d.ts +13 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js +50 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/index.d.ts +25 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js +60 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/components/FilterButton/index.module.less +97 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.d.ts +18 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js +69 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.d.ts +37 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js +211 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.d.ts +26 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js +97 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.d.ts +51 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js +101 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.module.less +260 -0
- package/dist/lib/business/ModCommonFilter/index.d.ts +53 -0
- package/dist/lib/business/ModCommonFilter/index.js +143 -0
- package/dist/lib/business/ModCommonFilter/index.js.map +7 -0
- package/dist/lib/business/ModCommonFilter/index.module.less +7 -0
- package/dist/lib/business/ModCommonFilter/typing.d.ts +20 -0
- package/dist/lib/business/ModCommonFilter/typing.js +18 -0
- package/dist/lib/business/ModCommonFilter/typing.js.map +7 -0
- package/dist/lib/business/YkPorjectSelect/icon-product.png +0 -0
- package/dist/lib/business/YkPorjectSelect/index.d.ts +51 -0
- package/dist/lib/business/YkPorjectSelect/index.js +235 -0
- package/dist/lib/business/YkPorjectSelect/index.js.map +7 -0
- package/dist/lib/business/YkPorjectSelect/index.module.less +334 -0
- package/dist/lib/business/YkPorjectSelect/product-close.png +0 -0
- package/dist/lib/components/Clock/index.d.ts +19 -0
- package/dist/lib/components/Clock/index.js +85 -0
- package/dist/lib/components/Clock/index.js.map +7 -0
- package/dist/lib/components/DebounceInput/index.d.ts +16 -0
- package/dist/lib/components/DebounceInput/index.js +107 -0
- package/dist/lib/components/DebounceInput/index.js.map +7 -0
- package/dist/lib/components/DebounceInput/index.module.less +23 -0
- package/dist/lib/components/MultipleSelect/index.d.ts +23 -0
- package/dist/lib/components/MultipleSelect/index.js +279 -0
- package/dist/lib/components/MultipleSelect/index.js.map +7 -0
- package/dist/lib/components/MultipleSelect/index.module.less +174 -0
- package/dist/lib/components/NumericInput/index.d.ts +19 -0
- package/dist/lib/components/NumericInput/index.js +67 -0
- package/dist/lib/components/NumericInput/index.js.map +7 -0
- package/dist/lib/components/RefreshButton/index.d.ts +8 -0
- package/dist/lib/components/RefreshButton/index.js +51 -0
- package/dist/lib/components/RefreshButton/index.js.map +7 -0
- package/dist/lib/components/SearchWithHistory/index.d.ts +21 -0
- package/dist/lib/components/SearchWithHistory/index.js +145 -0
- package/dist/lib/components/SearchWithHistory/index.js.map +7 -0
- package/dist/lib/components/SearchWithHistory/index.module.less +64 -0
- package/dist/lib/components/TextWithInput/index.d.ts +15 -0
- package/dist/lib/components/TextWithInput/index.js +65 -0
- package/dist/lib/components/TextWithInput/index.js.map +7 -0
- package/dist/lib/components/TextWithToolTip/index.d.ts +17 -0
- package/dist/lib/components/TextWithToolTip/index.js +134 -0
- package/dist/lib/components/TextWithToolTip/index.js.map +7 -0
- package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +28 -0
- package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js +191 -0
- package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js.map +7 -0
- package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.less +151 -0
- package/dist/lib/components/TreeTransfer/index.d.ts +28 -0
- package/dist/lib/components/TreeTransfer/index.js +214 -0
- package/dist/lib/components/TreeTransfer/index.js.map +7 -0
- package/dist/lib/components/TreeTransfer/index.less +69 -0
- package/dist/lib/components/TreeTransfer/types.d.ts +122 -0
- package/dist/lib/components/TreeTransfer/types.js +30 -0
- package/dist/lib/components/TreeTransfer/types.js.map +7 -0
- package/dist/lib/components/TreeTransfer/utils/index.d.ts +120 -0
- package/dist/lib/components/TreeTransfer/utils/index.js +208 -0
- package/dist/lib/components/TreeTransfer/utils/index.js.map +7 -0
- package/dist/lib/components/YkDateRangePicker/YkDateRangePicker.mdx +180 -0
- package/dist/lib/components/YkDateRangePicker/index.d.ts +61 -0
- package/dist/lib/components/YkDateRangePicker/index.js +338 -0
- package/dist/lib/components/YkDateRangePicker/index.js.map +7 -0
- package/dist/lib/components/YkDateRangePicker/index.module.less +304 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +223 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +587 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +85 -0
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
- package/dist/lib/components/YkRangeDateWithVS/index.d.ts +62 -0
- package/dist/lib/components/YkRangeDateWithVS/index.js +140 -0
- package/dist/lib/components/YkRangeDateWithVS/index.js.map +7 -0
- package/dist/lib/components/YkRangeDateWithVS/index.module.less +566 -0
- package/dist/lib/components/YkRangeDateWithVS/styles.d.ts +2 -0
- package/dist/lib/components/YkRangeDateWithVS/styles.js +48 -0
- package/dist/lib/components/YkRangeDateWithVS/styles.js.map +7 -0
- package/dist/lib/components/YkRangeDateWithVS/typing.d.ts +15 -0
- package/dist/lib/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
- package/dist/lib/components/YkRangeTimeWithRecent/constants.js +333 -0
- package/dist/lib/components/YkRangeTimeWithRecent/constants.js.map +7 -0
- package/dist/lib/components/YkRangeTimeWithRecent/index.d.ts +26 -0
- package/dist/lib/components/YkRangeTimeWithRecent/index.js +647 -0
- package/dist/lib/components/YkRangeTimeWithRecent/index.js.map +7 -0
- package/dist/lib/components/YkRangeTimeWithRecent/index.module.less +263 -0
- package/dist/lib/creative/ButtonRadioWithInfo/index.d.ts +17 -0
- package/dist/lib/creative/ButtonRadioWithInfo/index.js +102 -0
- package/dist/lib/creative/ButtonRadioWithInfo/index.js.map +7 -0
- package/dist/lib/creative/ButtonRadioWithInfo/index.less +106 -0
- package/dist/lib/creative/ButtonWithProgress/index.d.ts +11 -0
- package/dist/lib/creative/ButtonWithProgress/index.js +70 -0
- package/dist/lib/creative/ButtonWithProgress/index.js.map +7 -0
- package/dist/lib/creative/ButtonWithProgress/index.less +66 -0
- package/dist/lib/global.less +12 -0
- package/dist/lib/index.d.ts +43 -0
- package/dist/lib/index.js +161 -0
- package/dist/lib/index.js.map +7 -0
- package/dist/lib/index.less +35 -0
- package/dist/lib/layout/FlexGrid/index.d.ts +25 -0
- package/dist/lib/layout/FlexGrid/index.js +77 -0
- package/dist/lib/layout/FlexGrid/index.js.map +7 -0
- package/dist/lib/layout/YkContainer/index.d.ts +27 -0
- package/dist/lib/layout/YkContainer/index.js +79 -0
- package/dist/lib/layout/YkContainer/index.js.map +7 -0
- package/dist/lib/layout/YkDrawer/index.d.ts +22 -0
- package/dist/lib/layout/YkDrawer/index.js +152 -0
- package/dist/lib/layout/YkDrawer/index.js.map +7 -0
- package/dist/lib/layout/YkDrawer/index.module.less +45 -0
- package/dist/lib/ui/LabelSelect/demo.d.ts +3 -0
- package/dist/lib/ui/LabelSelect/demo.js +113 -0
- package/dist/lib/ui/LabelSelect/demo.js.map +7 -0
- package/dist/lib/ui/LabelSelect/index.d.ts +41 -0
- package/dist/lib/ui/LabelSelect/index.js +124 -0
- package/dist/lib/ui/LabelSelect/index.js.map +7 -0
- package/dist/lib/ui/LogicOperator/index.d.ts +10 -0
- package/dist/lib/ui/LogicOperator/index.js +42 -0
- package/dist/lib/ui/LogicOperator/index.js.map +7 -0
- package/dist/lib/ui/LogicOperator/index.module.less +97 -0
- package/dist/lib/ui/YkButton/index.d.ts +9 -0
- package/dist/lib/ui/YkButton/index.js +55 -0
- package/dist/lib/ui/YkButton/index.js.map +7 -0
- package/dist/lib/ui/YkCard/index.d.ts +4 -0
- package/dist/lib/ui/YkCard/index.js +76 -0
- package/dist/lib/ui/YkCard/index.js.map +7 -0
- package/dist/lib/ui/YkCard/index.module.less +30 -0
- package/dist/lib/ui/YkCheckbox/index.d.ts +4 -0
- package/dist/lib/ui/YkCheckbox/index.js +42 -0
- package/dist/lib/ui/YkCheckbox/index.js.map +7 -0
- package/dist/lib/ui/YkCheckbox/index.module.less +22 -0
- package/dist/lib/ui/YkDescriptions/index.d.ts +4 -0
- package/dist/lib/ui/YkDescriptions/index.js +41 -0
- package/dist/lib/ui/YkDescriptions/index.js.map +7 -0
- package/dist/lib/ui/YkPagination/index.d.ts +4 -0
- package/dist/lib/ui/YkPagination/index.js +60 -0
- package/dist/lib/ui/YkPagination/index.js.map +7 -0
- package/dist/lib/ui/YkPagination/index.module.less +22 -0
- package/dist/lib/ui/YkRadio/index.d.ts +4 -0
- package/dist/lib/ui/YkRadio/index.js +51 -0
- package/dist/lib/ui/YkRadio/index.js.map +7 -0
- package/dist/lib/ui/YkRadio/index.module.less +22 -0
- package/dist/lib/ui/YkRadioBtnSpecial/index.d.ts +15 -0
- package/dist/lib/ui/YkRadioBtnSpecial/index.js +53 -0
- package/dist/lib/ui/YkRadioBtnSpecial/index.js.map +7 -0
- package/dist/lib/ui/YkRadioBtnSpecial/index.module.less +112 -0
- package/dist/lib/ui/YkSegmented/index.d.ts +4 -0
- package/dist/lib/ui/YkSegmented/index.js +41 -0
- package/dist/lib/ui/YkSegmented/index.js.map +7 -0
- package/dist/lib/ui/YkSelect/index.d.ts +7 -0
- package/dist/lib/ui/YkSelect/index.js +54 -0
- package/dist/lib/ui/YkSelect/index.js.map +7 -0
- package/dist/lib/ui/YkSpin/index.d.ts +4 -0
- package/dist/lib/ui/YkSpin/index.js +41 -0
- package/dist/lib/ui/YkSpin/index.js.map +7 -0
- package/dist/lib/ui/YkStatistic/index.d.ts +4 -0
- package/dist/lib/ui/YkStatistic/index.js +41 -0
- package/dist/lib/ui/YkStatistic/index.js.map +7 -0
- package/dist/lib/ui/YkSwitch/index.d.ts +4 -0
- package/dist/lib/ui/YkSwitch/index.js +51 -0
- package/dist/lib/ui/YkSwitch/index.js.map +7 -0
- package/dist/lib/ui/YkTabs/index.d.ts +12 -0
- package/dist/lib/ui/YkTabs/index.js +70 -0
- package/dist/lib/ui/YkTabs/index.js.map +7 -0
- package/dist/lib/ui/YkTabs/index.module.less +11 -0
- package/dist/lib/ui/YkTooltip/index.d.ts +4 -0
- package/dist/lib/ui/YkTooltip/index.js +45 -0
- package/dist/lib/ui/YkTooltip/index.js.map +7 -0
- package/dist/lib/utils/styleUtils.d.ts +18 -0
- package/dist/lib/utils/styleUtils.js +84 -0
- package/dist/lib/utils/styleUtils.js.map +7 -0
- package/dist/lib/utils/ykStorybookDoc.d.ts +17 -0
- package/dist/lib/utils/ykStorybookDoc.js +41 -0
- package/dist/lib/utils/ykStorybookDoc.js.map +7 -0
- package/package.json +148 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
// src/components/YkDateRangePicker/index.tsx
|
|
2
|
+
import { DatePicker } from "antd";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import dayjs from "dayjs";
|
|
5
|
+
import React, {
|
|
6
|
+
forwardRef,
|
|
7
|
+
useCallback,
|
|
8
|
+
useEffect,
|
|
9
|
+
useImperativeHandle,
|
|
10
|
+
useMemo,
|
|
11
|
+
useRef,
|
|
12
|
+
useState
|
|
13
|
+
} from "react";
|
|
14
|
+
import styles from "./index.module.less";
|
|
15
|
+
var { RangePicker } = DatePicker;
|
|
16
|
+
function pastTime(n, unit) {
|
|
17
|
+
const fmt = "YYYY-MM-DD HH:mm:00";
|
|
18
|
+
return [dayjs(dayjs().subtract(n, unit).format(fmt)), dayjs(dayjs().format(fmt))];
|
|
19
|
+
}
|
|
20
|
+
var DISPLAY_FORMAT = "YYYY-MM-DD HH:mm:ss";
|
|
21
|
+
function formatToKey(d) {
|
|
22
|
+
return dayjs(d).format(DISPLAY_FORMAT);
|
|
23
|
+
}
|
|
24
|
+
function isValueEqual(a, b) {
|
|
25
|
+
if (a === b)
|
|
26
|
+
return true;
|
|
27
|
+
if (!a || !b)
|
|
28
|
+
return a === b;
|
|
29
|
+
if (a.length !== b.length)
|
|
30
|
+
return false;
|
|
31
|
+
if (a.length < 2 || b.length < 2)
|
|
32
|
+
return a.length === b.length;
|
|
33
|
+
return formatToKey(a[0]) === formatToKey(b[0]) && formatToKey(a[1]) === formatToKey(b[1]);
|
|
34
|
+
}
|
|
35
|
+
var RANGE_PRESETS = [
|
|
36
|
+
{
|
|
37
|
+
label: "่ฟ5ๅ้",
|
|
38
|
+
value: () => pastTime(5, "minute")
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: "่ฟ15ๅ้",
|
|
42
|
+
value: () => pastTime(15, "minute")
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
label: "่ฟ30ๅ้",
|
|
46
|
+
value: () => pastTime(30, "minute")
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
label: "่ฟ1ๅฐๆถ",
|
|
50
|
+
value: () => pastTime(1, "hour")
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
label: "่ฟ2ๅฐๆถ",
|
|
54
|
+
value: () => pastTime(2, "hour")
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
label: "่ฟ6ๅฐๆถ",
|
|
58
|
+
value: () => pastTime(6, "hour")
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: "ไปๅคฉ",
|
|
62
|
+
value: () => [
|
|
63
|
+
dayjs(dayjs().startOf("day").format("YYYY-MM-DD HH:mm:ss")),
|
|
64
|
+
dayjs(dayjs().endOf("day").format("YYYY-MM-DD HH:mm:ss"))
|
|
65
|
+
],
|
|
66
|
+
// ็ดงๅๆจกๅผๅชๅฑ็คบๆฅๆ๏ผๅฆใ03-25ใ
|
|
67
|
+
format: (v) => v[0].format("MM-DD")
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
label: "ๆจๅคฉ",
|
|
71
|
+
value: () => [
|
|
72
|
+
dayjs(dayjs().subtract(1, "day").startOf("day").format("YYYY-MM-DD HH:mm:ss")),
|
|
73
|
+
dayjs(dayjs().subtract(1, "day").endOf("day").format("YYYY-MM-DD HH:mm:ss"))
|
|
74
|
+
],
|
|
75
|
+
format: (v) => v[0].format("MM-DD")
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
label: "่ฟ7ๅคฉ",
|
|
79
|
+
value: () => [
|
|
80
|
+
dayjs(dayjs().subtract(6, "day").startOf("day").format("YYYY-MM-DD HH:mm:ss")),
|
|
81
|
+
dayjs(dayjs().endOf("day").format("YYYY-MM-DD HH:mm:ss"))
|
|
82
|
+
],
|
|
83
|
+
// ็ดงๅๆจกๅผๅฑ็คบๅฎๆดๆฅๆๅบ้ด๏ผๅฆใ2024-03-19 ~ 2024-03-25ใ
|
|
84
|
+
format: (v) => [v[0].format("YYYY-MM-DD"), v[1].format("YYYY-MM-DD")]
|
|
85
|
+
}
|
|
86
|
+
];
|
|
87
|
+
var YkDateRangePicker = forwardRef(function YkDateRangePicker2({ value, onChange, allowClear = false, placeholder = "่ฏท้ๆฉๆถ้ด่ๅด", disabled = false, status = "" }, ref) {
|
|
88
|
+
const [showFullPicker, setShowFullPicker] = useState(false);
|
|
89
|
+
const [open, setOpen] = useState(false);
|
|
90
|
+
const [activePreset, setActivePreset] = useState(void 0);
|
|
91
|
+
const [presetFormatText, setPresetFormatText] = useState(void 0);
|
|
92
|
+
const selfChangeRef = useRef(false);
|
|
93
|
+
const isPresetClickRef = useRef(false);
|
|
94
|
+
const collapseTimerRef = useRef();
|
|
95
|
+
const wrapperRef = useRef(null);
|
|
96
|
+
const pickerRef = useRef(null);
|
|
97
|
+
const prevValueRef = useRef(value);
|
|
98
|
+
const scheduleCollapse = useCallback((delay) => {
|
|
99
|
+
clearTimeout(collapseTimerRef.current);
|
|
100
|
+
collapseTimerRef.current = setTimeout(() => {
|
|
101
|
+
setOpen(false);
|
|
102
|
+
setShowFullPicker(false);
|
|
103
|
+
}, delay != null ? delay : 0);
|
|
104
|
+
}, []);
|
|
105
|
+
useEffect(() => () => clearTimeout(collapseTimerRef.current), []);
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
if (value && value.length === 2)
|
|
108
|
+
return;
|
|
109
|
+
const first = RANGE_PRESETS[0];
|
|
110
|
+
const currentValue = first.value();
|
|
111
|
+
const formatText = currentValue.map((v) => dayjs(v).format("HH:mm:ss")).join(" ~ ");
|
|
112
|
+
setActivePreset(first);
|
|
113
|
+
setPresetFormatText(formatText);
|
|
114
|
+
selfChangeRef.current = true;
|
|
115
|
+
onChange == null ? void 0 : onChange(currentValue);
|
|
116
|
+
}, []);
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
if (isValueEqual(prevValueRef.current, value))
|
|
119
|
+
return;
|
|
120
|
+
prevValueRef.current = value;
|
|
121
|
+
if (!selfChangeRef.current) {
|
|
122
|
+
setActivePreset(void 0);
|
|
123
|
+
setPresetFormatText(void 0);
|
|
124
|
+
}
|
|
125
|
+
selfChangeRef.current = false;
|
|
126
|
+
}, [value]);
|
|
127
|
+
const showState = useMemo(() => {
|
|
128
|
+
if (!value || value.length < 2)
|
|
129
|
+
return [];
|
|
130
|
+
return [formatToKey(value[0]), formatToKey(value[1])];
|
|
131
|
+
}, [value]);
|
|
132
|
+
const activePresetIndex = useMemo(() => {
|
|
133
|
+
if (!value || value.length < 2)
|
|
134
|
+
return -1;
|
|
135
|
+
const [v0, v1] = value;
|
|
136
|
+
const valKeys = [formatToKey(v0), formatToKey(v1)];
|
|
137
|
+
return RANGE_PRESETS.findIndex((preset) => {
|
|
138
|
+
const presetVal = preset.value();
|
|
139
|
+
const presetKeys = [formatToKey(presetVal[0]), formatToKey(presetVal[1])];
|
|
140
|
+
return valKeys[0] === presetKeys[0] && valKeys[1] === presetKeys[1];
|
|
141
|
+
});
|
|
142
|
+
}, [value, open]);
|
|
143
|
+
const handlePresetClick = useCallback(
|
|
144
|
+
(preset) => {
|
|
145
|
+
isPresetClickRef.current = true;
|
|
146
|
+
const currentValue = preset.value();
|
|
147
|
+
let formatText;
|
|
148
|
+
if (preset.format) {
|
|
149
|
+
const res = preset.format(currentValue);
|
|
150
|
+
formatText = Array.isArray(res) ? res.join(" ~ ") : res;
|
|
151
|
+
} else {
|
|
152
|
+
formatText = currentValue.map((v) => dayjs(v).format("HH:mm:ss")).join(" ~ ");
|
|
153
|
+
}
|
|
154
|
+
setActivePreset(preset);
|
|
155
|
+
setPresetFormatText(formatText);
|
|
156
|
+
selfChangeRef.current = true;
|
|
157
|
+
onChange == null ? void 0 : onChange(currentValue);
|
|
158
|
+
scheduleCollapse();
|
|
159
|
+
},
|
|
160
|
+
[onChange]
|
|
161
|
+
);
|
|
162
|
+
const handlePickerChange = useCallback(
|
|
163
|
+
(dates) => {
|
|
164
|
+
setActivePreset(void 0);
|
|
165
|
+
setPresetFormatText(void 0);
|
|
166
|
+
isPresetClickRef.current = false;
|
|
167
|
+
selfChangeRef.current = true;
|
|
168
|
+
if ((dates == null ? void 0 : dates[0]) && (dates == null ? void 0 : dates[1])) {
|
|
169
|
+
onChange == null ? void 0 : onChange(dates);
|
|
170
|
+
} else {
|
|
171
|
+
onChange == null ? void 0 : onChange(null);
|
|
172
|
+
scheduleCollapse();
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
[onChange]
|
|
176
|
+
);
|
|
177
|
+
const activateCompactTag = useCallback(() => {
|
|
178
|
+
setShowFullPicker(true);
|
|
179
|
+
setTimeout(() => {
|
|
180
|
+
var _a;
|
|
181
|
+
const el = (_a = pickerRef.current) == null ? void 0 : _a.nativeElement;
|
|
182
|
+
if (el) {
|
|
183
|
+
const input = el.querySelector("input");
|
|
184
|
+
input == null ? void 0 : input.click();
|
|
185
|
+
input == null ? void 0 : input.focus();
|
|
186
|
+
}
|
|
187
|
+
}, 0);
|
|
188
|
+
}, []);
|
|
189
|
+
const handleOpenChange = useCallback(
|
|
190
|
+
(isOpen) => {
|
|
191
|
+
setOpen(isOpen);
|
|
192
|
+
if (!isOpen) {
|
|
193
|
+
scheduleCollapse(150);
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
[scheduleCollapse]
|
|
197
|
+
);
|
|
198
|
+
const disabledDate = useCallback((current) => {
|
|
199
|
+
return current && (current > dayjs().endOf("day") || current < dayjs().subtract(6, "day").startOf("day"));
|
|
200
|
+
}, []);
|
|
201
|
+
const getPopupContainer = useCallback(() => {
|
|
202
|
+
var _a;
|
|
203
|
+
return (_a = wrapperRef.current) != null ? _a : document.body;
|
|
204
|
+
}, []);
|
|
205
|
+
const presetsNode = useMemo(() => {
|
|
206
|
+
return RANGE_PRESETS.map((preset, index) => {
|
|
207
|
+
const isActive = activePresetIndex === index;
|
|
208
|
+
return {
|
|
209
|
+
label: /* @__PURE__ */ React.createElement(
|
|
210
|
+
"div",
|
|
211
|
+
{
|
|
212
|
+
className: classNames(styles.yokaPresetItem, {
|
|
213
|
+
[styles.yokaPresetItemActive]: isActive
|
|
214
|
+
}),
|
|
215
|
+
role: "option",
|
|
216
|
+
tabIndex: 0,
|
|
217
|
+
"aria-selected": isActive,
|
|
218
|
+
onClick: (e) => {
|
|
219
|
+
e.stopPropagation();
|
|
220
|
+
handlePresetClick(preset);
|
|
221
|
+
},
|
|
222
|
+
onKeyDown: (e) => {
|
|
223
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
224
|
+
e.preventDefault();
|
|
225
|
+
e.stopPropagation();
|
|
226
|
+
handlePresetClick(preset);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
preset.label
|
|
231
|
+
),
|
|
232
|
+
value: preset.value()
|
|
233
|
+
};
|
|
234
|
+
});
|
|
235
|
+
}, [activePresetIndex, handlePresetClick]);
|
|
236
|
+
useImperativeHandle(
|
|
237
|
+
ref,
|
|
238
|
+
() => ({
|
|
239
|
+
toggleFirstPreset() {
|
|
240
|
+
handlePresetClick(RANGE_PRESETS[0]);
|
|
241
|
+
}
|
|
242
|
+
}),
|
|
243
|
+
[handlePresetClick]
|
|
244
|
+
);
|
|
245
|
+
const pickerVisible = showFullPicker || open;
|
|
246
|
+
return /* @__PURE__ */ React.createElement(
|
|
247
|
+
"div",
|
|
248
|
+
{
|
|
249
|
+
className: classNames(styles.YkDateRangePicker, {
|
|
250
|
+
[styles.yokaDisabled]: disabled
|
|
251
|
+
}),
|
|
252
|
+
ref: wrapperRef
|
|
253
|
+
},
|
|
254
|
+
!showFullPicker && /* @__PURE__ */ React.createElement(
|
|
255
|
+
"span",
|
|
256
|
+
{
|
|
257
|
+
className: styles.yokaCompactTag,
|
|
258
|
+
role: "button",
|
|
259
|
+
tabIndex: disabled ? -1 : 0,
|
|
260
|
+
"aria-haspopup": "dialog",
|
|
261
|
+
"aria-expanded": open,
|
|
262
|
+
"aria-disabled": disabled,
|
|
263
|
+
onClick: disabled ? void 0 : activateCompactTag,
|
|
264
|
+
onKeyDown: (e) => {
|
|
265
|
+
if (disabled)
|
|
266
|
+
return;
|
|
267
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
268
|
+
e.preventDefault();
|
|
269
|
+
activateCompactTag();
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
/* @__PURE__ */ React.createElement("i", { className: classNames("iconfont icon-riqi1", styles.yokaCompactTagIcon) }),
|
|
274
|
+
/* @__PURE__ */ React.createElement("span", { className: styles.yokaCompactTagContent }, activePreset ? (
|
|
275
|
+
// ๅทฒ้้ข่ฎพ๏ผใ้ข่ฎพๅ็งฐ (ๆ ผๅผๅๆถ้ด)ใ
|
|
276
|
+
/* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: styles.yokaCompactTagPresetLabel }, activePreset.label), /* @__PURE__ */ React.createElement("span", { className: styles.yokaCompactTagPresetFormat }, "(", presetFormatText, ")"))
|
|
277
|
+
) : showState.length === 2 ? (
|
|
278
|
+
// ่ชๅฎไนๆถ้ด๏ผใ่ตทๅงๆถ้ด ~ ็ปๆๆถ้ดใ
|
|
279
|
+
/* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: styles.yokaCompactTagDatetime }, showState[0]), /* @__PURE__ */ React.createElement("span", { className: styles.yokaCompactTagSeparator }, "~"), /* @__PURE__ */ React.createElement("span", { className: styles.yokaCompactTagDatetime }, showState[1]))
|
|
280
|
+
) : (
|
|
281
|
+
// ๆ ๅผ/ๆธ
็ฉบ๏ผplaceholder ๅฑ
ไธญๆพ็คบ
|
|
282
|
+
/* @__PURE__ */ React.createElement("span", { className: styles.yokaCompactTagPlaceholder }, placeholder)
|
|
283
|
+
))
|
|
284
|
+
),
|
|
285
|
+
/* @__PURE__ */ React.createElement("div", { className: styles.yokaPickerWrapper, style: { display: pickerVisible ? "flex" : "none" } }, /* @__PURE__ */ React.createElement("i", { className: classNames("iconfont icon-riqi1", styles.yokaPickerWrapperIcon) }), /* @__PURE__ */ React.createElement(
|
|
286
|
+
RangePicker,
|
|
287
|
+
{
|
|
288
|
+
ref: pickerRef,
|
|
289
|
+
value: value && value.length === 2 ? value : void 0,
|
|
290
|
+
onChange: handlePickerChange,
|
|
291
|
+
open,
|
|
292
|
+
onOpenChange: handleOpenChange,
|
|
293
|
+
variant: "borderless",
|
|
294
|
+
allowClear,
|
|
295
|
+
disabled,
|
|
296
|
+
status: status || void 0,
|
|
297
|
+
suffixIcon: null,
|
|
298
|
+
showTime: {
|
|
299
|
+
format: "HH:mm:ss",
|
|
300
|
+
hideDisabledOptions: true,
|
|
301
|
+
defaultValue: [dayjs("00:00", "HH:mm"), dayjs("23:59", "HH:mm")]
|
|
302
|
+
},
|
|
303
|
+
format: "YYYY-MM-DD HH:mm:ss",
|
|
304
|
+
disabledDate,
|
|
305
|
+
presets: presetsNode,
|
|
306
|
+
getPopupContainer,
|
|
307
|
+
classNames: { popup: { root: "yoka-daterangepicker-popup" } }
|
|
308
|
+
}
|
|
309
|
+
))
|
|
310
|
+
);
|
|
311
|
+
});
|
|
312
|
+
YkDateRangePicker.displayName = "YkDateRangePicker";
|
|
313
|
+
var YkDateRangePicker_default = YkDateRangePicker;
|
|
314
|
+
export {
|
|
315
|
+
YkDateRangePicker_default as default
|
|
316
|
+
};
|
|
317
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/YkDateRangePicker/index.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * YkDateRangePicker\n *\n * ๅธฆใ็ดงๅ้ข่ฎพ tagใไธใๅฎๆด RangePickerใๅๆจกๅผๅๆข็ๆฅๆ่ๅด้ๆฉๅจใ\n *\n * ๅ่ฝ็นๆง๏ผ\n * - ้ป่ฎค็ดงๅๆจกๅผ๏ผไปฅ tag ๅฝขๅผๅฑ็คบใ้ข่ฎพๆ ็ญพ + ๆ ผๅผๅๆถ้ดใๆใ่ตทๆญขๆถ้ดใ\n * - mount ๆถ่ฅๆ ๅๅงๅผ๏ผ่ชๅจ้ไธญใ่ฟ5ๅ้ใ้ข่ฎพ\n * - ็นๅป tag ๅๅฑๅผๅ
ๅต็ๅฎๆด RangePicker๏ผๅคฑ็ฆๅ่ชๅจๆถ่ตท\n * - 8 ไธชๅ
็ฝฎๅฟซๆท้ข่ฎพ๏ผ2 ๅ Grid ๅธๅฑๆธฒๆ๏ผๅฝๅๆฟๆดป้กน้ซไบฎ\n * - ๅๆง็ปไปถ๏ผๅบๅใ็จๆทๆไฝใไธใๅค้จ่ตๅผใ๏ผไป
็จๆทๆไฝ่งฆๅ onChange\n * - ็ฆ็จๆฅๆ๏ผไป
ๅ
่ฎธ่ฟๅป 7 ๅคฉ๏ผๅซไปๅคฉ๏ผ\n * - allowClear๏ผๆฏๆไธ้ฎๆธ
้ค๏ผๆธ
้คๅ้็ฝฎ้ข่ฎพ็ถๆ\n * - ้่ฟ forwardRef + useImperativeHandle ๅฏนๅคๆด้ฒ toggleFirstPreset()\n *\n * @example\n * ```tsx\n * const pickerRef = useRef<YkDateRangePickerRef>(null);\n *\n * <YkDateRangePicker\n * value={range}\n * onChange={(val) => setRange(val)}\n * ref={pickerRef}\n * />\n *\n * // ๅค้จๅผบๅถๅๆขๅฐใ่ฟ5ๅ้ใ\n * pickerRef.current?.toggleFirstPreset();\n * ```\n */\n\nimport { DatePicker } from 'antd';\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, {\n type ComponentRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styles from './index.module.less';\nconst { RangePicker } = DatePicker;\n\n// โโโ ็ฑปๅ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n/** ๆถ้ด่ๅดๅผ */\nexport type DateRangeValue = [Dayjs, Dayjs];\n\n/**\n * ้ข่ฎพ้กนๅฎไน\n * - value() ๆฏๆฌก่ฐ็จ้ฝ่ฟๅๆๆฐๆถ้ด๏ผ้ฟๅ
้ญๅ
็ผๅญๆงๅผ\n * - format() ๅฏ้๏ผๆงๅถ็ดงๅ tag ไธญ็ๆ ผๅผๅๅฑ็คบๆๆฌ\n */\ninterface RangePreset {\n label: string;\n /** ๅทฅๅๅฝๆฐ๏ผ่ฟๅๅฎๆถๆถ้ด่ๅด */\n value: () => DateRangeValue;\n /** ่ชๅฎไน็ดงๅๆจกๅผๆ ผๅผๅ๏ผ่ฟๅๅไธชๅญ็ฌฆไธฒๆ [start, end] ๆฐ็ป */\n format?: (value: DateRangeValue) => string | [string, string];\n}\n\nexport interface YkDateRangePickerProps {\n /** ๅๆงๅผ */\n value?: DateRangeValue | [];\n /** ็จๆทๆไฝๆนๅๆถ่งฆๅ๏ผๅค้จ setValue ไธไผ่งฆๅ๏ผ */\n onChange?: (value: DateRangeValue | null) => void;\n /**\n * ๆฏๅฆๅ
่ฎธๆธ
้คใ\n * - false๏ผ้ป่ฎค๏ผ๏ผ้่ๆธ
้คๆ้ฎ๏ผไธ Vue ๅ็่กไธบไธ่ด\n * - true๏ผๆพ็คบๆธ
้คๆ้ฎ๏ผๆธ
้คๅ้็ฝฎ้ข่ฎพ็ถๆๅนถ่งฆๅ onChange(null)\n */\n allowClear?: boolean;\n /**\n * ็ดงๅ tag ๆ ๅผ/ๆธ
็ฉบๆถ็ๅ ไฝๆๆฌใ\n * ้ป่ฎค๏ผใ่ฏท้ๆฉๆถ้ด่ๅดใ\n */\n placeholder?: string;\n /** ๆฏๅฆ็ฆ็จ้ๆฉๅจ */\n disabled?: boolean;\n /** ๆ ก้ช็ถๆ */\n status?: '' | 'error' | 'warning';\n}\n\n/** ้่ฟ ref ๅฏน็ถ็ปไปถๆด้ฒ็ๆนๆณ */\nexport interface YkDateRangePickerRef {\n /** ๅผบๅถๅๆขๅฐ็ฌฌไธไธช้ข่ฎพ๏ผ่ฟ5ๅ้๏ผๅนถ่งฆๅ onChange */\n toggleFirstPreset: () => void;\n}\n\n// โโโ ๅทฅๅ
ทๅฝๆฐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n/** ็ฒพ็กฎๅฐๅ้็่ฟๅปๆถ้ดๅบ้ด */\nfunction pastTime(n: number, unit: dayjs.ManipulateType): DateRangeValue {\n const fmt = 'YYYY-MM-DD HH:mm:00';\n return [dayjs(dayjs().subtract(n, unit).format(fmt)), dayjs(dayjs().format(fmt))];\n}\n\nconst DISPLAY_FORMAT = 'YYYY-MM-DD HH:mm:ss';\n\n/** ๆ ผๅผๅ Dayjs ไธบ็ดงๅๆจกๅผๅฑ็คบๅญ็ฌฆไธฒ / ้ข่ฎพๅน้
ๅญ็ฌฆไธฒ */\nfunction formatToKey(d: Dayjs): string {\n return dayjs(d).format(DISPLAY_FORMAT);\n}\n\n/** ๆทฑๅบฆๆฏ่พไธคไธช value ๆฏๅฆใ่ฏญไน็ธๅใ๏ผๅฟฝ็ฅ Dayjs ๅผ็จๅทฎๅผ๏ผ */\nfunction isValueEqual(a: DateRangeValue | [] | undefined, b: DateRangeValue | [] | undefined): boolean {\n if (a === b) return true;\n if (!a || !b) return a === b;\n if (a.length !== b.length) return false;\n if (a.length < 2 || b.length < 2) return a.length === b.length;\n return (\n formatToKey(a[0] as Dayjs) === formatToKey(b[0] as Dayjs) &&\n formatToKey(a[1] as Dayjs) === formatToKey(b[1] as Dayjs)\n );\n}\n\n// โโโ ๅ
็ฝฎ้ข่ฎพๅ่กจ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n/**\n * 8 ไธชๅ
็ฝฎๅฟซๆท้ข่ฎพใ\n * value ๅง็ปๆฏๅทฅๅๅฝๆฐ๏ผไฟ่ฏๆฏๆฌก็นๅป้ฝ่ทๅๆๆฐ็ๅฝๅๆถ้ดใ\n */\nconst RANGE_PRESETS: RangePreset[] = [\n {\n label: '่ฟ5ๅ้',\n value: () => pastTime(5, 'minute'),\n },\n {\n label: '่ฟ15ๅ้',\n value: () => pastTime(15, 'minute'),\n },\n {\n label: '่ฟ30ๅ้',\n value: () => pastTime(30, 'minute'),\n },\n {\n label: '่ฟ1ๅฐๆถ',\n value: () => pastTime(1, 'hour'),\n },\n {\n label: '่ฟ2ๅฐๆถ',\n value: () => pastTime(2, 'hour'),\n },\n {\n label: '่ฟ6ๅฐๆถ',\n value: () => pastTime(6, 'hour'),\n },\n {\n label: 'ไปๅคฉ',\n value: () =>\n [\n dayjs(dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss')),\n dayjs(dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss')),\n ] as DateRangeValue,\n // ็ดงๅๆจกๅผๅชๅฑ็คบๆฅๆ๏ผๅฆใ03-25ใ\n format: (v) => v[0].format('MM-DD'),\n },\n {\n label: 'ๆจๅคฉ',\n value: () =>\n [\n dayjs(dayjs().subtract(1, 'day').startOf('day').format('YYYY-MM-DD HH:mm:ss')),\n dayjs(dayjs().subtract(1, 'day').endOf('day').format('YYYY-MM-DD HH:mm:ss')),\n ] as DateRangeValue,\n format: (v) => v[0].format('MM-DD'),\n },\n {\n label: '่ฟ7ๅคฉ',\n value: () =>\n [\n dayjs(dayjs().subtract(6, 'day').startOf('day').format('YYYY-MM-DD HH:mm:ss')),\n dayjs(dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss')),\n ] as DateRangeValue,\n // ็ดงๅๆจกๅผๅฑ็คบๅฎๆดๆฅๆๅบ้ด๏ผๅฆใ2024-03-19 ~ 2024-03-25ใ\n format: (v) => [v[0].format('YYYY-MM-DD'), v[1].format('YYYY-MM-DD')],\n },\n];\n\n// โโโ ไธป็ปไปถ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\nconst YkDateRangePicker = forwardRef<YkDateRangePickerRef, YkDateRangePickerProps>(function YkDateRangePicker(\n { value, onChange, allowClear = false, placeholder = '่ฏท้ๆฉๆถ้ด่ๅด', disabled = false, status = '' },\n ref,\n) {\n // โโ ๅ
้จ็ถๆ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n /** ๆฏๅฆๅฑ็คบๅฎๆด RangePicker๏ผfalse = ็ดงๅ tag ๆจกๅผ๏ผ */\n const [showFullPicker, setShowFullPicker] = useState(false);\n\n /** RangePicker ไธๆ้ขๆฟๆฏๅฆๅฑๅผ */\n const [open, setOpen] = useState(false);\n\n /**\n * ๅฝๅๆฟๆดป็้ข่ฎพๅฎไนๅผ็จใ\n * undefined ่กจ็คบ็จๆทๆๅจ้ไบ่ชๅฎไนๆถ้ด่ๅดใ\n */\n const [activePreset, setActivePreset] = useState<RangePreset | undefined>(undefined);\n\n /**\n * ็ดงๅ tag ไธญ้ข่ฎพ็ๆ ผๅผๅๆๆฌใ\n * ไพ๏ผใ12:00:00 ~ 13:00:00ใๆใ03-25ใๆใ2024-03-19 ~ 2024-03-25ใ\n */\n const [presetFormatText, setPresetFormatText] = useState<string | undefined>(undefined);\n\n // โโ Refs โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n /**\n * ๆ ่ฎฐๆฌๆฌก value ๅๅๆฏๅฆ็ฑ็จๆทๆไฝ่งฆๅ๏ผ้ๅค้จ่ตๅผ๏ผใ\n * ็จ ref ่้ state๏ผ้ฟๅ
่งฆๅ้ขๅค็้ๆธฒๆใ\n * ไธ Vue ็ selfChange ้ป่พไธ่ดใ\n */\n const selfChangeRef = useRef(false);\n\n /**\n * ๆ ่ฎฐๅฝๅ RangePicker.onChange ๆฏๅฆ็ฑ้ข่ฎพ็นๅป่งฆๅใ\n * ็จไบๅบๅใ้ข่ฎพ็นๅปใvsใๆๅจ้ๆฉใ๏ผ้ฟๅ
ๆๅจ้ๆฉๆถ้่ฏฏไฟ็้ข่ฎพ็ถๆใ\n */\n const isPresetClickRef = useRef(false);\n\n /** ็ฎก็ setTimeout๏ผ้ฒๆญข็ซๆ */\n const collapseTimerRef = useRef<ReturnType<typeof setTimeout>>();\n\n /** ็ปไปถๆ นๅ
็ด ๏ผ็จไฝ getPopupContainer */\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n /** RangePicker ๅฎไพ ref๏ผ็จไบ็ผ็จๅผๅฑๅผ้ขๆฟ */\n const pickerRef = useRef<ComponentRef<typeof RangePicker>>(null);\n\n /** ็ผๅญไธไธๆฌก็ value๏ผ็จไบๅคๆญๆฏๅฆๆฏๅค้จๅๆด */\n const prevValueRef = useRef(value);\n\n /** ๅปถ่ฟๆถ่ตทๅฎๆด picker๏ผๆธ
้คๆงๅฎๆถๅจ้ฟๅ
็ซๆ */\n const scheduleCollapse = useCallback((delay?: number) => {\n clearTimeout(collapseTimerRef.current);\n collapseTimerRef.current = setTimeout(() => {\n setOpen(false);\n setShowFullPicker(false);\n }, delay ?? 0);\n }, []);\n\n /** ๅธ่ฝฝๆถๆธ
็ๅฎๆถๅจ */\n useEffect(() => () => clearTimeout(collapseTimerRef.current), []);\n\n // โโ ้ป่ฎคๅผ๏ผmount ๆถๆ ๅๅง value ๅ่ชๅจ้ไธญใ่ฟ5ๅ้ใ โโโโโโโโโโโโโโโโโโโ\n\n useEffect(() => {\n // ไป
ๅจๅค้จๆชไผ ๆๆๅๅงๅผๆถๆง่กไธๆฌก\n if (value && (value as DateRangeValue).length === 2) return;\n\n const first = RANGE_PRESETS[0];\n const currentValue = first.value();\n const formatText = currentValue.map((v) => dayjs(v).format('HH:mm:ss')).join(' ~ ');\n\n setActivePreset(first);\n setPresetFormatText(formatText);\n\n // ๆ ่ฎฐไธบ็จๆทๆไฝ๏ผ้ฟๅ
่ขซไธๆน็ๅค้จ value ็ๅฌ effect ๆธ
็ฉบ้ข่ฎพ็ถๆ\n selfChangeRef.current = true;\n onChange?.(currentValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // โโ ๅค้จ value ๅๅๅๆญฅ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n useEffect(() => {\n // ่ทณ่ฟๅๅง mount๏ผvalue ๆช็ๆญฃๅๅ๏ผ\n if (isValueEqual(prevValueRef.current, value)) return;\n prevValueRef.current = value;\n\n if (!selfChangeRef.current) {\n // ๅค้จ setField ่ตๅผ๏ผๆธ
็ฉบ้ข่ฎพ็ถๆ๏ผๆ ๆณๅพ็ฅๅค้จๅผๅฏนๅบๅชไธช้ข่ฎพ๏ผ\n setActivePreset(undefined);\n setPresetFormatText(undefined);\n }\n // ๆถ่ดนๆๆ ่ฎฐ๏ผ็ญๅพ
ไธๆฌก็จๆทๆไฝ้ๆฐ็ฝฎไฝ\n selfChangeRef.current = false;\n }, [value]);\n\n // โโ ็ดงๅ tag ๅฑ็คบๆๆฌ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n /**\n * ็ดงๅๆจกๅผไธ่ตทๆญขๆถ้ด็ๅญ็ฌฆไธฒ่กจ็คบใ\n * ไธ Vue showState ่ฎก็ฎๅฑๆง้ป่พไธ่ดใ\n */\n const showState = useMemo<[string, string] | []>(() => {\n if (!value || value.length < 2) return [];\n return [formatToKey(value[0] as Dayjs), formatToKey(value[1] as Dayjs)];\n }, [value]);\n\n // โโ ้ข่ฎพๆฟๆดป้กนๆฃๆต โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n /**\n * ๆ นๆฎๅฝๅ value ๅน้
ๆฟๆดป็้ข่ฎพ index๏ผ็จไบ้ซไบฎๆธฒๆ๏ผใ\n * ๅฐ value ๅ้ข่ฎพๅผ้ฝๆ ผๅผๅไธบๅไธๅญ็ฌฆไธฒๅๆฏๅฏน๏ผไธ Vue presetsNode computed ไธ่ดใ\n * ไพ่ต open๏ผ็กฎไฟ้ขๆฟๆๅผๆถ๏ผๆถ้ดๆต้ๅ๏ผ้ๆฐ่ฎก็ฎใ\n */\n const activePresetIndex = useMemo<number>(() => {\n if (!value || value.length < 2) return -1;\n const [v0, v1] = value as DateRangeValue;\n const valKeys = [formatToKey(v0), formatToKey(v1)];\n return RANGE_PRESETS.findIndex((preset) => {\n const presetVal = preset.value();\n const presetKeys = [formatToKey(presetVal[0]), formatToKey(presetVal[1])];\n return valKeys[0] === presetKeys[0] && valKeys[1] === presetKeys[1];\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, open]);\n\n // โโ ไบไปถๅค็ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n /**\n * ็นๅป้ข่ฎพ้กนใ\n * ๅฏนๅบ Vue handleTogglePresetใ\n */\n const handlePresetClick = useCallback(\n (preset: RangePreset) => {\n isPresetClickRef.current = true;\n\n const currentValue = preset.value();\n\n // ่ฎก็ฎ็ดงๅ tag ไธญ็ๆ ผๅผๅๆๆฌ\n let formatText: string;\n if (preset.format) {\n const res = preset.format(currentValue);\n formatText = Array.isArray(res) ? res.join(' ~ ') : res;\n } else {\n // ๆ ่ชๅฎไน format๏ผ้ป่ฎคๅฑ็คบๆถ้ด้จๅ๏ผๅฆใ12:00:00 ~ 13:00:00ใ\n formatText = currentValue.map((v) => dayjs(v).format('HH:mm:ss')).join(' ~ ');\n }\n\n setActivePreset(preset);\n setPresetFormatText(formatText);\n\n // ๅ็ถ็ปไปถ้็ฅๆฐๅผ\n selfChangeRef.current = true;\n onChange?.(currentValue);\n\n // ้ๅฎ้ข่ฎพๅๆถ่ตท picker\n scheduleCollapse();\n },\n [onChange],\n );\n\n /**\n * RangePicker onChange๏ผ็จๆทๆๅจ้ๆฉๆฅๆๆ็นๅปๆธ
้คๅ่งฆๅ๏ผใ\n * ๅฏนๅบ Vue handleChangeใ\n */\n const handlePickerChange = useCallback(\n (dates: [Dayjs | null, Dayjs | null] | null) => {\n // ๆ ่ฎบๆฏๅฆ้ข่ฎพ็นๅป๏ผๅช่ฆ่งฆๅ change ้ฝๅ
ๆธ
็ฉบ้ข่ฎพ็ถๆ\n setActivePreset(undefined);\n setPresetFormatText(undefined);\n isPresetClickRef.current = false;\n\n selfChangeRef.current = true;\n\n if (dates?.[0] && dates?.[1]) {\n // ๆญฃๅธธ้ๆฉ\n onChange?.(dates as DateRangeValue);\n } else {\n // ็นๅปๆธ
้ค๏ผvalue ็ฝฎไธบ []๏ผ็ฉบๆฐ็ป๏ผ๏ผๅนถ้ๅ็ดงๅ tag ๆจกๅผๆพ็คบ placeholder\n onChange?.(null);\n scheduleCollapse();\n }\n },\n [onChange],\n );\n\n /**\n * ็นๅป็ดงๅ tag โ ๅฑๅผๅฎๆด RangePicker ๅนถ่็ฆใ\n * ๅฏนๅบ Vue handleClickPresetPickerใ\n */\n /** ๆจกๆๆ้ฎๆฟๆดป่กไธบ๏ผๅๆถๆฏๆ้ผ ๆ ็นๅปๅ้ฎ็ๅ่ฝฆ/็ฉบๆ ผ */\n const activateCompactTag = useCallback(() => {\n setShowFullPicker(true);\n // ็ญๅพ
DOM ๆธฒๆๅๅ่งฆๅ picker ๅฑๅผ\n setTimeout(() => {\n const el = pickerRef.current?.nativeElement;\n if (el) {\n // ่งฆๅ็ฌฌไธไธช input ็็นๅป๏ผไฝฟ antd RangePicker ๅฑๅผ้ขๆฟ\n const input = el.querySelector<HTMLInputElement>('input');\n input?.click();\n input?.focus();\n }\n }, 0);\n }, []);\n\n /**\n * RangePicker ้ขๆฟๅผๅ
ณๅ่ฐใ\n * ้ขๆฟๅ
ณ้ญๆถๅปถ่ฟ้ๅ็ดงๅๆจกๅผ๏ผ้ฟๅ
ไธ้ๆฉๆไฝๅฒ็ช๏ผใ\n */\n const handleOpenChange = useCallback(\n (isOpen: boolean) => {\n setOpen(isOpen);\n if (!isOpen) {\n scheduleCollapse(150);\n }\n },\n [scheduleCollapse],\n );\n\n /**\n * ็ฆ็จๆฅๆ่งๅ๏ผๅชๅ
่ฎธ่ฟๅป 7 ๅคฉ๏ผๅซไปๅคฉ๏ผใ\n * ๅฏนๅบ Vue disabledDateใ\n */\n const disabledDate = useCallback((current: Dayjs) => {\n return current && (current > dayjs().endOf('day') || current < dayjs().subtract(6, 'day').startOf('day'));\n }, []);\n\n /**\n * Popup ๆ่ฝฝๅฎนๅจ๏ผๆๅจ็ปไปถ่ช่บซ wrapper ๅ
๏ผ้ฟๅ
ๅ
จๅฑๅฎไฝ้ไนฑใ\n * ๅฏนๅบ Vue getPopupContainerใ\n */\n const getPopupContainer = useCallback((): HTMLElement => {\n return wrapperRef.current ?? document.body;\n }, []);\n\n // โโ antd presets ่็น โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n /**\n * ๆๅปบไผ ๅ
ฅ RangePicker ็ presets propใ\n * - label ไธบ่ชๅฎไน ReactNode๏ผๅฎ็ฐ็นๅปๅค็ไธ้ซไบฎๆ ทๅผ\n * - value ไผ ๅฎๆถๅผไพ antd ๅ
้จไฝฟ็จ๏ผๅฆ disabledDate ๆ ก้ช๏ผ\n * antd 5.x presets ๆ ผๅผ๏ผ{ label: ReactNode; value: [Dayjs, Dayjs] }[]\n */\n const presetsNode = useMemo(() => {\n return RANGE_PRESETS.map((preset, index) => {\n const isActive = activePresetIndex === index;\n return {\n label: (\n <div\n className={classNames(styles.yokaPresetItem, {\n [styles.yokaPresetItemActive]: isActive,\n })}\n role=\"option\"\n tabIndex={0}\n aria-selected={isActive}\n onClick={(e) => {\n e.stopPropagation();\n handlePresetClick(preset);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n handlePresetClick(preset);\n }\n }}\n >\n {preset.label}\n </div>\n ),\n value: preset.value() as [Dayjs, Dayjs],\n };\n });\n }, [activePresetIndex, handlePresetClick]);\n\n // โโ ๅฏนๅคๆด้ฒๆนๆณ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n /**\n * ้่ฟ ref ๆด้ฒ toggleFirstPreset()๏ผไพ็ถ็ปไปถ่ฐ็จใ\n * ๅฏนๅบ Vue defineExpose({ toggleFirstPreset })ใ\n */\n useImperativeHandle(\n ref,\n () => ({\n toggleFirstPreset() {\n handlePresetClick(RANGE_PRESETS[0]);\n },\n }),\n [handlePresetClick],\n );\n\n // โโ ๆธฒๆ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n\n // ๅฎๆด picker ็ๅฏ่งๆง๏ผๅฑๅผ็ถๆ ๆ ไธๆ้ขๆฟๆๅผๆถๅๆพ็คบ\n const pickerVisible = showFullPicker || open;\n\n return (\n <div\n className={classNames(styles.YkDateRangePicker, {\n [styles.yokaDisabled]: disabled,\n })}\n ref={wrapperRef}\n >\n {/* โโ ็ดงๅ Tag ๆจกๅผ โโ */}\n {!showFullPicker && (\n <span\n className={styles.yokaCompactTag}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-disabled={disabled}\n onClick={disabled ? undefined : activateCompactTag}\n onKeyDown={(e) => {\n if (disabled) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n activateCompactTag();\n }\n }}\n >\n {/* ๅพๆ ๏ผ็ปๅฏนๅฎไฝๅบๅฎๅจๅทฆไพง */}\n <i className={classNames('iconfont icon-riqi1', styles.yokaCompactTagIcon)} />\n {/* ๅ
ๅฎนๅบ๏ผflex:1 + justify-content:center ๅฎ็ฐ่ง่งๅฑ
ไธญ */}\n <span className={styles.yokaCompactTagContent}>\n {activePreset ? (\n // ๅทฒ้้ข่ฎพ๏ผใ้ข่ฎพๅ็งฐ (ๆ ผๅผๅๆถ้ด)ใ\n <>\n <span className={styles.yokaCompactTagPresetLabel}>{activePreset.label}</span>\n <span className={styles.yokaCompactTagPresetFormat}>({presetFormatText})</span>\n </>\n ) : showState.length === 2 ? (\n // ่ชๅฎไนๆถ้ด๏ผใ่ตทๅงๆถ้ด ~ ็ปๆๆถ้ดใ\n <>\n <span className={styles.yokaCompactTagDatetime}>{showState[0]}</span>\n <span className={styles.yokaCompactTagSeparator}>~</span>\n <span className={styles.yokaCompactTagDatetime}>{showState[1]}</span>\n </>\n ) : (\n // ๆ ๅผ/ๆธ
็ฉบ๏ผplaceholder ๅฑ
ไธญๆพ็คบ\n <span className={styles.yokaCompactTagPlaceholder}>{placeholder}</span>\n )}\n </span>\n </span>\n )}\n\n {/* โโ ๅฎๆด RangePicker๏ผdisplay ๅๆขไปฅไฟๆ DOM ๆ่ฝฝ๏ผ้ฟๅ
focus ้ช็๏ผ โโ */}\n <div className={styles.yokaPickerWrapper} style={{ display: pickerVisible ? 'flex' : 'none' }}>\n <i className={classNames('iconfont icon-riqi1', styles.yokaPickerWrapperIcon)} />\n <RangePicker\n ref={pickerRef}\n // ๅผไธๅ่ฐ\n value={value && value.length === 2 ? (value as [Dayjs, Dayjs]) : undefined}\n onChange={handlePickerChange}\n open={open}\n onOpenChange={handleOpenChange}\n // ๅค่ง\n variant=\"borderless\"\n allowClear={allowClear}\n disabled={disabled}\n status={status || undefined}\n suffixIcon={null}\n // ๆถ้ด้ๆฉ๏ผๆฏๆ็ง๏ผ\n showTime={{\n format: 'HH:mm:ss',\n hideDisabledOptions: true,\n defaultValue: [dayjs('00:00', 'HH:mm'), dayjs('23:59', 'HH:mm')],\n }}\n format=\"YYYY-MM-DD HH:mm:ss\"\n // ็ฆ็จๆฅๆ\n disabledDate={disabledDate}\n // ้ข่ฎพ๏ผ่ชๅฎไนๆธฒๆ๏ผ\n presets={presetsNode}\n // Popup ๅฎนๅจ\n getPopupContainer={getPopupContainer}\n classNames={{ popup: { root: 'yoka-daterangepicker-popup' } }}\n />\n </div>\n </div>\n );\n});\n\nYkDateRangePicker.displayName = 'YkDateRangePicker';\n\nexport default YkDateRangePicker;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["YkDateRangePicker"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YkDateRangePicker ๆ ทๅผ (CSS Modules)
|
|
3
|
+
*
|
|
4
|
+
* Less ๅ้ๆ ๅฐ๏ผ
|
|
5
|
+
* @primary-color โ #1890ff
|
|
6
|
+
* @error-color โ #ff4d4f
|
|
7
|
+
*
|
|
8
|
+
* ๅฝๅๅ็ผ่งๅ๏ผ
|
|
9
|
+
* .YkDateRangePicker โ ๆ นๅฎนๅจ๏ผCSS Modules ้ฉผๅณฐๅฝๅ๏ผ
|
|
10
|
+
* .yoka* โ ็ปไปถๅ
้จๅ
็ด ๏ผyoka ๅ็ผ + ้ฉผๅณฐๅฝๅ๏ผ
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/* โโโ ๆ นๅฎนๅจ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */
|
|
14
|
+
|
|
15
|
+
.YkDateRangePicker {
|
|
16
|
+
display: inline-block;
|
|
17
|
+
position: relative;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* โโโ ็ดงๅ Tag ๆจกๅผ๏ผๅฏนๅบ Vue .preset-picker๏ผ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */
|
|
21
|
+
|
|
22
|
+
.yokaCompactTag {
|
|
23
|
+
display: inline-flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
/* ๅพๆ ็ปๅฏนๅฎไฝๅ๏ผๅ
ๅฎนๅบๅฏไปฅ็ๆญฃๅฑ
ไธญ */
|
|
26
|
+
position: relative;
|
|
27
|
+
min-width: 220px;
|
|
28
|
+
height: 30px;
|
|
29
|
+
padding: 0 10px 0 32px; /* ๅทฆไพงไธบๅพๆ ็ๅบ็ฉบ้ด */
|
|
30
|
+
border: 1px solid #1890ff;
|
|
31
|
+
border-radius: 2px;
|
|
32
|
+
line-height: 28px;
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
transition: border-color 0.2s;
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
white-space: nowrap;
|
|
37
|
+
|
|
38
|
+
&:hover {
|
|
39
|
+
border-color: #66a8ff;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* ๆฅๅๅพๆ ๏ผ็ปๅฏนๅฎไฝๅบๅฎๅจๅทฆไพง๏ผไธๅไธๅ
ๅฎนๆๅธ */
|
|
44
|
+
.yokaCompactTagIcon {
|
|
45
|
+
position: absolute;
|
|
46
|
+
left: 10px;
|
|
47
|
+
color: #0a6bfd;
|
|
48
|
+
font-size: 14px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* ๅ
ๅฎนๅบ๏ผflex:1 ๆๆปกๅฉไฝ็ฉบ้ด๏ผๅ
ๅฎนๆฐดๅนณๅฑ
ไธญ */
|
|
52
|
+
.yokaCompactTagContent {
|
|
53
|
+
flex: 1;
|
|
54
|
+
display: inline-flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
width: 100%;
|
|
58
|
+
font-size: 14px;
|
|
59
|
+
color: #333;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* ้ข่ฎพๆจกๅผ๏ผๆ ็ญพๅ๏ผๅฆใ่ฟ 5 ๅ้ใ */
|
|
63
|
+
.yokaCompactTagPresetLabel {
|
|
64
|
+
/* ่ท้ __content ็ justify-content:center ๅณๅฏ */
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* ้ข่ฎพๆจกๅผ๏ผๆ ผๅผๅๆถ้ด๏ผๅฆใ(12:00:00 ~ 13:00:00)ใ */
|
|
68
|
+
.yokaCompactTagPresetFormat {
|
|
69
|
+
margin-left: 8px;
|
|
70
|
+
color: #666;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* ่ชๅฎไนๆจกๅผ๏ผ่ตทๆญขๆถ้ด้กน */
|
|
74
|
+
.yokaCompactTagDatetime {
|
|
75
|
+
display: inline-block;
|
|
76
|
+
min-width: 110px;
|
|
77
|
+
text-align: center;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* ่ชๅฎไนๆจกๅผ๏ผๅ้็ฌฆใ~ใ */
|
|
81
|
+
.yokaCompactTagSeparator {
|
|
82
|
+
display: inline-block;
|
|
83
|
+
margin: 0 2px;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* ๆธ
็ฉบ/ๆ ๅผๆถ็ placeholder ๆๆฌๅฑ
ไธญ */
|
|
87
|
+
.yokaCompactTagPlaceholder {
|
|
88
|
+
color: rgba(0, 0, 0, 0.25);
|
|
89
|
+
text-align: center;
|
|
90
|
+
width: 100%;
|
|
91
|
+
display: block;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* โโโ ๅฎๆด RangePicker ๅ
่ฃ
ๅฎนๅจ๏ผๅฏนๅบ Vue .date-time-range-picker๏ผ โโโโโโโโ */
|
|
95
|
+
|
|
96
|
+
.yokaPickerWrapper {
|
|
97
|
+
display: flex;
|
|
98
|
+
flex-shrink: 0;
|
|
99
|
+
align-items: center;
|
|
100
|
+
height: 30px;
|
|
101
|
+
gap: 10px;
|
|
102
|
+
padding-left: 10px;
|
|
103
|
+
border: 1px solid #e7e7e7;
|
|
104
|
+
border-radius: 2px;
|
|
105
|
+
transition:
|
|
106
|
+
border-color 0.2s,
|
|
107
|
+
box-shadow 0.2s;
|
|
108
|
+
box-sizing: border-box;
|
|
109
|
+
/* ๆๆปกๅฎฝๅบฆ๏ผๅฝ display: flex ๆถ็ๆ๏ผ */
|
|
110
|
+
width: 100%;
|
|
111
|
+
|
|
112
|
+
&:hover {
|
|
113
|
+
border-color: #66a8ff;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* ๅ
ๅซ่็ฆ็ถๆ็ picker ๆถ๏ผๆจกๆ antd focus-ring */
|
|
117
|
+
&:has(:global(.ant-picker-focused)) {
|
|
118
|
+
border-color: #66a8ff;
|
|
119
|
+
box-shadow: 0 0 0 2px rgba(5, 138, 255, 0.06);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* ๅ
ๅซ้่ฏฏ็ถๆ็ picker ๆถ */
|
|
123
|
+
&:has(:global(.ant-picker-status-error)) {
|
|
124
|
+
border-color: #ff4d4f;
|
|
125
|
+
|
|
126
|
+
&:hover,
|
|
127
|
+
&:has(:global(.ant-picker-focused)) {
|
|
128
|
+
border-color: #ff4d4f;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* ๆ ่พนๆก RangePicker๏ผๆๆปกๅฎฝๅบฆ๏ผๅป้คๅทฆไพง padding ้ฟๅ
ๅ็ผฉ่ฟ */
|
|
133
|
+
:global(.ant-picker) {
|
|
134
|
+
width: 100%;
|
|
135
|
+
padding-left: 0;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
:global(.ant-picker-borderless) {
|
|
139
|
+
border: none;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* ๆฅๅๅพๆ */
|
|
144
|
+
.yokaPickerWrapperIcon {
|
|
145
|
+
color: #0a6bfd;
|
|
146
|
+
font-size: 14px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* โโโ ้ข่ฎพไธๆ้ขๆฟ๏ผ2 ๅ Grid ๅธๅฑ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */
|
|
150
|
+
|
|
151
|
+
/*
|
|
152
|
+
* ้่ฆ็ฉฟ้ antd ๅจ body ไธ็ๆ็ .ant-picker-dropdown Portalใ
|
|
153
|
+
* ไฝฟ็จ :global ๆพๅผๅฃฐๆๅ
จๅฑๆ ทๅผไฝ็จๅ๏ผ้่ฟ .yoka-daterangepicker-popup ็ฑปๅ
|
|
154
|
+
* ้ๅฎไธบไป
ๅฝฑๅๆฌ็ปไปถๅฎไพ็ไธๆ้ขๆฟ๏ผ้ฟๅ
ๅ
จๅฑๆ ทๅผๆฑกๆใ
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
:global {
|
|
158
|
+
.yoka-daterangepicker-popup .ant-picker-panel-layout {
|
|
159
|
+
.ant-picker-presets {
|
|
160
|
+
ul {
|
|
161
|
+
display: grid;
|
|
162
|
+
grid-template-columns: repeat(2, 1fr);
|
|
163
|
+
gap: 10px;
|
|
164
|
+
align-content: start;
|
|
165
|
+
padding: 15px 10px 10px 10px !important;
|
|
166
|
+
|
|
167
|
+
li {
|
|
168
|
+
position: relative;
|
|
169
|
+
width: 100%;
|
|
170
|
+
min-width: 0;
|
|
171
|
+
height: 30px;
|
|
172
|
+
margin-top: 0 !important;
|
|
173
|
+
margin-bottom: 0;
|
|
174
|
+
line-height: 30px;
|
|
175
|
+
text-align: center;
|
|
176
|
+
border: 1px solid #ededed;
|
|
177
|
+
border-radius: 2px !important;
|
|
178
|
+
box-sizing: border-box;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.ant-picker-presets-li {
|
|
182
|
+
position: absolute;
|
|
183
|
+
font-size: 12px;
|
|
184
|
+
top: 0;
|
|
185
|
+
right: 0;
|
|
186
|
+
bottom: 0;
|
|
187
|
+
left: 0;
|
|
188
|
+
width: 100%;
|
|
189
|
+
height: 100%;
|
|
190
|
+
|
|
191
|
+
&.ant-picker-presets-li-item {
|
|
192
|
+
color: #fff;
|
|
193
|
+
background-color: #3b86f9;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/* antd 5.x: ๅฟซๆท้ข่ฎพ้ขๆฟ็ๅ่กจๅฎนๅจ */
|
|
200
|
+
.yoka-daterangepicker-popup .ant-picker-presets {
|
|
201
|
+
max-height: none !important;
|
|
202
|
+
overflow: hidden !important;
|
|
203
|
+
display: flex !important;
|
|
204
|
+
flex-direction: column !important;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.yoka-daterangepicker-popup .ant-picker-presets li {
|
|
208
|
+
overflow: hidden !important;
|
|
209
|
+
text-overflow: ellipsis !important;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.yoka-daterangepicker-popup .ant-picker-presets ul {
|
|
213
|
+
display: grid !important;
|
|
214
|
+
grid-template-columns: repeat(2, 1fr) !important;
|
|
215
|
+
width: auto !important;
|
|
216
|
+
min-width: 140px !important;
|
|
217
|
+
max-width: 200px !important;
|
|
218
|
+
margin: 0 !important;
|
|
219
|
+
list-style: none !important;
|
|
220
|
+
overflow: hidden !important;
|
|
221
|
+
flex-wrap: wrap !important;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.yoka-daterangepicker-popup .ant-picker-presets ul li {
|
|
225
|
+
margin: 0 !important;
|
|
226
|
+
padding: 0 !important;
|
|
227
|
+
width: 100% !important;
|
|
228
|
+
min-width: 0 !important;
|
|
229
|
+
display: flex !important;
|
|
230
|
+
align-items: center !important;
|
|
231
|
+
justify-content: center !important;
|
|
232
|
+
box-sizing: border-box !important;
|
|
233
|
+
overflow: hidden !important;
|
|
234
|
+
text-overflow: ellipsis !important;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* ๆๅไธไธช้ข่ฎพ้กนไธๅ ๅบ้จ margin๏ผๅฏนๅบ Vue li:last-of-type ่งๅ๏ผ */
|
|
238
|
+
.yoka-daterangepicker-popup .ant-picker-presets li:last-of-type {
|
|
239
|
+
margin-bottom: 0 !important;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/* ๅฟซๆท้้กนๅบ้จๆไฝๆ ่ก้ซ๏ผ็ผฉๅๅไธ้ขๆฟๆดไฝๅ่ฐ๏ผ */
|
|
243
|
+
.yoka-daterangepicker-popup .ant-picker-ranges {
|
|
244
|
+
line-height: 36px;
|
|
245
|
+
overflow: hidden !important;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/* โโโ ้ข่ฎพๅ่กจ้กน่ชๅฎไนๆ ทๅผ๏ผๅฏนๅบ Vue .ant-picker-presets-li๏ผ โโโโโโโโโโโโ */
|
|
250
|
+
|
|
251
|
+
.yokaPresetItem {
|
|
252
|
+
width: 100%;
|
|
253
|
+
height: 100%;
|
|
254
|
+
min-width: 0;
|
|
255
|
+
text-align: center;
|
|
256
|
+
cursor: pointer;
|
|
257
|
+
white-space: nowrap;
|
|
258
|
+
overflow: hidden;
|
|
259
|
+
text-overflow: ellipsis;
|
|
260
|
+
display: flex;
|
|
261
|
+
align-items: center;
|
|
262
|
+
justify-content: center;
|
|
263
|
+
transition: background-color 0.2s;
|
|
264
|
+
box-sizing: border-box;
|
|
265
|
+
font-size: 12px;
|
|
266
|
+
color: rgba(0, 0, 0, 0.88);
|
|
267
|
+
line-height: 1;
|
|
268
|
+
outline: none;
|
|
269
|
+
|
|
270
|
+
&:hover {
|
|
271
|
+
background-color: #f5f5f5;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
&:focus-visible {
|
|
275
|
+
box-shadow: 0 0 0 2px rgba(5, 138, 255, 0.2);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/* ๅฝๅๆฟๆดป๏ผ้ไธญ๏ผ็้ข่ฎพ้ซไบฎ */
|
|
280
|
+
.yokaPresetItemActive {
|
|
281
|
+
color: #fff;
|
|
282
|
+
background-color: #3b86f9;
|
|
283
|
+
|
|
284
|
+
&:hover {
|
|
285
|
+
background-color: #bae7ff;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* โโโ ็ฆ็จ็ถๆ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */
|
|
290
|
+
|
|
291
|
+
.yokaDisabled {
|
|
292
|
+
pointer-events: none;
|
|
293
|
+
opacity: 0.5;
|
|
294
|
+
|
|
295
|
+
.yokaCompactTag,
|
|
296
|
+
.yokaPickerWrapper {
|
|
297
|
+
cursor: not-allowed;
|
|
298
|
+
border-color: #d9d9d9;
|
|
299
|
+
|
|
300
|
+
&:hover {
|
|
301
|
+
border-color: #d9d9d9;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|