@pisell/date-picker 1.0.30 → 1.0.31

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.
@@ -1,25 +1,45 @@
1
- /// <reference types="react" />
2
1
  import { Dayjs } from "dayjs";
2
+ import React from "react";
3
3
  import { PresetType } from "../Shortcuts";
4
4
  import "./index.less";
5
5
  export interface PisellDateRangePickerProps {
6
+ /** 再次选择日期时是否清除结束时间 */
7
+ clearEndOnSelection?: boolean;
8
+ /** 日期选择确认回调 */
6
9
  onChange?: (day: Dayjs[]) => void;
10
+ /** 日期选择值 */
7
11
  value?: Dayjs[];
12
+ /** 日期选择默认值 */
8
13
  defaultValue?: Dayjs[];
14
+ /** 快捷选择项 */
9
15
  presets?: PresetType[];
16
+ /** 类名 */
10
17
  className?: string;
18
+ /** 是否显示时间选择 这里参数为antd TimePickerProps */
11
19
  showTime?: boolean | {
12
20
  defaultValue: Dayjs;
13
21
  [key: string]: any;
14
22
  }[];
23
+ /** 占位符 */
15
24
  placeholder?: string;
25
+ /** 是否禁用日期 */
16
26
  disabledDate?: (day: Dayjs, position: "start" | "end", value: Dayjs[]) => boolean;
27
+ /** 日期格式 */
17
28
  format?: string;
29
+ /** 后缀图标 */
18
30
  suffixIcon?: React.ReactNode;
31
+ /** 是否显示边框 */
19
32
  bordered?: boolean;
33
+ /** 是否打开日期选择 */
20
34
  open?: boolean;
35
+ /** 关闭回调 */
21
36
  onClose?: () => void;
37
+ /** 弹窗宽度 */
22
38
  popupWidth?: number;
39
+ /** 最小日期 */
40
+ minDate?: Dayjs;
41
+ /** 最大日期 */
42
+ maxDate?: Dayjs;
23
43
  }
24
44
  declare const PisellDateRangePicker: (props: PisellDateRangePickerProps) => JSX.Element;
25
45
  export default PisellDateRangePicker;
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
4
4
  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; }
5
5
  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; } }
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import { useState, useEffect, useMemo } from "react";
7
+ import React, { useState, useEffect, useMemo } from "react";
8
8
  import { DateRangePicker } from "../DateRangePicker";
9
9
  import ActionBar from "../ActionBar";
10
10
  import Shortcuts from "../Shortcuts";
@@ -42,7 +42,10 @@ var PisellDateRangePicker = function PisellDateRangePicker(props) {
42
42
  propsOpen = props.open,
43
43
  onClose = props.onClose,
44
44
  _props$popupWidth = props.popupWidth,
45
- popupWidth = _props$popupWidth === void 0 ? 625 : _props$popupWidth;
45
+ popupWidth = _props$popupWidth === void 0 ? 625 : _props$popupWidth,
46
+ clearEndOnSelection = props.clearEndOnSelection,
47
+ minDate = props.minDate,
48
+ maxDate = props.maxDate;
46
49
  var _useState = useState(propsOpen !== null && propsOpen !== void 0 ? propsOpen : false),
47
50
  _useState2 = _slicedToArray(_useState, 2),
48
51
  open = _useState2[0],
@@ -98,6 +101,9 @@ var PisellDateRangePicker = function PisellDateRangePicker(props) {
98
101
  return item || null;
99
102
  });
100
103
  }
104
+ if (clearEndOnSelection && _value.filter(Boolean).length === 2) {
105
+ newVal = [newVal[0], null];
106
+ }
101
107
  setValue(newVal);
102
108
  };
103
109
  var hasPreset = (_presets === null || _presets === void 0 ? void 0 : _presets.length) > 0;
@@ -115,6 +121,8 @@ var PisellDateRangePicker = function PisellDateRangePicker(props) {
115
121
  // defaultValue={defaultValue}
116
122
  // key={`${_value?.[0]?.valueOf()}-${_value?.[1]?.valueOf()}`}
117
123
  , {
124
+ minDate: minDate,
125
+ maxDate: maxDate,
118
126
  format: format,
119
127
  label: placeholder,
120
128
  value: _value,
@@ -1,25 +1,45 @@
1
- /// <reference types="react" />
2
1
  import { Dayjs } from "dayjs";
2
+ import React from "react";
3
3
  import { PresetType } from "../Shortcuts";
4
4
  import "./index.less";
5
5
  export interface PisellDateRangePickerProps {
6
+ /** 再次选择日期时是否清除结束时间 */
7
+ clearEndOnSelection?: boolean;
8
+ /** 日期选择确认回调 */
6
9
  onChange?: (day: Dayjs[]) => void;
10
+ /** 日期选择值 */
7
11
  value?: Dayjs[];
12
+ /** 日期选择默认值 */
8
13
  defaultValue?: Dayjs[];
14
+ /** 快捷选择项 */
9
15
  presets?: PresetType[];
16
+ /** 类名 */
10
17
  className?: string;
18
+ /** 是否显示时间选择 这里参数为antd TimePickerProps */
11
19
  showTime?: boolean | {
12
20
  defaultValue: Dayjs;
13
21
  [key: string]: any;
14
22
  }[];
23
+ /** 占位符 */
15
24
  placeholder?: string;
25
+ /** 是否禁用日期 */
16
26
  disabledDate?: (day: Dayjs, position: "start" | "end", value: Dayjs[]) => boolean;
27
+ /** 日期格式 */
17
28
  format?: string;
29
+ /** 后缀图标 */
18
30
  suffixIcon?: React.ReactNode;
31
+ /** 是否显示边框 */
19
32
  bordered?: boolean;
33
+ /** 是否打开日期选择 */
20
34
  open?: boolean;
35
+ /** 关闭回调 */
21
36
  onClose?: () => void;
37
+ /** 弹窗宽度 */
22
38
  popupWidth?: number;
39
+ /** 最小日期 */
40
+ minDate?: Dayjs;
41
+ /** 最大日期 */
42
+ maxDate?: Dayjs;
23
43
  }
24
44
  declare const PisellDateRangePicker: (props: PisellDateRangePickerProps) => JSX.Element;
25
45
  export default PisellDateRangePicker;
@@ -32,7 +32,7 @@ __export(PisellDateRangePicker_exports, {
32
32
  default: () => PisellDateRangePicker_default
33
33
  });
34
34
  module.exports = __toCommonJS(PisellDateRangePicker_exports);
35
- var import_react = require("react");
35
+ var import_react = __toESM(require("react"));
36
36
  var import_DateRangePicker = require("../DateRangePicker");
37
37
  var import_ActionBar = __toESM(require("../ActionBar"));
38
38
  var import_Shortcuts = __toESM(require("../Shortcuts"));
@@ -65,7 +65,10 @@ var PisellDateRangePicker = (props) => {
65
65
  bordered = true,
66
66
  open: propsOpen,
67
67
  onClose,
68
- popupWidth = 625
68
+ popupWidth = 625,
69
+ clearEndOnSelection,
70
+ minDate,
71
+ maxDate
69
72
  } = props;
70
73
  const [open, setOpen] = (0, import_react.useState)(propsOpen ?? false);
71
74
  (0, import_react.useEffect)(() => {
@@ -115,6 +118,9 @@ var PisellDateRangePicker = (props) => {
115
118
  return item || null;
116
119
  });
117
120
  }
121
+ if (clearEndOnSelection && _value.filter(Boolean).length === 2) {
122
+ newVal = [newVal[0], null];
123
+ }
118
124
  setValue(newVal);
119
125
  };
120
126
  const hasPreset = (_presets == null ? void 0 : _presets.length) > 0;
@@ -124,16 +130,18 @@ var PisellDateRangePicker = (props) => {
124
130
  },
125
131
  dom: document.body
126
132
  });
127
- return /* @__PURE__ */ React.createElement(
133
+ return /* @__PURE__ */ import_react.default.createElement(
128
134
  "span",
129
135
  {
130
136
  className: (0, import_classnames.default)(className, "pisell-date-range-picker", {
131
137
  "pisell-date-range-picker-no-border": !bordered
132
138
  })
133
139
  },
134
- /* @__PURE__ */ React.createElement(
140
+ /* @__PURE__ */ import_react.default.createElement(
135
141
  import_DateRangePicker.DateRangePicker,
136
142
  {
143
+ minDate,
144
+ maxDate,
137
145
  format,
138
146
  label: placeholder,
139
147
  value: _value,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/date-picker",
3
- "version": "1.0.30",
3
+ "version": "1.0.31",
4
4
  "sideEffects": [
5
5
  "*.less"
6
6
  ],