@lobehub/ui 5.64.1 → 5.64.3
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/EmojiPicker/EmojiPicker.mjs +2 -2
- package/es/Form/Form.mjs +6 -2
- package/es/Form/Form.mjs.map +1 -1
- package/es/Form/style.mjs +3 -2
- package/es/Form/style.mjs.map +1 -1
- package/es/Form/type.d.mts +10 -0
- package/es/base-ui/DatePicker/DatePicker.d.mts +5 -3
- package/es/base-ui/DatePicker/DatePicker.mjs +7 -5
- package/es/base-ui/DatePicker/DatePicker.mjs.map +1 -1
- package/es/base-ui/DatePicker/DateRangePicker.d.mts +1 -1
- package/es/base-ui/DatePicker/DayjsDatePicker.d.mts +12 -0
- package/es/base-ui/DatePicker/DayjsDatePicker.mjs +19 -0
- package/es/base-ui/DatePicker/DayjsDatePicker.mjs.map +1 -0
- package/es/base-ui/DatePicker/DayjsDateRangePicker.d.mts +7 -0
- package/es/base-ui/DatePicker/DayjsDateRangePicker.mjs +8 -0
- package/es/base-ui/DatePicker/DayjsDateRangePicker.mjs.map +1 -0
- package/es/base-ui/DatePicker/RangePicker.mjs +7 -1
- package/es/base-ui/DatePicker/RangePicker.mjs.map +1 -1
- package/es/base-ui/DatePicker/SinglePicker.mjs +3 -1
- package/es/base-ui/DatePicker/SinglePicker.mjs.map +1 -1
- package/es/base-ui/DatePicker/dateGenerateConfig.mjs +52 -0
- package/es/base-ui/DatePicker/dateGenerateConfig.mjs.map +1 -0
- package/es/base-ui/DatePicker/index.d.mts +4 -2
- package/es/base-ui/DatePicker/legacyDate.mjs +58 -0
- package/es/base-ui/DatePicker/legacyDate.mjs.map +1 -0
- package/es/base-ui/DatePicker/type.d.mts +65 -39
- package/es/base-ui/DatePicker/usePresetActive.mjs +1 -0
- package/es/base-ui/DatePicker/usePresetActive.mjs.map +1 -1
- package/es/base-ui/Form/Form.mjs +6 -2
- package/es/base-ui/Form/Form.mjs.map +1 -1
- package/es/base-ui/Form/style.mjs +3 -2
- package/es/base-ui/Form/style.mjs.map +1 -1
- package/es/base-ui/Form/type.d.mts +7 -0
- package/es/base-ui/Input/style.d.mts +1 -1
- package/es/base-ui/ProTable/FieldControl.mjs +32 -15
- package/es/base-ui/ProTable/FieldControl.mjs.map +1 -1
- package/es/base-ui/ProTable/style.mjs +14 -1
- package/es/base-ui/ProTable/style.mjs.map +1 -1
- package/es/base-ui/ProTable/type.d.mts +5 -2
- package/es/base-ui/ProTable/useFetchData.mjs +1 -1
- package/es/base-ui/ProTable/useFetchData.mjs.map +1 -1
- package/es/base-ui/Switch/Switch.mjs +7 -1
- package/es/base-ui/Switch/Switch.mjs.map +1 -1
- package/es/base-ui/Switch/atoms.mjs +17 -2
- package/es/base-ui/Switch/atoms.mjs.map +1 -1
- package/es/base-ui/Switch/style.d.mts +4 -0
- package/es/base-ui/Switch/style.mjs +47 -2
- package/es/base-ui/Switch/style.mjs.map +1 -1
- package/es/base-ui/Table/FixedFrost.mjs +15 -2
- package/es/base-ui/Table/FixedFrost.mjs.map +1 -1
- package/es/base-ui/Table/Table.mjs +13 -3
- package/es/base-ui/Table/Table.mjs.map +1 -1
- package/es/base-ui/index.d.mts +4 -2
- package/es/base-ui/index.mjs +3 -1
- 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
|
|
|
@@ -18,8 +18,8 @@ import { SmileIcon, TrashIcon, UploadIcon } from "lucide-react";
|
|
|
18
18
|
import chroma from "chroma-js";
|
|
19
19
|
import data from "@emoji-mart/data";
|
|
20
20
|
import Picker from "@emoji-mart/react";
|
|
21
|
-
import { getLobeIconCDN } from "@lobehub/icons/es/features/getLobeIconCDN
|
|
22
|
-
import { toc } from "@lobehub/icons/es/toc
|
|
21
|
+
import { getLobeIconCDN } from "@lobehub/icons/es/features/getLobeIconCDN";
|
|
22
|
+
import { toc } from "@lobehub/icons/es/toc";
|
|
23
23
|
import useSWR from "swr";
|
|
24
24
|
//#region src/EmojiPicker/EmojiPicker.tsx
|
|
25
25
|
const DEFAULT_AVATAR = "🤖";
|
package/es/Form/Form.mjs
CHANGED
|
@@ -10,7 +10,9 @@ import { cx, useResponsive } from "antd-style";
|
|
|
10
10
|
import { isUndefined } from "es-toolkit/compat";
|
|
11
11
|
import { Form } from "antd";
|
|
12
12
|
//#region src/Form/Form.tsx
|
|
13
|
-
const Form$1 = memo(({ className, itemMinWidth, footer, form, items = [], children, itemsType = "group", itemVariant, variant = "borderless", classNames, styles: customStyles, gap, style, collapsible, defaultActiveKey, initialValues, activeKey, onCollapse, onFinish, ref, layout, ...rest }) => {
|
|
13
|
+
const Form$1 = memo(({ className, itemMinWidth, footer, form, items = [], children, itemsType = "group", itemVariant, variant = "borderless", classNames, styles: customStyles, gap, style, collapsible, defaultActiveKey, initialValues, activeKey, onCollapse, onFinish, ref, layout, itemPadding, compact, ...rest }) => {
|
|
14
|
+
const resolvedGap = gap ?? (compact ? 12 : void 0);
|
|
15
|
+
const resolvedItemPadding = itemPadding ?? (compact ? 10 : void 0);
|
|
14
16
|
const { mobile } = useResponsive();
|
|
15
17
|
const [submitLoading, setSubmitLoading] = useState(false);
|
|
16
18
|
const mapFlat = useCallback((item, itemIndex) => /* @__PURE__ */ jsx(FormItem, {
|
|
@@ -72,7 +74,9 @@ const Form$1 = memo(({ className, itemMinWidth, footer, form, items = [], childr
|
|
|
72
74
|
ref,
|
|
73
75
|
variant: itemVariant,
|
|
74
76
|
style: {
|
|
75
|
-
gap,
|
|
77
|
+
gap: resolvedGap,
|
|
78
|
+
...resolvedGap === void 0 ? void 0 : { "--lobe-form-gap": typeof resolvedGap === "number" ? `${resolvedGap}px` : resolvedGap },
|
|
79
|
+
...resolvedItemPadding === void 0 ? void 0 : { "--lobe-form-item-padding-block": typeof resolvedItemPadding === "number" ? `${resolvedItemPadding}px` : resolvedItemPadding },
|
|
76
80
|
...style
|
|
77
81
|
},
|
|
78
82
|
onFinish: async (...finishProps) => {
|
package/es/Form/Form.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.mjs","names":["Form","AntForm"],"sources":["../../src/Form/Form.tsx"],"sourcesContent":["'use client';\n\nimport { Form as AntForm } from 'antd';\nimport { cx, useResponsive } from 'antd-style';\nimport { isUndefined } from 'es-toolkit/compat';\nimport { memo, useCallback, useState } from 'react';\n\nimport FormFlatGroup from './components/FormFlatGroup';\nimport FormGroup from './components/FormGroup';\nimport FormItem from './components/FormItem';\nimport { FormProvider } from './components/FormProvider';\nimport { variants } from './style';\nimport type { FormGroupItemType, FormItemProps, FormProps } from './type';\n\nconst Form = memo<FormProps>(\n ({\n className,\n itemMinWidth,\n footer,\n form,\n items = [],\n children,\n itemsType = 'group',\n itemVariant,\n variant = 'borderless',\n classNames,\n styles: customStyles,\n gap,\n style,\n collapsible,\n defaultActiveKey,\n initialValues,\n activeKey,\n onCollapse,\n onFinish,\n ref,\n layout,\n ...rest\n }) => {\n const { mobile } = useResponsive();\n const [submitLoading, setSubmitLoading] = useState(false);\n\n const mapFlat = useCallback(\n (item: FormItemProps, itemIndex: number) => (\n <FormItem\n className={classNames?.item}\n divider={itemIndex !== 0}\n key={itemIndex}\n minWidth={itemMinWidth}\n style={customStyles?.item}\n variant={variant}\n {...item}\n />\n ),\n [itemMinWidth, variant, classNames, customStyles],\n );\n\n const mapTree = useCallback(\n (group: FormGroupItemType, groupIndex: number) => {\n const key = group?.key || groupIndex;\n return (\n <FormGroup\n active={activeKey && group?.key ? activeKey.includes(key) : undefined}\n className={classNames?.group}\n classNames={classNames}\n collapsible={isUndefined(group.collapsible) ? collapsible : group.collapsible}\n extra={group?.extra}\n icon={group?.icon}\n key={key}\n keyValue={key}\n style={customStyles?.group}\n styles={customStyles}\n title={group.title}\n variant={group?.variant || variant}\n defaultActive={\n defaultActiveKey && group?.key ? defaultActiveKey.includes(key) : group?.defaultActive\n }\n onCollapse={(active) => {\n let keys: (string | number)[] = activeKey || defaultActiveKey || [];\n keys = keys.filter((k) => k !== key);\n onCollapse?.(active ? [...keys, key] : keys);\n }}\n >\n {Array.isArray(group.children)\n ? group.children.filter((item) => !item.hidden).map((item, i) => mapFlat(item, i))\n : group.children}\n </FormGroup>\n );\n },\n [activeKey, collapsible, defaultActiveKey, onCollapse, variant, classNames, customStyles],\n );\n\n return (\n <FormProvider\n config={{\n form,\n initialValues,\n submitLoading,\n }}\n >\n <AntForm\n className={cx(variants({ variant }), className)}\n colon={false}\n form={form}\n initialValues={initialValues}\n layout={layout || (mobile ? 'vertical' : 'horizontal')}\n ref={ref}\n variant={itemVariant}\n style={{\n gap,\n ...style,\n }}\n onFinish={async (...finishProps) => {\n if (!onFinish) return;\n setSubmitLoading(true);\n await onFinish(...finishProps);\n setSubmitLoading(false);\n }}\n {...rest}\n >\n {items && items?.length > 0 ? (\n itemsType === 'group' ? (\n (items as FormGroupItemType[])?.map((item, i) => mapTree(item, i))\n ) : (\n <FormFlatGroup\n className={classNames?.group}\n style={customStyles?.group}\n variant={variant}\n >\n {(items as FormItemProps[])\n ?.filter((item) => !item.hidden)\n .map((item, i) => mapFlat(item, i))}\n </FormFlatGroup>\n )\n ) : undefined}\n {children}\n {footer}\n </AntForm>\n </FormProvider>\n );\n },\n);\n\nForm.displayName = 'Form';\n\nexport default Form;\n"],"mappings":";;;;;;;;;;;;AAcA,MAAMA,SAAO,MACV,EACC,WACA,cACA,QACA,MACA,QAAQ,CAAC,GACT,UACA,YAAY,SACZ,aACA,UAAU,cACV,YACA,QAAQ,cACR,KACA,OACA,aACA,kBACA,eACA,WACA,YACA,UACA,KACA,QACA,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,cAAc;CACjC,MAAM,CAAC,eAAe,oBAAoB,SAAS,KAAK;CAExD,MAAM,UAAU,aACb,MAAqB,cACpB,oBAAC,UAAD;EACE,WAAW,YAAY;EACvB,SAAS,cAAc;EAEvB,UAAU;EACV,OAAO,cAAc;EACZ;EACT,GAAI;CACL,GALM,SAKN,GAEH;EAAC;EAAc;EAAS;EAAY;CAAY,CAClD;CAEA,MAAM,UAAU,aACb,OAA0B,eAAuB;EAChD,MAAM,MAAM,OAAO,OAAO;EAC1B,OACE,oBAAC,WAAD;GACE,QAAQ,aAAa,OAAO,MAAM,UAAU,SAAS,GAAG,IAAI,KAAA;GAC5D,WAAW,YAAY;GACX;GACZ,aAAa,YAAY,MAAM,WAAW,IAAI,cAAc,MAAM;GAClE,OAAO,OAAO;GACd,MAAM,OAAO;GAEb,UAAU;GACV,OAAO,cAAc;GACrB,QAAQ;GACR,OAAO,MAAM;GACb,SAAS,OAAO,WAAW;GAC3B,eACE,oBAAoB,OAAO,MAAM,iBAAiB,SAAS,GAAG,IAAI,OAAO;GAE3E,aAAa,WAAW;IACtB,IAAI,OAA4B,aAAa,oBAAoB,CAAC;IAClE,OAAO,KAAK,QAAQ,MAAM,MAAM,GAAG;IACnC,aAAa,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,IAAI;GAC7C;GAEC,UAAA,MAAM,QAAQ,MAAM,QAAQ,IACzB,MAAM,SAAS,QAAQ,SAAS,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,IAC/E,MAAM;EACD,GAlBJ,GAkBI;CAEf,GACA;EAAC;EAAW;EAAa;EAAkB;EAAY;EAAS;EAAY;CAAY,CAC1F;CAEA,OACE,oBAAC,cAAD;EACE,QAAQ;GACN;GACA;GACA;EACF;EAEA,UAAA,qBAACC,MAAD;GACE,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS;GAC9C,OAAO;GACD;GACS;GACf,QAAQ,WAAW,SAAS,aAAa;GACpC;GACL,SAAS;GACT,OAAO;IACL;IACA,GAAG;GACL;GACA,UAAU,OAAO,GAAG,gBAAgB;IAClC,IAAI,CAAC,UAAU;IACf,iBAAiB,IAAI;IACrB,MAAM,SAAS,GAAG,WAAW;IAC7B,iBAAiB,KAAK;GACxB;GACA,GAAI;
|
|
1
|
+
{"version":3,"file":"Form.mjs","names":["Form","AntForm"],"sources":["../../src/Form/Form.tsx"],"sourcesContent":["'use client';\n\nimport { Form as AntForm } from 'antd';\nimport { cx, useResponsive } from 'antd-style';\nimport { isUndefined } from 'es-toolkit/compat';\nimport { memo, useCallback, useState } from 'react';\n\nimport FormFlatGroup from './components/FormFlatGroup';\nimport FormGroup from './components/FormGroup';\nimport FormItem from './components/FormItem';\nimport { FormProvider } from './components/FormProvider';\nimport { variants } from './style';\nimport type { FormGroupItemType, FormItemProps, FormProps } from './type';\n\nconst Form = memo<FormProps>(\n ({\n className,\n itemMinWidth,\n footer,\n form,\n items = [],\n children,\n itemsType = 'group',\n itemVariant,\n variant = 'borderless',\n classNames,\n styles: customStyles,\n gap,\n style,\n collapsible,\n defaultActiveKey,\n initialValues,\n activeKey,\n onCollapse,\n onFinish,\n ref,\n layout,\n itemPadding,\n compact,\n ...rest\n }) => {\n const resolvedGap = gap ?? (compact ? 12 : undefined);\n const resolvedItemPadding = itemPadding ?? (compact ? 10 : undefined);\n const { mobile } = useResponsive();\n const [submitLoading, setSubmitLoading] = useState(false);\n\n const mapFlat = useCallback(\n (item: FormItemProps, itemIndex: number) => (\n <FormItem\n className={classNames?.item}\n divider={itemIndex !== 0}\n key={itemIndex}\n minWidth={itemMinWidth}\n style={customStyles?.item}\n variant={variant}\n {...item}\n />\n ),\n [itemMinWidth, variant, classNames, customStyles],\n );\n\n const mapTree = useCallback(\n (group: FormGroupItemType, groupIndex: number) => {\n const key = group?.key || groupIndex;\n return (\n <FormGroup\n active={activeKey && group?.key ? activeKey.includes(key) : undefined}\n className={classNames?.group}\n classNames={classNames}\n collapsible={isUndefined(group.collapsible) ? collapsible : group.collapsible}\n extra={group?.extra}\n icon={group?.icon}\n key={key}\n keyValue={key}\n style={customStyles?.group}\n styles={customStyles}\n title={group.title}\n variant={group?.variant || variant}\n defaultActive={\n defaultActiveKey && group?.key ? defaultActiveKey.includes(key) : group?.defaultActive\n }\n onCollapse={(active) => {\n let keys: (string | number)[] = activeKey || defaultActiveKey || [];\n keys = keys.filter((k) => k !== key);\n onCollapse?.(active ? [...keys, key] : keys);\n }}\n >\n {Array.isArray(group.children)\n ? group.children.filter((item) => !item.hidden).map((item, i) => mapFlat(item, i))\n : group.children}\n </FormGroup>\n );\n },\n [activeKey, collapsible, defaultActiveKey, onCollapse, variant, classNames, customStyles],\n );\n\n return (\n <FormProvider\n config={{\n form,\n initialValues,\n submitLoading,\n }}\n >\n <AntForm\n className={cx(variants({ variant }), className)}\n colon={false}\n form={form}\n initialValues={initialValues}\n layout={layout || (mobile ? 'vertical' : 'horizontal')}\n ref={ref}\n variant={itemVariant}\n style={{\n gap: resolvedGap,\n ...(resolvedGap === undefined\n ? undefined\n : {\n '--lobe-form-gap':\n typeof resolvedGap === 'number' ? `${resolvedGap}px` : resolvedGap,\n }),\n ...(resolvedItemPadding === undefined\n ? undefined\n : {\n '--lobe-form-item-padding-block':\n typeof resolvedItemPadding === 'number'\n ? `${resolvedItemPadding}px`\n : resolvedItemPadding,\n }),\n ...style,\n }}\n onFinish={async (...finishProps) => {\n if (!onFinish) return;\n setSubmitLoading(true);\n await onFinish(...finishProps);\n setSubmitLoading(false);\n }}\n {...rest}\n >\n {items && items?.length > 0 ? (\n itemsType === 'group' ? (\n (items as FormGroupItemType[])?.map((item, i) => mapTree(item, i))\n ) : (\n <FormFlatGroup\n className={classNames?.group}\n style={customStyles?.group}\n variant={variant}\n >\n {(items as FormItemProps[])\n ?.filter((item) => !item.hidden)\n .map((item, i) => mapFlat(item, i))}\n </FormFlatGroup>\n )\n ) : undefined}\n {children}\n {footer}\n </AntForm>\n </FormProvider>\n );\n },\n);\n\nForm.displayName = 'Form';\n\nexport default Form;\n"],"mappings":"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"}
|
package/es/Form/style.mjs
CHANGED
|
@@ -67,8 +67,9 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
|
|
|
67
67
|
border-radius: ${cssVar.borderRadius} !important;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
/* Mobile stacks flush, unless the Form sets gap / compact (--lobe-form-gap). */
|
|
70
71
|
${responsive.sm} {
|
|
71
|
-
gap: 0 !important;
|
|
72
|
+
gap: var(--lobe-form-gap, 0) !important;
|
|
72
73
|
}
|
|
73
74
|
`
|
|
74
75
|
}));
|
|
@@ -168,7 +169,7 @@ const itemStyles = createStaticStyles(({ css }) => ({
|
|
|
168
169
|
`,
|
|
169
170
|
root: css`
|
|
170
171
|
&.${prefixCls}-form-item {
|
|
171
|
-
padding-block: 16px;
|
|
172
|
+
padding-block: var(--lobe-form-item-padding-block, 16px);
|
|
172
173
|
padding-inline: 0;
|
|
173
174
|
|
|
174
175
|
.${prefixCls}-form-item-label {
|
package/es/Form/style.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","names":["lobeStaticStylish"],"sources":["../../src/Form/style.ts"],"sourcesContent":["import { createStaticStyles, responsive } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nconst prefixCls = 'ant';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n borderless: css`\n gap: 48px;\n .${prefixCls}-collapse .${prefixCls}-collapse-header {\n padding-block-end: 16px;\n border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n }\n\n .${prefixCls}-collapse-body {\n padding-inline: 0 !important;\n }\n `,\n filled: css`\n .${prefixCls}-collapse-body {\n padding-block: 0 !important;\n }\n `,\n outlined: css`\n .${prefixCls}-collapse-body {\n padding-block: 0 !important;\n }\n `,\n root: css`\n position: relative;\n\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n width: 100%;\n\n .${prefixCls}-form-item {\n margin: 0 !important;\n }\n\n .${prefixCls}-form-item .${prefixCls}-form-item-label > label {\n height: unset;\n }\n\n .${prefixCls}-row {\n position: relative;\n flex-wrap: nowrap;\n }\n\n .${prefixCls}-form-item-label {\n position: relative;\n flex: 1;\n max-width: 100%;\n }\n\n .${prefixCls}-form-item-row {\n align-items: center;\n }\n\n .${prefixCls}-form-item-control {\n position: relative;\n flex: 0;\n min-width: unset !important;\n }\n\n .${prefixCls}-collapse-item {\n border-radius: ${cssVar.borderRadius} !important;\n }\n\n ${responsive.sm} {\n gap: 0 !important;\n }\n `,\n}));\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n variant: 'borderless',\n },\n\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n },\n});\n\nexport const flatGroupStyles = createStaticStyles(({ cx, css, cssVar }) => {\n return {\n borderless: cx(\n lobeStaticStylish.variantBorderlessWithoutHover,\n css`\n padding-inline: 0;\n `,\n ),\n filled: cx(\n lobeStaticStylish.variantFilledWithoutHover,\n css`\n background: ${cssVar.colorFillQuaternary};\n `,\n ),\n mobile: css`\n padding-block: 0;\n padding-inline: 16px;\n border-radius: 0;\n background: ${cssVar.colorBgContainer};\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n root: css`\n padding-inline: 16px;\n border-radius: ${cssVar.borderRadiusLG};\n `,\n };\n});\n\nexport const flatGroupVariants = cva(flatGroupStyles.root, {\n defaultVariants: {\n variant: 'borderless',\n },\n\n variants: {\n variant: {\n filled: flatGroupStyles.filled,\n outlined: flatGroupStyles.outlined,\n borderless: flatGroupStyles.borderless,\n },\n },\n});\n\nexport const footerStyles = createStaticStyles(({ css, cssVar }) => {\n return {\n root: css`\n ${responsive.sm} {\n padding: 16px;\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n background: ${cssVar.colorBgContainer};\n }\n `,\n };\n});\n\nexport const groupStyles = createStaticStyles(({ css, cssVar }) => {\n return {\n mobileGroupBody: css`\n padding-block: 0;\n padding-inline: 16px;\n background: ${cssVar.colorBgContainer};\n `,\n mobileGroupHeader: css`\n padding: 16px;\n background: ${cssVar.colorBgLayout};\n `,\n title: css`\n align-items: center;\n font-size: 16px;\n font-weight: bold;\n `,\n titleBorderless: css`\n font-size: 18px;\n font-weight: bold;\n `,\n titleMobile: css`\n ${responsive.sm} {\n font-size: 14px;\n font-weight: 400;\n opacity: 0.5;\n }\n `,\n };\n});\n\nexport const titleVariants = cva(groupStyles.title, {\n defaultVariants: {\n variant: 'borderless',\n },\n\n variants: {\n variant: {\n filled: null,\n outlined: null,\n borderless: groupStyles.titleBorderless,\n },\n },\n});\n\nexport const itemStyles = createStaticStyles(({ css }) => ({\n itemMinWidth: css`\n &.${prefixCls}-form-item .${prefixCls}-form-item-control {\n width: var(--form-item-min-width) !important;\n }\n `,\n itemNoDivider: css`\n &:not(:first-child) {\n padding-block-start: 0;\n }\n `,\n root: css`\n &.${prefixCls}-form-item {\n padding-block: 16px;\n padding-inline: 0;\n\n .${prefixCls}-form-item-label {\n text-align: start;\n }\n\n .${prefixCls}-row {\n gap: 12px;\n justify-content: space-between;\n\n > div {\n flex: unset;\n flex-grow: unset;\n }\n }\n\n .${prefixCls}-form-item-required::before {\n align-self: flex-start;\n }\n\n ${responsive.sm} {\n &.${prefixCls}-form-item-horizontal {\n .${prefixCls}-form-item-label {\n flex: 1 !important;\n }\n .${prefixCls}-form-item-control {\n flex: none !important;\n }\n }\n }\n }\n `,\n verticalLayout: css`\n &.${prefixCls}-form-item {\n .${prefixCls}-row {\n align-items: stretch;\n }\n }\n `,\n}));\n\nexport const itemVariants = cva(itemStyles.root, {\n defaultVariants: {\n divider: false,\n itemMinWidth: false,\n layout: 'vertical',\n },\n\n variants: {\n itemMinWidth: {\n true: itemStyles.itemMinWidth,\n false: null,\n },\n divider: {\n true: null,\n false: itemStyles.itemNoDivider,\n },\n layout: {\n vertical: itemStyles.verticalLayout,\n horizontal: null,\n },\n },\n});\n\nexport const submitFooterStyles = createStaticStyles(({ css, cssVar }) => ({\n floatFooter: css`\n position: fixed;\n z-index: 1000;\n inset-block-end: 24px;\n inset-inline-start: 50%;\n transform: translateX(-50%);\n\n width: max-content;\n padding: 8px;\n border: 1px solid ${cssVar.colorBorderSecondary};\n border-radius: 48px;\n\n background: ${cssVar.colorBgContainer};\n box-shadow: ${cssVar.boxShadowSecondary};\n `,\n footer: css`\n ${responsive.sm} {\n margin-block-start: calc(-1 * ${cssVar.borderRadius});\n padding: 16px;\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n background: ${cssVar.colorBgContainer};\n }\n `,\n}));\n\nexport const titleStyles = createStaticStyles(({ css, cssVar }) => ({\n content: css`\n position: relative;\n text-align: start;\n `,\n\n desc: css`\n display: block;\n\n line-height: 1.44;\n color: ${cssVar.colorTextDescription};\n word-wrap: break-word;\n white-space: pre-wrap;\n `,\n title: css`\n font-weight: 500;\n line-height: 1;\n `,\n}));\n"],"mappings":";;;;AAKA,MAAM,YAAY;AAElB,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,YAAY,GAAG;;OAEV,UAAU,aAAa,UAAU;;oCAEJ,OAAO,qBAAqB;;;OAGzD,UAAU;;;;CAIf,QAAQ,GAAG;OACN,UAAU;;;;CAIf,UAAU,GAAG;OACR,UAAU;;;;CAIf,MAAM,GAAG;;;;;;;;;OASJ,UAAU;;;;OAIV,UAAU,cAAc,UAAU;;;;OAIlC,UAAU;;;;;OAKV,UAAU;;;;;;OAMV,UAAU;;;;OAIV,UAAU;;;;;;OAMV,UAAU;uBACM,OAAO,aAAa
|
|
1
|
+
{"version":3,"file":"style.mjs","names":["lobeStaticStylish"],"sources":["../../src/Form/style.ts"],"sourcesContent":["import { createStaticStyles, responsive } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nconst prefixCls = 'ant';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n borderless: css`\n gap: 48px;\n .${prefixCls}-collapse .${prefixCls}-collapse-header {\n padding-block-end: 16px;\n border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n }\n\n .${prefixCls}-collapse-body {\n padding-inline: 0 !important;\n }\n `,\n filled: css`\n .${prefixCls}-collapse-body {\n padding-block: 0 !important;\n }\n `,\n outlined: css`\n .${prefixCls}-collapse-body {\n padding-block: 0 !important;\n }\n `,\n root: css`\n position: relative;\n\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n width: 100%;\n\n .${prefixCls}-form-item {\n margin: 0 !important;\n }\n\n .${prefixCls}-form-item .${prefixCls}-form-item-label > label {\n height: unset;\n }\n\n .${prefixCls}-row {\n position: relative;\n flex-wrap: nowrap;\n }\n\n .${prefixCls}-form-item-label {\n position: relative;\n flex: 1;\n max-width: 100%;\n }\n\n .${prefixCls}-form-item-row {\n align-items: center;\n }\n\n .${prefixCls}-form-item-control {\n position: relative;\n flex: 0;\n min-width: unset !important;\n }\n\n .${prefixCls}-collapse-item {\n border-radius: ${cssVar.borderRadius} !important;\n }\n\n /* Mobile stacks flush, unless the Form sets gap / compact (--lobe-form-gap). */\n ${responsive.sm} {\n gap: var(--lobe-form-gap, 0) !important;\n }\n `,\n}));\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n variant: 'borderless',\n },\n\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n },\n});\n\nexport const flatGroupStyles = createStaticStyles(({ cx, css, cssVar }) => {\n return {\n borderless: cx(\n lobeStaticStylish.variantBorderlessWithoutHover,\n css`\n padding-inline: 0;\n `,\n ),\n filled: cx(\n lobeStaticStylish.variantFilledWithoutHover,\n css`\n background: ${cssVar.colorFillQuaternary};\n `,\n ),\n mobile: css`\n padding-block: 0;\n padding-inline: 16px;\n border-radius: 0;\n background: ${cssVar.colorBgContainer};\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n root: css`\n padding-inline: 16px;\n border-radius: ${cssVar.borderRadiusLG};\n `,\n };\n});\n\nexport const flatGroupVariants = cva(flatGroupStyles.root, {\n defaultVariants: {\n variant: 'borderless',\n },\n\n variants: {\n variant: {\n filled: flatGroupStyles.filled,\n outlined: flatGroupStyles.outlined,\n borderless: flatGroupStyles.borderless,\n },\n },\n});\n\nexport const footerStyles = createStaticStyles(({ css, cssVar }) => {\n return {\n root: css`\n ${responsive.sm} {\n padding: 16px;\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n background: ${cssVar.colorBgContainer};\n }\n `,\n };\n});\n\nexport const groupStyles = createStaticStyles(({ css, cssVar }) => {\n return {\n mobileGroupBody: css`\n padding-block: 0;\n padding-inline: 16px;\n background: ${cssVar.colorBgContainer};\n `,\n mobileGroupHeader: css`\n padding: 16px;\n background: ${cssVar.colorBgLayout};\n `,\n title: css`\n align-items: center;\n font-size: 16px;\n font-weight: bold;\n `,\n titleBorderless: css`\n font-size: 18px;\n font-weight: bold;\n `,\n titleMobile: css`\n ${responsive.sm} {\n font-size: 14px;\n font-weight: 400;\n opacity: 0.5;\n }\n `,\n };\n});\n\nexport const titleVariants = cva(groupStyles.title, {\n defaultVariants: {\n variant: 'borderless',\n },\n\n variants: {\n variant: {\n filled: null,\n outlined: null,\n borderless: groupStyles.titleBorderless,\n },\n },\n});\n\nexport const itemStyles = createStaticStyles(({ css }) => ({\n itemMinWidth: css`\n &.${prefixCls}-form-item .${prefixCls}-form-item-control {\n width: var(--form-item-min-width) !important;\n }\n `,\n itemNoDivider: css`\n &:not(:first-child) {\n padding-block-start: 0;\n }\n `,\n root: css`\n &.${prefixCls}-form-item {\n padding-block: var(--lobe-form-item-padding-block, 16px);\n padding-inline: 0;\n\n .${prefixCls}-form-item-label {\n text-align: start;\n }\n\n .${prefixCls}-row {\n gap: 12px;\n justify-content: space-between;\n\n > div {\n flex: unset;\n flex-grow: unset;\n }\n }\n\n .${prefixCls}-form-item-required::before {\n align-self: flex-start;\n }\n\n ${responsive.sm} {\n &.${prefixCls}-form-item-horizontal {\n .${prefixCls}-form-item-label {\n flex: 1 !important;\n }\n .${prefixCls}-form-item-control {\n flex: none !important;\n }\n }\n }\n }\n `,\n verticalLayout: css`\n &.${prefixCls}-form-item {\n .${prefixCls}-row {\n align-items: stretch;\n }\n }\n `,\n}));\n\nexport const itemVariants = cva(itemStyles.root, {\n defaultVariants: {\n divider: false,\n itemMinWidth: false,\n layout: 'vertical',\n },\n\n variants: {\n itemMinWidth: {\n true: itemStyles.itemMinWidth,\n false: null,\n },\n divider: {\n true: null,\n false: itemStyles.itemNoDivider,\n },\n layout: {\n vertical: itemStyles.verticalLayout,\n horizontal: null,\n },\n },\n});\n\nexport const submitFooterStyles = createStaticStyles(({ css, cssVar }) => ({\n floatFooter: css`\n position: fixed;\n z-index: 1000;\n inset-block-end: 24px;\n inset-inline-start: 50%;\n transform: translateX(-50%);\n\n width: max-content;\n padding: 8px;\n border: 1px solid ${cssVar.colorBorderSecondary};\n border-radius: 48px;\n\n background: ${cssVar.colorBgContainer};\n box-shadow: ${cssVar.boxShadowSecondary};\n `,\n footer: css`\n ${responsive.sm} {\n margin-block-start: calc(-1 * ${cssVar.borderRadius});\n padding: 16px;\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n background: ${cssVar.colorBgContainer};\n }\n `,\n}));\n\nexport const titleStyles = createStaticStyles(({ css, cssVar }) => ({\n content: css`\n position: relative;\n text-align: start;\n `,\n\n desc: css`\n display: block;\n\n line-height: 1.44;\n color: ${cssVar.colorTextDescription};\n word-wrap: break-word;\n white-space: pre-wrap;\n `,\n title: css`\n font-weight: 500;\n line-height: 1;\n `,\n}));\n"],"mappings":"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"}
|
package/es/Form/type.d.mts
CHANGED
|
@@ -23,10 +23,20 @@ interface FormProps$1 extends Omit<FormProps, 'variant' | 'styles' | 'classNames
|
|
|
23
23
|
item?: string;
|
|
24
24
|
};
|
|
25
25
|
collapsible?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Compact spacing for narrow containers (Drawer / Modal): `gap` 12px and `itemPadding` 10px
|
|
28
|
+
* unless set explicitly. Default `false` (unchanged spacing).
|
|
29
|
+
*/
|
|
30
|
+
compact?: boolean;
|
|
26
31
|
defaultActiveKey?: (string | number)[];
|
|
27
32
|
footer?: ReactNode;
|
|
28
33
|
gap?: number | string;
|
|
29
34
|
itemMinWidth?: FormItemProps$1['minWidth'];
|
|
35
|
+
/**
|
|
36
|
+
* Block padding (top / bottom) of every Form.Item. Default `16px`.
|
|
37
|
+
* Use a smaller value for compact forms in Drawers / Modals.
|
|
38
|
+
*/
|
|
39
|
+
itemPadding?: number | string;
|
|
30
40
|
items?: FormGroupItemType[] | FormItemProps$1[];
|
|
31
41
|
itemsType?: ItemsType;
|
|
32
42
|
itemVariant?: FormProps['variant'];
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { DatePickerType } from "./type.mjs";
|
|
2
2
|
//#region src/base-ui/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/base-ui/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/base-ui/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/base-ui/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/base-ui/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/base-ui/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/base-ui/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/base-ui/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/base-ui/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/base-ui/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 { cx } from "../../utils/styleEngine.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";
|
|
@@ -11,7 +12,12 @@ import { RangePicker } from "@rc-component/picker";
|
|
|
11
12
|
//#region src/base-ui/DatePicker/RangePicker.tsx
|
|
12
13
|
/** antd `generateRangePicker`: `DatePicker.RangePicker` over `generateConfig`'s date type. */
|
|
13
14
|
const generateRangePicker = (generateConfig) => {
|
|
14
|
-
const RangePicker$1 = (
|
|
15
|
+
const RangePicker$1 = (rawProps) => {
|
|
16
|
+
const normalized = normalizeLegacyDateProps(rawProps, generateConfig);
|
|
17
|
+
const props = isNativeDateConfig(generateConfig) && normalized.onChange ? {
|
|
18
|
+
...normalized,
|
|
19
|
+
onChange: (dates, dateStrings) => normalized.onChange(dates ?? [null, null], dateStrings ?? ["", ""])
|
|
20
|
+
} : normalized;
|
|
15
21
|
const { allowClear, allowEmpty, bordered, cellRender, changeOnBlur, className, clearIcon, classNames, components, dateRender, defaultOpen, defaultPickerValue, defaultValue, dropdownClassName, direction, disabled, disabledDate, footer, getPopupContainer, id, locale: localeOverride, max, maxDate, min, 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, transitionName, value, variant, ...rest } = props;
|
|
16
22
|
const { locale, rangePlaceholder } = usePickerLocale(localeOverride);
|
|
17
23
|
const keyboard = usePanelKeyboard({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.mjs","names":["RangePicker","RcRangePicker"],"sources":["../../../src/base-ui/DatePicker/RangePicker.tsx"],"sourcesContent":["'use client';\n\nimport { RangePicker as RcRangePicker } from '@rc-component/picker';\nimport type { GenerateConfig } from '@rc-component/picker/generate';\nimport { ArrowRight } from 'lucide-react';\n\nimport Icon from '@/Icon';\nimport { cx } from '@/utils/styleEngine';\n\nimport { usePickerLocale } from './locale';\nimport type { DateRangePickerProps, RangePickerComponent } from './type';\nimport { usePanelKeyboard } from './usePanelKeyboard';\nimport { usePickerShared } from './usePickerShared';\nimport { usePresetActive } from './usePresetActive';\n\n/** antd `generateRangePicker`: `DatePicker.RangePicker` over `generateConfig`'s date type. */\nconst generateRangePicker = <DateType extends object>(generateConfig: GenerateConfig<DateType>) => {\n const RangePicker = (
|
|
1
|
+
{"version":3,"file":"RangePicker.mjs","names":["RangePicker","RcRangePicker"],"sources":["../../../src/base-ui/DatePicker/RangePicker.tsx"],"sourcesContent":["'use client';\n\nimport { RangePicker as RcRangePicker } from '@rc-component/picker';\nimport type { GenerateConfig } from '@rc-component/picker/generate';\nimport { ArrowRight } from 'lucide-react';\n\nimport Icon from '@/Icon';\nimport { cx } from '@/utils/styleEngine';\n\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\n/** antd `generateRangePicker`: `DatePicker.RangePicker` over `generateConfig`'s date type. */\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 bordered,\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 footer,\n getPopupContainer,\n id,\n locale: localeOverride,\n max,\n maxDate,\n min,\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 transitionName,\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 bordered,\n changeOnBlur,\n className,\n clearIcon,\n classNames,\n components,\n defaultOpen,\n dropdownClassName,\n generateConfig,\n getPopupContainer,\n max,\n maxDate,\n min,\n minDate,\n needConfirm,\n nextIcon,\n onKeyDown,\n onOpenChange: keyboard.onOpenChange,\n open,\n picker,\n popupClassName,\n popupStyle,\n prevIcon,\n rootClassName: cx(keyboard.scopeClassName, rootClassName),\n semanticProps: props,\n shadow,\n size,\n status,\n styles,\n suffixIcon,\n superNextIcon,\n superPrevIcon,\n transitionName,\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 ?? (footer ? () => footer : undefined)}\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":";;;;;;;;;;;;;AAiBA,MAAM,uBAAgD,mBAA6C;CACjG,MAAMA,iBAAe,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,UACA,YACA,cACA,WACA,WACA,YACA,YACA,YACA,aACA,oBACA,cACA,mBACA,WACA,UACA,cACA,QACA,mBACA,IACA,QAAQ,gBACR,KACA,SACA,KACA,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,gBACA,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;GACA;GACA;GACA,cAAc,SAAS;GACvB;GACA;GACA;GACA;GACA;GACA,eAAe,GAAG,SAAS,gBAAgB,aAAa;GACxD,eAAe;GACf;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EAED,MAAM,eAAe,gBAAiB,KAAa,SAAS,OAAO,YAAY;EAE/E,OACE,oBAACC,aAAD;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;GACtB,mBAAmB,sBAAsB,eAAe,SAAS,KAAA;GACjE,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,cAAY,cAAc;CAC1B,OAAOD;AACT"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import Icon from "../../Icon/Icon.mjs";
|
|
3
3
|
import { cx } from "../../utils/styleEngine.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";
|
|
@@ -21,7 +22,8 @@ const defaultRemoveIcon = /* @__PURE__ */ jsx(Icon, {
|
|
|
21
22
|
*/
|
|
22
23
|
const generateSinglePicker = (generateConfig) => {
|
|
23
24
|
const getPicker = (presetPicker, displayName = "DatePicker") => {
|
|
24
|
-
const Picker = (
|
|
25
|
+
const Picker = (rawProps) => {
|
|
26
|
+
const props = normalizeLegacyDateProps(rawProps, generateConfig);
|
|
25
27
|
const { allowClear, bordered, cellRender, changeOnBlur, className, clearIcon, classNames, components, dateRender, defaultOpen, defaultPickerValue, defaultValue, dropdownClassName, direction, footer, getPopupContainer, locale: localeOverride, max, maxDate, min, minDate, mode, monthCellRender, multiple, needConfirm, nextIcon, onKeyDown, onCalendarChange, onChange, onFocus, onOk, onOpenChange, onPanelChange, onPickerValueChange, onSelect, open, picker: pickerProp, pickerValue, placeholder, popupClassName, popupStyle, prevIcon, ref, removeIcon, renderExtraFooter, rootClassName, shadow, size, status, styles, suffixIcon, superNextIcon, superPrevIcon, transitionName, value, variant, ...rest } = props;
|
|
26
28
|
const picker = presetPicker ?? pickerProp ?? "date";
|
|
27
29
|
const { locale, placeholder: defaultPlaceholder } = usePickerLocale(localeOverride);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SinglePicker.mjs","names":[],"sources":["../../../src/base-ui/DatePicker/SinglePicker.tsx"],"sourcesContent":["'use client';\n\nimport RcPicker from '@rc-component/picker';\nimport type { GenerateConfig } from '@rc-component/picker/generate';\nimport type { PickerMode } from '@rc-component/picker/interface';\nimport { X } from 'lucide-react';\n\nimport Icon from '@/Icon';\nimport { cx } from '@/utils/styleEngine';\n\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\n/**\n * antd `generateSinglePicker`: DatePicker over `generateConfig`'s date type, plus the\n * pickers whose `picker` is fixed (`DatePicker.WeekPicker`, …, `DatePicker.TimePicker`).\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":[],"sources":["../../../src/base-ui/DatePicker/SinglePicker.tsx"],"sourcesContent":["'use client';\n\nimport RcPicker from '@rc-component/picker';\nimport type { GenerateConfig } from '@rc-component/picker/generate';\nimport type { PickerMode } from '@rc-component/picker/interface';\nimport { X } from 'lucide-react';\n\nimport Icon from '@/Icon';\nimport { cx } from '@/utils/styleEngine';\n\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\n/**\n * antd `generateSinglePicker`: DatePicker over `generateConfig`'s date type, plus the\n * pickers whose `picker` is fixed (`DatePicker.WeekPicker`, …, `DatePicker.TimePicker`).\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 bordered,\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 footer,\n getPopupContainer,\n locale: localeOverride,\n max,\n maxDate,\n min,\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 onSelect,\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 transitionName,\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 bordered,\n changeOnBlur,\n className,\n clearIcon,\n classNames,\n components,\n defaultOpen,\n dropdownClassName,\n generateConfig,\n getPopupContainer,\n max,\n maxDate,\n min,\n minDate,\n needConfirm,\n nextIcon,\n onKeyDown,\n onOpenChange: keyboard.onOpenChange,\n open,\n picker,\n popupClassName,\n popupStyle,\n prevIcon,\n rootClassName: cx(keyboard.scopeClassName, rootClassName),\n semanticProps: props,\n shadow,\n size,\n status,\n styles,\n suffixIcon,\n superNextIcon,\n superPrevIcon,\n transitionName,\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 ?? (footer ? () => footer : undefined)}\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: cx(shared.classNames.popup.root, `${PREFIX_CLS}-dropdown-multiple`),\n },\n }\n : shared.classNames\n }\n onFocus={keyboard.onFocus}\n onOk={onOk as any}\n onPanelChange={keyboard.onPanelChange}\n onPickerValueChange={keyboard.onPickerValueChange}\n onCalendarChange={\n onCalendarChange || onSelect\n ? (date, dateString, info) => {\n onCalendarChange?.(date, dateString as any, info);\n if (date && !Array.isArray(date)) onSelect?.(date);\n }\n : undefined\n }\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;;;;;AAM/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,UACA,YACA,cACA,WACA,WACA,YACA,YACA,YACA,aACA,oBACA,cACA,mBACA,WACA,QACA,mBACA,QAAQ,gBACR,KACA,SACA,KACA,SACA,MACA,iBACA,UACA,aACA,UACA,WACA,kBACA,UACA,SACA,MACA,cACA,eACA,qBACA,UACA,MACA,QAAQ,YACR,aACA,aACA,gBACA,YACA,UACA,KACA,YACA,mBACA,eACA,QACA,MACA,QACA,QACA,YACA,eACA,eACA,gBACA,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;IACA;IACA;IACA,cAAc,SAAS;IACvB;IACA;IACA;IACA;IACA;IACA,eAAe,GAAG,SAAS,gBAAgB,aAAa;IACxD,eAAe;IACf;IACA;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,oBAAC,UAAD;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;IACrD,mBAAmB,sBAAsB,eAAe,SAAS,KAAA;IACjE,SAAU,KAAa,WAAY,KAAa,aAAa;IACtD;IACP,YACE,WACI;KACE,GAAG,OAAO;KACV,OAAO;MACL,GAAG,OAAO,WAAW;MACrB,MAAM,GAAG,OAAO,WAAW,MAAM,MAAM,GAAG,WAAW,mBAAmB;KAC1E;IACF,IACA,OAAO;IAEb,SAAS,SAAS;IACZ;IACN,eAAe,SAAS;IACxB,qBAAqB,SAAS;IAC9B,kBACE,oBAAoB,YACf,MAAM,YAAY,SAAS;KAC1B,mBAAmB,MAAM,YAAmB,IAAI;KAChD,IAAI,QAAQ,CAAC,MAAM,QAAQ,IAAI,GAAG,WAAW,IAAI;IACnD,IACA,KAAA;IAEN,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/base-ui/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/base-ui/DatePicker/dateGenerateConfig.ts"],"sourcesContent":["import type { GenerateConfig } from '@rc-component/picker/generate';\nimport dayjs, { type Dayjs } from 'dayjs';\n\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,6 +1,8 @@
|
|
|
1
|
-
import { CalendarMode, CellRender, CellRenderInfo, DatePickerBaseProps, DatePickerProps, DatePickerSemanticType, DatePickerType, DateRangePickerProps, DateRangeValue, GeneratedDatePicker, GenericTimePickerProps, MonthPickerProps, PanelMode, PickerClassNames, PickerComponents, PickerDateStrings, PickerLocale, PickerLocaleInput, PickerLocaleLang, PickerMode, PickerPanelProps, PickerPlacement, PickerPopupSemanticName, PickerProps, PickerPropsWithMultiple, PickerRef, PickerSemanticClassNames, PickerSemanticName, PickerSemanticStyles, PickerSize, PickerStatus, PickerStyles, PickerTagProps, PickerVariant, PresetDate, PresetPickerProps, QuarterPickerProps, RangeDisabledDate, RangeInfo, RangePickerComponent, RangePickerProps, RangePickerRef, SinglePickerComponent, TimePickerLocale, TimePickerProps, WeekPickerProps, YearPickerProps } from "./type.mjs";
|
|
1
|
+
import { CalendarMode, CellRender, CellRenderInfo, DatePickerBaseProps, DatePickerProps, DatePickerSemanticType, DatePickerType, DateRangePickerProps, DateRangeValue, DayjsDatePickerProps, DayjsDatePickerType, DayjsDateRangePickerProps, DayjsDateRangeValue, GeneratedDatePicker, GenericTimePickerProps, LegacyDateInput, MonthPickerProps, PanelMode, PickerClassNames, PickerComponents, PickerDateInput, PickerDateStrings, PickerLocale, PickerLocaleInput, PickerLocaleLang, PickerMode, PickerPanelProps, PickerPlacement, PickerPopupSemanticName, PickerProps, PickerPropsWithMultiple, PickerRef, PickerSemanticClassNames, PickerSemanticName, PickerSemanticStyles, PickerSize, PickerStatus, PickerStyles, PickerTagProps, PickerValueInput, PickerVariant, PresetDate, PresetPickerProps, QuarterPickerProps, RangeChangeDates, RangeChangeStrings, RangeDisabledDate, RangeInfo, RangePickerComponent, RangePickerProps, RangePickerRef, SinglePickerComponent, TimePickerLocale, TimePickerProps, WeekPickerProps, YearPickerProps } from "./type.mjs";
|
|
2
2
|
import DatePicker from "./DatePicker.mjs";
|
|
3
3
|
import DateRangePicker from "./DateRangePicker.mjs";
|
|
4
|
+
import DayjsDatePicker from "./DayjsDatePicker.mjs";
|
|
5
|
+
import DayjsDateRangePicker from "./DayjsDateRangePicker.mjs";
|
|
4
6
|
import generatePicker from "./generatePicker.mjs";
|
|
5
7
|
import { createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN } from "./locale.mjs";
|
|
6
|
-
export { type CalendarMode, type CellRender, type CellRenderInfo, DatePicker, type DatePickerBaseProps, type DatePickerProps, type DatePickerSemanticType, type DatePickerType, DateRangePicker, type DateRangePickerProps, type DateRangeValue, 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 };
|
|
8
|
+
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 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 };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import generateConfig from "./generateConfig.mjs";
|
|
2
|
+
import dateGenerateConfig from "./dateGenerateConfig.mjs";
|
|
3
|
+
import dayjs from "dayjs";
|
|
4
|
+
//#region src/base-ui/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/base-ui/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"}
|