@nutui/nutui-react 3.0.10 → 3.0.11-patch.0

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +18 -13
  2. package/dist/cjs/locales/base.d.ts +2 -0
  3. package/dist/cjs/locales/en-US.js +3 -1
  4. package/dist/cjs/locales/id-ID.js +3 -1
  5. package/dist/cjs/locales/tr-TR.js +3 -1
  6. package/dist/cjs/locales/zh-CN.js +3 -1
  7. package/dist/cjs/locales/zh-TW.js +3 -1
  8. package/dist/cjs/locales/zh-UG.js +3 -1
  9. package/dist/cjs/packages/address/address.js +80 -55
  10. package/dist/cjs/packages/address/{customRender.d.ts → cascaderRender.d.ts} +1 -1
  11. package/dist/cjs/packages/address/{customRender.js → cascaderRender.js} +5 -5
  12. package/dist/cjs/packages/address/elevatorRender.d.ts +14 -0
  13. package/dist/cjs/packages/address/elevatorRender.js +262 -0
  14. package/dist/cjs/packages/address/existRender.js +2 -2
  15. package/dist/cjs/packages/address/style/address.scss +114 -5
  16. package/dist/cjs/packages/address/style/style.css +103 -4
  17. package/dist/cjs/packages/address/style-jmapp/address.scss +114 -5
  18. package/dist/cjs/packages/address/style-jmapp/style.css +103 -4
  19. package/dist/cjs/packages/address/style-jrkf/address.scss +114 -5
  20. package/dist/cjs/packages/address/style-jrkf/style.css +103 -4
  21. package/dist/cjs/packages/address/utils.d.ts +5 -0
  22. package/dist/cjs/packages/address/utils.js +93 -0
  23. package/dist/cjs/packages/elevator/elevator.js +2 -1
  24. package/dist/cjs/packages/picker/style/picker.scss +0 -1
  25. package/dist/cjs/packages/picker/style/style.css +0 -1
  26. package/dist/cjs/packages/picker/style-jmapp/picker.scss +0 -1
  27. package/dist/cjs/packages/picker/style-jmapp/style.css +0 -1
  28. package/dist/cjs/packages/picker/style-jrkf/picker.scss +0 -1
  29. package/dist/cjs/packages/picker/style-jrkf/style.css +0 -1
  30. package/dist/cjs/types/spec/address/base.d.ts +3 -12
  31. package/dist/cjs/types/spec/cascader/base.d.ts +1 -0
  32. package/dist/es/locales/base.d.ts +2 -0
  33. package/dist/es/locales/en-US.js +3 -1
  34. package/dist/es/locales/id-ID.js +3 -1
  35. package/dist/es/locales/tr-TR.js +3 -1
  36. package/dist/es/locales/zh-CN.js +3 -1
  37. package/dist/es/locales/zh-TW.js +3 -1
  38. package/dist/es/locales/zh-UG.js +3 -1
  39. package/dist/es/packages/address/address.js +81 -56
  40. package/dist/es/packages/address/{customRender.d.ts → cascaderRender.d.ts} +1 -1
  41. package/dist/es/packages/address/{customRender.js → cascaderRender.js} +3 -3
  42. package/dist/es/packages/address/elevatorRender.d.ts +14 -0
  43. package/dist/es/packages/address/elevatorRender.js +250 -0
  44. package/dist/es/packages/address/existRender.js +2 -2
  45. package/dist/es/packages/address/style/address.scss +114 -5
  46. package/dist/es/packages/address/style/style.css +103 -4
  47. package/dist/es/packages/address/style-jmapp/address.scss +114 -5
  48. package/dist/es/packages/address/style-jmapp/style.css +103 -4
  49. package/dist/es/packages/address/style-jrkf/address.scss +114 -5
  50. package/dist/es/packages/address/style-jrkf/style.css +103 -4
  51. package/dist/es/packages/address/utils.d.ts +5 -0
  52. package/dist/es/packages/address/utils.js +75 -0
  53. package/dist/es/packages/elevator/elevator.js +2 -1
  54. package/dist/es/packages/picker/style/picker.scss +0 -1
  55. package/dist/es/packages/picker/style/style.css +0 -1
  56. package/dist/es/packages/picker/style-jmapp/picker.scss +0 -1
  57. package/dist/es/packages/picker/style-jmapp/style.css +0 -1
  58. package/dist/es/packages/picker/style-jrkf/picker.scss +0 -1
  59. package/dist/es/packages/picker/style-jrkf/style.css +0 -1
  60. package/dist/es/types/spec/address/base.d.ts +7 -13
  61. package/dist/es/types/spec/cascader/base.d.ts +1 -0
  62. package/dist/nutui.react.umd.js +463 -127
  63. package/dist/style-jmapp.css +1 -1
  64. package/dist/style-jmapp.scss +37 -37
  65. package/dist/style-jrkf.css +1 -1
  66. package/dist/style-jrkf.scss +40 -40
  67. package/dist/style.css +1 -1
  68. package/dist/style.scss +43 -43
  69. package/package.json +1 -1
@@ -2,10 +2,6 @@
2
2
  /* #endif */
3
3
  /* #ifndef harmony */
4
4
  /* #endif */
5
- .nut-address-elevator {
6
- display: flex;
7
- margin-top: 20px;
8
- }
9
5
  .nut-address-exist {
10
6
  display: block;
11
7
  padding: 15px 20px 0;
@@ -45,6 +41,109 @@
45
41
  color: var(--nutui-color-text-dark);
46
42
  }
47
43
 
44
+ .nut-address-title {
45
+ font-size: 14px;
46
+ font-weight: 500;
47
+ padding: 16px 16px 12px 16px;
48
+ }
49
+ .nut-address-hotlist {
50
+ padding: 0 16px;
51
+ display: flex;
52
+ flex-wrap: wrap;
53
+ align-items: flex-start;
54
+ }
55
+ .nut-address-hotlist-item {
56
+ display: flex;
57
+ justify-content: center;
58
+ align-items: center;
59
+ width: 63px;
60
+ height: 28px;
61
+ font-size: 12px;
62
+ border-radius: 4px;
63
+ margin-bottom: 7px;
64
+ /* #ifdef harmony*/
65
+ margin-right: 6px;
66
+ /* #endif */
67
+ /* #ifndef harmony*/
68
+ margin-right: 7px;
69
+ /* #endif */
70
+ background-color: var(--nutui-gray-2, #f8f8f8);
71
+ color: var(--nutui-color-title);
72
+ }
73
+ .nut-address-hotlist-item:nth-child(5n) {
74
+ margin-right: 0;
75
+ }
76
+ .nut-address-hotlist.hotlist-more .nut-address-hotlist-item {
77
+ width: auto;
78
+ padding: 0 16px;
79
+ margin-right: 7px;
80
+ }
81
+ .nut-address-selected {
82
+ width: 100%;
83
+ height: 60px;
84
+ padding: 0 16px;
85
+ display: flex;
86
+ align-items: center;
87
+ border-bottom: 1px solid var(--nutui-color-border);
88
+ }
89
+ .nut-address-selected-item {
90
+ font-size: 12px;
91
+ display: inline-block;
92
+ height: 28px;
93
+ line-height: 28px;
94
+ padding: 0 12px;
95
+ border-radius: 4px;
96
+ background-color: var(--nutui-gray-2, #f8f8f8);
97
+ }
98
+ .nut-address-selected-item.active {
99
+ border: 1px solid var(--nutui-color-primary);
100
+ background-color: var(--nutui-color-primary-light-pressed);
101
+ color: var(--nutui-color-primary);
102
+ }
103
+ .nut-address-selected-border {
104
+ margin: 0 2px;
105
+ color: var(--nutui-color-text-disabled);
106
+ }
107
+ .nut-address-elevator {
108
+ margin-top: 0;
109
+ }
110
+ .nut-address-elevator .nut-elevator-list-item {
111
+ position: relative;
112
+ padding-left: 20px;
113
+ }
114
+ .nut-address-elevator .nut-elevator-list-item-code {
115
+ display: inline;
116
+ position: absolute;
117
+ left: 0;
118
+ top: 0;
119
+ height: 30px;
120
+ line-height: 30px;
121
+ border-bottom: 0;
122
+ color: var(--nutui-color-text-help);
123
+ font-weight: 500;
124
+ }
125
+ .nut-address-elevator .nut-elevator-bars {
126
+ top: 40%;
127
+ padding: 0;
128
+ background: none;
129
+ }
130
+ .nut-address-elevator .nut-elevator-bars-inner-item {
131
+ display: flex;
132
+ justify-content: center;
133
+ align-items: center;
134
+ width: 16px;
135
+ height: 16px;
136
+ font-size: 10px;
137
+ border-radius: 16px;
138
+ margin-bottom: 2px;
139
+ color: var(--nutui-color-text-help);
140
+ }
141
+ .nut-address-elevator .nut-elevator-bars-inner-item-active {
142
+ background-color: var(--nutui-color-primary);
143
+ color: var(--nutui-color-surface-2);
144
+ font-weight: 400;
145
+ }
146
+
48
147
  [dir=rtl] .nut-address-exist-item-info,
49
148
  .nut-rtl .nut-address-exist-item-info {
50
149
  margin-left: 0;
@@ -1,9 +1,4 @@
1
1
  .nut-address {
2
- &-elevator {
3
- display: flex;
4
- margin-top: 20px;
5
- }
6
-
7
2
  &-exist {
8
3
  display: block;
9
4
  padding: 15px 20px 0;
@@ -49,6 +44,120 @@
49
44
  }
50
45
  }
51
46
 
47
+ .nut-address {
48
+ &-title {
49
+ font-size: 14px;
50
+ font-weight: 500;
51
+ padding: 16px 16px 12px 16px;
52
+ }
53
+ &-hotlist {
54
+ padding: 0 16px;
55
+ display: flex;
56
+ flex-wrap: wrap;
57
+ align-items: flex-start;
58
+ &-item {
59
+ display: flex;
60
+ justify-content: center;
61
+ align-items: center;
62
+ width: 63px;
63
+ height: 28px;
64
+ font-size: 12px;
65
+ border-radius: 4px;
66
+ margin-bottom: 7px;
67
+ /* #ifdef harmony*/
68
+ margin-right: 6px;
69
+ /* #endif */
70
+ /* #ifndef harmony*/
71
+ margin-right: 7px;
72
+ /* #endif */
73
+ background-color: $color-background-sunken;
74
+ color: $color-title;
75
+ &:nth-child(5n) {
76
+ margin-right: 0;
77
+ }
78
+ }
79
+
80
+ &.hotlist-more {
81
+ .nut-address-hotlist-item {
82
+ width: auto;
83
+ padding: 0 16px;
84
+ margin-right: 7px;
85
+ }
86
+ }
87
+ }
88
+
89
+ &-selected {
90
+ width: 100%;
91
+ height: 60px;
92
+ padding: 0 16px;
93
+ display: flex;
94
+ align-items: center;
95
+ border-bottom: 1px solid $color-border;
96
+ &-item {
97
+ font-size: 12px;
98
+ display: inline-block;
99
+ height: 28px;
100
+ line-height: 28px;
101
+ padding: 0 12px;
102
+ border-radius: 4px;
103
+ background-color: $color-background-sunken;
104
+
105
+ &.active {
106
+ border: 1px solid $color-primary;
107
+ background-color: $color-primary-light-pressed;
108
+ color: $color-primary;
109
+ }
110
+ }
111
+ &-border {
112
+ margin: 0 2px;
113
+ color: $color-text-disabled;
114
+ }
115
+ }
116
+
117
+ &-elevator {
118
+ margin-top: 0;
119
+ .nut-elevator-list {
120
+ &-item {
121
+ position: relative;
122
+ padding-left: 20px;
123
+ }
124
+ &-item-code {
125
+ display: inline;
126
+ position: absolute;
127
+ left: 0;
128
+ top: 0;
129
+ height: 30px;
130
+ line-height: 30px;
131
+ border-bottom: 0;
132
+ color: $color-text-help;
133
+ font-weight: 500;
134
+ }
135
+ }
136
+ .nut-elevator-bars {
137
+ top: 40%;
138
+ padding: 0;
139
+ background: none;
140
+
141
+ &-inner-item {
142
+ display: flex;
143
+ justify-content: center;
144
+ align-items: center;
145
+ width: 16px;
146
+ height: 16px;
147
+ font-size: 10px;
148
+ border-radius: 16px;
149
+ margin-bottom: 2px;
150
+ color: $color-text-help;
151
+ &-active {
152
+ background-color: $color-primary;
153
+ color: $color-background-overlay;
154
+ font-weight: 400;
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+
52
161
  [dir='rtl'] .nut-address,
53
162
  .nut-rtl .nut-address {
54
163
  &-exist {
@@ -2,10 +2,6 @@
2
2
  /* #endif */
3
3
  /* #ifndef harmony */
4
4
  /* #endif */
5
- .nut-address-elevator {
6
- display: flex;
7
- margin-top: 20px;
8
- }
9
5
  .nut-address-exist {
10
6
  display: block;
11
7
  padding: 15px 20px 0;
@@ -45,6 +41,109 @@
45
41
  color: var(--nutui-color-text-dark);
46
42
  }
47
43
 
44
+ .nut-address-title {
45
+ font-size: 14px;
46
+ font-weight: 500;
47
+ padding: 16px 16px 12px 16px;
48
+ }
49
+ .nut-address-hotlist {
50
+ padding: 0 16px;
51
+ display: flex;
52
+ flex-wrap: wrap;
53
+ align-items: flex-start;
54
+ }
55
+ .nut-address-hotlist-item {
56
+ display: flex;
57
+ justify-content: center;
58
+ align-items: center;
59
+ width: 63px;
60
+ height: 28px;
61
+ font-size: 12px;
62
+ border-radius: 4px;
63
+ margin-bottom: 7px;
64
+ /* #ifdef harmony*/
65
+ margin-right: 6px;
66
+ /* #endif */
67
+ /* #ifndef harmony*/
68
+ margin-right: 7px;
69
+ /* #endif */
70
+ background-color: var(--nutui-gray-2, #f0f0f0);
71
+ color: var(--nutui-color-title);
72
+ }
73
+ .nut-address-hotlist-item:nth-child(5n) {
74
+ margin-right: 0;
75
+ }
76
+ .nut-address-hotlist.hotlist-more .nut-address-hotlist-item {
77
+ width: auto;
78
+ padding: 0 16px;
79
+ margin-right: 7px;
80
+ }
81
+ .nut-address-selected {
82
+ width: 100%;
83
+ height: 60px;
84
+ padding: 0 16px;
85
+ display: flex;
86
+ align-items: center;
87
+ border-bottom: 1px solid var(--nutui-color-border);
88
+ }
89
+ .nut-address-selected-item {
90
+ font-size: 12px;
91
+ display: inline-block;
92
+ height: 28px;
93
+ line-height: 28px;
94
+ padding: 0 12px;
95
+ border-radius: 4px;
96
+ background-color: var(--nutui-gray-2, #f0f0f0);
97
+ }
98
+ .nut-address-selected-item.active {
99
+ border: 1px solid var(--nutui-color-primary, #ff6666);
100
+ background-color: var(--nutui-color-primary-light-pressed, #ffcccc);
101
+ color: var(--nutui-color-primary, #ff6666);
102
+ }
103
+ .nut-address-selected-border {
104
+ margin: 0 2px;
105
+ color: var(--nutui-color-text-disabled);
106
+ }
107
+ .nut-address-elevator {
108
+ margin-top: 0;
109
+ }
110
+ .nut-address-elevator .nut-elevator-list-item {
111
+ position: relative;
112
+ padding-left: 20px;
113
+ }
114
+ .nut-address-elevator .nut-elevator-list-item-code {
115
+ display: inline;
116
+ position: absolute;
117
+ left: 0;
118
+ top: 0;
119
+ height: 30px;
120
+ line-height: 30px;
121
+ border-bottom: 0;
122
+ color: var(--nutui-color-text-help);
123
+ font-weight: 500;
124
+ }
125
+ .nut-address-elevator .nut-elevator-bars {
126
+ top: 40%;
127
+ padding: 0;
128
+ background: none;
129
+ }
130
+ .nut-address-elevator .nut-elevator-bars-inner-item {
131
+ display: flex;
132
+ justify-content: center;
133
+ align-items: center;
134
+ width: 16px;
135
+ height: 16px;
136
+ font-size: 10px;
137
+ border-radius: 16px;
138
+ margin-bottom: 2px;
139
+ color: var(--nutui-color-text-help);
140
+ }
141
+ .nut-address-elevator .nut-elevator-bars-inner-item-active {
142
+ background-color: var(--nutui-color-primary, #ff6666);
143
+ color: var(--nutui-color-surface-2);
144
+ font-weight: 400;
145
+ }
146
+
48
147
  [dir=rtl] .nut-address-exist-item-info,
49
148
  .nut-rtl .nut-address-exist-item-info {
50
149
  margin-left: 0;
@@ -0,0 +1,5 @@
1
+ export declare const transformData: (data: any) => {
2
+ title: string;
3
+ list: any;
4
+ }[];
5
+ export declare const findDataByName: any;
@@ -0,0 +1,75 @@
1
+ var generateId = function(name) {
2
+ return name.split('').reduce(function(sum, char) {
3
+ return sum + char.charCodeAt(0);
4
+ }, 0) // 使用字符的 Unicode 值作为 ID
5
+ ;
6
+ };
7
+ export var transformData = function(data) {
8
+ var groupByWordCode = function(data, parentId, parentName) {
9
+ return data === null || data === void 0 ? void 0 : data.reduce(function(acc, item) {
10
+ var wordCode = item.wordCode;
11
+ if (!acc[wordCode]) {
12
+ acc[wordCode] = [];
13
+ }
14
+ var currentId = generateId(item.value);
15
+ acc[wordCode].push({
16
+ name: item.value,
17
+ wordCode: item.wordCode,
18
+ id: currentId,
19
+ pId: parentId,
20
+ pName: parentName,
21
+ children: item.children && groupByWordCode(item.children, currentId, item.text) || null
22
+ });
23
+ return acc;
24
+ }, {});
25
+ };
26
+ var extractTitles = function(obj) {
27
+ return Object.keys(obj).map(function(key) {
28
+ return {
29
+ title: key,
30
+ list: obj[key].map(function(item) {
31
+ if (item.children) {
32
+ item.children = extractTitles(item.children);
33
+ }
34
+ return item;
35
+ })
36
+ };
37
+ });
38
+ };
39
+ var middleData = groupByWordCode(data, '', '');
40
+ var resultData = extractTitles(middleData);
41
+ return resultData;
42
+ };
43
+ export var findDataByName = function(data, name) {
44
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
45
+ try {
46
+ for(var _iterator = data[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
47
+ var item = _step.value;
48
+ var _item_name;
49
+ if (((_item_name = item.name) === null || _item_name === void 0 ? void 0 : _item_name.indexOf(name)) === 0) return item;
50
+ if (item.children) {
51
+ var found = findDataByName(item.children, name);
52
+ if (found) return found;
53
+ }
54
+ if (item.list) {
55
+ var found1 = findDataByName(item.list, name);
56
+ if (found1) return found1;
57
+ }
58
+ }
59
+ } catch (err) {
60
+ _didIteratorError = true;
61
+ _iteratorError = err;
62
+ } finally{
63
+ try {
64
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
65
+ _iterator.return();
66
+ }
67
+ } finally{
68
+ if (_didIteratorError) {
69
+ throw _iteratorError;
70
+ }
71
+ }
72
+ }
73
+ return null // 如果没有找到,返回 null
74
+ ;
75
+ };
@@ -204,9 +204,10 @@ export var Elevator = function(props) {
204
204
  touchAction: 'pan-y'
205
205
  }
206
206
  }), list.map(function(item, index) {
207
+ var _list_currentIndex;
207
208
  var _obj;
208
209
  return /*#__PURE__*/ React.createElement("div", {
209
- className: classNames((_obj = {}, _define_property(_obj, "".concat(classPrefix, "-bars-inner-item"), true), _define_property(_obj, "".concat(classPrefix, "-bars-inner-item-active"), item[floorKey] === list[currentIndex][floorKey]), _obj)),
210
+ className: classNames((_obj = {}, _define_property(_obj, "".concat(classPrefix, "-bars-inner-item"), true), _define_property(_obj, "".concat(classPrefix, "-bars-inner-item-active"), item[floorKey] === ((_list_currentIndex = list[currentIndex]) === null || _list_currentIndex === void 0 ? void 0 : _list_currentIndex[floorKey])), _obj)),
210
211
  "data-index": index,
211
212
  key: index,
212
213
  onClick: function() {
@@ -1,5 +1,4 @@
1
1
  .nut-picker {
2
- background-color: $color-background-overlay;
3
2
  width: 100%;
4
3
 
5
4
  &-control {
@@ -3,7 +3,6 @@
3
3
  /* #ifndef harmony */
4
4
  /* #endif */
5
5
  .nut-picker {
6
- background-color: var(--nutui-color-background-overlay, #ffffff);
7
6
  width: 100%;
8
7
  }
9
8
  .nut-picker-control {
@@ -1,5 +1,4 @@
1
1
  .nut-picker {
2
- background-color: $color-background-overlay;
3
2
  width: 100%;
4
3
 
5
4
  &-control {
@@ -3,7 +3,6 @@
3
3
  /* #ifndef harmony */
4
4
  /* #endif */
5
5
  .nut-picker {
6
- background-color: var(--nutui-color-surface-2);
7
6
  width: 100%;
8
7
  }
9
8
  .nut-picker-control {
@@ -1,5 +1,4 @@
1
1
  .nut-picker {
2
- background-color: $color-background-overlay;
3
2
  width: 100%;
4
3
 
5
4
  &-control {
@@ -3,7 +3,6 @@
3
3
  /* #ifndef harmony */
4
4
  /* #endif */
5
5
  .nut-picker {
6
- background-color: var(--nutui-color-surface-2);
7
6
  width: 100%;
8
7
  }
9
8
  .nut-picker-control {
@@ -4,11 +4,6 @@ export interface RegionData {
4
4
  name?: string;
5
5
  [key: string]: any;
6
6
  }
7
- export interface ChangeData {
8
- next: string;
9
- value: string | RegionData;
10
- custom: string;
11
- }
12
7
  export interface CloseCallBackData extends Regions {
13
8
  addressIdStr: string;
14
9
  addressStr: string;
@@ -32,18 +27,13 @@ export interface AddressList {
32
27
  name?: string;
33
28
  phone?: string;
34
29
  }
35
- export interface CurrentData {
36
- next: string;
37
- value: string | RegionData;
38
- custom: string;
39
- selectedRegion?: Regions;
40
- }
41
30
  export interface Regions {
42
31
  province: RegionData;
43
32
  city: RegionData;
44
33
  county: RegionData;
45
34
  town: RegionData;
46
35
  }
36
+ export type AddressModeType = 'exist' | 'cascader' | 'elevator';
47
37
  export interface BaseAddress {
48
38
  /**
49
39
  * 是否打开地址选择
@@ -56,9 +46,9 @@ export interface BaseAddress {
56
46
  value?: CascaderValue;
57
47
  defaultValue?: CascaderValue;
58
48
  /**
59
- * 地址选择类型 exist/custom
49
+ * 地址选择类型 exist/cascader/elevator
60
50
  */
61
- type: string
51
+ type: AddressModeType
62
52
  options: CascaderOption[];
63
53
  optionKey: CascaderOptionKey;
64
54
  format: Record<string, string | number | null>;
@@ -84,6 +74,10 @@ export interface BaseAddress {
84
74
  */
85
75
  backIcon: React.ReactNode
86
76
  /**
77
+ * 是否展示热门城市,目前只在电梯模式下有效
78
+ */
79
+ hotList: RegionData[]
80
+ /**
87
81
  * 点击'选择其他地址'或自定义地址选择左上角返回按钮触发
88
82
  */
89
83
  onSwitch?: (data: {
@@ -8,6 +8,7 @@ export interface CascaderPane {
8
8
  export interface CascaderOption {
9
9
  text?: string;
10
10
  value?: number | string;
11
+ wordCode?: string;
11
12
  paneKey?: string;
12
13
  disabled?: boolean;
13
14
  children?: CascaderOption[];