@nutui/nutui-react 3.0.10-beta.1 → 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 +22 -0
  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 +35 -35
  65. package/dist/style-jrkf.css +1 -1
  66. package/dist/style-jrkf.scss +27 -27
  67. package/dist/style.css +1 -1
  68. package/dist/style.scss +42 -42
  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, #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,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ findDataByName: function() {
13
+ return findDataByName;
14
+ },
15
+ transformData: function() {
16
+ return transformData;
17
+ }
18
+ });
19
+ var generateId = function generateId(name) {
20
+ return name.split('').reduce(function(sum, char) {
21
+ return sum + char.charCodeAt(0);
22
+ }, 0) // 使用字符的 Unicode 值作为 ID
23
+ ;
24
+ };
25
+ var transformData = function transformData(data) {
26
+ var groupByWordCode = function groupByWordCode1(data, parentId, parentName) {
27
+ return data === null || data === void 0 ? void 0 : data.reduce(function(acc, item) {
28
+ var wordCode = item.wordCode;
29
+ if (!acc[wordCode]) {
30
+ acc[wordCode] = [];
31
+ }
32
+ var currentId = generateId(item.value);
33
+ acc[wordCode].push({
34
+ name: item.value,
35
+ wordCode: item.wordCode,
36
+ id: currentId,
37
+ pId: parentId,
38
+ pName: parentName,
39
+ children: item.children && groupByWordCode(item.children, currentId, item.text) || null
40
+ });
41
+ return acc;
42
+ }, {});
43
+ };
44
+ var extractTitles = function extractTitles1(obj) {
45
+ return Object.keys(obj).map(function(key) {
46
+ return {
47
+ title: key,
48
+ list: obj[key].map(function(item) {
49
+ if (item.children) {
50
+ item.children = extractTitles(item.children);
51
+ }
52
+ return item;
53
+ })
54
+ };
55
+ });
56
+ };
57
+ var middleData = groupByWordCode(data, '', '');
58
+ var resultData = extractTitles(middleData);
59
+ return resultData;
60
+ };
61
+ var findDataByName = function findDataByName1(data, name) {
62
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
63
+ try {
64
+ for(var _iterator = data[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
65
+ var item = _step.value;
66
+ var _item_name;
67
+ if (((_item_name = item.name) === null || _item_name === void 0 ? void 0 : _item_name.indexOf(name)) === 0) return item;
68
+ if (item.children) {
69
+ var found = findDataByName(item.children, name);
70
+ if (found) return found;
71
+ }
72
+ if (item.list) {
73
+ var found1 = findDataByName(item.list, name);
74
+ if (found1) return found1;
75
+ }
76
+ }
77
+ } catch (err) {
78
+ _didIteratorError = true;
79
+ _iteratorError = err;
80
+ } finally{
81
+ try {
82
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
83
+ _iterator.return();
84
+ }
85
+ } finally{
86
+ if (_didIteratorError) {
87
+ throw _iteratorError;
88
+ }
89
+ }
90
+ }
91
+ return null // 如果没有找到,返回 null
92
+ ;
93
+ };
@@ -224,9 +224,10 @@ var Elevator = function Elevator(props) {
224
224
  touchAction: 'pan-y'
225
225
  }
226
226
  }), list.map(function(item, index) {
227
+ var _list_currentIndex;
227
228
  var _obj;
228
229
  return /*#__PURE__*/ _react.default.createElement("div", {
229
- className: (0, _classnames.default)((_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-bars-inner-item"), true), (0, _define_property._)(_obj, "".concat(classPrefix, "-bars-inner-item-active"), item[floorKey] === list[currentIndex][floorKey]), _obj)),
230
+ className: (0, _classnames.default)((_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-bars-inner-item"), true), (0, _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)),
230
231
  "data-index": index,
231
232
  key: index,
232
233
  onClick: function onClick() {
@@ -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,24 +27,19 @@ 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
  visible: boolean;
49
39
  defaultVisible: boolean;
50
40
  value?: CascaderValue;
51
41
  defaultValue?: CascaderValue;
52
- type: string;
42
+ type: AddressModeType;
53
43
  options: CascaderOption[];
54
44
  optionKey: CascaderOptionKey;
55
45
  format: Record<string, string | number | null>;
@@ -59,6 +49,7 @@ export interface BaseAddress {
59
49
  defaultIcon: React.ReactNode;
60
50
  selectIcon: React.ReactNode;
61
51
  backIcon: React.ReactNode;
52
+ hotList: RegionData[];
62
53
  onSwitch?: (data: {
63
54
  type: string;
64
55
  }) => void;
@@ -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[];
@@ -64,6 +64,8 @@ export interface BaseLang {
64
64
  selectRegion: string;
65
65
  deliveryTo: string;
66
66
  chooseAnotherAddress: string;
67
+ hotCity: string;
68
+ selectProvince: string;
67
69
  };
68
70
  signature: {
69
71
  reSign: string;
@@ -73,7 +73,9 @@ var enUS = {
73
73
  address: {
74
74
  selectRegion: 'Choose Address',
75
75
  deliveryTo: 'Delivery To',
76
- chooseAnotherAddress: 'Choose Another Address'
76
+ chooseAnotherAddress: 'Choose Another Address',
77
+ hotCity: 'Hot City',
78
+ selectProvince: 'Choose Province or City'
77
79
  },
78
80
  signature: {
79
81
  reSign: 'Re Sign',
@@ -73,7 +73,9 @@ var idID = {
73
73
  address: {
74
74
  selectRegion: 'Pilih Daerah',
75
75
  deliveryTo: 'Kirim Ke',
76
- chooseAnotherAddress: 'Pilih alamat lain'
76
+ chooseAnotherAddress: 'Pilih alamat lain',
77
+ hotCity: 'Kota-kota populer',
78
+ selectProvince: 'Pilih provinsi/wilayah'
77
79
  },
78
80
  signature: {
79
81
  reSign: 'Masuk Kembali',
@@ -73,7 +73,9 @@ var trTR = {
73
73
  address: {
74
74
  selectRegion: 'Lütfen bölgenizi seçin',
75
75
  deliveryTo: 'Teslimat yeri',
76
- chooseAnotherAddress: 'Başka bir adres seçin'
76
+ chooseAnotherAddress: 'Başka bir adres seçin',
77
+ hotCity: 'Popüler şehirler',
78
+ selectProvince: 'İl/bölge seçin'
77
79
  },
78
80
  signature: {
79
81
  reSign: 'Yeniden imzala',
@@ -73,7 +73,9 @@ var zhCN = {
73
73
  address: {
74
74
  selectRegion: '请选择地址',
75
75
  deliveryTo: '配送至',
76
- chooseAnotherAddress: '选择其他地址'
76
+ chooseAnotherAddress: '选择其他地址',
77
+ hotCity: '热门城市',
78
+ selectProvince: '选择省份/地区'
77
79
  },
78
80
  signature: {
79
81
  reSign: '重签',
@@ -73,7 +73,9 @@ var zhCN = {
73
73
  address: {
74
74
  selectRegion: '請選擇地址',
75
75
  deliveryTo: '配送至',
76
- chooseAnotherAddress: '選擇其他地址'
76
+ chooseAnotherAddress: '選擇其他地址',
77
+ hotCity: '熱門城市',
78
+ selectProvince: '選擇省份/地區'
77
79
  },
78
80
  signature: {
79
81
  reSign: '重簽',
@@ -73,7 +73,9 @@ var zhUG = {
73
73
  address: {
74
74
  selectRegion: 'ئادىرىسنى تاللاڭ',
75
75
  deliveryTo: 'قەيەرگە',
76
- chooseAnotherAddress: 'باشقىنى تاللاش'
76
+ chooseAnotherAddress: 'باشقىنى تاللاش',
77
+ hotCity: 'ئاۋات شەھەرلەر',
78
+ selectProvince: 'ئۆلكە / شەھەرنى تاللاڭ'
77
79
  },
78
80
  signature: {
79
81
  reSign: 'قايتا',
@@ -5,14 +5,16 @@ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
5
5
  import React, { useImperativeHandle, forwardRef, useState } from "react";
6
6
  import { ArrowLeft } from "@nutui/icons-react";
7
7
  import Popup from "../popup";
8
- import { CustomRender } from "./customRender";
8
+ import { CascaderRender } from "./cascaderRender";
9
+ import { ElevatorRender } from "./elevatorRender";
9
10
  import { ExistRender } from "./existRender";
10
11
  import { useConfig } from "../configprovider";
11
12
  import { ComponentDefaults } from "../../utils/typings";
12
13
  import { usePropsValue } from "../../hooks/use-props-value";
14
+ import { mergeProps } from "../../utils/merge-props";
13
15
  var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
14
16
  defaultValue: [],
15
- type: 'custom',
17
+ type: 'cascader',
16
18
  options: [],
17
19
  optionKey: {
18
20
  textKey: 'text',
@@ -22,6 +24,7 @@ var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
22
24
  format: {},
23
25
  custom: false,
24
26
  existList: [],
27
+ hotList: [],
25
28
  height: '200px',
26
29
  defaultIcon: null,
27
30
  selectIcon: null,
@@ -30,7 +33,7 @@ var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
30
33
  });
31
34
  export var InternalAddress = function(props, ref) {
32
35
  var locale = useConfig().locale;
33
- var _ref = _object_spread({}, defaultProps, props), style = _ref.style, className = _ref.className, visible = _ref.visible, defaultVisible = _ref.defaultVisible, defaultValue = _ref.defaultValue, children = _ref.children, type = _ref.type, options = _ref.options, optionKey = _ref.optionKey, format = _ref.format, height = _ref.height, title = _ref.title, existList = _ref.existList, custom = _ref.custom, selectIcon = _ref.selectIcon, defaultIcon = _ref.defaultIcon, closeIcon = _ref.closeIcon, backIcon = _ref.backIcon, onChange = _ref.onChange, onExistSelect = _ref.onExistSelect, onClose = _ref.onClose, onSwitch = _ref.onSwitch, rest = _object_without_properties(_ref, [
36
+ var _mergeProps = mergeProps(defaultProps, props), style = _mergeProps.style, className = _mergeProps.className, visible = _mergeProps.visible, defaultVisible = _mergeProps.defaultVisible, defaultValue = _mergeProps.defaultValue, children = _mergeProps.children, type = _mergeProps.type, options = _mergeProps.options, optionKey = _mergeProps.optionKey, format = _mergeProps.format, height = _mergeProps.height, title = _mergeProps.title, existList = _mergeProps.existList, custom = _mergeProps.custom, selectIcon = _mergeProps.selectIcon, defaultIcon = _mergeProps.defaultIcon, closeIcon = _mergeProps.closeIcon, backIcon = _mergeProps.backIcon, hotList = _mergeProps.hotList, onChange = _mergeProps.onChange, onExistSelect = _mergeProps.onExistSelect, onClose = _mergeProps.onClose, onSwitch = _mergeProps.onSwitch, rest = _object_without_properties(_mergeProps, [
34
37
  "style",
35
38
  "className",
36
39
  "visible",
@@ -49,6 +52,7 @@ export var InternalAddress = function(props, ref) {
49
52
  "defaultIcon",
50
53
  "closeIcon",
51
54
  "backIcon",
55
+ "hotList",
52
56
  "onChange",
53
57
  "onExistSelect",
54
58
  "onClose",
@@ -75,68 +79,89 @@ export var InternalAddress = function(props, ref) {
75
79
  setInnerVisible(false);
76
80
  onClose && onClose();
77
81
  };
78
- var renderLeftOnCustomSwitch = function() {
79
- if (custom) {
80
- return /*#__PURE__*/ React.createElement("div", {
81
- className: "".concat(classPrefix, "-left-icon"),
82
- onClick: onSwitchModule
83
- }, /*#__PURE__*/ React.isValidElement(backIcon) ? backIcon : /*#__PURE__*/ React.createElement(ArrowLeft, {
84
- color: "#cccccc"
85
- }));
86
- }
87
- return null;
82
+ var renderLeftOnCascaderSwitch = function() {
83
+ if (!custom) return null;
84
+ return /*#__PURE__*/ React.createElement("div", {
85
+ className: "".concat(classPrefix, "-left-icon"),
86
+ onClick: onSwitchModule
87
+ }, /*#__PURE__*/ React.isValidElement(backIcon) ? backIcon : /*#__PURE__*/ React.createElement(ArrowLeft, {
88
+ color: "#cccccc"
89
+ }));
88
90
  };
89
91
  var selectedExistItem = function(data) {
90
92
  onExistSelect && onExistSelect(data);
91
93
  handleClose();
92
94
  };
93
95
  var onSwitchModule = function() {
94
- if (currentType === 'exist') {
95
- setCurrentType('custom');
96
- } else {
97
- setCurrentType('exist');
98
- }
96
+ var nextType = currentType === 'exist' ? 'cascader' : 'exist';
97
+ setCurrentType(nextType);
99
98
  onSwitch && onSwitch({
100
- type: currentType
99
+ type: nextType
101
100
  });
102
101
  };
103
- return /*#__PURE__*/ React.createElement(React.Fragment, null, currentType === 'custom' || currentType === 'custom2' ? /*#__PURE__*/ React.createElement(CustomRender, {
104
- visible: innerVisible,
105
- closeable: true,
106
- title: title || locale.address.selectRegion,
107
- left: renderLeftOnCustomSwitch(),
108
- defaultValue: defaultValue,
109
- closeIcon: closeIcon,
110
- options: options,
111
- format: format,
112
- optionKey: optionKey,
113
- type: currentType,
114
- height: height,
115
- onClose: handleClose,
116
- onChange: function(val, params) {
117
- onChange === null || onChange === void 0 ? void 0 : onChange(val, params);
118
- }
119
- }) : /*#__PURE__*/ React.createElement(Popup, {
120
- visible: innerVisible,
121
- position: "bottom",
122
- round: true,
123
- closeable: true,
124
- closeIcon: closeIcon,
125
- title: title || locale.address.selectRegion,
126
- onClose: handleClose
127
- }, /*#__PURE__*/ React.createElement("div", {
128
- className: "".concat(classPrefix, " ").concat(className || ''),
129
- style: _object_spread({}, style)
130
- }, // 不需要 close,选中切换即关闭弹框。可手动关闭弹框,只关闭弹框不处理逻辑。
131
- /*#__PURE__*/ React.createElement(ExistRender, {
132
- type: currentType,
133
- existList: existList,
134
- selectIcon: selectIcon,
135
- defaultIcon: defaultIcon,
136
- custom: custom,
137
- onSelect: selectedExistItem,
138
- onSwitch: onSwitchModule
139
- }))));
102
+ var renderElevator = function() {
103
+ return /*#__PURE__*/ React.createElement(ElevatorRender, {
104
+ visible: innerVisible,
105
+ closeable: true,
106
+ title: title || locale.address.selectRegion,
107
+ left: backIcon,
108
+ defaultValue: defaultValue,
109
+ closeIcon: closeIcon,
110
+ options: options,
111
+ hotList: hotList,
112
+ format: format,
113
+ optionKey: optionKey,
114
+ type: currentType,
115
+ height: height,
116
+ onClose: handleClose,
117
+ onChange: function(val, params) {
118
+ onChange === null || onChange === void 0 ? void 0 : onChange(val, params);
119
+ }
120
+ });
121
+ };
122
+ var renderCascator = function() {
123
+ return /*#__PURE__*/ React.createElement(CascaderRender, {
124
+ visible: innerVisible,
125
+ closeable: true,
126
+ title: title || locale.address.selectRegion,
127
+ left: renderLeftOnCascaderSwitch(),
128
+ defaultValue: defaultValue,
129
+ closeIcon: closeIcon,
130
+ options: options,
131
+ format: format,
132
+ optionKey: optionKey,
133
+ type: currentType,
134
+ height: height,
135
+ onClose: handleClose,
136
+ onChange: function(val, params) {
137
+ onChange && onChange(val, params);
138
+ }
139
+ });
140
+ };
141
+ var renderExist = function() {
142
+ return /*#__PURE__*/ React.createElement(Popup, {
143
+ visible: innerVisible,
144
+ position: "bottom",
145
+ round: true,
146
+ closeable: true,
147
+ closeIcon: closeIcon,
148
+ title: title || locale.address.selectRegion,
149
+ onClose: handleClose
150
+ }, /*#__PURE__*/ React.createElement("div", {
151
+ className: "".concat(classPrefix, " ").concat(className || ''),
152
+ style: _object_spread({}, style)
153
+ }, // 不需要 close,选中切换即关闭弹框。可手动关闭弹框,只关闭弹框不处理逻辑。
154
+ /*#__PURE__*/ React.createElement(ExistRender, {
155
+ type: currentType,
156
+ existList: existList,
157
+ selectIcon: selectIcon,
158
+ defaultIcon: defaultIcon,
159
+ custom: custom,
160
+ onSelect: selectedExistItem,
161
+ onSwitch: onSwitchModule
162
+ })));
163
+ };
164
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, currentType === 'elevator' ? renderElevator() : null, currentType === 'cascader' ? renderCascator() : null, currentType === 'exist' ? renderExist() : null);
140
165
  };
141
166
  export var Address = /*#__PURE__*/ forwardRef(InternalAddress);
142
167
  Address.displayName = 'NutAddress';
@@ -10,4 +10,4 @@ export interface AddressProps extends WebCascaderProps {
10
10
  format: Record<string, string | number | null>;
11
11
  height: string | number;
12
12
  }
13
- export declare const CustomRender: FunctionComponent<Partial<AddressProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'title' | 'defaultValue' | 'onChange'>>;
13
+ export declare const CascaderRender: FunctionComponent<Partial<AddressProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'title' | 'defaultValue' | 'onChange'>>;
@@ -6,7 +6,7 @@ import { ComponentDefaults } from "../../utils/typings";
6
6
  import Cascader from "../cascader";
7
7
  var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
8
8
  visible: false,
9
- type: 'custom',
9
+ type: 'cascader',
10
10
  options: [],
11
11
  optionKey: {
12
12
  textKey: 'text',
@@ -16,7 +16,7 @@ var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
16
16
  format: {},
17
17
  height: '200px'
18
18
  });
19
- export var CustomRender = function(props) {
19
+ export var CascaderRender = function(props) {
20
20
  var _ref = _object_spread({}, defaultProps, props), children = _ref.children, visible = _ref.visible, type = _ref.type, height = _ref.height, options = _ref.options, title = _ref.title, left = _ref.left, value = _ref.value, defaultValue = _ref.defaultValue, optionKey = _ref.optionKey, format = _ref.format, onClose = _ref.onClose, onChange = _ref.onChange, onPathChange = _ref.onPathChange, rest = _object_without_properties(_ref, [
21
21
  "children",
22
22
  "visible",
@@ -33,7 +33,7 @@ export var CustomRender = function(props) {
33
33
  "onChange",
34
34
  "onPathChange"
35
35
  ]);
36
- return /*#__PURE__*/ React.createElement(React.Fragment, null, type === 'custom' && /*#__PURE__*/ React.createElement(Cascader, _object_spread({
36
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, type === 'cascader' && /*#__PURE__*/ React.createElement(Cascader, _object_spread({
37
37
  visible: visible,
38
38
  value: value,
39
39
  defaultValue: defaultValue,
@@ -0,0 +1,14 @@
1
+ import React, { FunctionComponent } from 'react';
2
+ import { CascaderOption, WebCascaderProps, CascaderValue, CascaderOptionKey, RegionData } from "../../types";
3
+ export interface AddressProps extends WebCascaderProps {
4
+ visible: boolean;
5
+ type: string;
6
+ options: CascaderOption[];
7
+ hotList: RegionData[];
8
+ value: CascaderValue;
9
+ defaultValue: CascaderValue;
10
+ optionKey: CascaderOptionKey;
11
+ format: Record<string, string | number | null>;
12
+ height: string | number;
13
+ }
14
+ export declare const ElevatorRender: FunctionComponent<Partial<AddressProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'title' | 'defaultValue' | 'onChange'>>;