@broxus/react-uikit 0.16.0 → 0.17.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/dist/cjs/components/Button/Button.js +4 -4
- package/dist/cjs/components/ConfigProvider/index.d.ts +11 -7
- package/dist/cjs/components/Control/Input/Password/index.js +2 -2
- package/dist/cjs/components/Control/Input/useInput.js +7 -8
- package/dist/cjs/components/Control/Select/index.d.ts +3 -2
- package/dist/cjs/components/Control/index.scss +1 -1
- package/dist/cjs/components/Control/types.d.ts +1 -0
- package/dist/cjs/components/DatePicker/generatePurePicker.d.ts +24 -0
- package/dist/cjs/components/DatePicker/generatePurePicker.js +78 -0
- package/dist/cjs/components/DatePicker/generateSinglePicker.js +3 -3
- package/dist/cjs/components/DatePicker/index.d.ts +3 -0
- package/dist/cjs/components/DatePicker/index.js +3 -0
- package/dist/cjs/components/DatePicker/index.scss +112 -85
- package/dist/cjs/components/DatePicker/types.d.ts +14 -3
- package/dist/cjs/components/Drop/index.d.ts +2 -1
- package/dist/cjs/styles/mixins.scss +23 -0
- package/dist/cjs/styles/variables.scss +8 -8
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/components/Button/Button.js +4 -4
- package/dist/esm/components/ConfigProvider/index.d.ts +11 -7
- package/dist/esm/components/Control/Input/Password/index.js +2 -2
- package/dist/esm/components/Control/Input/useInput.js +7 -8
- package/dist/esm/components/Control/Select/index.d.ts +3 -2
- package/dist/esm/components/Control/index.scss +1 -1
- package/dist/esm/components/Control/types.d.ts +1 -0
- package/dist/esm/components/DatePicker/generatePurePicker.d.ts +24 -0
- package/dist/esm/components/DatePicker/generatePurePicker.js +38 -0
- package/dist/esm/components/DatePicker/generateSinglePicker.js +3 -3
- package/dist/esm/components/DatePicker/index.d.ts +3 -0
- package/dist/esm/components/DatePicker/index.js +3 -0
- package/dist/esm/components/DatePicker/index.scss +112 -85
- package/dist/esm/components/DatePicker/types.d.ts +14 -3
- package/dist/esm/components/Drop/index.d.ts +2 -1
- package/dist/esm/styles/mixins.scss +23 -0
- package/dist/esm/styles/variables.scss +8 -8
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -45,7 +45,7 @@ const Link_1 = require("../../components/Link");
|
|
|
45
45
|
const defaultElement = 'button';
|
|
46
46
|
exports.Button = React.forwardRef((props, ref) => {
|
|
47
47
|
const config = (0, ConfigProvider_1.useConfig)();
|
|
48
|
-
const { component = defaultElement,
|
|
48
|
+
const { component = defaultElement, ghost, htmlType = 'button', prefixCls = config.button?.prefixCls ?? config.prefixCls, shape = config.button?.shape ?? config.buttonShape, size = config.button?.size ?? config.buttonSize, type, ...restProps } = props;
|
|
49
49
|
const buttonRef = React.useRef(null);
|
|
50
50
|
const onClick = React.useCallback(event => {
|
|
51
51
|
if (restProps.disabled) {
|
|
@@ -54,7 +54,7 @@ exports.Button = React.forwardRef((props, ref) => {
|
|
|
54
54
|
}
|
|
55
55
|
restProps.onClick?.(event);
|
|
56
56
|
}, [restProps]);
|
|
57
|
-
const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls
|
|
57
|
+
const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls, 'button'), [config, prefixCls]);
|
|
58
58
|
const className = React.useMemo(() => (0, classnames_1.default)(rootCls, {
|
|
59
59
|
[`${rootCls}-${type}`]: type !== undefined,
|
|
60
60
|
[`${rootCls}-ghost`]: ghost === true,
|
|
@@ -62,9 +62,9 @@ exports.Button = React.forwardRef((props, ref) => {
|
|
|
62
62
|
[`${rootCls}-${shape}`]: shape !== undefined && ['circle', 'round'].includes(shape),
|
|
63
63
|
}, restProps.className), [rootCls, type, ghost, size, shape, restProps.className]);
|
|
64
64
|
if (restProps.href !== undefined) {
|
|
65
|
-
return (React.createElement(Component_1.Component, { ref: ref || buttonRef, component: Link_1.Link, href: restProps.href, ...restProps, className: className, onClick: onClick }
|
|
65
|
+
return (React.createElement(Component_1.Component, { ref: ref || buttonRef, component: Link_1.Link, href: restProps.href, ...restProps, className: className, onClick: onClick }));
|
|
66
66
|
}
|
|
67
|
-
return (React.createElement(Component_1.Component, { ref: ref || buttonRef, component: component, type: htmlType, ...restProps, className: className, onClick: onClick }
|
|
67
|
+
return (React.createElement(Component_1.Component, { ref: ref || buttonRef, component: component, type: htmlType, ...restProps, className: className, onClick: onClick }));
|
|
68
68
|
});
|
|
69
69
|
if (process.env.NODE_ENV !== 'production') {
|
|
70
70
|
exports.Button.displayName = 'Button';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type ButtonProps } from '../../components/Button';
|
|
3
|
+
import { type PickerLocale } from '../../components/DatePicker';
|
|
3
4
|
import { type ColorMode } from '../../components/Inverse';
|
|
5
|
+
import { type TimePickerLocale } from '../../components/TimePicker';
|
|
4
6
|
import { type BreakpointsConfig, type Direction, type TooltipOptions } from '../../types';
|
|
5
7
|
type PropsWithMouseHandler = {
|
|
6
8
|
onClick: React.HTMLAttributes<HTMLElement>['onClick'];
|
|
@@ -21,16 +23,17 @@ export type ConfigContextConsumedProps = {
|
|
|
21
23
|
tertiaryColorMode?: ColorMode;
|
|
22
24
|
};
|
|
23
25
|
checkbox?: {
|
|
24
|
-
direction?: Direction
|
|
26
|
+
direction?: Direction;
|
|
25
27
|
prefixCls?: string;
|
|
26
28
|
};
|
|
27
29
|
control?: {
|
|
28
|
-
direction?: Direction
|
|
30
|
+
direction?: Direction;
|
|
29
31
|
prefixCls?: string;
|
|
30
32
|
clearIcon?: React.ReactNode | ((props: PropsWithMouseHandler) => React.ReactElement);
|
|
31
33
|
};
|
|
32
34
|
datePicker?: {
|
|
33
|
-
direction?: Direction
|
|
35
|
+
direction?: Direction;
|
|
36
|
+
locale?: PickerLocale;
|
|
34
37
|
prefixCls?: string;
|
|
35
38
|
clearIcon?: React.ReactNode | (() => React.ReactElement);
|
|
36
39
|
nextIcon?: React.ReactNode;
|
|
@@ -39,7 +42,7 @@ export type ConfigContextConsumedProps = {
|
|
|
39
42
|
superPrevIcon?: React.ReactNode;
|
|
40
43
|
superNextIcon?: React.ReactNode;
|
|
41
44
|
};
|
|
42
|
-
direction?: Direction
|
|
45
|
+
direction?: Direction;
|
|
43
46
|
getPopupContainer?: (triggerNode?: HTMLElement) => HTMLElement;
|
|
44
47
|
getRootPrefixCls: (prefix?: string, component?: string) => string;
|
|
45
48
|
getTooltipConfig: (props: string | TooltipOptions | undefined) => {
|
|
@@ -48,7 +51,7 @@ export type ConfigContextConsumedProps = {
|
|
|
48
51
|
inverseGlobalColorMode?: ColorMode;
|
|
49
52
|
prefixCls: string;
|
|
50
53
|
radio?: {
|
|
51
|
-
direction?: Direction
|
|
54
|
+
direction?: Direction;
|
|
52
55
|
prefixCls?: string;
|
|
53
56
|
};
|
|
54
57
|
section?: {
|
|
@@ -58,7 +61,7 @@ export type ConfigContextConsumedProps = {
|
|
|
58
61
|
tertiaryColorMode?: ColorMode;
|
|
59
62
|
};
|
|
60
63
|
select?: {
|
|
61
|
-
direction?: Direction
|
|
64
|
+
direction?: Direction;
|
|
62
65
|
prefixCls?: string;
|
|
63
66
|
addIcon?: React.ReactNode | ((props: PropsWithMouseHandler) => React.ReactElement);
|
|
64
67
|
arrowIcon?: React.ReactNode | ((props: {
|
|
@@ -70,7 +73,8 @@ export type ConfigContextConsumedProps = {
|
|
|
70
73
|
searchIcon?: React.ReactNode | (() => React.ReactElement);
|
|
71
74
|
};
|
|
72
75
|
timePicker?: {
|
|
73
|
-
direction?: Direction
|
|
76
|
+
direction?: Direction;
|
|
77
|
+
locale?: TimePickerLocale;
|
|
74
78
|
prefixCls?: string;
|
|
75
79
|
clearIcon?: React.ReactNode | (() => React.ReactElement);
|
|
76
80
|
suffixIcon?: React.ReactNode;
|
|
@@ -43,11 +43,11 @@ require("./index.scss");
|
|
|
43
43
|
require("../../index.scss");
|
|
44
44
|
exports.Password = React.forwardRef((props, ref) => {
|
|
45
45
|
const config = (0, ConfigProvider_1.useConfig)();
|
|
46
|
-
const { prefixCls = config.control?.prefixCls
|
|
46
|
+
const { prefixCls = config.control?.prefixCls ?? config.prefixCls, onBlur: onBlurCallback, onChange: onChangeCallback, ...restProps } = props;
|
|
47
47
|
const inputRef = React.useRef(null);
|
|
48
48
|
const removePasswordTimeout = React.useRef(null);
|
|
49
49
|
const [visible, setVisible] = React.useState(false);
|
|
50
|
-
const controlCls = React.useMemo(() => config.getRootPrefixCls(prefixCls
|
|
50
|
+
const controlCls = React.useMemo(() => config.getRootPrefixCls(prefixCls, 'control'), [config, prefixCls]);
|
|
51
51
|
const removePasswordValueAttribute = React.useCallback(() => {
|
|
52
52
|
removePasswordTimeout.current = setTimeout(() => {
|
|
53
53
|
const input = inputRef?.current?.getInputRef()?.current;
|
|
@@ -50,7 +50,7 @@ function fixControlledValue(value) {
|
|
|
50
50
|
function useInput(props) {
|
|
51
51
|
const config = (0, ConfigProvider_1.useConfig)();
|
|
52
52
|
const inputRef = React.useRef(null);
|
|
53
|
-
const { className, direction = config.control?.direction || config.direction, prefixCls = config.control?.prefixCls
|
|
53
|
+
const { className, direction = config.control?.direction || config.direction, prefixCls = config.control?.prefixCls ?? config.prefixCls, size, state, useInternalValueState = true, onChange: onChangeCallback, onClear: onClearCallback, onPressEnter, ...restProps } = props;
|
|
54
54
|
const [focused, setFocused] = React.useState(false);
|
|
55
55
|
const [internalValue, setInternalValue] = React.useState(useInternalValueState ? restProps.value || restProps.defaultValue : undefined);
|
|
56
56
|
const onChange = React.useCallback((event) => {
|
|
@@ -87,6 +87,7 @@ function useInput(props) {
|
|
|
87
87
|
}, [onPressEnter, restProps]);
|
|
88
88
|
const inputProps = React.useMemo(() => ({
|
|
89
89
|
...restProps,
|
|
90
|
+
prefixCls,
|
|
90
91
|
value: fixControlledValue(internalValue || restProps.value),
|
|
91
92
|
// eslint-disable-next-line sort-keys
|
|
92
93
|
onBlur,
|
|
@@ -94,16 +95,16 @@ function useInput(props) {
|
|
|
94
95
|
onClear,
|
|
95
96
|
onFocus,
|
|
96
97
|
onKeyDown,
|
|
97
|
-
}), [restProps, internalValue, onBlur, onChange, onClear, onFocus, onKeyDown]);
|
|
98
|
-
const controlCls = React.useMemo(() => config.getRootPrefixCls(prefixCls
|
|
98
|
+
}), [restProps, prefixCls, internalValue, onBlur, onChange, onClear, onFocus, onKeyDown]);
|
|
99
|
+
const controlCls = React.useMemo(() => config.getRootPrefixCls(prefixCls, 'control'), [config, prefixCls]);
|
|
99
100
|
const wrapperClasses = React.useMemo(() => (0, classnames_1.default)(controlCls, {
|
|
100
101
|
[`${controlCls}-${restProps.type}`]: restProps.type,
|
|
101
102
|
[`${controlCls}-${size}`]: size,
|
|
102
103
|
[`${controlCls}-${state}`]: state,
|
|
103
104
|
[`${controlCls}-rtl`]: direction === 'rtl',
|
|
104
|
-
[`${prefixCls
|
|
105
|
-
[`${prefixCls
|
|
106
|
-
[`${prefixCls
|
|
105
|
+
[`${prefixCls}-disabled`]: restProps.disabled,
|
|
106
|
+
[`${prefixCls}-focused`]: focused,
|
|
107
|
+
[`${prefixCls}-readonly`]: restProps.readOnly,
|
|
107
108
|
}, className), [
|
|
108
109
|
controlCls,
|
|
109
110
|
restProps.type,
|
|
@@ -113,8 +114,6 @@ function useInput(props) {
|
|
|
113
114
|
state,
|
|
114
115
|
direction,
|
|
115
116
|
prefixCls,
|
|
116
|
-
config.control?.prefixCls,
|
|
117
|
-
config.prefixCls,
|
|
118
117
|
focused,
|
|
119
118
|
className,
|
|
120
119
|
]);
|
|
@@ -2,17 +2,18 @@ import { type BaseSelectRef, OptGroup, Option, type SelectProps as RcSelectProps
|
|
|
2
2
|
import { type OptionProps } from 'rc-select/lib/Option';
|
|
3
3
|
import { type BaseOptionType, type DefaultOptionType } from 'rc-select/lib/Select';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { type ControlProps } from '../../../components/Control/types';
|
|
5
|
+
import { type ControlProps, type SelectPlacement } from '../../../components/Control/types';
|
|
6
6
|
import { type SizeType } from '../../../types';
|
|
7
7
|
import './index.scss';
|
|
8
8
|
import '../index.scss';
|
|
9
9
|
export type { BaseSelectRef, OptionProps };
|
|
10
|
-
export interface InternalSelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends Omit<RcSelectProps<ValueType, OptionType>, 'allowClear' | 'mode'> {
|
|
10
|
+
export interface InternalSelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends Omit<RcSelectProps<ValueType, OptionType>, 'allowClear' | 'mode' | 'placement'> {
|
|
11
11
|
mode?: 'multiple' | 'tags' | 'SECRET_COMBOBOX_MODE_DO_NOT_USE';
|
|
12
12
|
size?: SizeType;
|
|
13
13
|
}
|
|
14
14
|
export interface SelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends Omit<ControlProps<ValueType>, 'value' | 'defaultValue'>, Omit<InternalSelectProps<ValueType, OptionType>, 'inputIcon' | 'mode' | 'getInputElement' | 'backfill'> {
|
|
15
15
|
mode?: 'multiple' | 'tags';
|
|
16
|
+
placement?: SelectPlacement;
|
|
16
17
|
showArrow?: boolean;
|
|
17
18
|
}
|
|
18
19
|
export declare const Select: (<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>(props: SelectProps<ValueType, OptionType> & {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type GenerateConfig } from 'rc-picker/lib/generate';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { type GenericTimePickerProps, type PickerPanelProps, type PickerPanelPropsWithMultiple } from '../../components/DatePicker/types';
|
|
4
|
+
import { type AnyObject } from '../../types';
|
|
5
|
+
export declare const generatePurePicker: <DateType extends AnyObject = AnyObject>(generateConfig: GenerateConfig<DateType>) => {
|
|
6
|
+
DatePicker: (<ValueType = DateType>(props: PickerPanelPropsWithMultiple<DateType, PickerPanelProps<DateType>, ValueType>) => React.ReactElement) & {
|
|
7
|
+
displayName?: string;
|
|
8
|
+
};
|
|
9
|
+
MonthPicker: (<ValueType = DateType>(props: PickerPanelPropsWithMultiple<DateType, Omit<PickerPanelProps<DateType>, "picker">, ValueType>) => React.ReactElement) & {
|
|
10
|
+
displayName?: string;
|
|
11
|
+
};
|
|
12
|
+
QuarterPicker: (<ValueType = DateType>(props: PickerPanelPropsWithMultiple<DateType, Omit<PickerPanelProps<DateType>, "picker">, ValueType>) => React.ReactElement) & {
|
|
13
|
+
displayName?: string;
|
|
14
|
+
};
|
|
15
|
+
TimePicker: (<ValueType = DateType>(props: PickerPanelPropsWithMultiple<DateType, Omit<GenericTimePickerProps<DateType>, "picker">, ValueType>) => React.ReactElement) & {
|
|
16
|
+
displayName?: string;
|
|
17
|
+
};
|
|
18
|
+
WeekPicker: (<ValueType = DateType>(props: PickerPanelPropsWithMultiple<DateType, Omit<PickerPanelProps<DateType>, "picker">, ValueType>) => React.ReactElement) & {
|
|
19
|
+
displayName?: string;
|
|
20
|
+
};
|
|
21
|
+
YearPicker: (<ValueType = DateType>(props: PickerPanelPropsWithMultiple<DateType, Omit<PickerPanelProps<DateType>, "picker">, ValueType>) => React.ReactElement) & {
|
|
22
|
+
displayName?: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.generatePurePicker = void 0;
|
|
40
|
+
const rc_picker_1 = require("rc-picker");
|
|
41
|
+
const React = __importStar(require("react"));
|
|
42
|
+
const ConfigProvider_1 = require("../../components/ConfigProvider");
|
|
43
|
+
const constants_1 = require("../../components/DatePicker/constants");
|
|
44
|
+
// eslint-disable-next-line camelcase
|
|
45
|
+
const en_US_1 = __importDefault(require("../../components/DatePicker/locale/en_US"));
|
|
46
|
+
const useComponents_1 = require("../../components/DatePicker/useComponents");
|
|
47
|
+
const utils_1 = require("../../utils");
|
|
48
|
+
const generatePurePicker = (generateConfig) => {
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type,@typescript-eslint/explicit-module-boundary-types
|
|
50
|
+
const getPanel = (picker, displayName) => {
|
|
51
|
+
const consumerName = displayName === constants_1.TIMEPICKER ? 'timePicker' : 'datePicker';
|
|
52
|
+
const Picker = React.forwardRef((props, ref) => {
|
|
53
|
+
const config = (0, ConfigProvider_1.useConfig)();
|
|
54
|
+
const ctxPickerConfig = React.useMemo(() => config[consumerName] || {}, [config]);
|
|
55
|
+
const { components, direction = ctxPickerConfig.direction || config.direction, locale = en_US_1.default, prefixCls = `${config.prefixCls}-datepicker`, ...restProps } = props;
|
|
56
|
+
const pickerRef = React.useRef(null);
|
|
57
|
+
const mergedPicker = picker || restProps.picker;
|
|
58
|
+
const mergedComponents = (0, useComponents_1.useComponents)(components);
|
|
59
|
+
React.useImperativeHandle(ref, () => pickerRef.current, []);
|
|
60
|
+
return (
|
|
61
|
+
// @ts-ignore
|
|
62
|
+
React.createElement(rc_picker_1.PickerPanel, { ref: pickerRef, components: mergedComponents, direction: direction, generateConfig: generateConfig, locale: locale.lang, picker: mergedPicker, prefixCls: prefixCls, nextIcon: React.createElement("span", { className: `${prefixCls}-next-icon` }), prevIcon: React.createElement("span", { className: `${prefixCls}-prev-icon` }), superPrevIcon: React.createElement("span", { className: `${prefixCls}-super-prev-icon` }), superNextIcon: React.createElement("span", { className: `${prefixCls}-super-next-icon` }), transitionName: (0, utils_1.getMotionName)(config.prefixCls, 'slide-bottom-small'), ...restProps }));
|
|
63
|
+
});
|
|
64
|
+
if (process.env.NODE_ENV !== 'production' && displayName) {
|
|
65
|
+
Picker.displayName = displayName;
|
|
66
|
+
}
|
|
67
|
+
return Picker;
|
|
68
|
+
};
|
|
69
|
+
const DatePicker = getPanel();
|
|
70
|
+
const MonthPicker = getPanel(constants_1.MONTH, constants_1.MONTHPICKER);
|
|
71
|
+
const QuarterPicker = getPanel(constants_1.QUARTER, constants_1.QUARTERPICKER);
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
const TimePicker = getPanel(constants_1.TIME, constants_1.TIMEPICKER);
|
|
74
|
+
const WeekPicker = getPanel(constants_1.WEEK, constants_1.WEEKPICKER);
|
|
75
|
+
const YearPicker = getPanel(constants_1.YEAR, constants_1.YEARPICKER);
|
|
76
|
+
return { DatePicker, MonthPicker, QuarterPicker, TimePicker, WeekPicker, YearPicker };
|
|
77
|
+
};
|
|
78
|
+
exports.generatePurePicker = generatePurePicker;
|
|
@@ -56,8 +56,8 @@ const generateSinglePicker = (generateConfig) => {
|
|
|
56
56
|
const consumerName = displayName === constants_1.TIMEPICKER ? 'timePicker' : 'datePicker';
|
|
57
57
|
const Picker = React.forwardRef((props, ref) => {
|
|
58
58
|
const config = (0, ConfigProvider_1.useConfig)();
|
|
59
|
-
const ctxPickerConfig = config[consumerName] || {};
|
|
60
|
-
const { allowClear = true, builtinPlacements = placements_1.default, className, components, direction = ctxPickerConfig.direction
|
|
59
|
+
const ctxPickerConfig = React.useMemo(() => config[consumerName] || {}, [config]);
|
|
60
|
+
const { allowClear = true, builtinPlacements = placements_1.default, className, components, direction = ctxPickerConfig.direction ?? config.direction, getPopupContainer = config.getPopupContainer, locale = en_US_1.default, placeholder, placement = 'bottom-left', popupClassName, prefixCls = `${config.prefixCls}-datepicker`, rootClassName, size, state, style, onCalendarChange, ...restProps } = props;
|
|
61
61
|
const pickerRef = React.useRef(null);
|
|
62
62
|
const mergedPicker = picker || restProps.picker;
|
|
63
63
|
const mergedComponents = (0, useComponents_1.useComponents)(components);
|
|
@@ -89,7 +89,7 @@ const generateSinglePicker = (generateConfig) => {
|
|
|
89
89
|
[`${prefixCls}-rtl`]: direction === 'rtl',
|
|
90
90
|
}, className), classNames: {
|
|
91
91
|
popup: (0, classnames_1.default)(popupClassName),
|
|
92
|
-
}, components: mergedComponents,
|
|
92
|
+
}, components: mergedComponents, direction: direction, generateConfig: generateConfig, getPopupContainer: getPopupContainer, locale: locale.lang, picker: mergedPicker, placeholder: (0, utils_1.getPlaceholder)(locale, mergedPicker, placeholder), placement: placement, prefixCls: prefixCls, suffixIcon: suffixIcon, nextIcon: React.createElement("span", { className: `${prefixCls}-next-icon` }), prevIcon: React.createElement("span", { className: `${prefixCls}-prev-icon` }), superPrevIcon: React.createElement("span", { className: `${prefixCls}-super-prev-icon` }), superNextIcon: React.createElement("span", { className: `${prefixCls}-super-next-icon` }), style: style, transitionName: (0, utils_2.getMotionName)(config.prefixCls, 'slide-bottom-small'), onCalendarChange: onCalendarChange, ...restProps, allowClear: mergedAllowClear, styles: {
|
|
93
93
|
popup: { ...restProps.styles },
|
|
94
94
|
} })));
|
|
95
95
|
});
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type DateTime } from 'luxon';
|
|
2
2
|
import { generatePicker } from '../../components/DatePicker/generatePicker';
|
|
3
|
+
import { generatePurePicker } from '../../components/DatePicker/generatePurePicker';
|
|
3
4
|
import './index.scss';
|
|
4
5
|
export * from '../../components/DatePicker/locale';
|
|
5
6
|
export * from '../../components/DatePicker/types';
|
|
6
7
|
export interface DatePicker extends ReturnType<typeof generatePicker<DateTime>> {
|
|
7
8
|
generatePicker: typeof generatePicker;
|
|
9
|
+
generatePurePicker: typeof generatePurePicker;
|
|
10
|
+
Panel: ReturnType<typeof generatePurePicker<DateTime>>;
|
|
8
11
|
}
|
|
9
12
|
export declare const DatePicker: DatePicker;
|
|
@@ -20,9 +20,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
exports.DatePicker = void 0;
|
|
21
21
|
const luxon_1 = __importDefault(require("rc-picker/lib/generate/luxon"));
|
|
22
22
|
const generatePicker_1 = require("../../components/DatePicker/generatePicker");
|
|
23
|
+
const generatePurePicker_1 = require("../../components/DatePicker/generatePurePicker");
|
|
23
24
|
require("./index.scss");
|
|
24
25
|
__exportStar(require("../../components/DatePicker/locale"), exports);
|
|
25
26
|
__exportStar(require("../../components/DatePicker/types"), exports);
|
|
26
27
|
const InternalDatePicker = (0, generatePicker_1.generatePicker)(luxon_1.default);
|
|
27
28
|
exports.DatePicker = InternalDatePicker;
|
|
28
29
|
exports.DatePicker.generatePicker = generatePicker_1.generatePicker;
|
|
30
|
+
exports.DatePicker.generatePurePicker = generatePurePicker_1.generatePurePicker;
|
|
31
|
+
exports.DatePicker.Panel = (0, generatePurePicker_1.generatePurePicker)(luxon_1.default);
|