@pisell/date-picker 1.0.71 → 1.0.73

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.
@@ -0,0 +1,6 @@
1
+ import { createContext } from 'react';
2
+ var initialContext = {
3
+ locale: 'en'
4
+ };
5
+ export var LocaleContext = /*#__PURE__*/createContext(initialContext);
6
+ export var LocaleProvider = LocaleContext.Provider;
@@ -10,7 +10,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
10
10
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
11
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
- import React, { useState, useEffect, useMemo } from "react";
13
+ import React, { useState, useEffect, useMemo, useContext } from "react";
14
14
  import { DateRangePicker } from "../DateRangePicker";
15
15
  import ActionBar from "../ActionBar";
16
16
  import Shortcuts from "../Shortcuts";
@@ -19,11 +19,13 @@ import classNames from "classnames";
19
19
  import { isArr, isBoolean } from "@pisell/utils";
20
20
  import useCssVariables from "./useCssVariables";
21
21
  import CloseCircle from "./CloseCircle";
22
- import 'dayjs/locale/zh-cn';
23
- import 'dayjs/locale/en';
24
- import 'dayjs/locale/zh-tw';
22
+ import "dayjs/locale/zh-cn";
23
+ import "dayjs/locale/en";
24
+ import "dayjs/locale/zh-tw";
25
25
  import "./index.less";
26
- import { isMobile } from "../utils";
26
+ import { getCurrentLocale, isMobile } from "../utils";
27
+ import { LocaleContext } from "./LocaleContext";
28
+ import { pLocaleMap } from "../locales";
27
29
  var transDayjsArr = function transDayjsArr(dayjsArr, defaultValue) {
28
30
  var _newArr;
29
31
  var newArr = dayjsArr || defaultValue || [null, null];
@@ -45,7 +47,7 @@ var PisellDateRangePicker = function PisellDateRangePicker(props) {
45
47
  showTime = props.showTime,
46
48
  placeholder = props.placeholder,
47
49
  disabledDate = props.disabledDate,
48
- format = props.format,
50
+ propsFormat = props.format,
49
51
  defaultValue = props.defaultValue,
50
52
  suffixIcon = props.suffixIcon,
51
53
  _props$bordered = props.bordered,
@@ -75,6 +77,8 @@ var PisellDateRangePicker = function PisellDateRangePicker(props) {
75
77
  _useState2 = _slicedToArray(_useState, 2),
76
78
  open = _useState2[0],
77
79
  setOpen = _useState2[1];
80
+ var _ref = useContext(LocaleContext) || {},
81
+ locale = _ref.locale;
78
82
  useEffect(function () {
79
83
  isBoolean(propsOpen) && setOpen(propsOpen);
80
84
  }, [propsOpen]);
@@ -171,11 +175,24 @@ var PisellDateRangePicker = function PisellDateRangePicker(props) {
171
175
  }
172
176
  return {};
173
177
  }, [inputReadOnly]);
178
+ var format = useMemo(function () {
179
+ if (propsFormat) {
180
+ return propsFormat;
181
+ }
182
+ var localeValue = locale;
183
+ if (!localeValue) {
184
+ localeValue = pLocaleMap[getCurrentLocale()];
185
+ }
186
+ return localeValue === "en" || localeValue === "en-US" ? "DD/MM/YYYY" : "YYYY/MM/DD";
187
+ }, [propsFormat, locale]);
174
188
  return /*#__PURE__*/React.createElement("span", {
175
189
  className: classNames(className, "pisell-date-range-picker", {
176
190
  "pisell-date-range-picker-no-border": !bordered
177
191
  }),
178
- style: style
192
+ style: style,
193
+ onClick: function onClick(e) {
194
+ return e.stopPropagation();
195
+ }
179
196
  }, /*#__PURE__*/React.createElement(DateRangePicker
180
197
  // defaultValue={defaultValue}
181
198
  // key={`${_value?.[0]?.valueOf()}-${_value?.[1]?.valueOf()}`}
package/es/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import PisellDateRangePicker from "./PisellDateRangePicker";
2
+ import { LocaleContext, LocaleProvider } from "./PisellDateRangePicker/LocaleContext";
2
3
  export * from "@mui/x-date-pickers";
3
4
  export * from "@mui/material/styles";
4
5
  export * from "./DateRangePickerDay";
@@ -22,4 +23,5 @@ export * from "./StaticDateRangePicker";
22
23
  // View renderers
23
24
  export * from "./dateRangeViewRenderers";
24
25
  export { PisellDateRangePicker as RangePicker };
26
+ export { LocaleContext, LocaleProvider };
25
27
  export * from "./models";
@@ -5,7 +5,7 @@ export declare const splitDateRangeSections: (sections: RangeFieldSection[]) =>
5
5
  };
6
6
  export declare const removeLastSeparator: (dateSections: RangeFieldSection[]) => (RangeFieldSection | {
7
7
  separator: null;
8
- dateName: "end" | "start";
8
+ dateName: "start" | "end";
9
9
  value: string;
10
10
  format: string;
11
11
  maxLength: number | null;
@@ -10,7 +10,10 @@ var langMap = {
10
10
  export var pLocaleMap = {
11
11
  "en": "en-US",
12
12
  "zh-cn": "zh-CN",
13
- "zh-tw": "zh-TW"
13
+ "zh-tw": "zh-TW",
14
+ "en-US": "en-US",
15
+ "zh-CN": "zh-CN",
16
+ "zh-TW": "zh-TW"
14
17
  };
15
18
  export var getText = function getText(id, pLocale) {
16
19
  if (!id) {
@@ -0,0 +1,36 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/PisellDateRangePicker/LocaleContext.ts
20
+ var LocaleContext_exports = {};
21
+ __export(LocaleContext_exports, {
22
+ LocaleContext: () => LocaleContext,
23
+ LocaleProvider: () => LocaleProvider
24
+ });
25
+ module.exports = __toCommonJS(LocaleContext_exports);
26
+ var import_react = require("react");
27
+ var initialContext = {
28
+ locale: "en"
29
+ };
30
+ var LocaleContext = (0, import_react.createContext)(initialContext);
31
+ var LocaleProvider = LocaleContext.Provider;
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ LocaleContext,
35
+ LocaleProvider
36
+ });
@@ -46,6 +46,8 @@ var import_en = require("dayjs/locale/en");
46
46
  var import_zh_tw = require("dayjs/locale/zh-tw");
47
47
  var import_index = require("./index.less");
48
48
  var import_utils2 = require("../utils");
49
+ var import_LocaleContext = require("./LocaleContext");
50
+ var import_locales = require("../locales");
49
51
  var transDayjsArr = (dayjsArr, defaultValue) => {
50
52
  let newArr = dayjsArr || defaultValue || [null, null];
51
53
  if ((dayjsArr == null ? void 0 : dayjsArr.length) === 0) {
@@ -64,7 +66,7 @@ var PisellDateRangePicker = (props) => {
64
66
  showTime,
65
67
  placeholder,
66
68
  disabledDate,
67
- format,
69
+ format: propsFormat,
68
70
  defaultValue,
69
71
  suffixIcon,
70
72
  bordered = true,
@@ -89,6 +91,7 @@ var PisellDateRangePicker = (props) => {
89
91
  inputReadOnly
90
92
  } = props;
91
93
  const [open, setOpen] = (0, import_react.useState)(propsOpen ?? false);
94
+ const { locale } = (0, import_react.useContext)(import_LocaleContext.LocaleContext) || {};
92
95
  (0, import_react.useEffect)(() => {
93
96
  (0, import_utils.isBoolean)(propsOpen) && setOpen(propsOpen);
94
97
  }, [propsOpen]);
@@ -183,13 +186,24 @@ var PisellDateRangePicker = (props) => {
183
186
  }
184
187
  return {};
185
188
  }, [inputReadOnly]);
189
+ const format = (0, import_react.useMemo)(() => {
190
+ if (propsFormat) {
191
+ return propsFormat;
192
+ }
193
+ let localeValue = locale;
194
+ if (!localeValue) {
195
+ localeValue = import_locales.pLocaleMap[(0, import_utils2.getCurrentLocale)()];
196
+ }
197
+ return localeValue === "en" || localeValue === "en-US" ? "DD/MM/YYYY" : "YYYY/MM/DD";
198
+ }, [propsFormat, locale]);
186
199
  return /* @__PURE__ */ import_react.default.createElement(
187
200
  "span",
188
201
  {
189
202
  className: (0, import_classnames.default)(className, "pisell-date-range-picker", {
190
203
  "pisell-date-range-picker-no-border": !bordered
191
204
  }),
192
- style
205
+ style,
206
+ onClick: (e) => e.stopPropagation()
193
207
  },
194
208
  /* @__PURE__ */ import_react.default.createElement(
195
209
  import_DateRangePicker.DateRangePicker,
package/lib/index.js CHANGED
@@ -30,10 +30,13 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
+ LocaleContext: () => import_LocaleContext.LocaleContext,
34
+ LocaleProvider: () => import_LocaleContext.LocaleProvider,
33
35
  RangePicker: () => import_PisellDateRangePicker.default
34
36
  });
35
37
  module.exports = __toCommonJS(src_exports);
36
38
  var import_PisellDateRangePicker = __toESM(require("./PisellDateRangePicker"));
39
+ var import_LocaleContext = require("./PisellDateRangePicker/LocaleContext");
37
40
  __reExport(src_exports, require("@mui/x-date-pickers"), module.exports);
38
41
  __reExport(src_exports, require("@mui/material/styles"), module.exports);
39
42
  __reExport(src_exports, require("./DateRangePickerDay"), module.exports);
@@ -51,6 +54,8 @@ __reExport(src_exports, require("./dateRangeViewRenderers"), module.exports);
51
54
  __reExport(src_exports, require("./models"), module.exports);
52
55
  // Annotate the CommonJS export names for ESM import in node:
53
56
  0 && (module.exports = {
57
+ LocaleContext,
58
+ LocaleProvider,
54
59
  RangePicker,
55
60
  ...require("@mui/x-date-pickers"),
56
61
  ...require("@mui/material/styles"),
@@ -5,7 +5,7 @@ export declare const splitDateRangeSections: (sections: RangeFieldSection[]) =>
5
5
  };
6
6
  export declare const removeLastSeparator: (dateSections: RangeFieldSection[]) => (RangeFieldSection | {
7
7
  separator: null;
8
- dateName: "end" | "start";
8
+ dateName: "start" | "end";
9
9
  value: string;
10
10
  format: string;
11
11
  maxLength: number | null;
@@ -45,7 +45,10 @@ var langMap = {
45
45
  var pLocaleMap = {
46
46
  "en": "en-US",
47
47
  "zh-cn": "zh-CN",
48
- "zh-tw": "zh-TW"
48
+ "zh-tw": "zh-TW",
49
+ "en-US": "en-US",
50
+ "zh-CN": "zh-CN",
51
+ "zh-TW": "zh-TW"
49
52
  };
50
53
  var getText = (id, pLocale) => {
51
54
  if (!id) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/date-picker",
3
- "version": "1.0.71",
3
+ "version": "1.0.73",
4
4
  "sideEffects": [
5
5
  "*.less"
6
6
  ],
@@ -26,7 +26,7 @@
26
26
  "antd": "^5.5.0",
27
27
  "react": "^18.0.0",
28
28
  "react-dom": "^18.0.0",
29
- "@pisell/utils": "1.0.25"
29
+ "@pisell/utils": "1.0.24"
30
30
  },
31
31
  "files": [
32
32
  "es",
@@ -1,79 +0,0 @@
1
- import { Dayjs } from "dayjs";
2
- import React from "react";
3
- import { ButtonProps } from "antd";
4
- import { PopperPlacementType } from "@mui/base/Popper/Popper.types";
5
- import { PresetType } from "../Shortcuts";
6
- import 'dayjs/locale/zh-cn';
7
- import 'dayjs/locale/en';
8
- import 'dayjs/locale/zh-tw';
9
- import "./index.less";
10
- export interface PisellDateRangePickerProps {
11
- /** 再次选择日期时是否清除结束时间 */
12
- clearEndOnSelection?: boolean;
13
- /** 日期选择确认回调 */
14
- onChange?: (day: (Dayjs | null)[]) => void;
15
- /** 日期改变回调 此处只为了组件外拿到当前日期项进行状态操作 通常情况下只使用onChange来拿value */
16
- onDateChange?: (day: (Dayjs | null)[]) => void;
17
- /** 日期选择值 */
18
- value?: Dayjs[];
19
- /** 日期选择默认值 */
20
- defaultValue?: Dayjs[];
21
- /** 快捷选择项 */
22
- presets?: PresetType[];
23
- /** 类名 */
24
- className?: string;
25
- /** 是否显示时间选择 这里参数为antd TimePickerProps */
26
- showTime?: boolean | {
27
- defaultValue: Dayjs;
28
- [key: string]: any;
29
- }[];
30
- /** 占位符 */
31
- placeholder?: string;
32
- /** 是否禁用日期 */
33
- disabledDate?: (day: Dayjs, position: "start" | "end", value: Dayjs[]) => boolean;
34
- /** 日期格式 */
35
- format?: string;
36
- /** 后缀图标 */
37
- suffixIcon?: React.ReactNode;
38
- /** 是否显示边框 */
39
- bordered?: boolean;
40
- /** 是否打开日期选择 */
41
- open?: boolean;
42
- /** 关闭回调 */
43
- onClose?: () => void;
44
- /** 打开回调 */
45
- onOpen?: () => void;
46
- /** 弹窗宽度 */
47
- popupWidth?: number;
48
- /** 最小日期 */
49
- minDate?: Dayjs;
50
- /** 最大日期 */
51
- maxDate?: Dayjs;
52
- /** 月份切换事件 */
53
- onMonthChange?: (value: Dayjs) => void;
54
- /** 额外的弹出日历 className */
55
- popupClassName?: string;
56
- /** 默认显示月份 */
57
- defaultCalendarMonth?: Dayjs;
58
- /** ok 按钮 props */
59
- okButtonProps?: ButtonProps;
60
- /** cancel 按钮 props */
61
- cancelButtonProps?: ButtonProps;
62
- /**
63
- * CSS media query when `Mobile` mode will be changed to `Desktop`.
64
- * @default '@media (pointer: fine)'
65
- * @example '@media (min-width: 720px)' or theme.breakpoints.up("sm")
66
- */
67
- desktopModeMediaQuery?: string;
68
- style?: React.CSSProperties;
69
- /** 是否展示清除按钮 */
70
- allowClear?: boolean;
71
- /** true 将弹窗当前DOM层次结构下 false 追加到body */
72
- disablePortal?: boolean;
73
- /** 弹窗放置位置 */
74
- placement?: PopperPlacementType;
75
- /** 输入框只读 */
76
- inputReadOnly: boolean;
77
- }
78
- declare const PisellDateRangePicker: (props: PisellDateRangePickerProps) => JSX.Element;
79
- export default PisellDateRangePicker;
package/es/index.d.ts DELETED
@@ -1,20 +0,0 @@
1
- import PisellDateRangePicker from "./PisellDateRangePicker";
2
- export * from "@mui/x-date-pickers";
3
- export * from "@mui/material/styles";
4
- export * from "./DateRangePickerDay";
5
- export * from "./MultiInputDateRangeField";
6
- export * from "./MultiInputTimeRangeField";
7
- export * from "./MultiInputDateTimeRangeField";
8
- export * from "./SingleInputDateRangeField";
9
- export * from "./SingleInputTimeRangeField";
10
- export * from "./SingleInputDateTimeRangeField";
11
- export type { RangeFieldSection, BaseMultiInputFieldProps, MultiInputFieldSlotTextFieldProps, } from "./internals/models/fields";
12
- export * from "./DateRangeCalendar";
13
- export * from "./DesktopDateRangePicker";
14
- export * from "./MobileDateRangePicker";
15
- export * from "./StaticDateRangePicker";
16
- export * from "./dateRangeViewRenderers";
17
- export type { DateRange, RangePosition } from "./internals/models/range";
18
- export type { UseDateRangeFieldProps } from "./internals/models/dateRange";
19
- export { PisellDateRangePicker as RangePicker };
20
- export * from "./models";
@@ -1,2 +0,0 @@
1
- export declare const pLocaleMap: Record<string, any>;
2
- export declare const getText: (id: string, pLocale?: string) => any;
@@ -1,79 +0,0 @@
1
- import { Dayjs } from "dayjs";
2
- import React from "react";
3
- import { ButtonProps } from "antd";
4
- import { PopperPlacementType } from "@mui/base/Popper/Popper.types";
5
- import { PresetType } from "../Shortcuts";
6
- import 'dayjs/locale/zh-cn';
7
- import 'dayjs/locale/en';
8
- import 'dayjs/locale/zh-tw';
9
- import "./index.less";
10
- export interface PisellDateRangePickerProps {
11
- /** 再次选择日期时是否清除结束时间 */
12
- clearEndOnSelection?: boolean;
13
- /** 日期选择确认回调 */
14
- onChange?: (day: (Dayjs | null)[]) => void;
15
- /** 日期改变回调 此处只为了组件外拿到当前日期项进行状态操作 通常情况下只使用onChange来拿value */
16
- onDateChange?: (day: (Dayjs | null)[]) => void;
17
- /** 日期选择值 */
18
- value?: Dayjs[];
19
- /** 日期选择默认值 */
20
- defaultValue?: Dayjs[];
21
- /** 快捷选择项 */
22
- presets?: PresetType[];
23
- /** 类名 */
24
- className?: string;
25
- /** 是否显示时间选择 这里参数为antd TimePickerProps */
26
- showTime?: boolean | {
27
- defaultValue: Dayjs;
28
- [key: string]: any;
29
- }[];
30
- /** 占位符 */
31
- placeholder?: string;
32
- /** 是否禁用日期 */
33
- disabledDate?: (day: Dayjs, position: "start" | "end", value: Dayjs[]) => boolean;
34
- /** 日期格式 */
35
- format?: string;
36
- /** 后缀图标 */
37
- suffixIcon?: React.ReactNode;
38
- /** 是否显示边框 */
39
- bordered?: boolean;
40
- /** 是否打开日期选择 */
41
- open?: boolean;
42
- /** 关闭回调 */
43
- onClose?: () => void;
44
- /** 打开回调 */
45
- onOpen?: () => void;
46
- /** 弹窗宽度 */
47
- popupWidth?: number;
48
- /** 最小日期 */
49
- minDate?: Dayjs;
50
- /** 最大日期 */
51
- maxDate?: Dayjs;
52
- /** 月份切换事件 */
53
- onMonthChange?: (value: Dayjs) => void;
54
- /** 额外的弹出日历 className */
55
- popupClassName?: string;
56
- /** 默认显示月份 */
57
- defaultCalendarMonth?: Dayjs;
58
- /** ok 按钮 props */
59
- okButtonProps?: ButtonProps;
60
- /** cancel 按钮 props */
61
- cancelButtonProps?: ButtonProps;
62
- /**
63
- * CSS media query when `Mobile` mode will be changed to `Desktop`.
64
- * @default '@media (pointer: fine)'
65
- * @example '@media (min-width: 720px)' or theme.breakpoints.up("sm")
66
- */
67
- desktopModeMediaQuery?: string;
68
- style?: React.CSSProperties;
69
- /** 是否展示清除按钮 */
70
- allowClear?: boolean;
71
- /** true 将弹窗当前DOM层次结构下 false 追加到body */
72
- disablePortal?: boolean;
73
- /** 弹窗放置位置 */
74
- placement?: PopperPlacementType;
75
- /** 输入框只读 */
76
- inputReadOnly: boolean;
77
- }
78
- declare const PisellDateRangePicker: (props: PisellDateRangePickerProps) => JSX.Element;
79
- export default PisellDateRangePicker;
package/lib/index.d.ts DELETED
@@ -1,20 +0,0 @@
1
- import PisellDateRangePicker from "./PisellDateRangePicker";
2
- export * from "@mui/x-date-pickers";
3
- export * from "@mui/material/styles";
4
- export * from "./DateRangePickerDay";
5
- export * from "./MultiInputDateRangeField";
6
- export * from "./MultiInputTimeRangeField";
7
- export * from "./MultiInputDateTimeRangeField";
8
- export * from "./SingleInputDateRangeField";
9
- export * from "./SingleInputTimeRangeField";
10
- export * from "./SingleInputDateTimeRangeField";
11
- export type { RangeFieldSection, BaseMultiInputFieldProps, MultiInputFieldSlotTextFieldProps, } from "./internals/models/fields";
12
- export * from "./DateRangeCalendar";
13
- export * from "./DesktopDateRangePicker";
14
- export * from "./MobileDateRangePicker";
15
- export * from "./StaticDateRangePicker";
16
- export * from "./dateRangeViewRenderers";
17
- export type { DateRange, RangePosition } from "./internals/models/range";
18
- export type { UseDateRangeFieldProps } from "./internals/models/dateRange";
19
- export { PisellDateRangePicker as RangePicker };
20
- export * from "./models";
@@ -1,2 +0,0 @@
1
- export declare const pLocaleMap: Record<string, any>;
2
- export declare const getText: (id: string, pLocale?: string) => any;