@lobehub/ui 6.0.0-beta.8 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/es/Accordion/style.d.mts +1 -1
- package/es/CodeDiff/DiffPanel.mjs +2 -2
- package/es/CodeDiff/DiffPanel.mjs.map +1 -1
- package/es/DatePicker/DatePicker.d.mts +5 -3
- package/es/DatePicker/DatePicker.mjs +7 -5
- package/es/DatePicker/DatePicker.mjs.map +1 -1
- package/es/DatePicker/DateRangePicker.d.mts +1 -1
- package/es/DatePicker/DayjsDatePicker.d.mts +12 -0
- package/es/DatePicker/DayjsDatePicker.mjs +19 -0
- package/es/DatePicker/DayjsDatePicker.mjs.map +1 -0
- package/es/DatePicker/DayjsDateRangePicker.d.mts +7 -0
- package/es/DatePicker/DayjsDateRangePicker.mjs +8 -0
- package/es/DatePicker/DayjsDateRangePicker.mjs.map +1 -0
- package/es/DatePicker/RangePicker.mjs +7 -1
- package/es/DatePicker/RangePicker.mjs.map +1 -1
- package/es/DatePicker/SinglePicker.mjs +3 -1
- package/es/DatePicker/SinglePicker.mjs.map +1 -1
- package/es/DatePicker/dateGenerateConfig.mjs +52 -0
- package/es/DatePicker/dateGenerateConfig.mjs.map +1 -0
- package/es/DatePicker/index.d.mts +4 -2
- package/es/DatePicker/index.mjs +3 -1
- package/es/DatePicker/legacyDate.mjs +58 -0
- package/es/DatePicker/legacyDate.mjs.map +1 -0
- package/es/DatePicker/type.d.mts +60 -34
- package/es/DatePicker/usePresetActive.mjs +1 -0
- package/es/DatePicker/usePresetActive.mjs.map +1 -1
- package/es/Drawer/style.mjs.map +1 -1
- package/es/FloatingPanel/style.mjs +3 -2
- package/es/FloatingPanel/style.mjs.map +1 -1
- package/es/Form/Form.mjs +6 -2
- package/es/Form/Form.mjs.map +1 -1
- package/es/Form/style.mjs +3 -3
- package/es/Form/style.mjs.map +1 -1
- package/es/Form/type.d.mts +7 -0
- package/es/Popover/style.mjs +1 -1
- package/es/Popover/style.mjs.map +1 -1
- package/es/ProTable/hooks/useFetchData.mjs +1 -1
- package/es/ProTable/hooks/useFetchData.mjs.map +1 -1
- package/es/ProTable/parts/FieldControl.mjs +32 -15
- package/es/ProTable/parts/FieldControl.mjs.map +1 -1
- package/es/ProTable/style.mjs +9 -0
- package/es/ProTable/style.mjs.map +1 -1
- package/es/ProTable/type.d.mts +5 -2
- package/es/Switch/Switch.mjs +8 -1
- package/es/Switch/Switch.mjs.map +1 -1
- package/es/Switch/atoms.d.mts +7 -1
- package/es/Switch/atoms.mjs +20 -4
- package/es/Switch/atoms.mjs.map +1 -1
- package/es/Switch/style.mjs +33 -2
- package/es/Switch/style.mjs.map +1 -1
- package/es/Table/Table.mjs +14 -5
- package/es/Table/Table.mjs.map +1 -1
- package/es/Table/render/FixedFrost.mjs +11 -2
- package/es/Table/render/FixedFrost.mjs.map +1 -1
- package/es/Table/style.mjs +4 -0
- package/es/Table/style.mjs.map +1 -1
- package/es/Tabs/style.d.mts +1 -1
- package/es/Text/style.d.mts +3 -3
- package/es/Toast/dodge.mjs +0 -1
- package/es/Toast/dodge.mjs.map +1 -1
- package/es/Toast/dodge.stylex.mjs +1 -4
- package/es/Toast/dodge.stylex.mjs.map +1 -1
- package/es/Toast/style.mjs +1 -1
- package/es/Toast/style.mjs.map +1 -1
- package/es/Tooltip/style.mjs +2 -2
- package/es/Tooltip/style.mjs.map +1 -1
- package/es/color/index.d.mts +2 -1
- package/es/color/index.mjs +2 -1
- package/es/color/status/error.mjs +67 -0
- package/es/color/status/error.mjs.map +1 -0
- package/es/color/status/index.d.mts +11 -0
- package/es/color/status/index.mjs +15 -0
- package/es/color/status/index.mjs.map +1 -0
- package/es/color/status/info.mjs +67 -0
- package/es/color/status/info.mjs.map +1 -0
- package/es/color/status/success.mjs +67 -0
- package/es/color/status/success.mjs.map +1 -0
- package/es/color/status/warning.mjs +67 -0
- package/es/color/status/warning.mjs.map +1 -0
- package/es/index.d.mts +6 -3
- package/es/index.mjs +5 -2
- package/es/style.css +114 -23
- package/es/styles/index.d.mts +3 -2
- package/es/styles/index.mjs +3 -2
- package/es/styles/stylex/cssVar.stylex.mjs +3 -0
- package/es/styles/stylex/cssVar.stylex.mjs.map +1 -1
- package/es/styles/theme/createLobeToken.d.mts +9 -5
- package/es/styles/theme/createLobeToken.mjs +3 -2
- package/es/styles/theme/createLobeToken.mjs.map +1 -1
- package/es/styles/theme/customPalette.d.mts +6 -0
- package/es/styles/theme/customPalette.mjs +28 -0
- package/es/styles/theme/customPalette.mjs.map +1 -0
- package/es/styles/theme/customPrimary.mjs +52 -17
- package/es/styles/theme/customPrimary.mjs.map +1 -1
- package/es/styles/theme/scope.d.mts +4 -2
- package/es/styles/theme/scope.mjs +53 -20
- package/es/styles/theme/scope.mjs.map +1 -1
- package/es/styles/theme/themeCss.d.mts +1 -0
- package/es/styles/theme/themeCss.mjs +16 -1
- package/es/styles/theme/themeCss.mjs.map +1 -1
- package/es/styles/theme/token/legacy.mjs +12 -12
- package/es/styles/theme/token/legacy.mjs.map +1 -1
- package/es/styles/theme/token/neutral.mjs +12 -4
- package/es/styles/theme/token/neutral.mjs.map +1 -1
- package/es/styles/theme/token/neutralText.mjs +91 -0
- package/es/styles/theme/token/neutralText.mjs.map +1 -0
- package/es/styles/theme/token/palette.mjs +16 -41
- package/es/styles/theme/token/palette.mjs.map +1 -1
- package/es/styles/theme/token/static.mjs +3 -0
- package/es/styles/theme/token/static.mjs.map +1 -1
- package/es/theme.css +293 -290
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
<img height="120" src="https://
|
|
6
|
-
<img height="120" src="https://
|
|
7
|
-
<img height="120" src="https://
|
|
5
|
+
<img height="120" src="https://raw.githubusercontent.com/lobehub/lobe-assets/master/packages/assets-logo/assets/logo-3d.webp">
|
|
6
|
+
<img height="120" src="https://raw.githubusercontent.com/lobehub/lobe-assets/master/packages/assets-logo/assets/split.svg">
|
|
7
|
+
<img height="120" src="https://raw.githubusercontent.com/lobehub/lobe-assets/master/packages/assets-emoji/assets/lollipop.webp">
|
|
8
8
|
|
|
9
9
|
<h1>Lobe UI</h1>
|
|
10
10
|
|
package/es/Accordion/style.d.mts
CHANGED
|
@@ -6,7 +6,7 @@ import Text from "../Text/Text.mjs";
|
|
|
6
6
|
import MaterialFileTypeIcon from "../MaterialFileTypeIcon/MaterialFileTypeIcon.mjs";
|
|
7
7
|
import Tag from "../Tag/Tag.mjs";
|
|
8
8
|
import { stopPropagation } from "../utils/dom.mjs";
|
|
9
|
-
import { compactActionsCls,
|
|
9
|
+
import { compactActionsCls, prefix, styles, variantStyles } from "./style.mjs";
|
|
10
10
|
import { memo, useCallback, useState } from "react";
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import clsx$1 from "clsx";
|
|
@@ -34,7 +34,7 @@ const DiffPanel = memo(({ actions, body, className, classNames, dataCodeType, de
|
|
|
34
34
|
children: actions
|
|
35
35
|
}),
|
|
36
36
|
showHeader && /* @__PURE__ */ jsx(Tag, {
|
|
37
|
-
className:
|
|
37
|
+
className: "lobe-code-diff-lang",
|
|
38
38
|
children: displayName
|
|
39
39
|
}),
|
|
40
40
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiffPanel.mjs","names":["Flexbox","clsx"],"sources":["../../src/CodeDiff/DiffPanel.tsx"],"sourcesContent":["'use client';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport type { CSSProperties, ReactNode } from 'react';\nimport { memo, useCallback, useState } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport type { FlexboxProps } from '@/Flex';\nimport { Flexbox } from '@/Flex';\nimport MaterialFileTypeIcon from '@/MaterialFileTypeIcon';\nimport { styleProps } from '@/styles/stylex/props';\nimport Tag from '@/Tag';\nimport Text from '@/Text';\nimport { stopPropagation } from '@/utils/dom';\n\nimport { compactActionsCls, compactLangCls, prefix, styles, variantStyles } from './style';\n\ninterface DiffPanelProps extends Omit<FlexboxProps, 'children'> {\n actions?: ReactNode;\n additions: number;\n body: ReactNode;\n classNames?: {\n body?: string;\n header?: string;\n };\n dataCodeType: string;\n defaultExpand?: boolean;\n deletions: number;\n displayName: string;\n fileName?: string;\n fullFeatured?: boolean;\n showHeader?: boolean;\n styles?: {\n body?: CSSProperties;\n header?: CSSProperties;\n };\n variant?: 'filled' | 'outlined' | 'borderless';\n}\n\nexport const DiffPanel = memo<DiffPanelProps>(\n ({\n actions,\n body,\n className,\n classNames,\n dataCodeType,\n defaultExpand = true,\n deletions,\n displayName,\n fileName,\n fullFeatured = true,\n showHeader = true,\n styles: customStyles,\n variant = 'filled',\n additions,\n ...rest\n }) => {\n const [expand, setExpand] = useState(defaultExpand);\n const rootStyles = [styles.root, variantStyles[variant]];\n\n const handleToggleExpand = useCallback(() => {\n setExpand((prev) => !prev);\n }, []);\n\n if (!fullFeatured)\n return (\n <Flexbox\n data-code-type={dataCodeType}\n width={'100%'}\n {...rest}\n {...styleProps(rootStyles, clsx(prefix, className), rest.style)}\n >\n <Flexbox\n horizontal\n align=\"center\"\n flex=\"none\"\n gap={4}\n {...styleProps(styles.actionsCompact, compactActionsCls)}\n >\n {actions}\n </Flexbox>\n {showHeader && <Tag className={compactLangCls}>{displayName}</Tag>}\n <div {...styleProps(styles.body, classNames?.body, customStyles?.body)}>{body}</div>\n </Flexbox>\n );\n\n return (\n <Flexbox\n data-code-type={dataCodeType}\n width={'100%'}\n {...rest}\n {...styleProps(rootStyles, clsx(prefix, className), rest.style)}\n >\n {showHeader && (\n <Flexbox\n horizontal\n align=\"center\"\n gap={8}\n justify=\"space-between\"\n padding={4}\n paddingInline={variant === 'borderless' ? 0 : undefined}\n onClick={handleToggleExpand}\n {...styleProps(\n [styles.header, variant === 'filled' && styles.headerFilled],\n classNames?.header,\n customStyles?.header,\n )}\n >\n <Flexbox\n horizontal\n align=\"center\"\n className=\"language-title\"\n flex={1}\n gap={4}\n justify=\"flex-start\"\n paddingInline={8}\n >\n <MaterialFileTypeIcon\n fallbackUnknownType={false}\n filename={fileName || displayName}\n size={18}\n type=\"file\"\n variant=\"raw\"\n />\n <Text ellipsis fontSize={13}>\n {displayName}\n </Text>\n </Flexbox>\n <Flexbox horizontal align=\"center\" flex=\"none\" gap={8} onClick={stopPropagation}>\n {actions && (\n <Flexbox\n horizontal\n align=\"center\"\n flex=\"none\"\n gap={4}\n {...styleProps(styles.actions, `panel-actions ${prefix}-actions`)}\n >\n {actions}\n </Flexbox>\n )}\n {(deletions > 0 || additions > 0) && (\n <Flexbox horizontal align=\"center\" gap={8}>\n {deletions > 0 && <span {...stylex.props(styles.deletions)}>-{deletions}</span>}\n {additions > 0 && <span {...stylex.props(styles.additions)}>+{additions}</span>}\n </Flexbox>\n )}\n <ActionIcon\n icon={expand ? ChevronDown : ChevronRight}\n size=\"small\"\n onClick={handleToggleExpand}\n />\n </Flexbox>\n </Flexbox>\n )}\n <div\n {...styleProps(\n [\n styles.bodyRoot,\n !expand && styles.bodyCollapsed,\n styles.body,\n showHeader && variant !== 'borderless' && styles.bodyDivider,\n ],\n clsx(`${prefix}-body`, classNames?.body),\n customStyles?.body,\n )}\n >\n {body}\n </div>\n </Flexbox>\n );\n },\n);\n\nDiffPanel.displayName = 'DiffPanel';\n"],"mappings":";;;;;;;;;;;;;;;AAqCA,MAAa,YAAY,MAAsB,EAC7C,SACA,MACA,WACA,YACA,cACA,gBAAgB,MAChB,WACA,aACA,UACA,eAAe,MACf,aAAa,MACb,QAAQ,cACR,UAAU,UACV,WACA,GAAG,WACC;CACJ,MAAM,CAAC,QAAQ,aAAa,SAAS,aAAa;CAClD,MAAM,aAAa,CAAC,OAAO,MAAM,cAAc,QAAQ;CACvD,MAAM,qBAAqB,kBAAkB;EAC3C,WAAU,SAAQ,CAAC,IAAI;CACzB,GAAG,CAAC,CAAC;CACL,IAAI,CAAC,cAAc,OAAO,qBAACA,mBAAD;EAAS,kBAAgB;EAAc,OAAO;EAAQ,GAAI;EAAM,GAAI,WAAW,YAAYC,OAAK,QAAQ,SAAS,GAAG,KAAK,KAAK;EAA9H,UAAA;GAClB,oBAACD,mBAAD;IAAS,YAAA;IAAW,OAAM;IAAS,MAAK;IAAO,KAAK;IAAG,GAAI,WAAW,OAAO,gBAAgB,iBAAiB;IAC3G,UAAA;GACM,CAAA;GACR,cAAc,oBAAC,KAAD;IAAK,
|
|
1
|
+
{"version":3,"file":"DiffPanel.mjs","names":["Flexbox","clsx"],"sources":["../../src/CodeDiff/DiffPanel.tsx"],"sourcesContent":["'use client';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport type { CSSProperties, ReactNode } from 'react';\nimport { memo, useCallback, useState } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport type { FlexboxProps } from '@/Flex';\nimport { Flexbox } from '@/Flex';\nimport MaterialFileTypeIcon from '@/MaterialFileTypeIcon';\nimport { styleProps } from '@/styles/stylex/props';\nimport Tag from '@/Tag';\nimport Text from '@/Text';\nimport { stopPropagation } from '@/utils/dom';\n\nimport { compactActionsCls, compactLangCls, prefix, styles, variantStyles } from './style';\n\ninterface DiffPanelProps extends Omit<FlexboxProps, 'children'> {\n actions?: ReactNode;\n additions: number;\n body: ReactNode;\n classNames?: {\n body?: string;\n header?: string;\n };\n dataCodeType: string;\n defaultExpand?: boolean;\n deletions: number;\n displayName: string;\n fileName?: string;\n fullFeatured?: boolean;\n showHeader?: boolean;\n styles?: {\n body?: CSSProperties;\n header?: CSSProperties;\n };\n variant?: 'filled' | 'outlined' | 'borderless';\n}\n\nexport const DiffPanel = memo<DiffPanelProps>(\n ({\n actions,\n body,\n className,\n classNames,\n dataCodeType,\n defaultExpand = true,\n deletions,\n displayName,\n fileName,\n fullFeatured = true,\n showHeader = true,\n styles: customStyles,\n variant = 'filled',\n additions,\n ...rest\n }) => {\n const [expand, setExpand] = useState(defaultExpand);\n const rootStyles = [styles.root, variantStyles[variant]];\n\n const handleToggleExpand = useCallback(() => {\n setExpand((prev) => !prev);\n }, []);\n\n if (!fullFeatured)\n return (\n <Flexbox\n data-code-type={dataCodeType}\n width={'100%'}\n {...rest}\n {...styleProps(rootStyles, clsx(prefix, className), rest.style)}\n >\n <Flexbox\n horizontal\n align=\"center\"\n flex=\"none\"\n gap={4}\n {...styleProps(styles.actionsCompact, compactActionsCls)}\n >\n {actions}\n </Flexbox>\n {showHeader && <Tag className={compactLangCls}>{displayName}</Tag>}\n <div {...styleProps(styles.body, classNames?.body, customStyles?.body)}>{body}</div>\n </Flexbox>\n );\n\n return (\n <Flexbox\n data-code-type={dataCodeType}\n width={'100%'}\n {...rest}\n {...styleProps(rootStyles, clsx(prefix, className), rest.style)}\n >\n {showHeader && (\n <Flexbox\n horizontal\n align=\"center\"\n gap={8}\n justify=\"space-between\"\n padding={4}\n paddingInline={variant === 'borderless' ? 0 : undefined}\n onClick={handleToggleExpand}\n {...styleProps(\n [styles.header, variant === 'filled' && styles.headerFilled],\n classNames?.header,\n customStyles?.header,\n )}\n >\n <Flexbox\n horizontal\n align=\"center\"\n className=\"language-title\"\n flex={1}\n gap={4}\n justify=\"flex-start\"\n paddingInline={8}\n >\n <MaterialFileTypeIcon\n fallbackUnknownType={false}\n filename={fileName || displayName}\n size={18}\n type=\"file\"\n variant=\"raw\"\n />\n <Text ellipsis fontSize={13}>\n {displayName}\n </Text>\n </Flexbox>\n <Flexbox horizontal align=\"center\" flex=\"none\" gap={8} onClick={stopPropagation}>\n {actions && (\n <Flexbox\n horizontal\n align=\"center\"\n flex=\"none\"\n gap={4}\n {...styleProps(styles.actions, `panel-actions ${prefix}-actions`)}\n >\n {actions}\n </Flexbox>\n )}\n {(deletions > 0 || additions > 0) && (\n <Flexbox horizontal align=\"center\" gap={8}>\n {deletions > 0 && <span {...stylex.props(styles.deletions)}>-{deletions}</span>}\n {additions > 0 && <span {...stylex.props(styles.additions)}>+{additions}</span>}\n </Flexbox>\n )}\n <ActionIcon\n icon={expand ? ChevronDown : ChevronRight}\n size=\"small\"\n onClick={handleToggleExpand}\n />\n </Flexbox>\n </Flexbox>\n )}\n <div\n {...styleProps(\n [\n styles.bodyRoot,\n !expand && styles.bodyCollapsed,\n styles.body,\n showHeader && variant !== 'borderless' && styles.bodyDivider,\n ],\n clsx(`${prefix}-body`, classNames?.body),\n customStyles?.body,\n )}\n >\n {body}\n </div>\n </Flexbox>\n );\n },\n);\n\nDiffPanel.displayName = 'DiffPanel';\n"],"mappings":";;;;;;;;;;;;;;;AAqCA,MAAa,YAAY,MAAsB,EAC7C,SACA,MACA,WACA,YACA,cACA,gBAAgB,MAChB,WACA,aACA,UACA,eAAe,MACf,aAAa,MACb,QAAQ,cACR,UAAU,UACV,WACA,GAAG,WACC;CACJ,MAAM,CAAC,QAAQ,aAAa,SAAS,aAAa;CAClD,MAAM,aAAa,CAAC,OAAO,MAAM,cAAc,QAAQ;CACvD,MAAM,qBAAqB,kBAAkB;EAC3C,WAAU,SAAQ,CAAC,IAAI;CACzB,GAAG,CAAC,CAAC;CACL,IAAI,CAAC,cAAc,OAAO,qBAACA,mBAAD;EAAS,kBAAgB;EAAc,OAAO;EAAQ,GAAI;EAAM,GAAI,WAAW,YAAYC,OAAK,QAAQ,SAAS,GAAG,KAAK,KAAK;EAA9H,UAAA;GAClB,oBAACD,mBAAD;IAAS,YAAA;IAAW,OAAM;IAAS,MAAK;IAAO,KAAK;IAAG,GAAI,WAAW,OAAO,gBAAgB,iBAAiB;IAC3G,UAAA;GACM,CAAA;GACR,cAAc,oBAAC,KAAD;IAAK,WAAA;IAA4B,UAAA;GAAiB,CAAA;GACjE,oBAAC,OAAD;IAAK,GAAI,WAAW,OAAO,MAAM,YAAY,MAAM,cAAc,IAAI;IAAI,UAAA;GAAU,CAAA;EAC5E;;CACf,OAAO,qBAACA,mBAAD;EAAS,kBAAgB;EAAc,OAAO;EAAQ,GAAI;EAAM,GAAI,WAAW,YAAYC,OAAK,QAAQ,SAAS,GAAG,KAAK,KAAK;EAA9H,UAAA,CACA,cAAc,qBAACD,mBAAD;GAAS,YAAA;GAAW,OAAM;GAAS,KAAK;GAAG,SAAQ;GAAgB,SAAS;GAAG,eAAe,YAAY,eAAe,IAAI,KAAA;GAAW,SAAS;GAAoB,GAAI,WAAW,CAAC,OAAO,QAAQ,YAAY,YAAY,OAAO,YAAY,GAAG,YAAY,QAAQ,cAAc,MAAM;GAA1R,UAAA,CACX,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAM;IAAS,WAAU;IAAiB,MAAM;IAAG,KAAK;IAAG,SAAQ;IAAa,eAAe;IAAnH,UAAA,CACE,oBAAC,sBAAD;KAAsB,qBAAqB;KAAO,UAAU,YAAY;KAAa,MAAM;KAAI,MAAK;KAAO,SAAQ;IAAO,CAAA,GAC1H,oBAAC,MAAD;KAAM,UAAA;KAAS,UAAU;KACtB,UAAA;IACG,CAAA,CACC;GACT,CAAA,GAAA,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAM;IAAS,MAAK;IAAO,KAAK;IAAG,SAAS;IAAhE,UAAA;KACG,WAAW,oBAACA,mBAAD;MAAS,YAAA;MAAW,OAAM;MAAS,MAAK;MAAO,KAAK;MAAG,GAAI,WAAW,OAAO,SAAS,sCAAiC;MAC9H,UAAA;KACM,CAAA;MACT,YAAY,KAAK,YAAY,MAAM,qBAACA,mBAAD;MAAS,YAAA;MAAW,OAAM;MAAS,KAAK;MAAxC,UAAA,CAChC,YAAY,KAAK,qBAAC,QAAD;OAAM,GAAI,OAAO,MAAM,OAAO,SAAS;OAAvC,UAAA,CAA0C,KAAE,SAAgB;MAC7E,CAAA,GAAA,YAAY,KAAK,qBAAC,QAAD;OAAM,GAAI,OAAO,MAAM,OAAO,SAAS;OAAvC,UAAA,CAA0C,KAAE,SAAgB;MACvE,CAAA,CAAA;;KACX,oBAAC,YAAD;MAAY,MAAM,SAAS,cAAc;MAAc,MAAK;MAAQ,SAAS;KAAqB,CAAA;IAC3F;GACF,CAAA,CAAA;EACX,CAAA,GAAA,oBAAC,OAAD;GAAK,GAAI,WAAW;IAAC,OAAO;IAAU,CAAC,UAAU,OAAO;IAAe,OAAO;IAAM,cAAc,YAAY,gBAAgB,OAAO;GAAW,GAAGC,OAAK,GAAG,OAAO,QAAQ,YAAY,IAAI,GAAG,cAAc,IAAI;GAC5M,UAAA;EACE,CAAA,CACE;;AACf,CAAC;AACD,UAAU,cAAc"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { DatePickerType } from "./type.mjs";
|
|
2
2
|
//#region src/DatePicker/DatePicker.d.ts
|
|
3
3
|
/**
|
|
4
|
-
* DatePicker over
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* DatePicker over native `Date` — the previous lobe DatePicker API: values, `onChange`
|
|
5
|
+
* and `disabledDate` use `Date`, a cleared range is `[null, null]`; inputs may also be
|
|
6
|
+
* `Dayjs`, date strings or timestamps. Statics as in antd: `DatePicker.RangePicker`,
|
|
7
|
+
* `WeekPicker`, `MonthPicker`, `YearPicker`, `QuarterPicker`, `TimePicker`, the pure panels
|
|
8
|
+
* and `generatePicker`. For the antd `Dayjs` API use `DayjsDatePicker`.
|
|
7
9
|
*/
|
|
8
10
|
declare const DatePicker: DatePickerType;
|
|
9
11
|
//#endregion
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
2
|
+
import dateGenerateConfig from "./dateGenerateConfig.mjs";
|
|
3
3
|
import generatePicker from "./generatePicker.mjs";
|
|
4
4
|
import genPurePanel from "./PurePanel.mjs";
|
|
5
5
|
//#region src/DatePicker/DatePicker.tsx
|
|
6
6
|
/**
|
|
7
|
-
* DatePicker over
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* DatePicker over native `Date` — the previous lobe DatePicker API: values, `onChange`
|
|
8
|
+
* and `disabledDate` use `Date`, a cleared range is `[null, null]`; inputs may also be
|
|
9
|
+
* `Dayjs`, date strings or timestamps. Statics as in antd: `DatePicker.RangePicker`,
|
|
10
|
+
* `WeekPicker`, `MonthPicker`, `YearPicker`, `QuarterPicker`, `TimePicker`, the pure panels
|
|
11
|
+
* and `generatePicker`. For the antd `Dayjs` API use `DayjsDatePicker`.
|
|
10
12
|
*/
|
|
11
|
-
const DatePicker = generatePicker(
|
|
13
|
+
const DatePicker = generatePicker(dateGenerateConfig);
|
|
12
14
|
DatePicker._InternalPanelDoNotUseOrYouWillBeFired = genPurePanel(DatePicker);
|
|
13
15
|
DatePicker._InternalRangePanelDoNotUseOrYouWillBeFired = genPurePanel(DatePicker.RangePicker);
|
|
14
16
|
DatePicker.generatePicker = generatePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.mjs","names":[
|
|
1
|
+
{"version":3,"file":"DatePicker.mjs","names":[],"sources":["../../src/DatePicker/DatePicker.tsx"],"sourcesContent":["'use client';\n\nimport dateGenerateConfig from './dateGenerateConfig';\nimport generatePicker from './generatePicker';\nimport genPurePanel from './PurePanel';\nimport type { DatePickerType } from './type';\n\n/**\n * DatePicker over native `Date` — the previous lobe DatePicker API: values, `onChange`\n * and `disabledDate` use `Date`, a cleared range is `[null, null]`; inputs may also be\n * `Dayjs`, date strings or timestamps. Statics as in antd: `DatePicker.RangePicker`,\n * `WeekPicker`, `MonthPicker`, `YearPicker`, `QuarterPicker`, `TimePicker`, the pure panels\n * and `generatePicker`. For the antd `Dayjs` API use `DayjsDatePicker`.\n */\nconst DatePicker = generatePicker(dateGenerateConfig) as DatePickerType;\n\nDatePicker._InternalPanelDoNotUseOrYouWillBeFired = genPurePanel(DatePicker);\nDatePicker._InternalRangePanelDoNotUseOrYouWillBeFired = genPurePanel(DatePicker.RangePicker);\nDatePicker.generatePicker = generatePicker;\n\nexport default DatePicker;\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,aAAa,eAAe,kBAAkB;AAEpD,WAAW,yCAAyC,aAAa,UAAU;AAC3E,WAAW,8CAA8C,aAAa,WAAW,WAAW;AAC5F,WAAW,iBAAiB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RangePickerComponent } from "./type.mjs";
|
|
2
2
|
//#region src/DatePicker/DateRangePicker.d.ts
|
|
3
3
|
/** `DatePicker.RangePicker`, kept as a standalone export. */
|
|
4
|
-
declare const DateRangePicker: RangePickerComponent<
|
|
4
|
+
declare const DateRangePicker: RangePickerComponent<Date>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { DateRangePicker as default };
|
|
7
7
|
//# sourceMappingURL=DateRangePicker.d.mts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DayjsDatePickerType } from "./type.mjs";
|
|
2
|
+
//#region src/DatePicker/DayjsDatePicker.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* antd-aligned DatePicker over `Dayjs` (values, callbacks and `disabledDate` are `Dayjs`),
|
|
5
|
+
* with antd's statics: `RangePicker`, `WeekPicker`, `MonthPicker`, `YearPicker`,
|
|
6
|
+
* `QuarterPicker`, `TimePicker`, the debug-only pure panels and `generatePicker`.
|
|
7
|
+
* The default `DatePicker` export works with native `Date` (the previous lobe API).
|
|
8
|
+
*/
|
|
9
|
+
declare const DayjsDatePicker: DayjsDatePickerType;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { DayjsDatePicker as default };
|
|
12
|
+
//# sourceMappingURL=DayjsDatePicker.d.mts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import generateConfig from "./generateConfig.mjs";
|
|
3
|
+
import generatePicker from "./generatePicker.mjs";
|
|
4
|
+
import genPurePanel from "./PurePanel.mjs";
|
|
5
|
+
//#region src/DatePicker/DayjsDatePicker.tsx
|
|
6
|
+
/**
|
|
7
|
+
* antd-aligned DatePicker over `Dayjs` (values, callbacks and `disabledDate` are `Dayjs`),
|
|
8
|
+
* with antd's statics: `RangePicker`, `WeekPicker`, `MonthPicker`, `YearPicker`,
|
|
9
|
+
* `QuarterPicker`, `TimePicker`, the debug-only pure panels and `generatePicker`.
|
|
10
|
+
* The default `DatePicker` export works with native `Date` (the previous lobe API).
|
|
11
|
+
*/
|
|
12
|
+
const DayjsDatePicker = generatePicker(generateConfig);
|
|
13
|
+
DayjsDatePicker._InternalPanelDoNotUseOrYouWillBeFired = genPurePanel(DayjsDatePicker);
|
|
14
|
+
DayjsDatePicker._InternalRangePanelDoNotUseOrYouWillBeFired = genPurePanel(DayjsDatePicker.RangePicker);
|
|
15
|
+
DayjsDatePicker.generatePicker = generatePicker;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { DayjsDatePicker as default };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=DayjsDatePicker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayjsDatePicker.mjs","names":["dayjsGenerateConfig"],"sources":["../../src/DatePicker/DayjsDatePicker.tsx"],"sourcesContent":["'use client';\n\nimport dayjsGenerateConfig from './generateConfig';\nimport generatePicker from './generatePicker';\nimport genPurePanel from './PurePanel';\nimport type { DayjsDatePickerType } from './type';\n\n/**\n * antd-aligned DatePicker over `Dayjs` (values, callbacks and `disabledDate` are `Dayjs`),\n * with antd's statics: `RangePicker`, `WeekPicker`, `MonthPicker`, `YearPicker`,\n * `QuarterPicker`, `TimePicker`, the debug-only pure panels and `generatePicker`.\n * The default `DatePicker` export works with native `Date` (the previous lobe API).\n */\nconst DayjsDatePicker = generatePicker(dayjsGenerateConfig) as DayjsDatePickerType;\n\nDayjsDatePicker._InternalPanelDoNotUseOrYouWillBeFired = genPurePanel(DayjsDatePicker);\nDayjsDatePicker._InternalRangePanelDoNotUseOrYouWillBeFired = genPurePanel(\n DayjsDatePicker.RangePicker,\n);\nDayjsDatePicker.generatePicker = generatePicker;\n\nexport default DayjsDatePicker;\n"],"mappings":";;;;;;;;;;;AAaA,MAAM,kBAAkB,eAAeA,cAAmB;AAE1D,gBAAgB,yCAAyC,aAAa,eAAe;AACrF,gBAAgB,8CAA8C,aAC5D,gBAAgB,WAClB;AACA,gBAAgB,iBAAiB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RangePickerComponent } from "./type.mjs";
|
|
2
|
+
//#region src/DatePicker/DayjsDateRangePicker.d.ts
|
|
3
|
+
/** `DayjsDatePicker.RangePicker` (values are `Dayjs`), kept as a standalone export. */
|
|
4
|
+
declare const DayjsDateRangePicker: RangePickerComponent<import("dayjs").Dayjs>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { DayjsDateRangePicker as default };
|
|
7
|
+
//# sourceMappingURL=DayjsDateRangePicker.d.mts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import DayjsDatePicker from "./DayjsDatePicker.mjs";
|
|
2
|
+
//#region src/DatePicker/DayjsDateRangePicker.tsx
|
|
3
|
+
/** `DayjsDatePicker.RangePicker` (values are `Dayjs`), kept as a standalone export. */
|
|
4
|
+
const DayjsDateRangePicker = DayjsDatePicker.RangePicker;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { DayjsDateRangePicker as default };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=DayjsDateRangePicker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayjsDateRangePicker.mjs","names":[],"sources":["../../src/DatePicker/DayjsDateRangePicker.tsx"],"sourcesContent":["import DayjsDatePicker from './DayjsDatePicker';\n\n/** `DayjsDatePicker.RangePicker` (values are `Dayjs`), kept as a standalone export. */\nconst DayjsDateRangePicker = DayjsDatePicker.RangePicker;\n\nexport default DayjsDateRangePicker;\n"],"mappings":";;;AAGA,MAAM,uBAAuB,gBAAgB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import Icon from "../Icon/Icon.mjs";
|
|
3
3
|
import RefRangePicker from "./core/PickerInput/RangePicker.mjs";
|
|
4
|
+
import { isNativeDateConfig, normalizeLegacyDateProps } from "./legacyDate.mjs";
|
|
4
5
|
import { usePickerLocale } from "./locale.mjs";
|
|
5
6
|
import { usePanelKeyboard } from "./usePanelKeyboard.mjs";
|
|
6
7
|
import { usePickerShared } from "./usePickerShared.mjs";
|
|
@@ -10,7 +11,12 @@ import clsx$1 from "clsx";
|
|
|
10
11
|
import { ArrowRight } from "lucide-react";
|
|
11
12
|
//#region src/DatePicker/RangePicker.tsx
|
|
12
13
|
const generateRangePicker = (generateConfig) => {
|
|
13
|
-
const RangePicker = (
|
|
14
|
+
const RangePicker = (rawProps) => {
|
|
15
|
+
const normalized = normalizeLegacyDateProps(rawProps, generateConfig);
|
|
16
|
+
const props = isNativeDateConfig(generateConfig) && normalized.onChange ? {
|
|
17
|
+
...normalized,
|
|
18
|
+
onChange: (dates, dateStrings) => normalized.onChange(dates ?? [null, null], dateStrings ?? ["", ""])
|
|
19
|
+
} : normalized;
|
|
14
20
|
const { allowClear, allowEmpty, cellRender, changeOnBlur, className, clearIcon, classNames, components, dateRender, defaultOpen, defaultPickerValue, defaultValue, dropdownClassName, direction, disabled, disabledDate, getPopupContainer, id, locale: localeOverride, maxDate, minDate, mode, monthCellRender, needConfirm, nextIcon, onBlur, onKeyDown, onCalendarChange, onChange, onFocus, onOk, onOpenChange, onPanelChange, onPickerValueChange, open, order, picker = "date", pickerValue, placeholder, popupClassName, popupStyle, prevIcon, renderExtraFooter, rootClassName, separator, shadow, size, status, styles, suffixIcon, superNextIcon, superPrevIcon, value, variant, ...rest } = props;
|
|
15
21
|
const { locale, rangePlaceholder } = usePickerLocale(localeOverride);
|
|
16
22
|
const keyboard = usePanelKeyboard({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.mjs","names":["clsx","RcRangePicker"],"sources":["../../src/DatePicker/RangePicker.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { ArrowRight } from 'lucide-react';\n\nimport Icon from '@/Icon';\n\nimport { RangePicker as RcRangePicker } from './core';\nimport type { GenerateConfig } from './core/generate';\nimport { usePickerLocale } from './locale';\nimport type { DateRangePickerProps, RangePickerComponent } from './type';\nimport { usePanelKeyboard } from './usePanelKeyboard';\nimport { usePickerShared } from './usePickerShared';\nimport { usePresetActive } from './usePresetActive';\n\nconst generateRangePicker = <DateType extends object>(generateConfig: GenerateConfig<DateType>) => {\n const RangePicker = (
|
|
1
|
+
{"version":3,"file":"RangePicker.mjs","names":["clsx","RcRangePicker"],"sources":["../../src/DatePicker/RangePicker.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { ArrowRight } from 'lucide-react';\n\nimport Icon from '@/Icon';\n\nimport { RangePicker as RcRangePicker } from './core';\nimport type { GenerateConfig } from './core/generate';\nimport { isNativeDateConfig, normalizeLegacyDateProps } from './legacyDate';\nimport { usePickerLocale } from './locale';\nimport type { DateRangePickerProps, RangePickerComponent } from './type';\nimport { usePanelKeyboard } from './usePanelKeyboard';\nimport { usePickerShared } from './usePickerShared';\nimport { usePresetActive } from './usePresetActive';\n\nconst generateRangePicker = <DateType extends object>(generateConfig: GenerateConfig<DateType>) => {\n const RangePicker = (rawProps: DateRangePickerProps<DateType>) => {\n const normalized = normalizeLegacyDateProps(rawProps, generateConfig);\n // The default (native Date) picker keeps the previous lobe contract: a cleared range is\n // `[null, null]` with empty strings, never `null`.\n const props =\n isNativeDateConfig(generateConfig) && normalized.onChange\n ? {\n ...normalized,\n onChange: (dates: any, dateStrings: any) =>\n (normalized.onChange as any)(dates ?? [null, null], dateStrings ?? ['', '']),\n }\n : normalized;\n const {\n allowClear,\n allowEmpty,\n cellRender,\n changeOnBlur,\n className,\n clearIcon,\n classNames,\n components,\n dateRender,\n defaultOpen,\n defaultPickerValue,\n defaultValue,\n dropdownClassName,\n direction,\n disabled,\n disabledDate,\n getPopupContainer,\n id,\n locale: localeOverride,\n maxDate,\n minDate,\n mode,\n monthCellRender,\n needConfirm,\n nextIcon,\n onBlur,\n onKeyDown,\n onCalendarChange,\n onChange,\n onFocus,\n onOk,\n onOpenChange,\n onPanelChange,\n onPickerValueChange,\n open,\n order,\n picker = 'date',\n pickerValue,\n placeholder,\n popupClassName,\n popupStyle,\n prevIcon,\n renderExtraFooter,\n rootClassName,\n separator,\n shadow,\n size,\n status,\n styles,\n suffixIcon,\n superNextIcon,\n superPrevIcon,\n value,\n variant,\n ...rest\n } = props;\n const { locale, rangePlaceholder } = usePickerLocale(localeOverride);\n const keyboard = usePanelKeyboard({\n cellRender,\n dateRender,\n defaultOpen,\n defaultPickerValue,\n defaultValue,\n direction,\n generateConfig,\n mode,\n monthCellRender,\n onChange,\n onFocus,\n onOpenChange,\n onPanelChange,\n onPickerValueChange,\n open,\n picker,\n pickerValue,\n range: true,\n value,\n });\n const shared = usePickerShared({\n allowClear,\n changeOnBlur,\n className,\n clearIcon,\n classNames,\n components,\n defaultOpen,\n dropdownClassName,\n generateConfig,\n getPopupContainer,\n maxDate,\n minDate,\n needConfirm,\n nextIcon,\n onKeyDown,\n onOpenChange: keyboard.onOpenChange,\n open,\n picker,\n popupClassName,\n popupStyle,\n prevIcon,\n rootClassName: clsx(keyboard.scopeClassName, rootClassName),\n semanticProps: props,\n shadow,\n size,\n status,\n styles,\n suffixIcon,\n superNextIcon,\n superPrevIcon,\n variant,\n });\n\n const presetActive = usePresetActive((rest as any).presets, value, defaultValue);\n\n return (\n <RcRangePicker<DateType>\n {...rest}\n {...shared}\n allowEmpty={allowEmpty}\n cellRender={keyboard.cellRender}\n dateRender={dateRender}\n defaultPickerValue={defaultPickerValue as any}\n defaultValue={defaultValue as any}\n direction={direction}\n disabled={disabled}\n disabledDate={disabledDate}\n id={id}\n locale={locale.lang}\n mode={mode as any}\n monthCellRender={monthCellRender}\n order={order}\n picker={picker}\n pickerValue={keyboard.pickerValue}\n placeholder={placeholder ?? rangePlaceholder(picker)}\n presets={presetActive.presets as any}\n renderExtraFooter={renderExtraFooter}\n separator={separator ?? <Icon icon={ArrowRight} size={14} />}\n value={value as any}\n onBlur={onBlur as any}\n onCalendarChange={onCalendarChange as any}\n onFocus={keyboard.onFocus}\n onOk={onOk as any}\n onPanelChange={keyboard.onPanelChange}\n onPickerValueChange={keyboard.onPickerValueChange}\n onChange={(...args: any[]) => {\n presetActive.track(args[0]);\n (keyboard.onChange as any)(...args);\n }}\n />\n );\n };\n RangePicker.displayName = 'RangePicker';\n return RangePicker as RangePickerComponent<DateType>;\n};\n\nexport default generateRangePicker;\n"],"mappings":";;;;;;;;;;;;AAgBA,MAAM,uBAAgD,mBAA6C;CACjG,MAAM,eAAe,aAA6C;EAChE,MAAM,aAAa,yBAAyB,UAAU,cAAc;EAGpE,MAAM,QACJ,mBAAmB,cAAc,KAAK,WAAW,WAC7C;GACE,GAAG;GACH,WAAW,OAAY,gBACpB,WAAW,SAAiB,SAAS,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;EAC/E,IACA;EACN,MAAM,EACJ,YACA,YACA,YACA,cACA,WACA,WACA,YACA,YACA,YACA,aACA,oBACA,cACA,mBACA,WACA,UACA,cACA,mBACA,IACA,QAAQ,gBACR,SACA,SACA,MACA,iBACA,aACA,UACA,QACA,WACA,kBACA,UACA,SACA,MACA,cACA,eACA,qBACA,MACA,OACA,SAAS,QACT,aACA,aACA,gBACA,YACA,UACA,mBACA,eACA,WACA,QACA,MACA,QACA,QACA,YACA,eACA,eACA,OACA,SACA,GAAG,SACD;EACJ,MAAM,EAAE,QAAQ,qBAAqB,gBAAgB,cAAc;EACnE,MAAM,WAAW,iBAAiB;GAChC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,OAAO;GACP;EACF,CAAC;EACD,MAAM,SAAS,gBAAgB;GAC7B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,cAAc,SAAS;GACvB;GACA;GACA;GACA;GACA;GACA,eAAeA,OAAK,SAAS,gBAAgB,aAAa;GAC1D,eAAe;GACf;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EAED,MAAM,eAAe,gBAAiB,KAAa,SAAS,OAAO,YAAY;EAE/E,OACE,oBAACC,gBAAD;GACE,GAAI;GACJ,GAAI;GACQ;GACZ,YAAY,SAAS;GACT;GACQ;GACN;GACH;GACD;GACI;GACV;GACJ,QAAQ,OAAO;GACT;GACW;GACV;GACC;GACR,aAAa,SAAS;GACtB,aAAa,eAAe,iBAAiB,MAAM;GACnD,SAAS,aAAa;GACH;GACnB,WAAW,aAAa,oBAAC,MAAD;IAAM,MAAM;IAAY,MAAM;GAAK,CAAA;GACpD;GACC;GACU;GAClB,SAAS,SAAS;GACZ;GACN,eAAe,SAAS;GACxB,qBAAqB,SAAS;GAC9B,WAAW,GAAG,SAAgB;IAC5B,aAAa,MAAM,KAAK,EAAE;IAC1B,SAAU,SAAiB,GAAG,IAAI;GACpC;EACD,CAAA;CAEL;CACA,YAAY,cAAc;CAC1B,OAAO;AACT"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import Icon from "../Icon/Icon.mjs";
|
|
3
3
|
import core_default from "./core/index.mjs";
|
|
4
|
+
import { normalizeLegacyDateProps } from "./legacyDate.mjs";
|
|
4
5
|
import { usePickerLocale } from "./locale.mjs";
|
|
5
6
|
import { PREFIX_CLS } from "./style.mjs";
|
|
6
7
|
import { usePanelKeyboard } from "./usePanelKeyboard.mjs";
|
|
@@ -17,7 +18,8 @@ const defaultRemoveIcon = /* @__PURE__ */ jsx(Icon, {
|
|
|
17
18
|
});
|
|
18
19
|
const generateSinglePicker = (generateConfig) => {
|
|
19
20
|
const getPicker = (presetPicker, displayName = "DatePicker") => {
|
|
20
|
-
const Picker = (
|
|
21
|
+
const Picker = (rawProps) => {
|
|
22
|
+
const props = normalizeLegacyDateProps(rawProps, generateConfig);
|
|
21
23
|
const { allowClear, cellRender, changeOnBlur, className, clearIcon, classNames, components, dateRender, defaultOpen, defaultPickerValue, defaultValue, dropdownClassName, direction, getPopupContainer, locale: localeOverride, maxDate, minDate, mode, monthCellRender, multiple, needConfirm, nextIcon, onKeyDown, onCalendarChange, onChange, onFocus, onOk, onOpenChange, onPanelChange, onPickerValueChange, open, picker: pickerProp, pickerValue, placeholder, popupClassName, popupStyle, prevIcon, ref, removeIcon, renderExtraFooter, rootClassName, shadow, size, status, styles, suffixIcon, superNextIcon, superPrevIcon, value, variant, ...rest } = props;
|
|
22
24
|
const picker = presetPicker ?? pickerProp ?? "date";
|
|
23
25
|
const { locale, placeholder: defaultPlaceholder } = usePickerLocale(localeOverride);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SinglePicker.mjs","names":["clsx","RcPicker"],"sources":["../../src/DatePicker/SinglePicker.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { X } from 'lucide-react';\n\nimport Icon from '@/Icon';\n\nimport RcPicker from './core';\nimport type { GenerateConfig } from './core/generate';\nimport type { PickerMode } from './core/interface';\nimport { usePickerLocale } from './locale';\nimport { PREFIX_CLS } from './style';\nimport type { GeneratedDatePicker, PickerProps, SinglePickerComponent } from './type';\nimport { usePanelKeyboard } from './usePanelKeyboard';\nimport { usePickerShared, withDefault } from './usePickerShared';\nimport { usePresetActive } from './usePresetActive';\n\nconst defaultRemoveIcon = <Icon icon={X} size={10} style={{ strokeWidth: 3 }} />;\n\nconst generateSinglePicker = <DateType extends object>(\n generateConfig: GenerateConfig<DateType>,\n) => {\n const getPicker = (presetPicker?: PickerMode, displayName = 'DatePicker') => {\n const Picker = (
|
|
1
|
+
{"version":3,"file":"SinglePicker.mjs","names":["clsx","RcPicker"],"sources":["../../src/DatePicker/SinglePicker.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { X } from 'lucide-react';\n\nimport Icon from '@/Icon';\n\nimport RcPicker from './core';\nimport type { GenerateConfig } from './core/generate';\nimport type { PickerMode } from './core/interface';\nimport { normalizeLegacyDateProps } from './legacyDate';\nimport { usePickerLocale } from './locale';\nimport { PREFIX_CLS } from './style';\nimport type { GeneratedDatePicker, PickerProps, SinglePickerComponent } from './type';\nimport { usePanelKeyboard } from './usePanelKeyboard';\nimport { usePickerShared, withDefault } from './usePickerShared';\nimport { usePresetActive } from './usePresetActive';\n\nconst defaultRemoveIcon = <Icon icon={X} size={10} style={{ strokeWidth: 3 }} />;\n\nconst generateSinglePicker = <DateType extends object>(\n generateConfig: GenerateConfig<DateType>,\n) => {\n const getPicker = (presetPicker?: PickerMode, displayName = 'DatePicker') => {\n const Picker = (rawProps: PickerProps<DateType, any>) => {\n const props = normalizeLegacyDateProps(rawProps, generateConfig);\n const {\n allowClear,\n cellRender,\n changeOnBlur,\n className,\n clearIcon,\n classNames,\n components,\n dateRender,\n defaultOpen,\n defaultPickerValue,\n defaultValue,\n dropdownClassName,\n direction,\n getPopupContainer,\n locale: localeOverride,\n maxDate,\n minDate,\n mode,\n monthCellRender,\n multiple,\n needConfirm,\n nextIcon,\n onKeyDown,\n onCalendarChange,\n onChange,\n onFocus,\n onOk,\n onOpenChange,\n onPanelChange,\n onPickerValueChange,\n open,\n picker: pickerProp,\n pickerValue,\n placeholder,\n popupClassName,\n popupStyle,\n prevIcon,\n ref,\n removeIcon,\n renderExtraFooter,\n rootClassName,\n shadow,\n size,\n status,\n styles,\n suffixIcon,\n superNextIcon,\n superPrevIcon,\n value,\n variant,\n ...rest\n } = props;\n const picker = presetPicker ?? pickerProp ?? 'date';\n const { locale, placeholder: defaultPlaceholder } = usePickerLocale(localeOverride);\n const keyboard = usePanelKeyboard({\n cellRender,\n dateRender,\n defaultOpen,\n defaultPickerValue,\n defaultValue,\n direction,\n generateConfig,\n mode,\n monthCellRender,\n onChange,\n onFocus,\n onOpenChange,\n onPanelChange,\n onPickerValueChange,\n open,\n picker,\n pickerValue,\n value,\n });\n const shared = usePickerShared({\n allowClear,\n changeOnBlur,\n className,\n clearIcon,\n classNames,\n components,\n defaultOpen,\n dropdownClassName,\n generateConfig,\n getPopupContainer,\n maxDate,\n minDate,\n needConfirm,\n nextIcon,\n onKeyDown,\n onOpenChange: keyboard.onOpenChange,\n open,\n picker,\n popupClassName,\n popupStyle,\n prevIcon,\n rootClassName: clsx(keyboard.scopeClassName, rootClassName),\n semanticProps: props,\n shadow,\n size,\n status,\n styles,\n suffixIcon,\n superNextIcon,\n superPrevIcon,\n variant,\n });\n\n const presetActive = usePresetActive(\n (rest as any).presets,\n multiple ? undefined : value,\n multiple ? undefined : defaultValue,\n );\n\n return (\n <RcPicker<DateType>\n {...rest}\n {...shared}\n presets={presetActive.presets as any}\n // No footer row by default: Today / Now only when asked for (showNow or the\n // deprecated showToday); showTime + needConfirm still shows OK.\n cellRender={keyboard.cellRender}\n dateRender={dateRender}\n defaultPickerValue={defaultPickerValue as any}\n defaultValue={defaultValue ?? undefined}\n direction={direction}\n locale={locale.lang}\n mode={mode as any}\n monthCellRender={monthCellRender}\n multiple={multiple}\n picker={picker}\n pickerValue={keyboard.pickerValue}\n placeholder={placeholder ?? defaultPlaceholder(picker)}\n ref={ref}\n removeIcon={withDefault(removeIcon, defaultRemoveIcon)}\n renderExtraFooter={renderExtraFooter}\n showNow={(rest as any).showNow ?? (rest as any).showToday ?? false}\n value={value as any}\n classNames={\n multiple\n ? {\n ...shared.classNames,\n popup: {\n ...shared.classNames.popup,\n root: clsx(shared.classNames.popup.root, `${PREFIX_CLS}-dropdown-multiple`),\n },\n }\n : shared.classNames\n }\n onCalendarChange={onCalendarChange as any}\n onFocus={keyboard.onFocus}\n onOk={onOk as any}\n onPanelChange={keyboard.onPanelChange}\n onPickerValueChange={keyboard.onPickerValueChange}\n onChange={(...args: any[]) => {\n presetActive.track(args[0]);\n (keyboard.onChange as any)(...args);\n }}\n />\n );\n };\n Picker.displayName = displayName;\n return Picker as SinglePickerComponent<DateType, any>;\n };\n\n return {\n DatePicker: getPicker() as GeneratedDatePicker<DateType>,\n MonthPicker: getPicker('month', 'MonthPicker'),\n QuarterPicker: getPicker('quarter', 'QuarterPicker'),\n TimePicker: getPicker('time', 'TimePicker'),\n WeekPicker: getPicker('week', 'WeekPicker'),\n YearPicker: getPicker('year', 'YearPicker'),\n };\n};\n\nexport default generateSinglePicker;\n"],"mappings":";;;;;;;;;;;;;AAkBA,MAAM,oBAAoB,oBAAC,MAAD;CAAM,MAAM;CAAG,MAAM;CAAI,OAAO,EAAE,aAAa,EAAE;AAAI,CAAA;AAE/E,MAAM,wBACJ,mBACG;CACH,MAAM,aAAa,cAA2B,cAAc,iBAAiB;EAC3E,MAAM,UAAU,aAAyC;GACvD,MAAM,QAAQ,yBAAyB,UAAU,cAAc;GAC/D,MAAM,EACJ,YACA,YACA,cACA,WACA,WACA,YACA,YACA,YACA,aACA,oBACA,cACA,mBACA,WACA,mBACA,QAAQ,gBACR,SACA,SACA,MACA,iBACA,UACA,aACA,UACA,WACA,kBACA,UACA,SACA,MACA,cACA,eACA,qBACA,MACA,QAAQ,YACR,aACA,aACA,gBACA,YACA,UACA,KACA,YACA,mBACA,eACA,QACA,MACA,QACA,QACA,YACA,eACA,eACA,OACA,SACA,GAAG,SACD;GACJ,MAAM,SAAS,gBAAgB,cAAc;GAC7C,MAAM,EAAE,QAAQ,aAAa,uBAAuB,gBAAgB,cAAc;GAClF,MAAM,WAAW,iBAAiB;IAChC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF,CAAC;GACD,MAAM,SAAS,gBAAgB;IAC7B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,cAAc,SAAS;IACvB;IACA;IACA;IACA;IACA;IACA,eAAeA,OAAK,SAAS,gBAAgB,aAAa;IAC1D,eAAe;IACf;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF,CAAC;GAED,MAAM,eAAe,gBAClB,KAAa,SACd,WAAW,KAAA,IAAY,OACvB,WAAW,KAAA,IAAY,YACzB;GAEA,OACE,oBAACC,cAAD;IACE,GAAI;IACJ,GAAI;IACJ,SAAS,aAAa;IAGtB,YAAY,SAAS;IACT;IACQ;IACpB,cAAc,gBAAgB,KAAA;IACnB;IACX,QAAQ,OAAO;IACT;IACW;IACP;IACF;IACR,aAAa,SAAS;IACtB,aAAa,eAAe,mBAAmB,MAAM;IAChD;IACL,YAAY,YAAY,YAAY,iBAAiB;IAClC;IACnB,SAAU,KAAa,WAAY,KAAa,aAAa;IACtD;IACP,YACE,WACI;KACE,GAAG,OAAO;KACV,OAAO;MACL,GAAG,OAAO,WAAW;MACrB,MAAMD,OAAK,OAAO,WAAW,MAAM,MAAM,GAAG,WAAW,mBAAmB;KAC5E;IACF,IACA,OAAO;IAEK;IAClB,SAAS,SAAS;IACZ;IACN,eAAe,SAAS;IACxB,qBAAqB,SAAS;IAC9B,WAAW,GAAG,SAAgB;KAC5B,aAAa,MAAM,KAAK,EAAE;KAC1B,SAAU,SAAiB,GAAG,IAAI;IACpC;GACD,CAAA;EAEL;EACA,OAAO,cAAc;EACrB,OAAO;CACT;CAEA,OAAO;EACL,YAAY,UAAU;EACtB,aAAa,UAAU,SAAS,aAAa;EAC7C,eAAe,UAAU,WAAW,eAAe;EACnD,YAAY,UAAU,QAAQ,YAAY;EAC1C,YAAY,UAAU,QAAQ,YAAY;EAC1C,YAAY,UAAU,QAAQ,YAAY;CAC5C;AACF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import generateConfig from "./generateConfig.mjs";
|
|
2
|
+
import dayjs from "dayjs";
|
|
3
|
+
//#region src/DatePicker/dateGenerateConfig.ts
|
|
4
|
+
const c = generateConfig;
|
|
5
|
+
const inn = (value) => dayjs(value);
|
|
6
|
+
const out = (value) => value.toDate();
|
|
7
|
+
/**
|
|
8
|
+
* rc-picker config over native `Date`, built on the dayjs config (parsing, formatting, week
|
|
9
|
+
* rules and locales stay dayjs'). The default `DatePicker` / `DateRangePicker` use it so
|
|
10
|
+
* values, callbacks and `disabledDate` are native `Date`, as in the previous lobe DatePicker.
|
|
11
|
+
*/
|
|
12
|
+
const dateGenerateConfig = {
|
|
13
|
+
addDate: (value, diff) => out(c.addDate(inn(value), diff)),
|
|
14
|
+
addMonth: (value, diff) => out(c.addMonth(inn(value), diff)),
|
|
15
|
+
addYear: (value, diff) => out(c.addYear(inn(value), diff)),
|
|
16
|
+
getDate: (value) => c.getDate(inn(value)),
|
|
17
|
+
getEndDate: (value) => out(c.getEndDate(inn(value))),
|
|
18
|
+
getFixedDate: (fixed) => out(c.getFixedDate(fixed)),
|
|
19
|
+
getHour: (value) => c.getHour(inn(value)),
|
|
20
|
+
getMillisecond: (value) => c.getMillisecond(inn(value)),
|
|
21
|
+
getMinute: (value) => c.getMinute(inn(value)),
|
|
22
|
+
getMonth: (value) => c.getMonth(inn(value)),
|
|
23
|
+
getNow: () => /* @__PURE__ */ new Date(),
|
|
24
|
+
getSecond: (value) => c.getSecond(inn(value)),
|
|
25
|
+
getWeekDay: (value) => c.getWeekDay(inn(value)),
|
|
26
|
+
getYear: (value) => c.getYear(inn(value)),
|
|
27
|
+
isAfter: (date1, date2) => c.isAfter(inn(date1), inn(date2)),
|
|
28
|
+
isValidate: (date) => date instanceof Date && !Number.isNaN(date.getTime()),
|
|
29
|
+
locale: {
|
|
30
|
+
format: (locale, date, format) => c.locale.format(locale, inn(date), format),
|
|
31
|
+
getShortMonths: c.locale.getShortMonths,
|
|
32
|
+
getShortWeekDays: c.locale.getShortWeekDays,
|
|
33
|
+
getWeek: (locale, value) => c.locale.getWeek(locale, inn(value)),
|
|
34
|
+
getWeekFirstDate: (locale, value) => out(c.locale.getWeekFirstDate(locale, inn(value))),
|
|
35
|
+
getWeekFirstDay: c.locale.getWeekFirstDay,
|
|
36
|
+
parse: (locale, text, formats) => {
|
|
37
|
+
const parsed = c.locale.parse(locale, text, formats);
|
|
38
|
+
return parsed ? out(parsed) : null;
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
setDate: (value, date) => out(c.setDate(inn(value), date)),
|
|
42
|
+
setHour: (value, hour) => out(c.setHour(inn(value), hour)),
|
|
43
|
+
setMillisecond: (value, ms) => out(c.setMillisecond(inn(value), ms)),
|
|
44
|
+
setMinute: (value, minute) => out(c.setMinute(inn(value), minute)),
|
|
45
|
+
setMonth: (value, month) => out(c.setMonth(inn(value), month)),
|
|
46
|
+
setSecond: (value, second) => out(c.setSecond(inn(value), second)),
|
|
47
|
+
setYear: (value, year) => out(c.setYear(inn(value), year))
|
|
48
|
+
};
|
|
49
|
+
//#endregion
|
|
50
|
+
export { dateGenerateConfig as default };
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=dateGenerateConfig.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateGenerateConfig.mjs","names":["dayjsGenerateConfig"],"sources":["../../src/DatePicker/dateGenerateConfig.ts"],"sourcesContent":["import dayjs, { type Dayjs } from 'dayjs';\n\nimport type { GenerateConfig } from './core/generate';\nimport dayjsGenerateConfig from './generateConfig';\n\nconst c = dayjsGenerateConfig;\nconst inn = (value: Date): Dayjs => dayjs(value);\nconst out = (value: Dayjs): Date => value.toDate();\n\n/**\n * rc-picker config over native `Date`, built on the dayjs config (parsing, formatting, week\n * rules and locales stay dayjs'). The default `DatePicker` / `DateRangePicker` use it so\n * values, callbacks and `disabledDate` are native `Date`, as in the previous lobe DatePicker.\n */\nconst dateGenerateConfig: GenerateConfig<Date> = {\n addDate: (value, diff) => out(c.addDate(inn(value), diff)),\n addMonth: (value, diff) => out(c.addMonth(inn(value), diff)),\n addYear: (value, diff) => out(c.addYear(inn(value), diff)),\n getDate: (value) => c.getDate(inn(value)),\n getEndDate: (value) => out(c.getEndDate(inn(value))),\n getFixedDate: (fixed) => out(c.getFixedDate(fixed)),\n getHour: (value) => c.getHour(inn(value)),\n getMillisecond: (value) => c.getMillisecond(inn(value)),\n getMinute: (value) => c.getMinute(inn(value)),\n getMonth: (value) => c.getMonth(inn(value)),\n getNow: () => new Date(),\n getSecond: (value) => c.getSecond(inn(value)),\n getWeekDay: (value) => c.getWeekDay(inn(value)),\n getYear: (value) => c.getYear(inn(value)),\n isAfter: (date1, date2) => c.isAfter(inn(date1), inn(date2)),\n isValidate: (date) => date instanceof Date && !Number.isNaN(date.getTime()),\n locale: {\n format: (locale, date, format) => c.locale.format(locale, inn(date), format),\n getShortMonths: c.locale.getShortMonths,\n getShortWeekDays: c.locale.getShortWeekDays,\n getWeek: (locale, value) => c.locale.getWeek(locale, inn(value)),\n getWeekFirstDate: (locale, value) => out(c.locale.getWeekFirstDate(locale, inn(value))),\n getWeekFirstDay: c.locale.getWeekFirstDay,\n parse: (locale, text, formats) => {\n const parsed = c.locale.parse(locale, text, formats);\n return parsed ? out(parsed) : null;\n },\n },\n setDate: (value, date) => out(c.setDate(inn(value), date)),\n setHour: (value, hour) => out(c.setHour(inn(value), hour)),\n setMillisecond: (value, ms) => out(c.setMillisecond(inn(value), ms)),\n setMinute: (value, minute) => out(c.setMinute(inn(value), minute)),\n setMonth: (value, month) => out(c.setMonth(inn(value), month)),\n setSecond: (value, second) => out(c.setSecond(inn(value), second)),\n setYear: (value, year) => out(c.setYear(inn(value), year)),\n};\n\nexport default dateGenerateConfig;\n"],"mappings":";;;AAKA,MAAM,IAAIA;AACV,MAAM,OAAO,UAAuB,MAAM,KAAK;AAC/C,MAAM,OAAO,UAAuB,MAAM,OAAO;;;;;;AAOjD,MAAM,qBAA2C;CAC/C,UAAU,OAAO,SAAS,IAAI,EAAE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;CACzD,WAAW,OAAO,SAAS,IAAI,EAAE,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC;CAC3D,UAAU,OAAO,SAAS,IAAI,EAAE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;CACzD,UAAU,UAAU,EAAE,QAAQ,IAAI,KAAK,CAAC;CACxC,aAAa,UAAU,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC,CAAC;CACnD,eAAe,UAAU,IAAI,EAAE,aAAa,KAAK,CAAC;CAClD,UAAU,UAAU,EAAE,QAAQ,IAAI,KAAK,CAAC;CACxC,iBAAiB,UAAU,EAAE,eAAe,IAAI,KAAK,CAAC;CACtD,YAAY,UAAU,EAAE,UAAU,IAAI,KAAK,CAAC;CAC5C,WAAW,UAAU,EAAE,SAAS,IAAI,KAAK,CAAC;CAC1C,8BAAc,IAAI,KAAK;CACvB,YAAY,UAAU,EAAE,UAAU,IAAI,KAAK,CAAC;CAC5C,aAAa,UAAU,EAAE,WAAW,IAAI,KAAK,CAAC;CAC9C,UAAU,UAAU,EAAE,QAAQ,IAAI,KAAK,CAAC;CACxC,UAAU,OAAO,UAAU,EAAE,QAAQ,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC;CAC3D,aAAa,SAAS,gBAAgB,QAAQ,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC;CAC1E,QAAQ;EACN,SAAS,QAAQ,MAAM,WAAW,EAAE,OAAO,OAAO,QAAQ,IAAI,IAAI,GAAG,MAAM;EAC3E,gBAAgB,EAAE,OAAO;EACzB,kBAAkB,EAAE,OAAO;EAC3B,UAAU,QAAQ,UAAU,EAAE,OAAO,QAAQ,QAAQ,IAAI,KAAK,CAAC;EAC/D,mBAAmB,QAAQ,UAAU,IAAI,EAAE,OAAO,iBAAiB,QAAQ,IAAI,KAAK,CAAC,CAAC;EACtF,iBAAiB,EAAE,OAAO;EAC1B,QAAQ,QAAQ,MAAM,YAAY;GAChC,MAAM,SAAS,EAAE,OAAO,MAAM,QAAQ,MAAM,OAAO;GACnD,OAAO,SAAS,IAAI,MAAM,IAAI;EAChC;CACF;CACA,UAAU,OAAO,SAAS,IAAI,EAAE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;CACzD,UAAU,OAAO,SAAS,IAAI,EAAE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;CACzD,iBAAiB,OAAO,OAAO,IAAI,EAAE,eAAe,IAAI,KAAK,GAAG,EAAE,CAAC;CACnE,YAAY,OAAO,WAAW,IAAI,EAAE,UAAU,IAAI,KAAK,GAAG,MAAM,CAAC;CACjE,WAAW,OAAO,UAAU,IAAI,EAAE,SAAS,IAAI,KAAK,GAAG,KAAK,CAAC;CAC7D,YAAY,OAAO,WAAW,IAAI,EAAE,UAAU,IAAI,KAAK,GAAG,MAAM,CAAC;CACjE,UAAU,OAAO,SAAS,IAAI,EAAE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AAC3D"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { GenerateConfig } from "./core/generate/index.mjs";
|
|
2
2
|
import { CellRender, CellRenderInfo, PanelMode, PickerMode, PickerRef, RangePickerRef } from "./core/interface.mjs";
|
|
3
|
-
import { CalendarMode, DatePickerBaseProps, DatePickerProps, DatePickerSemanticType, DatePickerType, DateRangePickerProps, DateRangeValue, GeneratedDatePicker, GenericTimePickerProps, MonthPickerProps, PickerClassNames, PickerComponents, PickerDateStrings, PickerLocale, PickerLocaleInput, PickerLocaleLang, PickerPanelProps, PickerPlacement, PickerPopupSemanticName, PickerProps, PickerPropsWithMultiple, PickerSemanticClassNames, PickerSemanticName, PickerSemanticStyles, PickerSize, PickerStatus, PickerStyles, PickerTagProps, PickerVariant, PresetDate, PresetPickerProps, QuarterPickerProps, RangeDisabledDate, RangeInfo, RangePickerComponent, RangePickerProps, SinglePickerComponent, TimePickerLocale, TimePickerProps, WeekPickerProps, YearPickerProps } from "./type.mjs";
|
|
3
|
+
import { CalendarMode, DatePickerBaseProps, DatePickerProps, DatePickerSemanticType, DatePickerType, DateRangePickerProps, DateRangeValue, DayjsDatePickerProps, DayjsDatePickerType, DayjsDateRangePickerProps, DayjsDateRangeValue, GeneratedDatePicker, GenericTimePickerProps, LegacyDateInput, MonthPickerProps, PickerClassNames, PickerComponents, PickerDateInput, PickerDateStrings, PickerLocale, PickerLocaleInput, PickerLocaleLang, PickerPanelProps, PickerPlacement, PickerPopupSemanticName, PickerProps, PickerPropsWithMultiple, PickerSemanticClassNames, PickerSemanticName, PickerSemanticStyles, PickerSize, PickerStatus, PickerStyles, PickerTagProps, PickerValueInput, PickerVariant, PresetDate, PresetPickerProps, QuarterPickerProps, RangeChangeDates, RangeChangeStrings, RangeDisabledDate, RangeInfo, RangePickerComponent, RangePickerProps, SinglePickerComponent, TimePickerLocale, TimePickerProps, WeekPickerProps, YearPickerProps } from "./type.mjs";
|
|
4
4
|
import DatePicker from "./DatePicker.mjs";
|
|
5
5
|
import DateRangePicker from "./DateRangePicker.mjs";
|
|
6
|
+
import DayjsDatePicker from "./DayjsDatePicker.mjs";
|
|
7
|
+
import DayjsDateRangePicker from "./DayjsDateRangePicker.mjs";
|
|
6
8
|
import generatePicker from "./generatePicker.mjs";
|
|
7
9
|
import { createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN } from "./locale.mjs";
|
|
8
|
-
export { type CalendarMode, type CellRender, type CellRenderInfo, DatePicker, type DatePickerBaseProps, type DatePickerProps, type DatePickerSemanticType, type DatePickerType, DateRangePicker, type DateRangePickerProps, type DateRangeValue, type GenerateConfig, type GeneratedDatePicker, type GenericTimePickerProps, type MonthPickerProps, type PanelMode, type PickerClassNames, type PickerComponents, type PickerDateStrings, type PickerLocale, type PickerLocaleInput, type PickerLocaleLang, type PickerMode, type PickerPanelProps, type PickerPlacement, type PickerPopupSemanticName, type PickerProps, type PickerPropsWithMultiple, type PickerRef, type PickerSemanticClassNames, type PickerSemanticName, type PickerSemanticStyles, type PickerSize, type PickerStatus, type PickerStyles, type PickerTagProps, type PickerVariant, type PresetDate, type PresetPickerProps, type QuarterPickerProps, type RangeDisabledDate, type RangeInfo, type RangePickerComponent, type RangePickerProps, type RangePickerRef, type SinglePickerComponent, type TimePickerLocale, type TimePickerProps, type WeekPickerProps, type YearPickerProps, createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN, generatePicker };
|
|
10
|
+
export { type CalendarMode, type CellRender, type CellRenderInfo, DatePicker, type DatePickerBaseProps, type DatePickerProps, type DatePickerSemanticType, type DatePickerType, DateRangePicker, type DateRangePickerProps, type DateRangeValue, DayjsDatePicker, type DayjsDatePickerProps, type DayjsDatePickerType, DayjsDateRangePicker, type DayjsDateRangePickerProps, type DayjsDateRangeValue, type GenerateConfig, type GeneratedDatePicker, type GenericTimePickerProps, type LegacyDateInput, type MonthPickerProps, type PanelMode, type PickerClassNames, type PickerComponents, type PickerDateInput, type PickerDateStrings, type PickerLocale, type PickerLocaleInput, type PickerLocaleLang, type PickerMode, type PickerPanelProps, type PickerPlacement, type PickerPopupSemanticName, type PickerProps, type PickerPropsWithMultiple, type PickerRef, type PickerSemanticClassNames, type PickerSemanticName, type PickerSemanticStyles, type PickerSize, type PickerStatus, type PickerStyles, type PickerTagProps, type PickerValueInput, type PickerVariant, type PresetDate, type PresetPickerProps, type QuarterPickerProps, type RangeChangeDates, type RangeChangeStrings, type RangeDisabledDate, type RangeInfo, type RangePickerComponent, type RangePickerProps, type RangePickerRef, type SinglePickerComponent, type TimePickerLocale, type TimePickerProps, type WeekPickerProps, type YearPickerProps, createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN, generatePicker };
|
package/es/DatePicker/index.mjs
CHANGED
|
@@ -2,4 +2,6 @@ import { createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN } from "
|
|
|
2
2
|
import generatePicker from "./generatePicker.mjs";
|
|
3
3
|
import DatePicker from "./DatePicker.mjs";
|
|
4
4
|
import DateRangePicker from "./DateRangePicker.mjs";
|
|
5
|
-
|
|
5
|
+
import DayjsDatePicker from "./DayjsDatePicker.mjs";
|
|
6
|
+
import DayjsDateRangePicker from "./DayjsDateRangePicker.mjs";
|
|
7
|
+
export { DatePicker, DateRangePicker, DayjsDatePicker, DayjsDateRangePicker, createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN, generatePicker };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import generateConfig from "./generateConfig.mjs";
|
|
2
|
+
import dateGenerateConfig from "./dateGenerateConfig.mjs";
|
|
3
|
+
import dayjs from "dayjs";
|
|
4
|
+
//#region src/DatePicker/legacyDate.ts
|
|
5
|
+
const DATE_KEYS = [
|
|
6
|
+
"defaultPickerValue",
|
|
7
|
+
"defaultValue",
|
|
8
|
+
"max",
|
|
9
|
+
"maxDate",
|
|
10
|
+
"min",
|
|
11
|
+
"minDate",
|
|
12
|
+
"pickerValue",
|
|
13
|
+
"value"
|
|
14
|
+
];
|
|
15
|
+
const toDayjs = (v) => v instanceof Date || typeof v === "string" || typeof v === "number" ? dayjs(v) : v;
|
|
16
|
+
const toDate = (v) => {
|
|
17
|
+
if (dayjs.isDayjs(v)) return v.toDate();
|
|
18
|
+
if (typeof v === "string" || typeof v === "number") return dayjs(v).toDate();
|
|
19
|
+
return v;
|
|
20
|
+
};
|
|
21
|
+
const convertValue = (v, convert) => {
|
|
22
|
+
if (!Array.isArray(v)) return convert(v);
|
|
23
|
+
let changed = false;
|
|
24
|
+
const next = v.map((item) => {
|
|
25
|
+
const converted = item === null || item === void 0 ? item : convert(item);
|
|
26
|
+
if (converted !== item) changed = true;
|
|
27
|
+
return converted;
|
|
28
|
+
});
|
|
29
|
+
return changed ? next : v;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Normalises date props to the picker's date type, so both pickers take any of
|
|
33
|
+
* `Date` / `Dayjs` / date string / timestamp (also inside a range tuple or `multiple` array):
|
|
34
|
+
* the default (native `Date`) pickers convert `Dayjs` / strings / timestamps to `Date`, the
|
|
35
|
+
* dayjs pickers convert `Date` / strings / timestamps to `Dayjs`. Pickers generated over
|
|
36
|
+
* another date library get their props untouched.
|
|
37
|
+
*/
|
|
38
|
+
const normalizeLegacyDateProps = (props, generateConfig$1) => {
|
|
39
|
+
const convert = generateConfig$1 === generateConfig ? toDayjs : generateConfig$1 === dateGenerateConfig ? toDate : void 0;
|
|
40
|
+
if (!convert) return props;
|
|
41
|
+
let next;
|
|
42
|
+
for (const key of DATE_KEYS) {
|
|
43
|
+
const v = props[key];
|
|
44
|
+
if (v === void 0 || v === null) continue;
|
|
45
|
+
const converted = convertValue(v, convert);
|
|
46
|
+
if (converted !== v) {
|
|
47
|
+
next ??= { ...props };
|
|
48
|
+
next[key] = converted;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return next ?? props;
|
|
52
|
+
};
|
|
53
|
+
/** The previous lobe DateRangePicker never passed `null`: a cleared range is `[null, null]`. */
|
|
54
|
+
const isNativeDateConfig = (generateConfig) => generateConfig === dateGenerateConfig;
|
|
55
|
+
//#endregion
|
|
56
|
+
export { isNativeDateConfig, normalizeLegacyDateProps };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=legacyDate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacyDate.mjs","names":["generateConfig","dayjsGenerateConfig"],"sources":["../../src/DatePicker/legacyDate.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\nimport dateGenerateConfig from './dateGenerateConfig';\nimport dayjsGenerateConfig from './generateConfig';\n\nconst DATE_KEYS = [\n 'defaultPickerValue',\n 'defaultValue',\n 'max',\n 'maxDate',\n 'min',\n 'minDate',\n 'pickerValue',\n 'value',\n] as const;\n\ntype Convert = (v: unknown) => unknown;\n\nconst toDayjs: Convert = (v) =>\n v instanceof Date || typeof v === 'string' || typeof v === 'number' ? dayjs(v) : v;\n\nconst toDate: Convert = (v) => {\n if (dayjs.isDayjs(v)) return v.toDate();\n if (typeof v === 'string' || typeof v === 'number') return dayjs(v).toDate();\n return v;\n};\n\nconst convertValue = (v: unknown, convert: Convert): unknown => {\n if (!Array.isArray(v)) return convert(v);\n let changed = false;\n const next = v.map((item) => {\n const converted = item === null || item === undefined ? item : convert(item);\n if (converted !== item) changed = true;\n return converted;\n });\n return changed ? next : v;\n};\n\n/**\n * Normalises date props to the picker's date type, so both pickers take any of\n * `Date` / `Dayjs` / date string / timestamp (also inside a range tuple or `multiple` array):\n * the default (native `Date`) pickers convert `Dayjs` / strings / timestamps to `Date`, the\n * dayjs pickers convert `Date` / strings / timestamps to `Dayjs`. Pickers generated over\n * another date library get their props untouched.\n */\nexport const normalizeLegacyDateProps = <P extends object>(\n props: P,\n generateConfig: unknown,\n): P => {\n const convert =\n generateConfig === dayjsGenerateConfig\n ? toDayjs\n : generateConfig === dateGenerateConfig\n ? toDate\n : undefined;\n if (!convert) return props;\n let next: P | undefined;\n for (const key of DATE_KEYS) {\n const v = (props as any)[key];\n if (v === undefined || v === null) continue;\n const converted = convertValue(v, convert);\n if (converted !== v) {\n next ??= { ...props };\n (next as any)[key] = converted;\n }\n }\n return next ?? props;\n};\n\n/** The previous lobe DateRangePicker never passed `null`: a cleared range is `[null, null]`. */\nexport const isNativeDateConfig = (generateConfig: unknown) =>\n generateConfig === dateGenerateConfig;\n"],"mappings":";;;;AAKA,MAAM,YAAY;CAChB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,MAAM,WAAoB,MACxB,aAAa,QAAQ,OAAO,MAAM,YAAY,OAAO,MAAM,WAAW,MAAM,CAAC,IAAI;AAEnF,MAAM,UAAmB,MAAM;CAC7B,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO,EAAE,OAAO;CACtC,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO;CAC3E,OAAO;AACT;AAEA,MAAM,gBAAgB,GAAY,YAA8B;CAC9D,IAAI,CAAC,MAAM,QAAQ,CAAC,GAAG,OAAO,QAAQ,CAAC;CACvC,IAAI,UAAU;CACd,MAAM,OAAO,EAAE,KAAK,SAAS;EAC3B,MAAM,YAAY,SAAS,QAAQ,SAAS,KAAA,IAAY,OAAO,QAAQ,IAAI;EAC3E,IAAI,cAAc,MAAM,UAAU;EAClC,OAAO;CACT,CAAC;CACD,OAAO,UAAU,OAAO;AAC1B;;;;;;;;AASA,MAAa,4BACX,OACA,qBACM;CACN,MAAM,UACJA,qBAAmBC,iBACf,UACAD,qBAAmB,qBACjB,SACA,KAAA;CACR,IAAI,CAAC,SAAS,OAAO;CACrB,IAAI;CACJ,KAAK,MAAM,OAAO,WAAW;EAC3B,MAAM,IAAK,MAAc;EACzB,IAAI,MAAM,KAAA,KAAa,MAAM,MAAM;EACnC,MAAM,YAAY,aAAa,GAAG,OAAO;EACzC,IAAI,cAAc,GAAG;GACnB,SAAS,EAAE,GAAG,MAAM;GACpB,KAAc,OAAO;EACvB;CACF;CACA,OAAO,QAAQ;AACjB;;AAGA,MAAa,sBAAsB,mBACjC,mBAAmB"}
|