bhd-components 0.9.4 → 0.9.5

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,5 +1,5 @@
1
- import { z as zhCN, A as App, _ as _object_spread, a as AntdMessage, M as Modal$1, b as AntdNotification, C as ConfigProvider, c as _extends, d as _object_destructuring_empty, j as jsx, e as _object_spread_props, f as jsxs, t as transform, S as StyleProvider, g as _sliced_to_array, T as Tooltip, h as Table$2, I as Icon, E as ExclamationCircleFilled, i as _to_consumable_array, P as Pagination$1, k as Select, l as CaretDownOutlined, m as _inherits, n as _create_super, o as _create_class, p as _class_call_check, q as _define_property, r as _assert_this_initialized, s as _async_to_generator, L as LeftOutlined, R as RightOutlined, u as MinusOutlined, v as PlusOutlined, w as __generator, x as Input, y as SearchOutlined, B as CloseOutlined, X, D as I, H, F as html2canvas$1, G as Remarkable, J as Drawer, K as HighlightJS, Z as ZoomInOutlined, N as DatePicker, O as Button, Q as _type_of } from './vendor.esm.es5.development.js';
2
- export { U as Affix, V as Alert, W as Anchor, a as AntdMessage, A as App, Y as AutoComplete, $ as Avatar, a1 as BackTop, a2 as Badge, a3 as Breadcrumb, O as Button, a4 as Calendar, a5 as Card, a6 as Carousel, a7 as Cascader, a8 as Checkbox, a9 as Col, aa as Collapse, N as DatePicker, ab as Descriptions, ac as Divider, J as Drawer, ad as Dropdown, ae as Empty, a0 as FloatButton, af as Form, ag as Grid, ah as Image, x as Input, ai as InputNumber, aj as Layout, ak as List, al as Mentions, am as Menu, M as Modal, an as Popconfirm, ao as Popover, ap as Progress, aO as QRCode, aq as Radio, ar as Rate, as as Result, at as Row, au as Segmented, k as Select, av as Skeleton, aw as Slider, ax as Space, ay as Spin, az as Statistic, aA as Steps, aB as Switch, aC as Tabs, aD as Tag, aF as TimePicker, aG as Timeline, T as Tooltip, aH as Tour, aI as Transfer, aJ as Tree, aK as TreeSelect, aL as Typography, aM as Upload, aN as Watermark, aQ as en_US, b as notification, aE as theme, aP as version, z as zh_CN } from './vendor.esm.es5.development.js';
1
+ import { z as zhCN, A as App, _ as _object_spread, a as AntdMessage, M as Modal$1, b as AntdNotification, C as ConfigProvider, c as _extends, d as _object_destructuring_empty, j as jsx, e as _object_spread_props, f as jsxs, t as transform, S as StyleProvider, g as _sliced_to_array, T as Tooltip, h as Table$2, I as Icon, E as ExclamationCircleFilled, i as _to_consumable_array, P as Pagination$1, k as Select, l as CaretDownOutlined, m as _inherits, n as _create_super, o as _create_class, p as _class_call_check, q as _define_property, r as _assert_this_initialized, s as _async_to_generator, L as LeftOutlined, R as RightOutlined, u as MinusOutlined, v as PlusOutlined, w as __generator, x as Input, y as SearchOutlined, B as CloseOutlined, X, D as I, H, F as html2canvas$1, G as Remarkable, J as Drawer, K as HighlightJS, Z as ZoomInOutlined, N as DatePicker, O as Button } from './vendor.esm.es5.development.js';
2
+ export { Q as Affix, U as Alert, V as Anchor, a as AntdMessage, A as App, W as AutoComplete, Y as Avatar, a0 as BackTop, a1 as Badge, a2 as Breadcrumb, O as Button, a3 as Calendar, a4 as Card, a5 as Carousel, a6 as Cascader, a7 as Checkbox, a8 as Col, a9 as Collapse, N as DatePicker, aa as Descriptions, ab as Divider, J as Drawer, ac as Dropdown, ad as Empty, $ as FloatButton, ae as Form, af as Grid, ag as Image, x as Input, ah as InputNumber, ai as Layout, aj as List, ak as Mentions, al as Menu, M as Modal, am as Popconfirm, an as Popover, ao as Progress, aN as QRCode, ap as Radio, aq as Rate, ar as Result, as as Row, at as Segmented, k as Select, au as Skeleton, av as Slider, aw as Space, ax as Spin, ay as Statistic, az as Steps, aA as Switch, aB as Tabs, aC as Tag, aE as TimePicker, aF as Timeline, T as Tooltip, aG as Tour, aH as Transfer, aI as Tree, aJ as TreeSelect, aK as Typography, aL as Upload, aM as Watermark, aP as en_US, b as notification, aD as theme, aO as version, z as zh_CN } from './vendor.esm.es5.development.js';
3
3
  import * as React from 'react';
4
4
  import { useState, useRef, useEffect, useLayoutEffect, forwardRef, useImperativeHandle, useCallback } from 'react';
5
5
  import { Fragment } from 'react/jsx-runtime';
@@ -11489,7 +11489,7 @@ window.appendDom = function(root, props) {
11489
11489
  };
11490
11490
  var CustomerService$1 = CustomerService;
11491
11491
 
11492
- var modules_63b47c51 = {"bhdDatePicker":"index_module_bhdDatePicker__0bace134","bhdDatePickerPopup":"index_module_bhdDatePickerPopup__0bace134","singlePicker":"index_module_singlePicker__0bace134","rangePicker":"index_module_rangePicker__0bace134","extraPicker":"index_module_extraPicker__0bace134","showTime":"index_module_showTime__0bace134","showExtraFooter":"index_module_showExtraFooter__0bace134","readonly":"index_module_readonly__0bace134"};
11492
+ var modules_63b47c51 = {"bhdDatePicker":"index_module_bhdDatePicker__484452d2","bhdDatePickerPopup":"index_module_bhdDatePickerPopup__484452d2","singlePicker":"index_module_singlePicker__484452d2","rangePicker":"index_module_rangePicker__484452d2","extraPicker":"index_module_extraPicker__484452d2","showTime":"index_module_showTime__484452d2","showExtraFooter":"index_module_showExtraFooter__484452d2","noNeedConfirm":"index_module_noNeedConfirm__484452d2","readonly":"index_module_readonly__484452d2"};
11493
11493
 
11494
11494
  var RangePicker = DatePicker.RangePicker;
11495
11495
  var months = [
@@ -11507,7 +11507,7 @@ var months = [
11507
11507
  "十二月"
11508
11508
  ];
11509
11509
  //January_February_March_April_May_June_July_August_September_October_November_December
11510
- var BhdDatePicker = function(props) {
11510
+ var BhdDatePicker = /*#__PURE__*/ forwardRef(function(props, ref) {
11511
11511
  ConfigProvider.lang === "en" ? "en_US" : "zh_CN";
11512
11512
  // if (lang === "en_US") {
11513
11513
  // const enUS = require("dayjs/locale/en");
@@ -11544,50 +11544,87 @@ var BhdDatePicker = function(props) {
11544
11544
  }
11545
11545
  };
11546
11546
  // 自己组件内使用的,或者自己处理的
11547
- var _props_kind = props.kind, kind = _props_kind === void 0 ? "single" : _props_kind, extraItems = props.extraItems, _props_extraReadonly = props.extraReadonly, extraReadonly = _props_extraReadonly === void 0 ? false : _props_extraReadonly, _props_useType = props.useType, useType = _props_useType === void 0 ? "" : _props_useType, _props_open = props.open, open = _props_open === void 0 ? false : _props_open, mode = props.mode, picker = props.picker, _props_value = props.value, value = _props_value === void 0 ? props.kind === "range" ? [] : "" : _props_value, _props_format = props.format, format = _props_format === void 0 ? getDefaultFormat() : _props_format, _props_presets = props.presets, presets = _props_presets === void 0 ? [] : _props_presets, className = props.className, popupClassName = props.popupClassName, showTime = props.showTime, _props_showNow = props.showNow, showNow = _props_showNow === void 0 ? true : _props_showNow, _props_showToday = props.showToday, showToday = _props_showToday === void 0 ? true : _props_showToday, _props_allowClear = props.allowClear, allowClear = _props_allowClear === void 0 ? true : _props_allowClear, onClick = props.onClick, onBlur = props.onBlur, onChange = props.onChange, onOk = props.onOk, onCalendarChange = props.onCalendarChange, onOpenChange = props.onOpenChange, onPanelChange = props.onPanelChange, disabledDate = props.disabledDate, cellRender = props.cellRender, renderExtraFooter = props.renderExtraFooter;
11547
+ var _props_kind = props.kind, kind = _props_kind === void 0 ? "single" : _props_kind, extraItems = props.extraItems, _props_extraReadonly = props.extraReadonly, extraReadonly = _props_extraReadonly === void 0 ? false : _props_extraReadonly, _props_useType = props.useType, useType = _props_useType === void 0 ? "" : _props_useType, _props_needConfirm = props.needConfirm, needConfirm = _props_needConfirm === void 0 ? true : _props_needConfirm, _props_open = props.open, open = _props_open === void 0 ? false : _props_open, mode = props.mode, picker = props.picker, value = props.value, _props_format = props.format, format = _props_format === void 0 ? getDefaultFormat() : _props_format, _props_presets = props.presets, presets = _props_presets === void 0 ? [] : _props_presets, className = props.className, popupClassName = props.popupClassName, dropdownClassName = props.dropdownClassName, showTime = props.showTime, _props_showNow = props.showNow, showNow = _props_showNow === void 0 ? true : _props_showNow, _props_showToday = props.showToday, showToday = _props_showToday === void 0 ? true : _props_showToday, _props_allowClear = props.allowClear, allowClear = _props_allowClear === void 0 ? true : _props_allowClear, onClick = props.onClick, onBlur = props.onBlur, onChange = props.onChange, onOk = props.onOk, // onCalendarChange,
11548
+ onOpenChange = props.onOpenChange, onPanelChange = props.onPanelChange, disabledDate = props.disabledDate, cellRender = props.cellRender, renderExtraFooter = props.renderExtraFooter;
11548
11549
  var bhdDatePickerRef = useRef(null);
11550
+ var pickerRef = useRef(null);
11549
11551
  var _useState = _sliced_to_array(useState(open), 2), panelOpen = _useState[0], setPanelOpen = _useState[1];
11550
11552
  var _useState1 = _sliced_to_array(useState("date"), 2), panelMode = _useState1[0], setPanelMode = _useState1[1];
11551
11553
  var _useState2 = _sliced_to_array(useState([
11552
11554
  "date",
11553
11555
  "date"
11554
11556
  ]), 2), rangePanelMode = _useState2[0], setRangePanelMode = _useState2[1];
11555
- var _useState3 = _sliced_to_array(useState(value), 2), selectedDate = _useState3[0], setSelectedDate = _useState3[1];
11556
- var _useState4 = _sliced_to_array(useState(null), 2), selectedDateString = _useState4[0], setSelectedDateString = _useState4[1];
11557
- var selectedDateRef = useRef(value);
11558
- var selectedDateStringRef = useRef(null);
11559
- var _useState5 = _sliced_to_array(useState(value), 2), selectedRangeDate = _useState5[0], setSelectedRangeDate = _useState5[1];
11560
- var _useState6 = _sliced_to_array(useState([]), 2), selectedRangeDateString = _useState6[0], setSelectedRangeDateString = _useState6[1];
11561
- var _useState7 = _sliced_to_array(useState(false), 2), rangeOpenChange = _useState7[0], setRangeOpenChange = _useState7[1]; // 用于范围选择失去焦点后,判断是否关闭
11557
+ var _useState3 = _sliced_to_array(useState(null), 2), selectedDate = _useState3[0], setSelectedDate = _useState3[1];
11558
+ var _useState4 = _sliced_to_array(useState(""), 2), selectedDateString = _useState4[0], setSelectedDateString = _useState4[1];
11559
+ var selectedDateRef = useRef(null);
11560
+ var selectedDateStringRef = useRef("");
11561
+ var _useState5 = _sliced_to_array(useState([
11562
+ null,
11563
+ null
11564
+ ]), 2), selectedRangeDate = _useState5[0], setSelectedRangeDate = _useState5[1];
11565
+ var _useState6 = _sliced_to_array(useState([
11566
+ "",
11567
+ ""
11568
+ ]), 2); _useState6[0]; var setSelectedRangeDateString = _useState6[1];
11569
+ var selectedRangeDateRef = useRef([
11570
+ null,
11571
+ null
11572
+ ]);
11573
+ var selectedRangeDateStringRef = useRef([
11574
+ "",
11575
+ ""
11576
+ ]);
11577
+ var _useState7 = _sliced_to_array(useState(false), 2), panelOpenChange = _useState7[0], setPanelOpenChange = _useState7[1]; // 用于失去焦点后,判断是否关闭
11562
11578
  var isChange = useRef(false);
11579
+ var selectRange = useRef([]);
11580
+ useImperativeHandle(ref, function() {
11581
+ return {};
11582
+ });
11563
11583
  useEffect(function() {
11564
11584
  setDefaultMode();
11565
- if (kind === "range") {
11566
- if (selectedRangeDate[0] && selectedRangeDate[1]) {
11567
- setSelectedRangeDateString([
11568
- selectedRangeDate[0].format(format),
11569
- selectedRangeDate[1].format(format)
11570
- ]);
11571
- }
11572
- } else {
11573
- if (selectedDate) {
11574
- setSelectedDateString(function(prevState) {
11575
- selectedDateStringRef.current = selectedDate.format(format);
11576
- return selectedDateStringRef.current;
11577
- });
11578
- }
11579
- }
11580
11585
  return function() {
11581
- var _document_getElementsByClassName__getElementsByClassName, _document_getElementsByClassName_, _document_getElementsByClassName, _btn;
11582
- var btn = (_document_getElementsByClassName = document.getElementsByClassName(id)) === null || _document_getElementsByClassName === void 0 ? void 0 : (_document_getElementsByClassName_ = _document_getElementsByClassName[0]) === null || _document_getElementsByClassName_ === void 0 ? void 0 : (_document_getElementsByClassName__getElementsByClassName = _document_getElementsByClassName_.getElementsByClassName("bhd-picker-today-btn")) === null || _document_getElementsByClassName__getElementsByClassName === void 0 ? void 0 : _document_getElementsByClassName__getElementsByClassName[0];
11583
- (_btn = btn) === null || _btn === void 0 ? void 0 : _btn.removeEventListener("click", todayClick);
11586
+ var _document_getElementsByClassName__getElementsByClassName, _document_getElementsByClassName_, _document_getElementsByClassName, _todayBtn, _document_getElementsByClassName__getElementsByClassName1, _document_getElementsByClassName_1, _document_getElementsByClassName1, _nowBtn;
11587
+ var todayBtn = (_document_getElementsByClassName = document.getElementsByClassName(id)) === null || _document_getElementsByClassName === void 0 ? void 0 : (_document_getElementsByClassName_ = _document_getElementsByClassName[0]) === null || _document_getElementsByClassName_ === void 0 ? void 0 : (_document_getElementsByClassName__getElementsByClassName = _document_getElementsByClassName_.getElementsByClassName("bhd-picker-today-btn")) === null || _document_getElementsByClassName__getElementsByClassName === void 0 ? void 0 : _document_getElementsByClassName__getElementsByClassName[0];
11588
+ (_todayBtn = todayBtn) === null || _todayBtn === void 0 ? void 0 : _todayBtn.removeEventListener("click", todayClick);
11589
+ var nowBtn = (_document_getElementsByClassName1 = document.getElementsByClassName(id)) === null || _document_getElementsByClassName1 === void 0 ? void 0 : (_document_getElementsByClassName_1 = _document_getElementsByClassName1[0]) === null || _document_getElementsByClassName_1 === void 0 ? void 0 : (_document_getElementsByClassName__getElementsByClassName1 = _document_getElementsByClassName_1.getElementsByClassName("bhd-picker-now-btn")) === null || _document_getElementsByClassName__getElementsByClassName1 === void 0 ? void 0 : _document_getElementsByClassName__getElementsByClassName1[0];
11590
+ (_nowBtn = nowBtn) === null || _nowBtn === void 0 ? void 0 : _nowBtn.removeEventListener("click", todayClick);
11584
11591
  };
11585
11592
  }, []);
11586
11593
  useEffect(function() {
11587
- isChange.current = true;
11594
+ if (kind === "range") {
11595
+ setSelectedRangeDate(function(prevState) {
11596
+ selectedRangeDateRef.current = value || [
11597
+ null,
11598
+ null
11599
+ ];
11600
+ return selectedRangeDateRef.current;
11601
+ });
11602
+ setSelectedRangeDateString(function(prevState) {
11603
+ var _selectedRangeDateRef_current_, _selectedRangeDateRef_current_1;
11604
+ selectedRangeDateStringRef.current = [
11605
+ ((_selectedRangeDateRef_current_ = selectedRangeDateRef.current[0]) === null || _selectedRangeDateRef_current_ === void 0 ? void 0 : _selectedRangeDateRef_current_.format(format)) || "",
11606
+ ((_selectedRangeDateRef_current_1 = selectedRangeDateRef.current[1]) === null || _selectedRangeDateRef_current_1 === void 0 ? void 0 : _selectedRangeDateRef_current_1.format(format)) || ""
11607
+ ];
11608
+ return selectedRangeDateStringRef.current;
11609
+ });
11610
+ } else {
11611
+ setSelectedDate(function(prevState) {
11612
+ selectedDateRef.current = value || null;
11613
+ return selectedDateRef.current;
11614
+ });
11615
+ setSelectedDateString(function(prevState) {
11616
+ var _selectedDateRef_current;
11617
+ selectedDateStringRef.current = ((_selectedDateRef_current = selectedDateRef.current) === null || _selectedDateRef_current === void 0 ? void 0 : _selectedDateRef_current.format(format)) || "";
11618
+ return selectedDateStringRef.current;
11619
+ });
11620
+ }
11621
+ }, [
11622
+ value
11623
+ ]);
11624
+ useEffect(function() {
11625
+ setPanelOpen(open);
11588
11626
  }, [
11589
- selectedDate,
11590
- selectedRangeDate
11627
+ open
11591
11628
  ]);
11592
11629
  // 传给 DatePicker 的props参数
11593
11630
  var getConfig = function() {
@@ -11618,6 +11655,7 @@ var BhdDatePicker = function(props) {
11618
11655
  popupClassName: popupClassName,
11619
11656
  allowClear: allowClear,
11620
11657
  showTime: showTime,
11658
+ showToday: showToday,
11621
11659
  cellRender: cellRender,
11622
11660
  renderExtraFooter: selfRenderExtraFooter
11623
11661
  });
@@ -11631,10 +11669,19 @@ var BhdDatePicker = function(props) {
11631
11669
  delete config.onChange;
11632
11670
  delete config.useType; // 组件自己定义的
11633
11671
  delete config.presets; // 必须删掉,因为预设由官网的左侧换到底部
11634
- delete config.showNow; // 必须删掉,因为官网的今天按钮有bug,不受showNow的值控制
11672
+ delete config.dropdownClassName;
11635
11673
  if (!config.cellRender) {
11636
11674
  config.cellRender = selfCellRender;
11637
11675
  }
11676
+ // 判断是否显示今天按钮
11677
+ if (!isRenderToday()) {
11678
+ config.showToday = false;
11679
+ showToday = false;
11680
+ }
11681
+ // 不显示今天、预设、确定按钮
11682
+ if (!isSelfRenderExtraFooter()) {
11683
+ delete config.renderExtraFooter;
11684
+ }
11638
11685
  // 单选
11639
11686
  if (kind === "single") {
11640
11687
  config.popupClassName = "\n ".concat(modules_63b47c51.bhdDatePickerPopup, " ").concat(modules_63b47c51.singlePicker, " ").concat(popupClassName || "", " ").concat(showTime ? modules_63b47c51.showTime : "", " ").concat(renderExtraFooter ? modules_63b47c51.showExtraFooter : "");
@@ -11652,7 +11699,7 @@ var BhdDatePicker = function(props) {
11652
11699
  config.allowClear = false; // 日程安排查看时,不显示清除按钮
11653
11700
  }
11654
11701
  }
11655
- config.popupClassName = "".concat(config.popupClassName, " ").concat(id);
11702
+ config.popupClassName = "".concat(config.popupClassName, " ").concat(dropdownClassName, " ").concat(needConfirm ? "" : modules_63b47c51.noNeedConfirm, " ").concat(id);
11656
11703
  return config;
11657
11704
  };
11658
11705
  // 设置默认mode
@@ -11727,25 +11774,24 @@ var BhdDatePicker = function(props) {
11727
11774
  };
11728
11775
  // 渲染底部扩展内容(包括确定按钮、今天按钮、预设、传入的底部扩展)
11729
11776
  var selfRenderExtraFooter = function(mode) {
11730
- var _selectedRangeDate, _selectedRangeDate1;
11777
+ var _selectedRangeDate, _selectedRangeDate1, _selectedRangeDate2, _selectedRangeDate3;
11731
11778
  return /*#__PURE__*/ jsxs(Fragment, {
11732
11779
  children: [
11733
- renderExtraFooter && /*#__PURE__*/ jsx("div", {
11734
- className: "bhddatepicker-picker-footer-extra-extend",
11735
- children: renderExtraFooter(mode)
11736
- }),
11737
11780
  !showTime ? /*#__PURE__*/ jsx(Fragment, {
11738
- children: /*#__PURE__*/ jsxs("ul", {
11781
+ children: ((picker || "date") === "date" && showToday || presets && presets.length > 0 || needConfirm) && /*#__PURE__*/ jsxs("ul", {
11739
11782
  className: "bhd-picker-ranges",
11740
11783
  children: [
11741
11784
  selfRenderPresets(),
11742
11785
  renderToday(),
11743
- /*#__PURE__*/ jsx("li", {
11786
+ needConfirm && /*#__PURE__*/ jsx("li", {
11744
11787
  className: "bhd-picker-ok",
11745
11788
  children: /*#__PURE__*/ jsx(Button, {
11746
11789
  type: "primary",
11747
11790
  disabled: kind === "range" ? !(((_selectedRangeDate = selectedRangeDate) === null || _selectedRangeDate === void 0 ? void 0 : _selectedRangeDate[0]) && ((_selectedRangeDate1 = selectedRangeDate) === null || _selectedRangeDate1 === void 0 ? void 0 : _selectedRangeDate1[1])) : !(selectedDate && selectedDateString),
11748
- onClick: okClick,
11791
+ className: "".concat((kind === "range" ? !(((_selectedRangeDate2 = selectedRangeDate) === null || _selectedRangeDate2 === void 0 ? void 0 : _selectedRangeDate2[0]) && ((_selectedRangeDate3 = selectedRangeDate) === null || _selectedRangeDate3 === void 0 ? void 0 : _selectedRangeDate3[1])) : !(selectedDate && selectedDateString)) ? "disabled" : ""),
11792
+ onClick: function() {
11793
+ okClick();
11794
+ },
11749
11795
  children: i18Conversion$1("确定")
11750
11796
  })
11751
11797
  })
@@ -11754,46 +11800,92 @@ var BhdDatePicker = function(props) {
11754
11800
  }) : /*#__PURE__*/ jsx("ul", {
11755
11801
  className: "bhd-picker-ranges showPresets ".concat(showNow ? "showNow" : ""),
11756
11802
  children: selfRenderPresets()
11803
+ }),
11804
+ renderExtraFooter && /*#__PURE__*/ jsx("div", {
11805
+ className: "bhddatepicker-picker-footer-extra-extend",
11806
+ children: renderExtraFooter(mode)
11757
11807
  })
11758
11808
  ]
11759
11809
  });
11760
11810
  };
11761
- // 渲染今天
11762
- var renderToday = function() {
11763
- // 显示now
11811
+ // 判断是否显示今天按钮、预设、确定按钮、传入的底部扩展
11812
+ var isSelfRenderExtraFooter = function() {
11813
+ var result = false;
11814
+ if (kind === "range") {
11815
+ result = presets && presets.length > 0 || renderExtraFooter || needConfirm;
11816
+ } else {
11817
+ result = isRenderToday() || presets && presets.length > 0 || renderExtraFooter || needConfirm;
11818
+ }
11819
+ return result;
11820
+ };
11821
+ //判断是否显示今天按钮
11822
+ var isRenderToday = function() {
11764
11823
  if (showToday) {
11765
- var _extraItems;
11824
+ if (kind === "single" && panelMode === "date") {
11825
+ return true;
11826
+ }
11766
11827
  // 日程安排时: extraItems中今天是否是可选或者已选择状态
11767
- var hasNow = ((_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.filter(function(item) {
11768
- return item.status !== "noselectable" && // item.date.format(format) === dayjs().format(format)
11769
- item.date.format("YYYYMMDD") === getToday();
11770
- }).length) > 0;
11771
- if (kind === "single" || kind === "extra" && hasNow) {
11772
- if (mode === "date" || mode === undefined) {
11773
- return /*#__PURE__*/ jsx("li", {
11774
- className: "bhd-picker-now",
11775
- children: /*#__PURE__*/ jsx("a", {
11776
- className: "bhd-picker-now-btn",
11777
- style: {
11778
- visibility: "hidden"
11779
- },
11780
- onClick: todayClick,
11781
- children: i18Conversion$1("今天")
11782
- })
11783
- });
11828
+ if (kind === "extra") {
11829
+ var _extraItems;
11830
+ var hasToday = ((_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.filter(function(item) {
11831
+ return item.status !== "noselectable" && item.date.format("YYYYMMDD") === getToday();
11832
+ }).length) > 0;
11833
+ if (hasToday && panelMode === "date") {
11834
+ return true;
11784
11835
  }
11785
11836
  }
11786
11837
  }
11787
- return null;
11838
+ return false;
11839
+ };
11840
+ // 渲染今天
11841
+ var renderToday = function(mode) {
11842
+ // // 显示Today
11843
+ // if (showToday) {
11844
+ // // 日程安排时: extraItems中今天是否是可选或者已选择状态
11845
+ // let hasNow =
11846
+ // extraItems?.filter(
11847
+ // (item) =>
11848
+ // item.status !== "noselectable" &&
11849
+ // // item.date.format(format) === dayjs().format(format)
11850
+ // item.date.format("YYYYMMDD") === getToday()
11851
+ // ).length > 0;
11852
+ // if (kind === "single" || (kind === "extra" && hasNow)) {
11853
+ // if (mode === "date") {
11854
+ // return (
11855
+ // <li className="bhd-picker-now">
11856
+ // <a
11857
+ // className="bhd-picker-now-btn"
11858
+ // style={{ visibility: "hidden" }}
11859
+ // onClick={todayClick}
11860
+ // >
11861
+ // {i18Conversion("今天")}
11862
+ // </a>
11863
+ // </li>
11864
+ // );
11865
+ // }
11866
+ // }
11867
+ // }
11868
+ // return null;
11869
+ return isRenderToday() ? /*#__PURE__*/ jsx("li", {
11870
+ className: "bhd-picker-now",
11871
+ children: /*#__PURE__*/ jsx("a", {
11872
+ className: "bhd-picker-now-btn",
11873
+ style: {
11874
+ visibility: "hidden"
11875
+ },
11876
+ onClick: todayClick,
11877
+ children: i18Conversion$1("今天")
11878
+ })
11879
+ }) : null;
11788
11880
  };
11789
11881
  // 获取到年月日
11790
11882
  var getToday = function() {
11791
11883
  var date = new Date();
11792
- return date.getFullYear().toString() + date.getMonth().toString().padStart(2, "0") + date.getDay().toString().padStart(2, "0");
11884
+ return date.getFullYear().toString() + (date.getMonth() + 1).toString().padStart(2, "0") + date.getDate().toString().padStart(2, "0");
11793
11885
  };
11794
11886
  // 渲染预设
11795
11887
  var selfRenderPresets = function() {
11796
- return /*#__PURE__*/ jsx("li", {
11888
+ return presets && presets.length > 0 ? /*#__PURE__*/ jsx("li", {
11797
11889
  className: "bhd-picker-presets",
11798
11890
  children: presets.map(function(item, index) {
11799
11891
  return /*#__PURE__*/ jsx("a", {
@@ -11804,20 +11896,31 @@ var BhdDatePicker = function(props) {
11804
11896
  children: item.label
11805
11897
  }, index);
11806
11898
  })
11807
- });
11899
+ }) : null;
11808
11900
  };
11809
11901
  // 日期选择确认
11810
11902
  var okClick = function() {
11811
11903
  if (kind === "range") {
11812
- if (selectedRangeDate[0] && selectedRangeDate[1] && selectedRangeDateString[0] && selectedRangeDateString[1]) {
11813
- onChange && onChange(selectedRangeDate, selectedRangeDateString);
11904
+ var _selectedRangeDateRef_current, _selectedRangeDateRef_current1, _selectedRangeDateStringRef_current, _selectedRangeDateStringRef_current1;
11905
+ if (((_selectedRangeDateRef_current = selectedRangeDateRef.current) === null || _selectedRangeDateRef_current === void 0 ? void 0 : _selectedRangeDateRef_current[0]) && ((_selectedRangeDateRef_current1 = selectedRangeDateRef.current) === null || _selectedRangeDateRef_current1 === void 0 ? void 0 : _selectedRangeDateRef_current1[1]) && ((_selectedRangeDateStringRef_current = selectedRangeDateStringRef.current) === null || _selectedRangeDateStringRef_current === void 0 ? void 0 : _selectedRangeDateStringRef_current[0]) && ((_selectedRangeDateStringRef_current1 = selectedRangeDateStringRef.current) === null || _selectedRangeDateStringRef_current1 === void 0 ? void 0 : _selectedRangeDateStringRef_current1[1])) {
11906
+ if (isChange.current) {
11907
+ onChange && onChange(selectedRangeDateRef.current, selectedRangeDateStringRef.current);
11908
+ isChange.current = false;
11909
+ // if (pickerRef.current) {
11910
+ // pickerRef.current.blur();
11911
+ // }
11912
+ }
11814
11913
  setPanelOpen(false);
11815
- } else {
11816
- setPanelOpen(true);
11817
11914
  }
11818
11915
  } else {
11819
11916
  if (selectedDateRef.current && selectedDateStringRef.current) {
11820
- onChange && onChange(selectedDateRef.current, selectedDateStringRef.current);
11917
+ if (isChange.current) {
11918
+ onChange && onChange(selectedDateRef.current, selectedDateStringRef.current);
11919
+ isChange.current = false;
11920
+ // if (pickerRef.current) {
11921
+ // pickerRef.current.blur();
11922
+ // }
11923
+ }
11821
11924
  setPanelOpen(false);
11822
11925
  }
11823
11926
  }
@@ -11842,17 +11945,36 @@ var BhdDatePicker = function(props) {
11842
11945
  }
11843
11946
  }
11844
11947
  };
11948
+ var nowClickEventListener = function(value) {
11949
+ if (!value) return;
11950
+ if (showTime) {
11951
+ var _document_getElementsByClassName__getElementsByClassName, _document_getElementsByClassName_, _document_getElementsByClassName;
11952
+ var btn = (_document_getElementsByClassName = document.getElementsByClassName(id)) === null || _document_getElementsByClassName === void 0 ? void 0 : (_document_getElementsByClassName_ = _document_getElementsByClassName[0]) === null || _document_getElementsByClassName_ === void 0 ? void 0 : (_document_getElementsByClassName__getElementsByClassName = _document_getElementsByClassName_.getElementsByClassName("bhd-picker-now-btn")) === null || _document_getElementsByClassName__getElementsByClassName === void 0 ? void 0 : _document_getElementsByClassName__getElementsByClassName[0];
11953
+ if (value) {
11954
+ var _btn, _btn1;
11955
+ (_btn = btn) === null || _btn === void 0 ? void 0 : _btn.removeEventListener("click", todayClick);
11956
+ (_btn1 = btn) === null || _btn1 === void 0 ? void 0 : _btn1.addEventListener("click", todayClick, {
11957
+ once: true
11958
+ });
11959
+ }
11960
+ }
11961
+ };
11845
11962
  //预设点击
11846
11963
  var presetClick = function(info) {
11847
- console.log(_type_of(info.value));
11848
11964
  var value = typeof info.value === "function" ? info.value() : info.value;
11849
11965
  if (kind === "range") {
11850
11966
  var valueString = [
11851
11967
  value[0].format(format),
11852
11968
  value[1].format(format)
11853
11969
  ];
11854
- setSelectedRangeDate(value);
11855
- setSelectedRangeDateString(valueString);
11970
+ setSelectedRangeDate(function(prevState) {
11971
+ selectedRangeDateRef.current = value;
11972
+ return selectedRangeDateRef.current;
11973
+ });
11974
+ setSelectedRangeDateString(function(prevState) {
11975
+ selectedRangeDateStringRef.current = valueString;
11976
+ return selectedRangeDateStringRef.current;
11977
+ });
11856
11978
  onChange && onChange(value, valueString);
11857
11979
  setPanelOpen(false);
11858
11980
  } else {
@@ -11875,6 +11997,7 @@ var BhdDatePicker = function(props) {
11875
11997
  children: [
11876
11998
  (kind === "single" || kind === "extra") && /*#__PURE__*/ jsx(Fragment, {
11877
11999
  children: /*#__PURE__*/ jsx(DatePicker, _object_spread_props(_object_spread({}, getConfig()), {
12000
+ ref: pickerRef,
11878
12001
  id: id,
11879
12002
  value: selectedDate,
11880
12003
  mode: panelMode,
@@ -11885,10 +12008,12 @@ var BhdDatePicker = function(props) {
11885
12008
  onPanelChange && onPanelChange(value, mode);
11886
12009
  },
11887
12010
  onOpenChange: function(value) {
12011
+ setPanelOpenChange(value);
11888
12012
  // 打开设置默认mode
11889
12013
  if (value) {
11890
12014
  setDefaultMode();
11891
12015
  todayClickEventListener(value);
12016
+ nowClickEventListener(value);
11892
12017
  }
11893
12018
  onOpenChange && onOpenChange(value);
11894
12019
  },
@@ -11901,6 +12026,12 @@ var BhdDatePicker = function(props) {
11901
12026
  selectedDateStringRef.current = dateString;
11902
12027
  return selectedDateStringRef.current;
11903
12028
  });
12029
+ isChange.current = true;
12030
+ if (!needConfirm) {
12031
+ setTimeout(function() {
12032
+ okClick();
12033
+ }, 0);
12034
+ }
11904
12035
  },
11905
12036
  onOk: function(date) {
11906
12037
  if (showTime) {
@@ -11916,14 +12047,27 @@ var BhdDatePicker = function(props) {
11916
12047
  onClick && onClick(e);
11917
12048
  },
11918
12049
  onBlur: function(e) {
11919
- okClick();
11920
- setPanelOpen(false);
12050
+ if (needConfirm) {
12051
+ var _e_relatedTarget_classList, _e_relatedTarget;
12052
+ okClick(); // 面板区域内失去焦点时
12053
+ if ((_e_relatedTarget = e.relatedTarget) === null || _e_relatedTarget === void 0 ? void 0 : (_e_relatedTarget_classList = _e_relatedTarget.classList) === null || _e_relatedTarget_classList === void 0 ? void 0 : _e_relatedTarget_classList.value.includes("bhd-picker-panel")) {
12054
+ if (pickerRef.current) {
12055
+ pickerRef.current.focus();
12056
+ }
12057
+ setPanelOpen(true);
12058
+ } else {
12059
+ setPanelOpen(false);
12060
+ }
12061
+ } else {
12062
+ setPanelOpen(false);
12063
+ }
11921
12064
  onBlur && onBlur(e);
11922
12065
  }
11923
12066
  }))
11924
12067
  }),
11925
12068
  kind === "range" && /*#__PURE__*/ jsx(Fragment, {
11926
12069
  children: /*#__PURE__*/ jsx(RangePicker, _object_spread_props(_object_spread({}, getConfig()), {
12070
+ ref: pickerRef,
11927
12071
  value: selectedRangeDate,
11928
12072
  mode: rangePanelMode,
11929
12073
  open: panelOpen,
@@ -11933,31 +12077,92 @@ var BhdDatePicker = function(props) {
11933
12077
  onPanelChange && onPanelChange(value, mode);
11934
12078
  },
11935
12079
  onOpenChange: function(value) {
12080
+ setPanelOpenChange(value);
11936
12081
  if (value) {
11937
12082
  setDefaultMode();
11938
12083
  }
11939
12084
  if (showTime) {
11940
12085
  setPanelOpen(value);
11941
12086
  }
11942
- setRangeOpenChange(value);
11943
12087
  onOpenChange && onOpenChange(value);
11944
12088
  },
11945
12089
  onClick: function(e) {
11946
12090
  setPanelOpen(true);
12091
+ selectRange.current = [];
11947
12092
  onClick && onClick(e);
11948
12093
  },
12094
+ onChange: function(dates, dateStrings) {
12095
+ // 清空的时候
12096
+ if (dates === null) {
12097
+ setSelectedRangeDate(function(prevState) {
12098
+ selectedRangeDateRef.current = [
12099
+ null,
12100
+ null
12101
+ ];
12102
+ return selectedRangeDateRef.current;
12103
+ });
12104
+ setSelectedRangeDateString(function(prevState) {
12105
+ selectedRangeDateStringRef.current = [
12106
+ "",
12107
+ ""
12108
+ ];
12109
+ return selectedRangeDateStringRef.current;
12110
+ });
12111
+ setPanelOpen(false);
12112
+ onChange && onChange([
12113
+ null,
12114
+ null
12115
+ ], [
12116
+ "",
12117
+ ""
12118
+ ]);
12119
+ }
12120
+ },
11949
12121
  onCalendarChange: function(dates, dateStrings, info) {
11950
- setSelectedRangeDate(dates);
11951
- setSelectedRangeDateString(dateStrings);
11952
- onCalendarChange && onCalendarChange(dates, dateStrings, info);
12122
+ var _dates, _dates1;
12123
+ setSelectedRangeDate(function(prevState) {
12124
+ selectedRangeDateRef.current = dates;
12125
+ return selectedRangeDateRef.current;
12126
+ });
12127
+ setSelectedRangeDateString(function(prevState) {
12128
+ selectedRangeDateStringRef.current = dateStrings;
12129
+ return selectedRangeDateStringRef.current;
12130
+ });
12131
+ if (!selectRange.current.includes(info.range)) {
12132
+ selectRange.current.push(info.range);
12133
+ }
12134
+ if (((_dates = dates) === null || _dates === void 0 ? void 0 : _dates[0]) && ((_dates1 = dates) === null || _dates1 === void 0 ? void 0 : _dates1[1])) {
12135
+ //不用确认自动提交
12136
+ if (!needConfirm) {
12137
+ if (selectRange.current.includes("start") && selectRange.current.includes("end")) {
12138
+ isChange.current = true;
12139
+ setTimeout(function() {
12140
+ okClick();
12141
+ }, 0);
12142
+ }
12143
+ } else {
12144
+ isChange.current = true;
12145
+ }
12146
+ }
11953
12147
  },
11954
12148
  onBlur: function(e) {
11955
- var _selectedRangeDate, _selectedRangeDate1, _selectedRangeDate2, _selectedRangeDate3;
11956
- if (((_selectedRangeDate = selectedRangeDate) === null || _selectedRangeDate === void 0 ? void 0 : _selectedRangeDate[0]) && ((_selectedRangeDate1 = selectedRangeDate) === null || _selectedRangeDate1 === void 0 ? void 0 : _selectedRangeDate1[1])) {
11957
- okClick();
11958
- setPanelOpen(false);
11959
- } else if (!((_selectedRangeDate2 = selectedRangeDate) === null || _selectedRangeDate2 === void 0 ? void 0 : _selectedRangeDate2[0]) || !((_selectedRangeDate3 = selectedRangeDate) === null || _selectedRangeDate3 === void 0 ? void 0 : _selectedRangeDate3[1])) {
11960
- setPanelOpen(rangeOpenChange);
12149
+ console.log(panelOpenChange);
12150
+ if (needConfirm) {
12151
+ var _selectedRangeDateRef_current, _selectedRangeDateRef_current1, _selectedRangeDateRef_current2, _selectedRangeDateRef_current3;
12152
+ if (((_selectedRangeDateRef_current = selectedRangeDateRef.current) === null || _selectedRangeDateRef_current === void 0 ? void 0 : _selectedRangeDateRef_current[0]) && ((_selectedRangeDateRef_current1 = selectedRangeDateRef.current) === null || _selectedRangeDateRef_current1 === void 0 ? void 0 : _selectedRangeDateRef_current1[1])) {
12153
+ if (needConfirm && !panelOpenChange && isChange.current) {
12154
+ okClick();
12155
+ } else {
12156
+ setPanelOpen(panelOpenChange);
12157
+ }
12158
+ if (!isChange.current) {
12159
+ setPanelOpen(false);
12160
+ }
12161
+ } else if (!((_selectedRangeDateRef_current2 = selectedRangeDateRef.current) === null || _selectedRangeDateRef_current2 === void 0 ? void 0 : _selectedRangeDateRef_current2[0]) || !((_selectedRangeDateRef_current3 = selectedRangeDateRef.current) === null || _selectedRangeDateRef_current3 === void 0 ? void 0 : _selectedRangeDateRef_current3[1])) {
12162
+ setPanelOpen(panelOpenChange);
12163
+ }
12164
+ } else {
12165
+ setPanelOpen(panelOpenChange);
11961
12166
  }
11962
12167
  onBlur && onBlur(e);
11963
12168
  }
@@ -11965,7 +12170,7 @@ var BhdDatePicker = function(props) {
11965
12170
  })
11966
12171
  ]
11967
12172
  });
11968
- };
12173
+ });
11969
12174
  var BhdDatePicker$1 = BhdDatePicker;
11970
12175
 
11971
12176
  export { BhdAppLayout, BhdDatePicker$1 as BhdDatePicker, BhdSelect$1 as BhdSelect, BhdTableSelect$1 as BhdTableSelect, BhdTableSimple$1 as BhdTableSimple, BhdTipModal$1 as BhdTipModal, CustomerService$1 as CustomerService, Pagination, Provider$1 as Provider, Table$1 as Table, TextTootip$1 as TextTootip, TitleBar$1 as TitleBar, ViewImage$1 as ViewImage, BhdMessage$1 as message };