@udi-organization/udi-package 1.0.74 → 1.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1,7 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
3
+ var react = require('react');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
+ var md = require('react-icons/md');
6
+ var moment = require('moment');
7
+ var fa = require('react-icons/fa');
8
+ var material = require('@mui/material');
9
+ var AdapterDateFns = require('@mui/x-date-pickers/AdapterDateFns');
10
+ var LocalizationProvider = require('@mui/x-date-pickers/LocalizationProvider');
11
+ var MobileDateTimePicker = require('@mui/x-date-pickers/MobileDateTimePicker');
12
+ var PropTypes = require('prop-types');
5
13
 
6
14
  function _arrayLikeToArray(r, a) {
7
15
  (null == a || a > r.length) && (a = r.length);
@@ -39,8 +47,8 @@ function _asyncToGenerator(n) {
39
47
  });
40
48
  };
41
49
  }
42
- function _defineProperty$1(e, r, t) {
43
- return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, {
50
+ function _defineProperty(e, r, t) {
51
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
44
52
  value: t,
45
53
  enumerable: true,
46
54
  configurable: true,
@@ -80,7 +88,7 @@ function _nonIterableRest() {
80
88
  function _nonIterableSpread() {
81
89
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
82
90
  }
83
- function ownKeys$1(e, r) {
91
+ function ownKeys(e, r) {
84
92
  var t = Object.keys(e);
85
93
  if (Object.getOwnPropertySymbols) {
86
94
  var o = Object.getOwnPropertySymbols(e);
@@ -93,34 +101,14 @@ function ownKeys$1(e, r) {
93
101
  function _objectSpread2(e) {
94
102
  for (var r = 1; r < arguments.length; r++) {
95
103
  var t = null != arguments[r] ? arguments[r] : {};
96
- r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) {
97
- _defineProperty$1(e, r, t[r]);
98
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {
104
+ r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
105
+ _defineProperty(e, r, t[r]);
106
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
99
107
  Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
100
108
  });
101
109
  }
102
110
  return e;
103
111
  }
104
- function _objectWithoutProperties$1(e, t) {
105
- if (null == e) return {};
106
- var o,
107
- r,
108
- i = _objectWithoutPropertiesLoose$1(e, t);
109
- if (Object.getOwnPropertySymbols) {
110
- var n = Object.getOwnPropertySymbols(e);
111
- for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
112
- }
113
- return i;
114
- }
115
- function _objectWithoutPropertiesLoose$1(r, e) {
116
- if (null == r) return {};
117
- var t = {};
118
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
119
- if (-1 !== e.indexOf(n)) continue;
120
- t[n] = r[n];
121
- }
122
- return t;
123
- }
124
112
  function _regenerator() {
125
113
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
126
114
  var e,
@@ -235,7 +223,7 @@ function _slicedToArray(r, e) {
235
223
  function _toConsumableArray(r) {
236
224
  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
237
225
  }
238
- function _toPrimitive$1(t, r) {
226
+ function _toPrimitive(t, r) {
239
227
  if ("object" != typeof t || !t) return t;
240
228
  var e = t[Symbol.toPrimitive];
241
229
  if (void 0 !== e) {
@@ -245,8 +233,8 @@ function _toPrimitive$1(t, r) {
245
233
  }
246
234
  return ("string" === r ? String : Number)(t);
247
235
  }
248
- function _toPropertyKey$1(t) {
249
- var i = _toPrimitive$1(t, "string");
236
+ function _toPropertyKey(t) {
237
+ var i = _toPrimitive(t, "string");
250
238
  return "symbol" == typeof i ? i : i + "";
251
239
  }
252
240
  function _unsupportedIterableToArray(r, a) {
@@ -257,56 +245,6 @@ function _unsupportedIterableToArray(r, a) {
257
245
  }
258
246
  }
259
247
 
260
- var _excluded$1 = ["children", "onClick", "variant", "disabled", "className"];
261
- var Button = function Button(_ref) {
262
- var children = _ref.children,
263
- onClick = _ref.onClick,
264
- _ref$variant = _ref.variant,
265
- variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
266
- _ref$disabled = _ref.disabled,
267
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
268
- _ref$className = _ref.className,
269
- className = _ref$className === void 0 ? '' : _ref$className,
270
- props = _objectWithoutProperties$1(_ref, _excluded$1);
271
- var baseStyles = {
272
- padding: '10px 20px',
273
- borderRadius: '6px',
274
- border: 'none',
275
- cursor: disabled ? 'not-allowed' : 'pointer',
276
- fontSize: '14px',
277
- fontWeight: '500',
278
- opacity: disabled ? 0.6 : 1,
279
- transition: 'all 0.2s ease'
280
- };
281
- var variantStyles = {
282
- primary: {
283
- backgroundColor: '#007bff',
284
- color: 'white'
285
- },
286
- secondary: {
287
- backgroundColor: '#6c757d',
288
- color: 'white'
289
- },
290
- success: {
291
- backgroundColor: '#28a745',
292
- color: 'white'
293
- },
294
- danger: {
295
- backgroundColor: '#dc3545',
296
- color: 'white'
297
- }
298
- };
299
- var buttonStyle = _objectSpread2(_objectSpread2({}, baseStyles), variantStyles[variant]);
300
- return /*#__PURE__*/jsxRuntime.jsx("button", _objectSpread2(_objectSpread2({
301
- style: buttonStyle,
302
- onClick: onClick,
303
- disabled: disabled,
304
- className: className
305
- }, props), {}, {
306
- children: children
307
- }));
308
- };
309
-
310
248
  function styleInject(css, ref) {
311
249
  if ( ref === void 0 ) ref = {};
312
250
  var insertAt = ref.insertAt;
@@ -515,72 +453,6 @@ var DesktopPaginationControls = function DesktopPaginationControls(_ref3) {
515
453
  });
516
454
  };
517
455
 
518
- var DefaultContext = {
519
- color: undefined,
520
- size: undefined,
521
- className: undefined,
522
- style: undefined,
523
- attr: undefined
524
- };
525
- var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);
526
-
527
- var _excluded = ["attr", "size", "title"];
528
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
529
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }
530
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
531
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
532
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
533
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
534
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
535
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
536
- function Tree2Element(tree) {
537
- return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({
538
- key: i
539
- }, node.attr), Tree2Element(node.child)));
540
- }
541
- function GenIcon(data) {
542
- return props => /*#__PURE__*/React.createElement(IconBase, _extends({
543
- attr: _objectSpread({}, data.attr)
544
- }, props), Tree2Element(data.child));
545
- }
546
- function IconBase(props) {
547
- var elem = conf => {
548
- var {
549
- attr,
550
- size,
551
- title
552
- } = props,
553
- svgProps = _objectWithoutProperties(props, _excluded);
554
- var computedSize = size || conf.size || "1em";
555
- var className;
556
- if (conf.className) className = conf.className;
557
- if (props.className) className = (className ? className + " " : "") + props.className;
558
- return /*#__PURE__*/React.createElement("svg", _extends({
559
- stroke: "currentColor",
560
- fill: "currentColor",
561
- strokeWidth: "0"
562
- }, conf.attr, attr, svgProps, {
563
- className: className,
564
- style: _objectSpread(_objectSpread({
565
- color: props.color || conf.color
566
- }, conf.style), props.style),
567
- height: computedSize,
568
- width: computedSize,
569
- xmlns: "http://www.w3.org/2000/svg"
570
- }), title && /*#__PURE__*/React.createElement("title", null, title), props.children);
571
- };
572
- return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);
573
- }
574
-
575
- // THIS FILE IS AUTO GENERATED
576
- function MdExpandLess (props) {
577
- return GenIcon({"attr":{"viewBox":"0 0 24 24"},"child":[{"tag":"path","attr":{"fill":"none","d":"M0 0h24v24H0z"},"child":[]},{"tag":"path","attr":{"d":"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"},"child":[]}]})(props);
578
- }function MdExpandMore (props) {
579
- return GenIcon({"attr":{"viewBox":"0 0 24 24"},"child":[{"tag":"path","attr":{"fill":"none","d":"M0 0h24v24H0z"},"child":[]},{"tag":"path","attr":{"d":"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"},"child":[]}]})(props);
580
- }function MdOutlineMenuBook (props) {
581
- return GenIcon({"attr":{"viewBox":"0 0 24 24"},"child":[{"tag":"path","attr":{"fill":"none","d":"M0 0h24v24H0z"},"child":[]},{"tag":"path","attr":{"d":"M21 5c-1.11-.35-2.33-.5-3.5-.5-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5V6c-.6-.45-1.25-.75-2-1zm0 13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z"},"child":[]},{"tag":"path","attr":{"d":"M17.5 10.5c.88 0 1.73.09 2.5.26V9.24c-.79-.15-1.64-.24-2.5-.24-1.7 0-3.24.29-4.5.83v1.66c1.13-.64 2.7-.99 4.5-.99zM13 12.49v1.66c1.13-.64 2.7-.99 4.5-.99.88 0 1.73.09 2.5.26V11.9c-.79-.15-1.64-.24-2.5-.24-1.7 0-3.24.3-4.5.83zM17.5 14.33c-1.7 0-3.24.29-4.5.83v1.66c1.13-.64 2.7-.99 4.5-.99.88 0 1.73.09 2.5.26v-1.52c-.79-.16-1.64-.24-2.5-.24z"},"child":[]}]})(props);
582
- }
583
-
584
456
  var TableHeader = function TableHeader(_ref) {
585
457
  var name = _ref.name,
586
458
  _ref$freeActions = _ref.freeActions,
@@ -613,9 +485,9 @@ var TableHeader = function TableHeader(_ref) {
613
485
  style: hasTheme ? {
614
486
  color: getCSSVariable('--color-text-primary')
615
487
  } : {},
616
- children: isCollapsed ? /*#__PURE__*/jsxRuntime.jsx(MdExpandMore, {
488
+ children: isCollapsed ? /*#__PURE__*/jsxRuntime.jsx(md.MdExpandMore, {
617
489
  size: 20
618
- }) : /*#__PURE__*/jsxRuntime.jsx(MdExpandLess, {
490
+ }) : /*#__PURE__*/jsxRuntime.jsx(md.MdExpandLess, {
619
491
  size: 20
620
492
  })
621
493
  }), /*#__PURE__*/jsxRuntime.jsx("h3", {
@@ -641,7 +513,7 @@ var TableHeader = function TableHeader(_ref) {
641
513
  className: "udi-table-free-action-button",
642
514
  style: _objectSpread2({}, action.style),
643
515
  disabled: action.disabled,
644
- children: action.icon ? action.icon : action.label ? action.label : /*#__PURE__*/jsxRuntime.jsx(MdOutlineMenuBook, {})
516
+ children: action.icon ? action.icon : action.label ? action.label : /*#__PURE__*/jsxRuntime.jsx(md.MdOutlineMenuBook, {})
645
517
  }, index);
646
518
  })
647
519
  })]
@@ -963,29 +835,29 @@ function useDataRequest(_ref) {
963
835
  _ref$isDev = _ref.isDev,
964
836
  isDev = _ref$isDev === void 0 ? false : _ref$isDev;
965
837
  // 資料狀態
966
- var _useState = React.useState([]),
838
+ var _useState = react.useState([]),
967
839
  _useState2 = _slicedToArray(_useState, 2),
968
840
  data = _useState2[0],
969
841
  setData = _useState2[1];
970
- var _useState3 = React.useState(false),
842
+ var _useState3 = react.useState(false),
971
843
  _useState4 = _slicedToArray(_useState3, 2),
972
844
  loading = _useState4[0],
973
845
  setLoading = _useState4[1];
974
- var _useState5 = React.useState(0),
846
+ var _useState5 = react.useState(0),
975
847
  _useState6 = _slicedToArray(_useState5, 2),
976
848
  totalCount = _useState6[0],
977
849
  setTotalCount = _useState6[1];
978
- var _useState7 = React.useState(null),
850
+ var _useState7 = react.useState(null),
979
851
  _useState8 = _slicedToArray(_useState7, 2),
980
852
  error = _useState8[0],
981
853
  setError = _useState8[1];
982
- var _useState9 = React.useState(false),
854
+ var _useState9 = react.useState(false),
983
855
  _useState0 = _slicedToArray(_useState9, 2),
984
856
  isInfiniteScroll = _useState0[0],
985
857
  setIsInfiniteScroll = _useState0[1];
986
858
 
987
859
  // 執行資料請求
988
- var executeDataRequest = React.useCallback(/*#__PURE__*/function () {
860
+ var executeDataRequest = react.useCallback(/*#__PURE__*/function () {
989
861
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(params) {
990
862
  var result, responseData, _t, _t2;
991
863
  return _regenerator().w(function (_context) {
@@ -1053,7 +925,7 @@ function useDataRequest(_ref) {
1053
925
  }(), [onDataRequest, isInfiniteScroll, isDev]);
1054
926
 
1055
927
  // 防抖的請求執行
1056
- var debouncedDataRequest = React.useMemo(function () {
928
+ var debouncedDataRequest = react.useMemo(function () {
1057
929
  var timeoutId;
1058
930
  return function (params) {
1059
931
  clearTimeout(timeoutId);
@@ -1064,7 +936,7 @@ function useDataRequest(_ref) {
1064
936
  }, [executeDataRequest]);
1065
937
 
1066
938
  // 初始載入
1067
- var initialLoad = React.useCallback(function (currentPageSize) {
939
+ var initialLoad = react.useCallback(function (currentPageSize) {
1068
940
  if (onDataRequest) {
1069
941
  var params = {
1070
942
  page: 0,
@@ -1080,7 +952,7 @@ function useDataRequest(_ref) {
1080
952
  }, [onDataRequest, executeDataRequest]);
1081
953
 
1082
954
  // 重置資料
1083
- var resetData = React.useCallback(function () {
955
+ var resetData = react.useCallback(function () {
1084
956
  setData([]);
1085
957
  setTotalCount(0);
1086
958
  setError(null);
@@ -1118,7 +990,7 @@ function useTableScroll() {
1118
990
  _ref$data = _ref.data,
1119
991
  data = _ref$data === void 0 ? [] : _ref$data;
1120
992
  // 滾動位置狀態
1121
- var _useState = React.useState({
993
+ var _useState = react.useState({
1122
994
  top: 0,
1123
995
  left: 0,
1124
996
  verticalPercent: 0,
@@ -1129,7 +1001,7 @@ function useTableScroll() {
1129
1001
  setScrollPosition = _useState2[1];
1130
1002
 
1131
1003
  // 滾動條資訊
1132
- var _useState3 = React.useState({
1004
+ var _useState3 = react.useState({
1133
1005
  hasHorizontal: false,
1134
1006
  hasVertical: false,
1135
1007
  maxScrollLeft: 0,
@@ -1140,10 +1012,10 @@ function useTableScroll() {
1140
1012
  setScrollbarInfo = _useState4[1];
1141
1013
 
1142
1014
  // 表格容器 ref
1143
- var tableWrapperRef = React.useRef(null);
1015
+ var tableWrapperRef = react.useRef(null);
1144
1016
 
1145
1017
  // 滾動事件處理(使用 throttle)
1146
- React.useEffect(function () {
1018
+ react.useEffect(function () {
1147
1019
  var tableWrapper = tableWrapperRef.current;
1148
1020
  if (!tableWrapper) return;
1149
1021
 
@@ -1224,7 +1096,7 @@ function useTableScroll() {
1224
1096
  }, [data]); // 當數據變化時重新初始化
1225
1097
 
1226
1098
  // 滾動控制函數
1227
- var scrollControl = React.useCallback(function (axis, value) {
1099
+ var scrollControl = react.useCallback(function (axis, value) {
1228
1100
  var tableWrapper = tableWrapperRef.current;
1229
1101
  if (!tableWrapper) return;
1230
1102
  var maxScrollTop = tableWrapper.scrollHeight - tableWrapper.clientHeight;
@@ -1238,7 +1110,7 @@ function useTableScroll() {
1238
1110
  }, []);
1239
1111
 
1240
1112
  // 便捷滾動方法
1241
- var scrollTo = React.useCallback(function () {
1113
+ var scrollTo = react.useCallback(function () {
1242
1114
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1243
1115
  var top = options.top,
1244
1116
  left = options.left;
@@ -1247,31 +1119,31 @@ function useTableScroll() {
1247
1119
  }, [scrollControl]);
1248
1120
 
1249
1121
  // 滾動到頂部
1250
- var scrollToTop = React.useCallback(function () {
1122
+ var scrollToTop = react.useCallback(function () {
1251
1123
  scrollControl("top", 0);
1252
1124
  }, [scrollControl]);
1253
1125
 
1254
1126
  // 滾動到底部
1255
- var scrollToBottom = React.useCallback(function () {
1127
+ var scrollToBottom = react.useCallback(function () {
1256
1128
  var tableWrapper = tableWrapperRef.current;
1257
1129
  if (!tableWrapper) return;
1258
1130
  scrollControl("top", tableWrapper.scrollHeight);
1259
1131
  }, [scrollControl]);
1260
1132
 
1261
1133
  // 滾動到最左邊
1262
- var scrollToLeft = React.useCallback(function () {
1134
+ var scrollToLeft = react.useCallback(function () {
1263
1135
  scrollControl("left", 0);
1264
1136
  }, [scrollControl]);
1265
1137
 
1266
1138
  // 滾動到最右邊
1267
- var scrollToRight = React.useCallback(function () {
1139
+ var scrollToRight = react.useCallback(function () {
1268
1140
  var tableWrapper = tableWrapperRef.current;
1269
1141
  if (!tableWrapper) return;
1270
1142
  scrollControl("left", tableWrapper.scrollWidth);
1271
1143
  }, [scrollControl]);
1272
1144
 
1273
1145
  // 取得滾動狀態
1274
- var getScrollState = React.useCallback(function () {
1146
+ var getScrollState = react.useCallback(function () {
1275
1147
  return _objectSpread2(_objectSpread2(_objectSpread2({}, scrollPosition), scrollbarInfo), {}, {
1276
1148
  isAtTop: scrollPosition.verticalPercent === 0,
1277
1149
  isAtBottom: scrollPosition.verticalPercent === 100,
@@ -1309,39 +1181,39 @@ function useTableFilter() {
1309
1181
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1310
1182
  onFilterChange = _ref.onFilterChange;
1311
1183
  // 基本篩選狀態
1312
- var _useState = React.useState(""),
1184
+ var _useState = react.useState(""),
1313
1185
  _useState2 = _slicedToArray(_useState, 2),
1314
1186
  filterText = _useState2[0],
1315
1187
  setFilterText = _useState2[1];
1316
- var _useState3 = React.useState("all"),
1188
+ var _useState3 = react.useState("all"),
1317
1189
  _useState4 = _slicedToArray(_useState3, 2),
1318
1190
  filterColumn = _useState4[0],
1319
1191
  setFilterColumn = _useState4[1];
1320
1192
 
1321
1193
  // 進階篩選狀態
1322
- var _useState5 = React.useState(false),
1194
+ var _useState5 = react.useState(false),
1323
1195
  _useState6 = _slicedToArray(_useState5, 2),
1324
1196
  showAdvancedFilter = _useState6[0],
1325
1197
  setShowAdvancedFilter = _useState6[1];
1326
- var _useState7 = React.useState({}),
1198
+ var _useState7 = react.useState({}),
1327
1199
  _useState8 = _slicedToArray(_useState7, 2),
1328
1200
  advancedFilters = _useState8[0],
1329
1201
  setAdvancedFilters = _useState8[1];
1330
1202
 
1331
1203
  // 更新篩選文字
1332
- var updateFilterText = React.useCallback(function (value) {
1204
+ var updateFilterText = react.useCallback(function (value) {
1333
1205
  setFilterText(value);
1334
1206
  onFilterChange === null || onFilterChange === void 0 || onFilterChange();
1335
1207
  }, [onFilterChange]);
1336
1208
 
1337
1209
  // 更新篩選欄位
1338
- var updateFilterColumn = React.useCallback(function (value) {
1210
+ var updateFilterColumn = react.useCallback(function (value) {
1339
1211
  setFilterColumn(value);
1340
1212
  onFilterChange === null || onFilterChange === void 0 || onFilterChange();
1341
1213
  }, [onFilterChange]);
1342
1214
 
1343
1215
  // 重置所有篩選
1344
- var resetFilter = React.useCallback(function () {
1216
+ var resetFilter = react.useCallback(function () {
1345
1217
  setFilterText("");
1346
1218
  setFilterColumn("all");
1347
1219
  setAdvancedFilters({});
@@ -1349,21 +1221,21 @@ function useTableFilter() {
1349
1221
  }, [onFilterChange]);
1350
1222
 
1351
1223
  // 處理進階篩選變更
1352
- var handleAdvancedFilterChange = React.useCallback(function (columnKey, value) {
1224
+ var handleAdvancedFilterChange = react.useCallback(function (columnKey, value) {
1353
1225
  setAdvancedFilters(function (prev) {
1354
- return _objectSpread2(_objectSpread2({}, prev), {}, _defineProperty$1({}, columnKey, value));
1226
+ return _objectSpread2(_objectSpread2({}, prev), {}, _defineProperty({}, columnKey, value));
1355
1227
  });
1356
1228
  onFilterChange === null || onFilterChange === void 0 || onFilterChange();
1357
1229
  }, [onFilterChange]);
1358
1230
 
1359
1231
  // 清除進階篩選
1360
- var clearAdvancedFilters = React.useCallback(function () {
1232
+ var clearAdvancedFilters = react.useCallback(function () {
1361
1233
  setAdvancedFilters({});
1362
1234
  onFilterChange === null || onFilterChange === void 0 || onFilterChange();
1363
1235
  }, [onFilterChange]);
1364
1236
 
1365
1237
  // 切換進階篩選顯示
1366
- var toggleAdvancedFilter = React.useCallback(function () {
1238
+ var toggleAdvancedFilter = react.useCallback(function () {
1367
1239
  setShowAdvancedFilter(function (prev) {
1368
1240
  return !prev;
1369
1241
  });
@@ -1380,7 +1252,7 @@ function useTableFilter() {
1380
1252
  }).length + (filterText ? 1 : 0);
1381
1253
 
1382
1254
  // 取得篩選狀態
1383
- var getFilterState = React.useCallback(function () {
1255
+ var getFilterState = react.useCallback(function () {
1384
1256
  return {
1385
1257
  filterText: filterText,
1386
1258
  filterColumn: filterColumn,
@@ -1435,23 +1307,23 @@ function useResponsive() {
1435
1307
  mobileBreakpoint = _ref$mobileBreakpoint === void 0 ? 768 : _ref$mobileBreakpoint,
1436
1308
  _ref$tabletBreakpoint = _ref.tabletBreakpoint,
1437
1309
  tabletBreakpoint = _ref$tabletBreakpoint === void 0 ? 992 : _ref$tabletBreakpoint;
1438
- var _useState = React.useState(false),
1310
+ var _useState = react.useState(false),
1439
1311
  _useState2 = _slicedToArray(_useState, 2),
1440
1312
  isMobile = _useState2[0],
1441
1313
  setIsMobile = _useState2[1];
1442
- var _useState3 = React.useState(false),
1314
+ var _useState3 = react.useState(false),
1443
1315
  _useState4 = _slicedToArray(_useState3, 2),
1444
1316
  isTablet = _useState4[0],
1445
1317
  setIsTablet = _useState4[1];
1446
- var _useState5 = React.useState(typeof window !== "undefined" ? window.innerWidth : 0),
1318
+ var _useState5 = react.useState(typeof window !== "undefined" ? window.innerWidth : 0),
1447
1319
  _useState6 = _slicedToArray(_useState5, 2),
1448
1320
  screenWidth = _useState6[0],
1449
1321
  setScreenWidth = _useState6[1];
1450
- var _useState7 = React.useState(typeof window !== "undefined" ? window.innerHeight : 0),
1322
+ var _useState7 = react.useState(typeof window !== "undefined" ? window.innerHeight : 0),
1451
1323
  _useState8 = _slicedToArray(_useState7, 2),
1452
1324
  screenHeight = _useState8[0],
1453
1325
  setScreenHeight = _useState8[1];
1454
- React.useEffect(function () {
1326
+ react.useEffect(function () {
1455
1327
  var checkScreenSize = function checkScreenSize() {
1456
1328
  var width = window.innerWidth;
1457
1329
  var height = window.innerHeight;
@@ -1475,7 +1347,7 @@ function useResponsive() {
1475
1347
  var isDesktop = !isMobile && !isTablet;
1476
1348
 
1477
1349
  // 取得響應式狀態
1478
- var getResponsiveState = React.useCallback(function () {
1350
+ var getResponsiveState = react.useCallback(function () {
1479
1351
  return {
1480
1352
  isMobile: isMobile,
1481
1353
  isTablet: isTablet,
@@ -1511,7 +1383,7 @@ function useTableSort() {
1511
1383
  sortable = _ref$sortable === void 0 ? true : _ref$sortable,
1512
1384
  onSortChange = _ref.onSortChange;
1513
1385
  // 排序狀態
1514
- var _useState = React.useState({
1386
+ var _useState = react.useState({
1515
1387
  key: null,
1516
1388
  direction: "asc"
1517
1389
  }),
@@ -1520,7 +1392,7 @@ function useTableSort() {
1520
1392
  setSortConfig = _useState2[1];
1521
1393
 
1522
1394
  // 處理排序
1523
- var handleSort = React.useCallback(function (key) {
1395
+ var handleSort = react.useCallback(function (key) {
1524
1396
  if (!sortable) return;
1525
1397
  setSortConfig(function (prev) {
1526
1398
  var direction = "asc";
@@ -1536,7 +1408,7 @@ function useTableSort() {
1536
1408
  }, [sortable, onSortChange]);
1537
1409
 
1538
1410
  // 重置排序
1539
- var resetSort = React.useCallback(function () {
1411
+ var resetSort = react.useCallback(function () {
1540
1412
  setSortConfig({
1541
1413
  key: null,
1542
1414
  direction: "asc"
@@ -1545,7 +1417,7 @@ function useTableSort() {
1545
1417
  }, [onSortChange]);
1546
1418
 
1547
1419
  // 設定排序
1548
- var setSort = React.useCallback(function (key) {
1420
+ var setSort = react.useCallback(function (key) {
1549
1421
  var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "asc";
1550
1422
  setSortConfig({
1551
1423
  key: key,
@@ -1555,7 +1427,7 @@ function useTableSort() {
1555
1427
  }, [onSortChange]);
1556
1428
 
1557
1429
  // 切換排序方向
1558
- var toggleSortDirection = React.useCallback(function () {
1430
+ var toggleSortDirection = react.useCallback(function () {
1559
1431
  setSortConfig(function (prev) {
1560
1432
  return _objectSpread2(_objectSpread2({}, prev), {}, {
1561
1433
  direction: prev.direction === "asc" ? "desc" : "asc"
@@ -1570,7 +1442,7 @@ function useTableSort() {
1570
1442
  var sortOrder = sortConfig.direction;
1571
1443
 
1572
1444
  // 取得排序狀態
1573
- var getSortState = React.useCallback(function () {
1445
+ var getSortState = react.useCallback(function () {
1574
1446
  return {
1575
1447
  sortConfig: sortConfig,
1576
1448
  sortBy: sortBy,
@@ -1627,7 +1499,7 @@ var useTableDimensions = function useTableDimensions(_ref) {
1627
1499
  * 計算每個欄位的實際寬度
1628
1500
  * @returns {Object|null} 欄位寬度映射 { columnId: widthInPx } 或 null(不啟用時)
1629
1501
  */
1630
- var calculateColumnWidths = React.useMemo(function () {
1502
+ var calculateColumnWidths = react.useMemo(function () {
1631
1503
  // 如果沒有啟用自動寬度,返回 null(使用舊邏輯)
1632
1504
  if (!enableAutoWidth) return null;
1633
1505
 
@@ -1694,7 +1566,7 @@ var useTableDimensions = function useTableDimensions(_ref) {
1694
1566
  * @param {number} singleSize - 單獨尺寸
1695
1567
  * @returns {string} CSS 尺寸值
1696
1568
  */
1697
- var calculateSize = React.useCallback(function (mainSize, singleSize) {
1569
+ var calculateSize = react.useCallback(function (mainSize, singleSize) {
1698
1570
  if (singleSize) return "".concat(singleSize, "px");
1699
1571
  if (mainSize) return "".concat(mainSize, "px");
1700
1572
  return "auto";
@@ -1705,7 +1577,7 @@ var useTableDimensions = function useTableDimensions(_ref) {
1705
1577
  * @param {number} singleRowHeight - 單獨行高
1706
1578
  * @returns {string} CSS 高度值
1707
1579
  */
1708
- var rowHeight = React.useCallback(function (singleRowHeight) {
1580
+ var rowHeight = react.useCallback(function (singleRowHeight) {
1709
1581
  return calculateSize(mainRowHeight, singleRowHeight);
1710
1582
  }, [mainRowHeight, calculateSize]);
1711
1583
 
@@ -1714,7 +1586,7 @@ var useTableDimensions = function useTableDimensions(_ref) {
1714
1586
  * @param {number} singleColumnWidth - 單獨欄位寬度
1715
1587
  * @returns {string} CSS 寬度值
1716
1588
  */
1717
- var columnWidth = React.useCallback(function (singleColumnWidth) {
1589
+ var columnWidth = react.useCallback(function (singleColumnWidth) {
1718
1590
  return calculateSize(mainColumnWidth, singleColumnWidth);
1719
1591
  }, [mainColumnWidth, calculateSize]);
1720
1592
 
@@ -1725,7 +1597,7 @@ var useTableDimensions = function useTableDimensions(_ref) {
1725
1597
  * @param {boolean} options.isTitle - 是否為標題列
1726
1598
  * @returns {Object} CSS 尺寸物件
1727
1599
  */
1728
- var getGridSize = React.useCallback(function (column) {
1600
+ var getGridSize = react.useCallback(function (column) {
1729
1601
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1730
1602
  var _options$isTitle = options.isTitle,
1731
1603
  isTitle = _options$isTitle === void 0 ? false : _options$isTitle;
@@ -1801,38 +1673,38 @@ var useTablePagination = function useTablePagination(_ref) {
1801
1673
  _ref$totalCount = _ref.totalCount,
1802
1674
  totalCount = _ref$totalCount === void 0 ? 0 : _ref$totalCount;
1803
1675
  // 分頁狀態 (使用 0-based index)
1804
- var _useState = React.useState(0),
1676
+ var _useState = react.useState(0),
1805
1677
  _useState2 = _slicedToArray(_useState, 2),
1806
1678
  currentPage = _useState2[0],
1807
1679
  setCurrentPage = _useState2[1];
1808
- var _useState3 = React.useState(pageSize),
1680
+ var _useState3 = react.useState(pageSize),
1809
1681
  _useState4 = _slicedToArray(_useState3, 2),
1810
1682
  currentPageSize = _useState4[0],
1811
1683
  setCurrentPageSize = _useState4[1];
1812
1684
 
1813
1685
  // 計算總頁數
1814
- var totalPages = React.useMemo(function () {
1686
+ var totalPages = react.useMemo(function () {
1815
1687
  return Math.ceil(totalCount / currentPageSize);
1816
1688
  }, [totalCount, currentPageSize]);
1817
1689
 
1818
1690
  // 分頁處理
1819
- var handlePageChange = React.useCallback(function (page) {
1691
+ var handlePageChange = react.useCallback(function (page) {
1820
1692
  setCurrentPage(page);
1821
1693
  }, []);
1822
1694
 
1823
1695
  // 處理每頁顯示數量變更
1824
- var handlePageSizeChange = React.useCallback(function (newPageSize) {
1696
+ var handlePageSizeChange = react.useCallback(function (newPageSize) {
1825
1697
  setCurrentPageSize(newPageSize);
1826
1698
  setCurrentPage(0); // 重置到第一頁
1827
1699
  }, []);
1828
1700
 
1829
1701
  // 重置分頁到第一頁
1830
- var resetToFirstPage = React.useCallback(function () {
1702
+ var resetToFirstPage = react.useCallback(function () {
1831
1703
  setCurrentPage(0);
1832
1704
  }, []);
1833
1705
 
1834
1706
  // 分頁資訊(供外部使用)
1835
- var paginationInfo = React.useMemo(function () {
1707
+ var paginationInfo = react.useMemo(function () {
1836
1708
  return {
1837
1709
  currentPage: currentPage,
1838
1710
  currentPageSize: currentPageSize,
@@ -1930,7 +1802,7 @@ var useTableApi = function useTableApi(_ref) {
1930
1802
  return null;
1931
1803
  }
1932
1804
  } : _ref$themeState;
1933
- React.useImperativeHandle(ref, function () {
1805
+ react.useImperativeHandle(ref, function () {
1934
1806
  return {
1935
1807
  // ========== 數據操作方法 ==========
1936
1808
 
@@ -2172,17 +2044,17 @@ var useTableInteraction = function useTableInteraction(_ref) {
2172
2044
  _ref$tableWrapperRef = _ref.tableWrapperRef,
2173
2045
  tableWrapperRef = _ref$tableWrapperRef === void 0 ? null : _ref$tableWrapperRef;
2174
2046
  // 互動狀態
2175
- var _useState = React.useState(false),
2047
+ var _useState = react.useState(false),
2176
2048
  _useState2 = _slicedToArray(_useState, 2),
2177
2049
  isHovered = _useState2[0],
2178
2050
  setIsHovered = _useState2[1];
2179
- var _useState3 = React.useState(false),
2051
+ var _useState3 = react.useState(false),
2180
2052
  _useState4 = _slicedToArray(_useState3, 2),
2181
2053
  isDropdownOpen = _useState4[0],
2182
2054
  setIsDropdownOpen = _useState4[1];
2183
2055
 
2184
2056
  // 滑鼠進入處理
2185
- var handleMouseEnter = React.useCallback(function () {
2057
+ var handleMouseEnter = react.useCallback(function () {
2186
2058
  setIsHovered(true);
2187
2059
  if (syncTableControl && currentTableRef && tableWrapperRef) {
2188
2060
  currentTableRef.current = tableWrapperRef.current;
@@ -2190,19 +2062,19 @@ var useTableInteraction = function useTableInteraction(_ref) {
2190
2062
  }, [syncTableControl, currentTableRef, tableWrapperRef]);
2191
2063
 
2192
2064
  // 滑鼠離開處理(延遲 200ms)
2193
- var handleMouseLeave = React.useCallback(function () {
2065
+ var handleMouseLeave = react.useCallback(function () {
2194
2066
  setTimeout(function () {
2195
2067
  setIsHovered(false);
2196
2068
  }, 200);
2197
2069
  }, []);
2198
2070
 
2199
2071
  // Dropdown 獲得焦點處理
2200
- var handleDropdownFocus = React.useCallback(function () {
2072
+ var handleDropdownFocus = react.useCallback(function () {
2201
2073
  setIsDropdownOpen(true);
2202
2074
  }, []);
2203
2075
 
2204
2076
  // Dropdown 失去焦點處理
2205
- var handleDropdownBlur = React.useCallback(function () {
2077
+ var handleDropdownBlur = react.useCallback(function () {
2206
2078
  setIsDropdownOpen(false);
2207
2079
  }, []);
2208
2080
  return {
@@ -2236,7 +2108,7 @@ var useTableInteraction = function useTableInteraction(_ref) {
2236
2108
  function useThemeDetection() {
2237
2109
  // SSR 保護:確保只在瀏覽器環境執行
2238
2110
  var isBrowser = typeof window !== "undefined";
2239
- var _useState = React.useState({
2111
+ var _useState = react.useState({
2240
2112
  hasTheme: false,
2241
2113
  // 是否存在主題系統
2242
2114
  themeId: null,
@@ -2253,7 +2125,7 @@ function useThemeDetection() {
2253
2125
  * @param {string} fallback - 預設值(如果找不到 CSS 變數)
2254
2126
  * @returns {string} - CSS 變數值或預設值
2255
2127
  */
2256
- var getCSSVariable = React.useCallback(function (varName) {
2128
+ var getCSSVariable = react.useCallback(function (varName) {
2257
2129
  var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
2258
2130
  if (!isBrowser) return fallback;
2259
2131
  try {
@@ -2269,7 +2141,7 @@ function useThemeDetection() {
2269
2141
  * 偵測主題系統是否存在
2270
2142
  * @returns {Object} - 主題資訊
2271
2143
  */
2272
- var detectTheme = React.useCallback(function () {
2144
+ var detectTheme = react.useCallback(function () {
2273
2145
  if (!isBrowser) {
2274
2146
  return {
2275
2147
  hasTheme: false,
@@ -2296,7 +2168,7 @@ function useThemeDetection() {
2296
2168
  /**
2297
2169
  * 初始化:偵測主題並設置監聽器
2298
2170
  */
2299
- React.useEffect(function () {
2171
+ react.useEffect(function () {
2300
2172
  if (!isBrowser) return;
2301
2173
 
2302
2174
  // 初始偵測
@@ -2329,7 +2201,7 @@ function useThemeDetection() {
2329
2201
  * 取得完整主題資訊(包含所有主題色彩)
2330
2202
  * @returns {Object} - 完整的主題資訊
2331
2203
  */
2332
- var getThemeInfo = React.useCallback(function () {
2204
+ var getThemeInfo = react.useCallback(function () {
2333
2205
  if (!themeState.hasTheme) {
2334
2206
  return {
2335
2207
  hasTheme: false,
@@ -2377,7 +2249,7 @@ function useThemeDetection() {
2377
2249
  };
2378
2250
  }
2379
2251
 
2380
- var UdiTable = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2252
+ var UdiTable = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
2381
2253
  var _ref$current;
2382
2254
  var _ref$onDataRequest = _ref.onDataRequest,
2383
2255
  onDataRequest = _ref$onDataRequest === void 0 ? null : _ref$onDataRequest,
@@ -2421,7 +2293,7 @@ var UdiTable = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2421
2293
  _ref$defaultCollapsed = _ref.defaultCollapsed,
2422
2294
  defaultCollapsed = _ref$defaultCollapsed === void 0 ? false : _ref$defaultCollapsed;
2423
2295
  // 摺疊狀態
2424
- var _useState = React.useState(defaultCollapsed),
2296
+ var _useState = react.useState(defaultCollapsed),
2425
2297
  _useState2 = _slicedToArray(_useState, 2),
2426
2298
  isCollapsed = _useState2[0],
2427
2299
  setIsCollapsed = _useState2[1];
@@ -2442,7 +2314,7 @@ var UdiTable = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2442
2314
  getThemeInfo = _useThemeDetection.getThemeInfo;
2443
2315
 
2444
2316
  // 開發模式下顯示主題偵測資訊
2445
- React.useEffect(function () {
2317
+ react.useEffect(function () {
2446
2318
  if (isDev) {
2447
2319
  console.log('🎨 UdiTable Theme Detection:', {
2448
2320
  hasTheme: hasTheme,
@@ -2547,9 +2419,9 @@ var UdiTable = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2547
2419
  handleDropdownBlur = _useTableInteraction.handleDropdownBlur;
2548
2420
 
2549
2421
  //===========
2550
- React.useEffect(function () {
2422
+ react.useEffect(function () {
2551
2423
  setTablePage === null || setTablePage === void 0 || setTablePage(function (prev) {
2552
- return _objectSpread2(_objectSpread2({}, prev), {}, _defineProperty$1(_defineProperty$1({}, "".concat(name, "Page"), currentPage), "".concat(name, "PageSize"), currentPageSize));
2424
+ return _objectSpread2(_objectSpread2({}, prev), {}, _defineProperty(_defineProperty({}, "".concat(name, "Page"), currentPage), "".concat(name, "PageSize"), currentPageSize));
2553
2425
  });
2554
2426
  }, [currentPageSize, currentPage]);
2555
2427
 
@@ -2615,13 +2487,13 @@ var UdiTable = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2615
2487
 
2616
2488
  // 初始載入
2617
2489
  //=======
2618
- React.useEffect(function () {
2490
+ react.useEffect(function () {
2619
2491
  initialLoad(currentPageSize);
2620
2492
  }, []);
2621
2493
 
2622
2494
  // 監聽篩選和排序變化
2623
2495
  //=======
2624
- React.useEffect(function () {
2496
+ react.useEffect(function () {
2625
2497
  if (!onDataRequest) return;
2626
2498
  var params = {
2627
2499
  page: currentPage,
@@ -2634,14 +2506,14 @@ var UdiTable = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2634
2506
  };
2635
2507
  debouncedDataRequest(params);
2636
2508
  }, [currentPage, currentPageSize, filterText, filterColumn, advancedFilters, sortConfig]);
2637
- var freeActions = React.useMemo(function () {
2509
+ var freeActions = react.useMemo(function () {
2638
2510
  return actions.filter(function (action) {
2639
2511
  return action.isFreeAction === true;
2640
2512
  });
2641
2513
  }, [actions]);
2642
2514
 
2643
2515
  // 根據主題生成動態樣式
2644
- var containerStyles = React.useMemo(function () {
2516
+ var containerStyles = react.useMemo(function () {
2645
2517
  if (!hasTheme) {
2646
2518
  // 沒有主題系統時,使用預設樣式(由 CSS 控制)
2647
2519
  return {};
@@ -2838,8 +2710,8 @@ var throttle$1 = function throttle(func, wait) {
2838
2710
  * 控制滾動同步的內部 Hook
2839
2711
  */
2840
2712
  var useControlScroll = function useControlScroll() {
2841
- var rafId = React.useRef(null);
2842
- return React.useCallback(function (sourceRef, targetRef) {
2713
+ var rafId = react.useRef(null);
2714
+ return react.useCallback(function (sourceRef, targetRef) {
2843
2715
  // 取消上一次的動畫幀
2844
2716
  if (rafId.current) {
2845
2717
  cancelAnimationFrame(rafId.current);
@@ -2919,10 +2791,10 @@ var useUdiTableSync$1 = function useUdiTableSync() {
2919
2791
  _options$throttleMs = options.throttleMs,
2920
2792
  throttleMs = _options$throttleMs === void 0 ? 10 : _options$throttleMs;
2921
2793
  var controlScroll = useControlScroll();
2922
- var mountedRef = React.useRef(false);
2794
+ var mountedRef = react.useRef(false);
2923
2795
 
2924
2796
  // 分頁同步邏輯
2925
- React.useEffect(function () {
2797
+ react.useEffect(function () {
2926
2798
  if (!enabled || !syncPagination) return;
2927
2799
  if (!(importedTableRef !== null && importedTableRef !== void 0 && importedTableRef.current) || !(originalTableRef !== null && originalTableRef !== void 0 && originalTableRef.current)) return;
2928
2800
 
@@ -2930,7 +2802,7 @@ var useUdiTableSync$1 = function useUdiTableSync() {
2930
2802
  controlPagination(importedTableRef, originalTableRef);
2931
2803
  controlPagination(originalTableRef, importedTableRef);
2932
2804
  }, [enabled, syncPagination, importedTableRef, originalTableRef].concat(_toConsumableArray(paginationDeps)));
2933
- var handleTableMount = React.useCallback(function () {
2805
+ var handleTableMount = react.useCallback(function () {
2934
2806
  var _importedTableRef$cur, _originalTableRef$cur;
2935
2807
  var importedTableElement = importedTableRef === null || importedTableRef === void 0 || (_importedTableRef$cur = importedTableRef.current) === null || _importedTableRef$cur === void 0 ? void 0 : _importedTableRef$cur.getState().tableWrapperRef;
2936
2808
  var originalTableElement = originalTableRef === null || originalTableRef === void 0 || (_originalTableRef$cur = originalTableRef.current) === null || _originalTableRef$cur === void 0 ? void 0 : _originalTableRef$cur.getState().tableWrapperRef;
@@ -2986,7 +2858,7 @@ var useUdiTableSync$1 = function useUdiTableSync() {
2986
2858
  }, [importedTableRef, originalTableRef, controlScroll, correctionDelay, throttleMs]);
2987
2859
 
2988
2860
  // 統一的掛載邏輯(帶重試機制)- 僅用於滾動同步
2989
- React.useEffect(function () {
2861
+ react.useEffect(function () {
2990
2862
  if (!enabled || !syncScroll) {
2991
2863
  return;
2992
2864
  }
@@ -3146,20 +3018,20 @@ var useUdiTableSync = function useUdiTableSync() {
3146
3018
  }
3147
3019
  });
3148
3020
  // 存儲所有已註冊的表格
3149
- var registeredTablesRef = React.useRef(new Map());
3021
+ var registeredTablesRef = react.useRef(new Map());
3150
3022
  // 存儲滾動處理函數
3151
- var handlersRef = React.useRef(new Map());
3023
+ var handlersRef = react.useRef(new Map());
3152
3024
  // 存儲修正 timer
3153
- var timersRef = React.useRef(new Map());
3025
+ var timersRef = react.useRef(new Map());
3154
3026
  // RAF ID
3155
- var rafIdRef = React.useRef(null);
3027
+ var rafIdRef = react.useRef(null);
3156
3028
  // 防止循環同步的鎖
3157
- var isSyncingRef = React.useRef(false);
3029
+ var isSyncingRef = react.useRef(false);
3158
3030
 
3159
3031
  /**
3160
3032
  * 分頁同步邏輯 - 處理所有表格的分頁同步
3161
3033
  */
3162
- React.useEffect(function () {
3034
+ react.useEffect(function () {
3163
3035
  if (!enabled || !syncPagination || tables.length < 2) return;
3164
3036
 
3165
3037
  // 檢查所有表格的 ref 是否存在
@@ -3191,7 +3063,7 @@ var useUdiTableSync = function useUdiTableSync() {
3191
3063
  /**
3192
3064
  * 同步滾動位置到其他所有表格
3193
3065
  */
3194
- var syncToOthers = React.useCallback(function (sourceId) {
3066
+ var syncToOthers = react.useCallback(function (sourceId) {
3195
3067
  if (!enabled || !syncScroll || isSyncingRef.current) return;
3196
3068
  var sourceTable = registeredTablesRef.current.get(sourceId);
3197
3069
  if (!sourceTable) return;
@@ -3242,7 +3114,7 @@ var useUdiTableSync = function useUdiTableSync() {
3242
3114
  /**
3243
3115
  * 註冊單個表格
3244
3116
  */
3245
- var registerTable = React.useCallback(function (id, ref) {
3117
+ var registerTable = react.useCallback(function (id, ref) {
3246
3118
  var _ref$current;
3247
3119
  if (!enabled || !syncScroll) {
3248
3120
  console.warn("滾動同步未啟用");
@@ -3296,7 +3168,7 @@ var useUdiTableSync = function useUdiTableSync() {
3296
3168
  /**
3297
3169
  * 註銷單個表格
3298
3170
  */
3299
- var unregisterTable = React.useCallback(function (id) {
3171
+ var unregisterTable = react.useCallback(function (id) {
3300
3172
  var table = registeredTablesRef.current.get(id);
3301
3173
  if (!table) return false;
3302
3174
  var handler = handlersRef.current.get(id);
@@ -3324,7 +3196,7 @@ var useUdiTableSync = function useUdiTableSync() {
3324
3196
  /**
3325
3197
  * 帶重試機制的註冊
3326
3198
  */
3327
- var registerWithRetry = React.useCallback(function (id, ref) {
3199
+ var registerWithRetry = react.useCallback(function (id, ref) {
3328
3200
  var retryCount = 0;
3329
3201
  var retryTimer = null;
3330
3202
  var _attemptRegister = function attemptRegister() {
@@ -3350,7 +3222,7 @@ var useUdiTableSync = function useUdiTableSync() {
3350
3222
  /**
3351
3223
  * 註冊所有表格(滾動同步)
3352
3224
  */
3353
- React.useEffect(function () {
3225
+ react.useEffect(function () {
3354
3226
  if (!enabled || !syncScroll || tables.length === 0) {
3355
3227
  return;
3356
3228
  }
@@ -3375,7 +3247,7 @@ var useUdiTableSync = function useUdiTableSync() {
3375
3247
  /**
3376
3248
  * 組件卸載時清理所有資源
3377
3249
  */
3378
- React.useEffect(function () {
3250
+ react.useEffect(function () {
3379
3251
  return function () {
3380
3252
  // 取消 RAF
3381
3253
  if (rafIdRef.current) {
@@ -3405,14 +3277,14 @@ var useUdiTableSync = function useUdiTableSync() {
3405
3277
  /**
3406
3278
  * 獲取已註冊的表格列表
3407
3279
  */
3408
- var getRegisteredTables = React.useCallback(function () {
3280
+ var getRegisteredTables = react.useCallback(function () {
3409
3281
  return Array.from(registeredTablesRef.current.keys());
3410
3282
  }, []);
3411
3283
 
3412
3284
  /**
3413
3285
  * 手動觸發滾動同步
3414
3286
  */
3415
- var manualSync = React.useCallback(function (sourceId) {
3287
+ var manualSync = react.useCallback(function (sourceId) {
3416
3288
  if (syncScroll) {
3417
3289
  syncToOthers(sourceId);
3418
3290
  }
@@ -3421,7 +3293,7 @@ var useUdiTableSync = function useUdiTableSync() {
3421
3293
  /**
3422
3294
  * 手動觸發分頁同步
3423
3295
  */
3424
- var manualSyncPagination = React.useCallback(function () {
3296
+ var manualSyncPagination = react.useCallback(function () {
3425
3297
  if (!syncPagination || tables.length < 2) return;
3426
3298
  var hoveredTable = tables.find(function (table) {
3427
3299
  var _table$ref3;
@@ -3446,17 +3318,244 @@ var useUdiTableSync = function useUdiTableSync() {
3446
3318
  };
3447
3319
  };
3448
3320
 
3449
- function test(name) {
3450
- return "Hello, ".concat(name, "! this is a test 1208");
3321
+ function useDateRangePicker(tableRef, notify) {
3322
+ //============若未來沒bug的話可以刪除
3323
+ //
3324
+ // {{
3325
+ // const [startDate, setStartDate] = useState('');
3326
+ // const [endDate, setEndDate] = useState('');
3327
+ // const [startTimeStamp, setStartTimeStamp] = useState(0);
3328
+ // const [endTimeStamp, setEndTimeStamp] = useState(0);
3329
+
3330
+ //原訂功能:加載頁面後在useEffect中進行日期初始化後戳api,
3331
+ //修改原因:修改為直接在useState就初始化,而首次加載頁面本來就會戳api,應用不明
3332
+
3333
+ // const defaultSet = () => {
3334
+ // setStartDate(getStartOfDay);
3335
+ // setEndDate(getEndOfDay);
3336
+ // setStartTimeStamp(getStartOfDay.unix());
3337
+ // setEndTimeStamp(getEndOfDay.unix());
3338
+ // tableRef.current.onQueryChange();
3339
+ // };
3340
+ // }}
3341
+
3342
+ var getStartOfDay = moment().startOf('day');
3343
+ var getEndOfDay = moment().endOf('day');
3344
+ var _useState = react.useState(getStartOfDay),
3345
+ _useState2 = _slicedToArray(_useState, 2),
3346
+ startDate = _useState2[0],
3347
+ setStartDate = _useState2[1];
3348
+ var _useState3 = react.useState(getEndOfDay),
3349
+ _useState4 = _slicedToArray(_useState3, 2),
3350
+ endDate = _useState4[0],
3351
+ setEndDate = _useState4[1];
3352
+ var _useState5 = react.useState(getStartOfDay.unix()),
3353
+ _useState6 = _slicedToArray(_useState5, 2),
3354
+ startTimeStamp = _useState6[0],
3355
+ setStartTimeStamp = _useState6[1];
3356
+ var _useState7 = react.useState(getEndOfDay.unix()),
3357
+ _useState8 = _slicedToArray(_useState7, 2),
3358
+ endTimeStamp = _useState8[0],
3359
+ setEndTimeStamp = _useState8[1];
3360
+
3361
+ //如果選擇的起始日期在結束日期之後,則結束日期會自動變成起始日期的後一天
3362
+ var handleStartChange = function handleStartChange(value, callback) {
3363
+ var _tableRef$current;
3364
+ var startTimestamp = moment(value).unix();
3365
+ if (endTimeStamp > startTimestamp) {
3366
+ setStartDate(value);
3367
+ setStartTimeStamp(startTimestamp);
3368
+ } else {
3369
+ setStartDate(value);
3370
+ setStartTimeStamp(startTimestamp);
3371
+ setEndDate(moment(value).add(1, 'day'));
3372
+ setEndTimeStamp(moment(value).add(1, 'day').unix());
3373
+ }
3374
+ tableRef === null || tableRef === void 0 || (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 || _tableRef$current.onQueryChange();
3375
+ };
3376
+
3377
+ //如果選擇的結束日期在起始日期以前,則不變更值並且跳出error message
3378
+ var handleEndChange = function handleEndChange(value) {
3379
+ var startTimestamp = moment(startDate).unix();
3380
+ var setEndTimestampValue = moment(value).unix();
3381
+ if (setEndTimestampValue > startTimestamp) {
3382
+ var _tableRef$current2;
3383
+ setEndDate(value);
3384
+ setEndTimeStamp(setEndTimestampValue);
3385
+ tableRef === null || tableRef === void 0 || (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 || _tableRef$current2.onQueryChange();
3386
+ } else {
3387
+ notify(tr('End Date Set Error'), /*#__PURE__*/jsxRuntime.jsx(fa.FaClock, {
3388
+ color: "#FF4C4C",
3389
+ fontSize: "20"
3390
+ }));
3391
+ }
3392
+ };
3393
+ return {
3394
+ // defaultSet, ============若未來沒bug的話可以刪除
3395
+ handleEndChange: handleEndChange,
3396
+ handleStartChange: handleStartChange,
3397
+ setStartDate: setStartDate,
3398
+ setEndDate: setEndDate,
3399
+ setStartTimeStamp: setStartTimeStamp,
3400
+ setEndTimeStamp: setEndTimeStamp,
3401
+ startDate: startDate,
3402
+ endDate: endDate,
3403
+ startTimeStamp: startTimeStamp,
3404
+ endTimeStamp: endTimeStamp
3405
+ };
3406
+ }
3407
+
3408
+ function timestampFormat() {
3409
+ var timestamp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
3410
+ var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY-MM-DD HH:mm:ss';
3411
+ return timestamp ? moment(timestamp).format(format) : moment().format(format);
3412
+ }
3413
+
3414
+ function DateRangePicker(_ref) {
3415
+ var _ref$showTitle = _ref.showTitle,
3416
+ showTitle = _ref$showTitle === void 0 ? true : _ref$showTitle,
3417
+ pickerSize = _ref.pickerSize,
3418
+ handleStartChange = _ref.handleStartChange,
3419
+ handleEndChange = _ref.handleEndChange,
3420
+ classes = _ref.classes,
3421
+ startDate = _ref.startDate,
3422
+ endDate = _ref.endDate;
3423
+ classes = classes || {
3424
+ marginT8: {
3425
+ marginTop: "8px"
3426
+ },
3427
+ marginB10: {
3428
+ marginBottom: "10px"
3429
+ },
3430
+ gridStyle: {
3431
+ textAlign: "right",
3432
+ color: "#404040"
3433
+ },
3434
+ labelStyle: {
3435
+ fontWeight: "bold",
3436
+ marginLeft: 0,
3437
+ paddingTop: "5%",
3438
+ width: "100%"
3439
+ },
3440
+ textAlignLeft: {
3441
+ textAlign: "left"
3442
+ },
3443
+ uploadForm: {
3444
+ padding: "2rem",
3445
+ marginTop: "1rem",
3446
+ backgroundColor: "#d3d3d391",
3447
+ borderRadius: "3px",
3448
+ width: "100%"
3449
+ },
3450
+ uploadIcon: {
3451
+ fontSize: "3rem",
3452
+ marginTop: "5px",
3453
+ marginLeft: "5px",
3454
+ marginRight: "10px"
3455
+ },
3456
+ buttonStyle: {
3457
+ placeSelf: "flex-end"
3458
+ },
3459
+ marginTop10: {
3460
+ marginTop: "10px !important"
3461
+ },
3462
+ hospitalTitle: {
3463
+ marginTop: "1rem"
3464
+ }
3465
+ };
3466
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
3467
+ children: [showTitle && /*#__PURE__*/jsxRuntime.jsx(material.Grid, {
3468
+ item: true,
3469
+ container: true,
3470
+ xs: 12,
3471
+ sm: 2,
3472
+ md: 1,
3473
+ className: "".concat(classes.gridStyle, " ").concat(classes.marginB10, " ").concat(classes.textAlignLeft),
3474
+ style: {
3475
+ textAlign: "right"
3476
+ },
3477
+ alignContent: "center",
3478
+ children: /*#__PURE__*/jsxRuntime.jsxs(material.Typography, {
3479
+ variant: "h6",
3480
+ className: classes.labelStyle,
3481
+ children: [tr("Date"), "\uFF1A"]
3482
+ })
3483
+ }), /*#__PURE__*/jsxRuntime.jsx(material.Grid, {
3484
+ item: true,
3485
+ container: true,
3486
+ xs: (pickerSize === null || pickerSize === void 0 ? void 0 : pickerSize.xs) || 12,
3487
+ sm: (pickerSize === null || pickerSize === void 0 ? void 0 : pickerSize.sm) || 6,
3488
+ md: (pickerSize === null || pickerSize === void 0 ? void 0 : pickerSize.md) || 4,
3489
+ className: classes.marginB10,
3490
+ children: /*#__PURE__*/jsxRuntime.jsx(LocalizationProvider.LocalizationProvider, {
3491
+ dateAdapter: AdapterDateFns.AdapterDateFns,
3492
+ children: /*#__PURE__*/jsxRuntime.jsxs(material.Grid, {
3493
+ container: true,
3494
+ justifyContent: "center",
3495
+ children: [/*#__PURE__*/jsxRuntime.jsx(material.Grid, {
3496
+ item: true,
3497
+ sm: 6,
3498
+ style: {
3499
+ width: "100%",
3500
+ padding: 10
3501
+ },
3502
+ children: /*#__PURE__*/jsxRuntime.jsx(MobileDateTimePicker.MobileDateTimePicker, {
3503
+ label: tr("Start Date"),
3504
+ value: timestampFormat(startDate, "YYYY/MM/DD HH:mm"),
3505
+ inputFormat: "yyyy/MM/dd HH:mm",
3506
+ onChange: handleStartChange,
3507
+ renderInput: function renderInput(params) {
3508
+ return /*#__PURE__*/jsxRuntime.jsx(material.TextField, _objectSpread2(_objectSpread2({}, params), {}, {
3509
+ fullWidth: true
3510
+ }));
3511
+ }
3512
+ })
3513
+ }), /*#__PURE__*/jsxRuntime.jsx(material.Grid, {
3514
+ item: true,
3515
+ sm: 6,
3516
+ style: {
3517
+ width: "100%",
3518
+ padding: 10
3519
+ },
3520
+ children: /*#__PURE__*/jsxRuntime.jsx(MobileDateTimePicker.MobileDateTimePicker, {
3521
+ label: tr("End Date"),
3522
+ value: timestampFormat(endDate, "YYYY/MM/DD HH:mm"),
3523
+ inputFormat: "yyyy/MM/dd HH:mm",
3524
+ onChange: handleEndChange,
3525
+ renderInput: function renderInput(params) {
3526
+ return /*#__PURE__*/jsxRuntime.jsx(material.TextField, _objectSpread2(_objectSpread2({}, params), {}, {
3527
+ fullWidth: true
3528
+ }));
3529
+ }
3530
+ })
3531
+ })]
3532
+ })
3533
+ })
3534
+ })]
3535
+ });
3451
3536
  }
3452
- function add(a, b) {
3453
- return a + b;
3537
+ DateRangePicker.propTypes = {
3538
+ handleStartChange: PropTypes.func.isRequired,
3539
+ handleEndChange: PropTypes.func.isRequired,
3540
+ classes: PropTypes.shape({
3541
+ marginB10: PropTypes.string,
3542
+ gridStyle: PropTypes.string,
3543
+ labelStyle: PropTypes.string,
3544
+ textAlignLeft: PropTypes.string
3545
+ }).isRequired,
3546
+ startDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.object, PropTypes.string]).isRequired,
3547
+ endDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.object, PropTypes.string]).isRequired
3548
+ };
3549
+
3550
+ function releaseUpdateTest() {
3551
+ var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'test';
3552
+ return "Hello, ".concat(name, "! this is a test 02/10-1");
3454
3553
  }
3455
3554
 
3456
- exports.Button = Button;
3555
+ exports.DateRangePicker = DateRangePicker;
3457
3556
  exports.UdiTable = UdiTable;
3458
- exports.add = add;
3459
- exports.test = test;
3557
+ exports.releaseUpdateTest = releaseUpdateTest;
3558
+ exports.useDateRangePicker = useDateRangePicker;
3460
3559
  exports.useUdiTableSync = useUdiTableSync$1;
3461
3560
  exports.useUdiTableSyncMutipleTable = useUdiTableSync;
3462
3561
  //# sourceMappingURL=index.cjs.js.map