funda-ui 2.0.755 → 2.1.102

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.
@@ -7,9 +7,6 @@
7
7
  --cas-select-result-font-size: 1rem;
8
8
  --cas-select-result-padding-x: 0.75rem;
9
9
  --cas-select-result-padding-y: 0.375rem;
10
- --cas-select-opt-font-size: 0.875rem;
11
- --cas-select-opt-padding-x: .4rem;
12
- --cas-select-opt-padding-y: .3rem;
13
10
  }
14
11
  .cas-select__wrapper .cas-select__result {
15
12
  position: absolute;
@@ -70,6 +67,9 @@
70
67
 
71
68
  /*------ List ------*/
72
69
  .cas-select__items-wrapper {
70
+ --cas-select-opt-font-size: 0.875rem;
71
+ --cas-select-opt-padding-x: .4rem;
72
+ --cas-select-opt-padding-y: .3rem;
73
73
  --cas-select-opt-header-border-color: rgba(1, 1, 1, .2);
74
74
  --cas-select-opt-header-text-color: #999;
75
75
  --cas-select-opt-hover-bg: #f7f7f7;
@@ -552,53 +552,41 @@ var CascadingSelect = function CascadingSelect(props) {
552
552
  var rootRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
553
553
  var valRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
554
554
  var listRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
555
- var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
555
+
556
+ // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
557
+ // DO NOT USE `useState()` for `dictionaryData`, `listData`,
558
+ // because the list uses vanilla JS DOM events which will cause the results of useState not to be displayed in real time.
559
+ // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
560
+
561
+ var dictionaryData = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)([]);
562
+ var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
556
563
  _useState2 = _slicedToArray(_useState, 2),
557
- dictionaryData = _useState2[0],
558
- setDictionaryData = _useState2[1];
559
- var _useState3 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
564
+ loading = _useState2[0],
565
+ setLoading = _useState2[1];
566
+ var _useState3 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
560
567
  _useState4 = _slicedToArray(_useState3, 2),
561
- loading = _useState4[0],
562
- setLoading = _useState4[1];
563
- var _useState5 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
568
+ columnTitleData = _useState4[0],
569
+ setColumnTitleData = _useState4[1];
570
+ var _useState5 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
564
571
  _useState6 = _slicedToArray(_useState5, 2),
565
- columnTitleData = _useState6[0],
566
- setColumnTitleData = _useState6[1];
567
- var _useState7 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
572
+ hasErr = _useState6[0],
573
+ setHasErr = _useState6[1];
574
+ var _useState7 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(value || ''),
568
575
  _useState8 = _slicedToArray(_useState7, 2),
569
- hasErr = _useState8[0],
570
- setHasErr = _useState8[1];
571
- var _useState9 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(value || ''),
572
- _useState10 = _slicedToArray(_useState9, 2),
573
- changedVal = _useState10[0],
574
- setChangedVal = _useState10[1];
576
+ changedVal = _useState8[0],
577
+ setChangedVal = _useState8[1];
575
578
  var windowScrollUpdate = (0,performance.debounce)(handleScrollEvent, 500);
576
579
 
577
580
  //for variable
578
- var _useState11 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
579
- _useState12 = _slicedToArray(_useState11, 2),
580
- data = _useState12[0],
581
- setData = _useState12[1];
582
-
583
- // DO NOT USE `useState()` for `selectedData`, because the list uses
584
- // vanilla JS DOM events which will cause the results of useState not to be displayed in real time.
581
+ var listData = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)([]);
585
582
  var selectedData = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)({
586
583
  labels: [],
587
584
  values: []
588
585
  });
589
- var _useState13 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
590
- _useState14 = _slicedToArray(_useState13, 2),
591
- isShow = _useState14[0],
592
- setIsShow = _useState14[1];
593
-
594
- // destroy `parent_id` match
595
- var _useState15 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)({
596
- labels: [],
597
- values: []
598
- }),
599
- _useState16 = _slicedToArray(_useState15, 2),
600
- selectedDataByClick = _useState16[0],
601
- setSelectedDataByClick = _useState16[1];
586
+ var _useState9 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
587
+ _useState10 = _slicedToArray(_useState9, 2),
588
+ isShow = _useState10[0],
589
+ setIsShow = _useState10[1];
602
590
 
603
591
  /**
604
592
  * Check if an element is in the viewport
@@ -698,7 +686,7 @@ var CascadingSelect = function CascadingSelect(props) {
698
686
 
699
687
  // options event listener
700
688
  // !!! to prevent button mismatch when changing
701
- if (data.length > 0) {
689
+ if (listData.current.length > 0) {
702
690
  [].slice.call(listRef.current.querySelectorAll('[data-opt]')).forEach(function (node) {
703
691
  if (typeof node.dataset.ev === 'undefined') {
704
692
  node.dataset.ev = 'true';
@@ -708,7 +696,7 @@ var CascadingSelect = function CascadingSelect(props) {
708
696
  var _value = JSON.parse(e.currentTarget.dataset.value);
709
697
  var _index = Number(e.currentTarget.dataset.index);
710
698
  var _level = Number(e.currentTarget.dataset.level);
711
- handleClickItem(e, _value, _index, _level, data);
699
+ handleClickItem(e, _value, _index, _level, listData.current);
712
700
  });
713
701
  }
714
702
  });
@@ -751,6 +739,11 @@ var CascadingSelect = function CascadingSelect(props) {
751
739
  }
752
740
  });
753
741
  }
742
+
743
+ // initialize events for options
744
+ setTimeout(function () {
745
+ popwinBtnEventsInit();
746
+ }, 0);
754
747
  }
755
748
  function cancel() {
756
749
  // hide list
@@ -812,7 +805,7 @@ var CascadingSelect = function CascadingSelect(props) {
812
805
 
813
806
  // STEP 2: ===========
814
807
  // dictionary data (orginal)
815
- setDictionaryData(_ORGIN_DATA);
808
+ dictionaryData.current = _ORGIN_DATA;
816
809
 
817
810
  // STEP 3: ===========
818
811
  // Add an empty item to each list to support empty item selection
@@ -821,7 +814,7 @@ var CascadingSelect = function CascadingSelect(props) {
821
814
 
822
815
  // STEP 4: ===========
823
816
  // Turn the data of each group into an array
824
- setData([_EMPTY_SUPPORTED_DATA]);
817
+ listData.current = [_EMPTY_SUPPORTED_DATA];
825
818
 
826
819
  // STEP 5: ===========
827
820
  //
@@ -880,12 +873,16 @@ var CascadingSelect = function CascadingSelect(props) {
880
873
  //
881
874
  activate();
882
875
  }
883
- function handleClickItem(e, resValue, index, level, data) {
876
+ function handleClickItem(e, resValue, index, level, curData) {
884
877
  e.preventDefault();
885
878
 
879
+ // update column display with DOM
880
+ //////////////////////////////////////////
881
+ updateColDisplay(true, false, level);
882
+
886
883
  // update value
887
884
  //////////////////////////////////////////
888
- var inputVal = updateValue(dictionaryData, resValue.id, level);
885
+ var inputVal = updateValue(dictionaryData.current, resValue.id, level);
889
886
 
890
887
  // callback
891
888
  //////////////////////////////////////////
@@ -895,7 +892,7 @@ var CascadingSelect = function CascadingSelect(props) {
895
892
 
896
893
  // update data
897
894
  //////////////////////////////////////////
898
- var newData = data; // such as: [Array(6), Array(3)]
895
+ var newData = curData; // such as: [Array(6), Array(3)]
899
896
 
900
897
  // All the elements from start(array.length - start) to the end of the array will be deleted.
901
898
  newData.splice(level + 1);
@@ -910,7 +907,7 @@ var CascadingSelect = function CascadingSelect(props) {
910
907
 
911
908
  // update actived items
912
909
  //////////////////////////////////////////
913
- setData(newData);
910
+ listData.current = newData;
914
911
 
915
912
  // close modal
916
913
  //////////////////////////////////////////
@@ -923,7 +920,7 @@ var CascadingSelect = function CascadingSelect(props) {
923
920
  //////////////////////////////////////////
924
921
  var currentItemsInner = e.currentTarget.closest('.cas-select__items-inner');
925
922
  if (currentItemsInner !== null) {
926
- data.forEach(function (v, col) {
923
+ curData.forEach(function (v, col) {
927
924
  var colItemsWrapper = currentItemsInner.querySelectorAll('.cas-select__items-col');
928
925
  colItemsWrapper.forEach(function (perCol) {
929
926
  var _col = Number(perCol.dataset.col);
@@ -938,12 +935,6 @@ var CascadingSelect = function CascadingSelect(props) {
938
935
  // not header option
939
936
  if (typeof e.currentTarget.dataset.optHeader === 'undefined') e.currentTarget.classList.add('active');
940
937
  }
941
-
942
- // initialize events for options
943
- //////////////////////////////////////////
944
- setTimeout(function () {
945
- popwinBtnEventsInit();
946
- }, 0);
947
938
  }
948
939
 
949
940
  /**
@@ -953,6 +944,8 @@ var CascadingSelect = function CascadingSelect(props) {
953
944
  * @returns
954
945
  */
955
946
  function markCurrent(arr, index) {
947
+ if (!Array.isArray(arr)) return;
948
+
956
949
  // click an item
957
950
  //////////////////////////////////////////
958
951
  for (var i = 0; i < arr.length; i++) {
@@ -1047,12 +1040,8 @@ var CascadingSelect = function CascadingSelect(props) {
1047
1040
  labels: [],
1048
1041
  values: []
1049
1042
  };
1050
- setSelectedDataByClick({
1051
- labels: [],
1052
- values: []
1053
- });
1054
- setDictionaryData([]);
1055
- setData([]);
1043
+ dictionaryData.current = [];
1044
+ listData.current = [];
1056
1045
  setChangedVal('');
1057
1046
  }
1058
1047
  function initDefaultValue(defaultValue) {
@@ -1133,7 +1122,7 @@ var CascadingSelect = function CascadingSelect(props) {
1133
1122
  // STEP 2: ===========
1134
1123
  // update actived items
1135
1124
  //////////////////////////////////////////
1136
- setData(_allColumnsData);
1125
+ listData.current = _allColumnsData;
1137
1126
 
1138
1127
  // STEP 3: ===========
1139
1128
  // Set a default value
@@ -1142,10 +1131,6 @@ var CascadingSelect = function CascadingSelect(props) {
1142
1131
  labels: _allLables,
1143
1132
  values: _allValues
1144
1133
  };
1145
- setSelectedDataByClick({
1146
- labels: _allLables,
1147
- values: _allValues
1148
- });
1149
1134
  }
1150
1135
  });
1151
1136
 
@@ -1307,9 +1292,18 @@ var CascadingSelect = function CascadingSelect(props) {
1307
1292
  }
1308
1293
  return resAll;
1309
1294
  }
1310
- function displayInfo(destroyParentId) {
1311
- var _data = destroyParentId ? selectedDataByClick : selectedData.current;
1312
- return _data.labels ? _data.labels.map(function (item, i, arr) {
1295
+ function displayInfo() {
1296
+ var _data = selectedData.current;
1297
+ var formattedDefaultValue = changedVal !== '' ? VALUE_BY_BRACES ? (0,extract.extractContentsOfBraces)(changedVal) : changedVal.split(',') : [];
1298
+ var _labels = Array.isArray(_data.labels) && _data.labels.length > 0 ? _data.labels : [];
1299
+
1300
+ // Sometimes the array may be empty due to rendering speed
1301
+ if (_labels.length === 0) {
1302
+ _labels = formattedDefaultValue.map(function (s) {
1303
+ return s.toString().replace(/[\w\s]/gi, '').replace(/\[\]/g, '');
1304
+ });
1305
+ }
1306
+ return _labels.length > 0 ? _labels.map(function (item, i, arr) {
1313
1307
  if (arr.length - 1 === i) {
1314
1308
  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1315
1309
  key: i
@@ -1441,7 +1435,7 @@ var CascadingSelect = function CascadingSelect(props) {
1441
1435
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("path", {
1442
1436
  fill: "#000",
1443
1437
  d: "M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z"
1444
- }))) : null, data.map(function (item, level) {
1438
+ }))) : null, listData.current.map(function (item, level) {
1445
1439
  if (item.length > 0) {
1446
1440
  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("li", {
1447
1441
  key: level,
@@ -1454,7 +1448,7 @@ var CascadingSelect = function CascadingSelect(props) {
1454
1448
  cleanNodeBtnClassName: cleanNodeBtnClassName,
1455
1449
  cleanNodeBtnContent: cleanNodeBtnContent,
1456
1450
  selectEv: function selectEv(e, value, index) {
1457
- return handleClickItem(e, value, index, level, data);
1451
+ return handleClickItem(e, value, index, level, listData.current);
1458
1452
  }
1459
1453
  }));
1460
1454
  } else {
@@ -1463,9 +1457,9 @@ var CascadingSelect = function CascadingSelect(props) {
1463
1457
  }))) : null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1464
1458
  className: "cas-select__val",
1465
1459
  onClick: handleDisplayOptions
1466
- }, displayResult ? selectedData.current.labels && selectedData.current.labels.length > 0 ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1460
+ }, displayResult ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1467
1461
  className: "cas-select__result"
1468
- }, displayInfo(false)) : null : null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("input", _extends({
1462
+ }, displayInfo()) : null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("input", _extends({
1469
1463
  ref: valRef,
1470
1464
  id: idRes,
1471
1465
  "data-overlay-id": "cas-select__items-wrapper-".concat(idRes),
@@ -7,9 +7,6 @@
7
7
  --cas-select-e2e-result-font-size: 1rem;
8
8
  --cas-select-e2e-result-padding-x: 0.75rem;
9
9
  --cas-select-e2e-result-padding-y: 0.375rem;
10
- --cas-select-e2e-opt-font-size: 0.875rem;
11
- --cas-select-e2e-opt-padding-x: .4rem;
12
- --cas-select-e2e-opt-padding-y: .3rem;
13
10
  }
14
11
  .cas-select-e2e__wrapper .cas-select-e2e__result {
15
12
  position: absolute;
@@ -70,6 +67,9 @@
70
67
 
71
68
  /*------ List ------*/
72
69
  .cas-select-e2e__items-wrapper {
70
+ --cas-select-e2e-opt-font-size: 0.875rem;
71
+ --cas-select-e2e-opt-padding-x: .4rem;
72
+ --cas-select-e2e-opt-padding-y: .3rem;
73
73
  --cas-select-e2e-opt-header-border-color: rgba(1, 1, 1, .2);
74
74
  --cas-select-e2e-opt-header-text-color: #999;
75
75
  --cas-select-e2e-opt-hover-bg: #f7f7f7;