bhd-components 0.9.3 → 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,7 +1,7 @@
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
- import { useState, useRef, useEffect, useLayoutEffect, forwardRef, useImperativeHandle } from 'react';
4
+ import { useState, useRef, useEffect, useLayoutEffect, forwardRef, useImperativeHandle, useCallback } from 'react';
5
5
  import { Fragment } from 'react/jsx-runtime';
6
6
  import { render } from 'react-dom';
7
7
 
@@ -436,7 +436,19 @@ var zh_CN = {
436
436
  Load: "正在加载...",
437
437
  确定: "确定",
438
438
  此刻: "此刻",
439
- 今天: "今天"
439
+ 今天: "今天",
440
+ 一月: "一月",
441
+ 二月: "二月",
442
+ 三月: "三月",
443
+ 四月: "四月",
444
+ 五月: "五月",
445
+ 六月: "六月",
446
+ 七月: "七月",
447
+ 八月: "八月",
448
+ 九月: "九月",
449
+ 十月: "十月",
450
+ 十一月: "十一月",
451
+ 十二月: "十二月"
440
452
  };
441
453
  var zh_CN$1 = zh_CN;
442
454
 
@@ -448,7 +460,19 @@ var en_US = {
448
460
  Load: "Loading...",
449
461
  确定: "OK",
450
462
  此刻: "Now",
451
- 今天: "Today"
463
+ 今天: "Today",
464
+ 一月: "Jan",
465
+ 二月: "Feb",
466
+ 三月: "Mar",
467
+ 四月: "Apr",
468
+ 五月: "May",
469
+ 六月: "Jun",
470
+ 七月: "Jul",
471
+ 八月: "Aug",
472
+ 九月: "Sep",
473
+ 十月: "Oct",
474
+ 十一月: "Nov",
475
+ 十二月: "Dec"
452
476
  };
453
477
  var en_US$1 = en_US;
454
478
 
@@ -11465,11 +11489,26 @@ window.appendDom = function(root, props) {
11465
11489
  };
11466
11490
  var CustomerService$1 = CustomerService;
11467
11491
 
11468
- var modules_63b47c51 = {"bhdDatePicker":"index_module_bhdDatePicker__3c4442cb","bhdDatePickerPopup":"index_module_bhdDatePickerPopup__3c4442cb","singlePicker":"index_module_singlePicker__3c4442cb","rangePicker":"index_module_rangePicker__3c4442cb","extraPicker":"index_module_extraPicker__3c4442cb","showTime":"index_module_showTime__3c4442cb","showExtraFooter":"index_module_showExtraFooter__3c4442cb","readonly":"index_module_readonly__3c4442cb"};
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"};
11469
11493
 
11470
11494
  var RangePicker = DatePicker.RangePicker;
11471
- var BhdDatePicker = function(props) {
11472
- var lang = ConfigProvider.lang === "en" ? "en_US" : "zh_CN";
11495
+ var months = [
11496
+ "一月",
11497
+ "二月",
11498
+ "三月",
11499
+ "四月",
11500
+ "五月",
11501
+ "六月",
11502
+ "七月",
11503
+ "八月",
11504
+ "九月",
11505
+ "十月",
11506
+ "十一月",
11507
+ "十二月"
11508
+ ];
11509
+ //January_February_March_April_May_June_July_August_September_October_November_December
11510
+ var BhdDatePicker = /*#__PURE__*/ forwardRef(function(props, ref) {
11511
+ ConfigProvider.lang === "en" ? "en_US" : "zh_CN";
11473
11512
  // if (lang === "en_US") {
11474
11513
  // const enUS = require("dayjs/locale/en");
11475
11514
  // dayjs.locale(enUS);
@@ -11477,6 +11516,7 @@ var BhdDatePicker = function(props) {
11477
11516
  // const zhCN = require("dayjs/locale/zh-cn");
11478
11517
  // dayjs.locale(zhCN);
11479
11518
  // }
11519
+ var id = "BhdDatePicker_" + new Date().getTime();
11480
11520
  // 默认格式
11481
11521
  var getDefaultFormat = function() {
11482
11522
  if (props.format) {
@@ -11504,39 +11544,88 @@ var BhdDatePicker = function(props) {
11504
11544
  }
11505
11545
  };
11506
11546
  // 自己组件内使用的,或者自己处理的
11507
- 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_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;
11508
11549
  var bhdDatePickerRef = useRef(null);
11550
+ var pickerRef = useRef(null);
11509
11551
  var _useState = _sliced_to_array(useState(open), 2), panelOpen = _useState[0], setPanelOpen = _useState[1];
11510
11552
  var _useState1 = _sliced_to_array(useState("date"), 2), panelMode = _useState1[0], setPanelMode = _useState1[1];
11511
11553
  var _useState2 = _sliced_to_array(useState([
11512
11554
  "date",
11513
11555
  "date"
11514
11556
  ]), 2), rangePanelMode = _useState2[0], setRangePanelMode = _useState2[1];
11515
- var _useState3 = _sliced_to_array(useState(value), 2), selectedDate = _useState3[0], setSelectedDate = _useState3[1];
11516
- var _useState4 = _sliced_to_array(useState(null), 2), selectedDateString = _useState4[0], setSelectedDateString = _useState4[1];
11517
- var selectedDateRef = useRef(value);
11518
- var selectedDateStringRef = useRef(null);
11519
- var _useState5 = _sliced_to_array(useState(value), 2), selectedRangeDate = _useState5[0], setSelectedRangeDate = _useState5[1];
11520
- var _useState6 = _sliced_to_array(useState([]), 2), selectedRangeDateString = _useState6[0], setSelectedRangeDateString = _useState6[1];
11521
- 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]; // 用于失去焦点后,判断是否关闭
11578
+ var isChange = useRef(false);
11579
+ var selectRange = useRef([]);
11580
+ useImperativeHandle(ref, function() {
11581
+ return {};
11582
+ });
11522
11583
  useEffect(function() {
11523
11584
  setDefaultMode();
11585
+ return function() {
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);
11591
+ };
11592
+ }, []);
11593
+ useEffect(function() {
11524
11594
  if (kind === "range") {
11525
- if (selectedRangeDate[0] && selectedRangeDate[1]) {
11526
- setSelectedRangeDateString([
11527
- selectedRangeDate[0].format(format),
11528
- selectedRangeDate[1].format(format)
11529
- ]);
11530
- }
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
+ });
11531
11610
  } else {
11532
- if (selectedDate) {
11533
- setSelectedDateString(function(prevState) {
11534
- selectedDateStringRef.current = selectedDate.format(format);
11535
- return selectedDateStringRef.current;
11536
- });
11537
- }
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
+ });
11538
11620
  }
11539
- }, []);
11621
+ }, [
11622
+ value
11623
+ ]);
11624
+ useEffect(function() {
11625
+ setPanelOpen(open);
11626
+ }, [
11627
+ open
11628
+ ]);
11540
11629
  // 传给 DatePicker 的props参数
11541
11630
  var getConfig = function() {
11542
11631
  var config = _object_spread_props(_object_spread({
@@ -11566,6 +11655,7 @@ var BhdDatePicker = function(props) {
11566
11655
  popupClassName: popupClassName,
11567
11656
  allowClear: allowClear,
11568
11657
  showTime: showTime,
11658
+ showToday: showToday,
11569
11659
  cellRender: cellRender,
11570
11660
  renderExtraFooter: selfRenderExtraFooter
11571
11661
  });
@@ -11579,10 +11669,19 @@ var BhdDatePicker = function(props) {
11579
11669
  delete config.onChange;
11580
11670
  delete config.useType; // 组件自己定义的
11581
11671
  delete config.presets; // 必须删掉,因为预设由官网的左侧换到底部
11582
- delete config.showNow; // 必须删掉,因为官网的今天按钮有bug,不受showNow的值控制
11672
+ delete config.dropdownClassName;
11583
11673
  if (!config.cellRender) {
11584
11674
  config.cellRender = selfCellRender;
11585
11675
  }
11676
+ // 判断是否显示今天按钮
11677
+ if (!isRenderToday()) {
11678
+ config.showToday = false;
11679
+ showToday = false;
11680
+ }
11681
+ // 不显示今天、预设、确定按钮
11682
+ if (!isSelfRenderExtraFooter()) {
11683
+ delete config.renderExtraFooter;
11684
+ }
11586
11685
  // 单选
11587
11686
  if (kind === "single") {
11588
11687
  config.popupClassName = "\n ".concat(modules_63b47c51.bhdDatePickerPopup, " ").concat(modules_63b47c51.singlePicker, " ").concat(popupClassName || "", " ").concat(showTime ? modules_63b47c51.showTime : "", " ").concat(renderExtraFooter ? modules_63b47c51.showExtraFooter : "");
@@ -11600,6 +11699,7 @@ var BhdDatePicker = function(props) {
11600
11699
  config.allowClear = false; // 日程安排查看时,不显示清除按钮
11601
11700
  }
11602
11701
  }
11702
+ config.popupClassName = "".concat(config.popupClassName, " ").concat(dropdownClassName, " ").concat(needConfirm ? "" : modules_63b47c51.noNeedConfirm, " ").concat(id);
11603
11703
  return config;
11604
11704
  };
11605
11705
  // 设置默认mode
@@ -11640,9 +11740,14 @@ var BhdDatePicker = function(props) {
11640
11740
  }
11641
11741
  // 月份 中文模式下显示全名称(例:一月),英文模式下显示短名称(例:Jan)
11642
11742
  if (info.type === "month") {
11743
+ // return (
11744
+ // <div className={`${"bhd-picker-cell-inner"}`}>
11745
+ // {current.format(dayjs.locale() === "zh-cn" ? "MMMM" : "MMM")}
11746
+ // </div>
11747
+ // );
11643
11748
  return /*#__PURE__*/ jsx("div", {
11644
11749
  className: "bhd-picker-cell-inner",
11645
- children: current.format(lang === "zh_CN" ? "MMMM" : "MMM")
11750
+ children: i18Conversion$1(months[Number(current.format("M")) - 1])
11646
11751
  });
11647
11752
  }
11648
11753
  return info.originNode;
@@ -11669,25 +11774,24 @@ var BhdDatePicker = function(props) {
11669
11774
  };
11670
11775
  // 渲染底部扩展内容(包括确定按钮、今天按钮、预设、传入的底部扩展)
11671
11776
  var selfRenderExtraFooter = function(mode) {
11672
- var _selectedRangeDate, _selectedRangeDate1;
11777
+ var _selectedRangeDate, _selectedRangeDate1, _selectedRangeDate2, _selectedRangeDate3;
11673
11778
  return /*#__PURE__*/ jsxs(Fragment, {
11674
11779
  children: [
11675
- renderExtraFooter && /*#__PURE__*/ jsx("div", {
11676
- className: "bhddatepicker-picker-footer-extra-extend",
11677
- children: renderExtraFooter()
11678
- }),
11679
11780
  !showTime ? /*#__PURE__*/ jsx(Fragment, {
11680
- children: /*#__PURE__*/ jsxs("ul", {
11781
+ children: ((picker || "date") === "date" && showToday || presets && presets.length > 0 || needConfirm) && /*#__PURE__*/ jsxs("ul", {
11681
11782
  className: "bhd-picker-ranges",
11682
11783
  children: [
11683
11784
  selfRenderPresets(),
11684
- renderNow(),
11685
- /*#__PURE__*/ jsx("li", {
11785
+ renderToday(),
11786
+ needConfirm && /*#__PURE__*/ jsx("li", {
11686
11787
  className: "bhd-picker-ok",
11687
11788
  children: /*#__PURE__*/ jsx(Button, {
11688
11789
  type: "primary",
11689
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),
11690
- 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
+ },
11691
11795
  children: i18Conversion$1("确定")
11692
11796
  })
11693
11797
  })
@@ -11696,37 +11800,92 @@ var BhdDatePicker = function(props) {
11696
11800
  }) : /*#__PURE__*/ jsx("ul", {
11697
11801
  className: "bhd-picker-ranges showPresets ".concat(showNow ? "showNow" : ""),
11698
11802
  children: selfRenderPresets()
11803
+ }),
11804
+ renderExtraFooter && /*#__PURE__*/ jsx("div", {
11805
+ className: "bhddatepicker-picker-footer-extra-extend",
11806
+ children: renderExtraFooter(mode)
11699
11807
  })
11700
11808
  ]
11701
11809
  });
11702
11810
  };
11703
- // 渲染今天
11704
- var renderNow = function() {
11705
- // 显示now
11706
- if (showNow) {
11707
- var _extraItems;
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() {
11823
+ if (showToday) {
11824
+ if (kind === "single" && panelMode === "date") {
11825
+ return true;
11826
+ }
11708
11827
  // 日程安排时: extraItems中今天是否是可选或者已选择状态
11709
- var hasNow = ((_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.filter(function(item) {
11710
- return item.status !== "noselectable";
11711
- }).length) > 0;
11712
- if (kind === "single" || kind === "extra" && hasNow) {
11713
- if (mode === "date" || mode === undefined) {
11714
- return /*#__PURE__*/ jsx("li", {
11715
- className: "bhd-picker-now",
11716
- children: /*#__PURE__*/ jsx("a", {
11717
- className: "bhd-picker-now-btn",
11718
- onClick: todayClick,
11719
- children: showTime ? i18Conversion$1("此刻") : i18Conversion$1("今天")
11720
- })
11721
- });
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;
11722
11835
  }
11723
11836
  }
11724
11837
  }
11725
- 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;
11880
+ };
11881
+ // 获取到年月日
11882
+ var getToday = function() {
11883
+ var date = new Date();
11884
+ return date.getFullYear().toString() + (date.getMonth() + 1).toString().padStart(2, "0") + date.getDate().toString().padStart(2, "0");
11726
11885
  };
11727
11886
  // 渲染预设
11728
11887
  var selfRenderPresets = function() {
11729
- return /*#__PURE__*/ jsx("li", {
11888
+ return presets && presets.length > 0 ? /*#__PURE__*/ jsx("li", {
11730
11889
  className: "bhd-picker-presets",
11731
11890
  children: presets.map(function(item, index) {
11732
11891
  return /*#__PURE__*/ jsx("a", {
@@ -11737,54 +11896,100 @@ var BhdDatePicker = function(props) {
11737
11896
  children: item.label
11738
11897
  }, index);
11739
11898
  })
11740
- });
11899
+ }) : null;
11741
11900
  };
11742
11901
  // 日期选择确认
11743
11902
  var okClick = function() {
11744
11903
  if (kind === "range") {
11745
- if (selectedRangeDate[0] && selectedRangeDate[1] && selectedRangeDateString[0] && selectedRangeDateString[1]) {
11746
- 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
+ }
11747
11913
  setPanelOpen(false);
11748
- } else {
11749
- setPanelOpen(true);
11750
11914
  }
11751
11915
  } else {
11752
- if (selectedDate && selectedDateString) {
11753
- onChange && onChange(selectedDate, selectedDateString);
11916
+ if (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
+ }
11754
11924
  setPanelOpen(false);
11755
11925
  }
11756
11926
  }
11757
11927
  };
11758
11928
  // 今天点击
11759
- var todayClick = function() {
11760
- // var today = dayjs();
11761
- // var todayString = today.format(format);
11762
- // setSelectedDate((prevState) => {
11763
- // selectedDateRef.current = today;
11764
- // return selectedDateRef.current;
11765
- // });
11766
- // setSelectedDateString((prevState) => {
11767
- // selectedDateStringRef.current = todayString;
11768
- // return selectedDateStringRef.current;
11769
- // });
11770
- // onChange && onChange(today, todayString);
11771
- // setPanelOpen(false);
11929
+ var todayClick = useCallback(function() {
11930
+ setTimeout(function() {
11931
+ okClick();
11932
+ }, 0);
11933
+ }, []);
11934
+ var todayClickEventListener = function(value) {
11935
+ if (!value) return;
11936
+ if (showToday) {
11937
+ var _document_getElementsByClassName__getElementsByClassName, _document_getElementsByClassName_, _document_getElementsByClassName;
11938
+ 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];
11939
+ if (value) {
11940
+ var _btn, _btn1;
11941
+ (_btn = btn) === null || _btn === void 0 ? void 0 : _btn.removeEventListener("click", todayClick);
11942
+ (_btn1 = btn) === null || _btn1 === void 0 ? void 0 : _btn1.addEventListener("click", todayClick, {
11943
+ once: true
11944
+ });
11945
+ }
11946
+ }
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
+ }
11772
11961
  };
11773
11962
  //预设点击
11774
11963
  var presetClick = function(info) {
11775
- console.log(_type_of(info.value));
11776
11964
  var value = typeof info.value === "function" ? info.value() : info.value;
11777
- var valueString = value.format(format);
11778
- setSelectedDate(function(prevState) {
11779
- selectedDateRef.current = value;
11780
- return selectedDateRef.current;
11781
- });
11782
- setSelectedDateString(function(prevState) {
11783
- selectedDateStringRef.current = valueString;
11784
- return selectedDateStringRef.current;
11785
- });
11786
- onChange && onChange(value, valueString);
11787
- setPanelOpen(false);
11965
+ if (kind === "range") {
11966
+ var valueString = [
11967
+ value[0].format(format),
11968
+ value[1].format(format)
11969
+ ];
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
+ });
11978
+ onChange && onChange(value, valueString);
11979
+ setPanelOpen(false);
11980
+ } else {
11981
+ var valueString1 = value.format(format);
11982
+ setSelectedDate(function(prevState) {
11983
+ selectedDateRef.current = value;
11984
+ return selectedDateRef.current;
11985
+ });
11986
+ setSelectedDateString(function(prevState) {
11987
+ selectedDateStringRef.current = valueString1;
11988
+ return selectedDateStringRef.current;
11989
+ });
11990
+ onChange && onChange(value, valueString1);
11991
+ setPanelOpen(false);
11992
+ }
11788
11993
  };
11789
11994
  return /*#__PURE__*/ jsxs("span", {
11790
11995
  className: "".concat(modules_63b47c51.bhdDatePicker),
@@ -11792,8 +11997,9 @@ var BhdDatePicker = function(props) {
11792
11997
  children: [
11793
11998
  (kind === "single" || kind === "extra") && /*#__PURE__*/ jsx(Fragment, {
11794
11999
  children: /*#__PURE__*/ jsx(DatePicker, _object_spread_props(_object_spread({}, getConfig()), {
12000
+ ref: pickerRef,
12001
+ id: id,
11795
12002
  value: selectedDate,
11796
- showNow: showTime ? showNow : false,
11797
12003
  mode: panelMode,
11798
12004
  open: panelOpen,
11799
12005
  disabledDate: selfDisabledDate,
@@ -11802,9 +12008,12 @@ var BhdDatePicker = function(props) {
11802
12008
  onPanelChange && onPanelChange(value, mode);
11803
12009
  },
11804
12010
  onOpenChange: function(value) {
12011
+ setPanelOpenChange(value);
11805
12012
  // 打开设置默认mode
11806
12013
  if (value) {
11807
12014
  setDefaultMode();
12015
+ todayClickEventListener(value);
12016
+ nowClickEventListener(value);
11808
12017
  }
11809
12018
  onOpenChange && onOpenChange(value);
11810
12019
  },
@@ -11817,6 +12026,12 @@ var BhdDatePicker = function(props) {
11817
12026
  selectedDateStringRef.current = dateString;
11818
12027
  return selectedDateStringRef.current;
11819
12028
  });
12029
+ isChange.current = true;
12030
+ if (!needConfirm) {
12031
+ setTimeout(function() {
12032
+ okClick();
12033
+ }, 0);
12034
+ }
11820
12035
  },
11821
12036
  onOk: function(date) {
11822
12037
  if (showTime) {
@@ -11832,16 +12047,28 @@ var BhdDatePicker = function(props) {
11832
12047
  onClick && onClick(e);
11833
12048
  },
11834
12049
  onBlur: function(e) {
11835
- okClick();
11836
- 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
+ }
11837
12064
  onBlur && onBlur(e);
11838
12065
  }
11839
12066
  }))
11840
12067
  }),
11841
12068
  kind === "range" && /*#__PURE__*/ jsx(Fragment, {
11842
12069
  children: /*#__PURE__*/ jsx(RangePicker, _object_spread_props(_object_spread({}, getConfig()), {
12070
+ ref: pickerRef,
11843
12071
  value: selectedRangeDate,
11844
- showNow: false,
11845
12072
  mode: rangePanelMode,
11846
12073
  open: panelOpen,
11847
12074
  disabledDate: selfDisabledDate,
@@ -11850,31 +12077,92 @@ var BhdDatePicker = function(props) {
11850
12077
  onPanelChange && onPanelChange(value, mode);
11851
12078
  },
11852
12079
  onOpenChange: function(value) {
12080
+ setPanelOpenChange(value);
11853
12081
  if (value) {
11854
12082
  setDefaultMode();
11855
12083
  }
11856
12084
  if (showTime) {
11857
12085
  setPanelOpen(value);
11858
12086
  }
11859
- setRangeOpenChange(value);
11860
12087
  onOpenChange && onOpenChange(value);
11861
12088
  },
11862
12089
  onClick: function(e) {
11863
12090
  setPanelOpen(true);
12091
+ selectRange.current = [];
11864
12092
  onClick && onClick(e);
11865
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
+ },
11866
12121
  onCalendarChange: function(dates, dateStrings, info) {
11867
- setSelectedRangeDate(dates);
11868
- setSelectedRangeDateString(dateStrings);
11869
- 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
+ }
11870
12147
  },
11871
12148
  onBlur: function(e) {
11872
- var _selectedRangeDate, _selectedRangeDate1, _selectedRangeDate2, _selectedRangeDate3;
11873
- if (((_selectedRangeDate = selectedRangeDate) === null || _selectedRangeDate === void 0 ? void 0 : _selectedRangeDate[0]) && ((_selectedRangeDate1 = selectedRangeDate) === null || _selectedRangeDate1 === void 0 ? void 0 : _selectedRangeDate1[1])) {
11874
- okClick();
11875
- setPanelOpen(false);
11876
- } else if (!((_selectedRangeDate2 = selectedRangeDate) === null || _selectedRangeDate2 === void 0 ? void 0 : _selectedRangeDate2[0]) || !((_selectedRangeDate3 = selectedRangeDate) === null || _selectedRangeDate3 === void 0 ? void 0 : _selectedRangeDate3[1])) {
11877
- 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);
11878
12166
  }
11879
12167
  onBlur && onBlur(e);
11880
12168
  }
@@ -11882,7 +12170,7 @@ var BhdDatePicker = function(props) {
11882
12170
  })
11883
12171
  ]
11884
12172
  });
11885
- };
12173
+ });
11886
12174
  var BhdDatePicker$1 = BhdDatePicker;
11887
12175
 
11888
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 };