@nutui/nutui-react 3.0.10 → 3.0.11

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 (93) hide show
  1. package/CHANGELOG.md +19 -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 +0 -5
  16. package/dist/cjs/packages/address/style/style.css +0 -4
  17. package/dist/cjs/packages/address/style-jmapp/address.scss +0 -5
  18. package/dist/cjs/packages/address/style-jmapp/style.css +0 -4
  19. package/dist/cjs/packages/address/style-jrkf/address.scss +0 -5
  20. package/dist/cjs/packages/address/style-jrkf/style.css +0 -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/elevator/style/css.js +2 -0
  25. package/dist/cjs/packages/elevator/style/elevator.scss +95 -116
  26. package/dist/cjs/packages/elevator/style/index.js +2 -0
  27. package/dist/cjs/packages/elevator/style/style.css +83 -98
  28. package/dist/cjs/packages/elevator/style-jmapp/css.js +2 -0
  29. package/dist/cjs/packages/elevator/style-jmapp/elevator.scss +95 -116
  30. package/dist/cjs/packages/elevator/style-jmapp/index.js +2 -0
  31. package/dist/cjs/packages/elevator/style-jmapp/style.css +83 -98
  32. package/dist/cjs/packages/elevator/style-jrkf/css.js +2 -0
  33. package/dist/cjs/packages/elevator/style-jrkf/elevator.scss +95 -116
  34. package/dist/cjs/packages/elevator/style-jrkf/index.js +2 -0
  35. package/dist/cjs/packages/elevator/style-jrkf/style.css +83 -98
  36. package/dist/cjs/packages/picker/style/picker.scss +0 -1
  37. package/dist/cjs/packages/picker/style/style.css +0 -1
  38. package/dist/cjs/packages/picker/style-jmapp/picker.scss +0 -1
  39. package/dist/cjs/packages/picker/style-jmapp/style.css +0 -1
  40. package/dist/cjs/packages/picker/style-jrkf/picker.scss +0 -1
  41. package/dist/cjs/packages/picker/style-jrkf/style.css +0 -1
  42. package/dist/cjs/types/spec/address/base.d.ts +3 -12
  43. package/dist/cjs/types/spec/cascader/base.d.ts +1 -0
  44. package/dist/es/locales/base.d.ts +2 -0
  45. package/dist/es/locales/en-US.js +3 -1
  46. package/dist/es/locales/id-ID.js +3 -1
  47. package/dist/es/locales/tr-TR.js +3 -1
  48. package/dist/es/locales/zh-CN.js +3 -1
  49. package/dist/es/locales/zh-TW.js +3 -1
  50. package/dist/es/locales/zh-UG.js +3 -1
  51. package/dist/es/packages/address/address.js +81 -56
  52. package/dist/es/packages/address/{customRender.d.ts → cascaderRender.d.ts} +1 -1
  53. package/dist/es/packages/address/{customRender.js → cascaderRender.js} +3 -3
  54. package/dist/es/packages/address/elevatorRender.d.ts +14 -0
  55. package/dist/es/packages/address/elevatorRender.js +250 -0
  56. package/dist/es/packages/address/existRender.js +2 -2
  57. package/dist/es/packages/address/style/address.scss +0 -5
  58. package/dist/es/packages/address/style/style.css +0 -4
  59. package/dist/es/packages/address/style-jmapp/address.scss +0 -5
  60. package/dist/es/packages/address/style-jmapp/style.css +0 -4
  61. package/dist/es/packages/address/style-jrkf/address.scss +0 -5
  62. package/dist/es/packages/address/style-jrkf/style.css +0 -4
  63. package/dist/es/packages/address/utils.d.ts +5 -0
  64. package/dist/es/packages/address/utils.js +75 -0
  65. package/dist/es/packages/elevator/elevator.js +2 -1
  66. package/dist/es/packages/elevator/style/css.js +2 -0
  67. package/dist/es/packages/elevator/style/elevator.scss +95 -116
  68. package/dist/es/packages/elevator/style/index.js +2 -0
  69. package/dist/es/packages/elevator/style/style.css +83 -98
  70. package/dist/es/packages/elevator/style-jmapp/css.js +2 -0
  71. package/dist/es/packages/elevator/style-jmapp/elevator.scss +95 -116
  72. package/dist/es/packages/elevator/style-jmapp/index.js +2 -0
  73. package/dist/es/packages/elevator/style-jmapp/style.css +83 -98
  74. package/dist/es/packages/elevator/style-jrkf/css.js +2 -0
  75. package/dist/es/packages/elevator/style-jrkf/elevator.scss +95 -116
  76. package/dist/es/packages/elevator/style-jrkf/index.js +2 -0
  77. package/dist/es/packages/elevator/style-jrkf/style.css +83 -98
  78. package/dist/es/packages/picker/style/picker.scss +0 -1
  79. package/dist/es/packages/picker/style/style.css +0 -1
  80. package/dist/es/packages/picker/style-jmapp/picker.scss +0 -1
  81. package/dist/es/packages/picker/style-jmapp/style.css +0 -1
  82. package/dist/es/packages/picker/style-jrkf/picker.scss +0 -1
  83. package/dist/es/packages/picker/style-jrkf/style.css +0 -1
  84. package/dist/es/types/spec/address/base.d.ts +7 -13
  85. package/dist/es/types/spec/cascader/base.d.ts +1 -0
  86. package/dist/nutui.react.umd.js +463 -127
  87. package/dist/style-jmapp.css +1 -1
  88. package/dist/style-jmapp.scss +41 -41
  89. package/dist/style-jrkf.css +1 -1
  90. package/dist/style-jrkf.scss +44 -44
  91. package/dist/style.css +1 -1
  92. package/dist/style.scss +37 -37
  93. package/package.json +1 -1
@@ -2,120 +2,105 @@
2
2
  /* #endif */
3
3
  /* #ifndef harmony */
4
4
  /* #endif */
5
- .nut-elevator {
6
- width: 100%;
7
- display: block;
8
- position: relative;
9
- overflow: hidden;
5
+ .nut-address-title {
6
+ font-size: 14px;
7
+ font-weight: 500;
8
+ padding: 16px 16px 12px 16px;
10
9
  }
11
- .nut-elevator-list {
12
- display: block;
13
- position: relative;
14
- top: 0;
15
- overflow: hidden;
16
- font-size: var(--nutui-elevator-list-font-size, var(--nutui-font-text-small));
17
- color: var(--nutui-elevator-list-color, var(--nutui-color-title));
10
+ .nut-address-hotlist {
11
+ padding: 0 16px;
12
+ display: flex;
13
+ flex-wrap: wrap;
14
+ align-items: flex-start;
18
15
  }
19
- .nut-elevator-list-inner {
20
- height: 100%;
21
- width: 100%;
22
- display: block;
23
- background-color: var(--nutui-elevator-list-bg-color, #ffffff);
24
- overflow: auto;
16
+ .nut-address-hotlist-item {
17
+ display: flex;
18
+ justify-content: center;
19
+ align-items: center;
20
+ width: 63px;
21
+ height: 28px;
22
+ font-size: 12px;
23
+ border-radius: 4px;
24
+ margin-bottom: 7px;
25
+ /* #ifdef harmony*/
26
+ margin-right: 6px;
27
+ /* #endif */
28
+ /* #ifndef harmony*/
29
+ margin-right: 7px;
30
+ /* #endif */
31
+ background-color: var(--nutui-gray-2, #f0f0f0);
32
+ color: var(--nutui-color-title);
25
33
  }
26
- .nut-elevator-list-item {
27
- display: block;
34
+ .nut-address-hotlist-item:nth-child(5n) {
35
+ margin-right: 0;
28
36
  }
29
- .nut-elevator-list-item-code {
30
- display: flex;
31
- position: relative;
32
- height: var(--nutui-elevator-list-item-code-height, 20px);
33
- line-height: var(--nutui-elevator-list-item-code-line-height, 20px);
34
- font-size: var(--nutui-elevator-list-item-code-font-size, var(--nutui-font-text));
35
- color: var(--nutui-elevator-list-item-code-color, var(--nutui-color-title));
36
- padding: var(--nutui-elevator-list-item-padding, 0 20px);
37
- font-weight: var(--nutui-elevator-list-item-code-font-weight, var(--nutui-font-weight-bold));
38
- box-sizing: border-box;
39
- border-bottom: var(--nutui-elevator-list-item-code-border-bottom, none);
40
- background-color: var(--nutui-elevator-list-item-code-background-color, var(--nutui-color-default-light));
37
+ .nut-address-hotlist.hotlist-more .nut-address-hotlist-item {
38
+ width: auto;
39
+ padding: 0 16px;
40
+ margin-right: 7px;
41
41
  }
42
- .nut-elevator-list-item-name {
42
+ .nut-address-selected {
43
+ width: 100%;
44
+ height: 60px;
45
+ padding: 0 16px;
43
46
  display: flex;
44
47
  align-items: center;
45
- padding: var(--nutui-elevator-list-item-padding, 0 20px);
46
- height: var(--nutui-elevator-list-item-name-height, 52px);
47
- line-height: var(--nutui-elevator-list-item-name-line-height, 52px);
48
+ border-bottom: 1px solid var(--nutui-color-border);
48
49
  }
49
- .nut-elevator-list-item-name-highcolor {
50
+ .nut-address-selected-item {
51
+ font-size: 12px;
52
+ display: inline-block;
53
+ height: 28px;
54
+ line-height: 28px;
55
+ padding: 0 12px;
56
+ border-radius: 4px;
57
+ background-color: var(--nutui-gray-2, #f0f0f0);
58
+ }
59
+ .nut-address-selected-item.active {
60
+ border: 1px solid var(--nutui-color-primary, #ff6666);
61
+ background-color: var(--nutui-color-primary-light-pressed, #ffcccc);
50
62
  color: var(--nutui-color-primary, #ff6666);
51
63
  }
52
- .nut-elevator-list-fixed {
53
- display: flex;
54
- align-items: center;
55
- width: 100%;
56
- position: absolute;
57
- top: 0;
58
- left: 0;
59
- z-index: 1;
60
- padding: var(--nutui-elevator-list-item-padding, 0 20px);
61
- height: var(--nutui-elevator-list-item-code-height, 20px);
62
- background-color: var(--nutui-elevator-list-fixed-bg-color, var(--nutui-color-default-light));
63
- box-sizing: border-box;
64
- box-shadow: var(--nutui-elevator-list-fixed-box-shadow, 0 0 10px #eee);
64
+ .nut-address-selected-border {
65
+ margin: 0 2px;
66
+ color: var(--nutui-color-text-disabled);
65
67
  }
66
- .nut-elevator-list-fixed-title {
67
- font-size: var(--nutui-elevator-list-item-code-font-size, var(--nutui-font-text));
68
- color: var(--nutui-elevator-list-fixed-color, var(--nutui-color-primary, #ff6666));
69
- font-weight: var(--nutui-elevator-list-item-code-font-weight, var(--nutui-font-weight-bold));
68
+ .nut-address-elevator {
69
+ margin-top: 0;
70
70
  }
71
- .nut-elevator-code-current {
72
- position: absolute;
73
- right: var(--nutui-elevator-list-item-code-current-right, 40px);
74
- top: var(--nutui-elevator-list-item-code-current-top, 50%);
75
- transform: var(--nutui-elevator-bars-transform, translateY(-50%));
76
- width: var(--nutui-elevator-list-item-code-current-width, 48px);
77
- height: var(--nutui-elevator-list-item-code-current-height, 48px);
78
- line-height: var(--nutui-elevator-list-item-code-current-line-height, 48px);
79
- border-radius: var(--nutui-elevator-list-item-code-current-border-radius, 50% 0 50% 50%);
80
- background: var(--nutui-elevator-list-item-code-current-bg-color, var(--nutui-color-default-light));
81
- box-shadow: 0px 2px 6px 0px rgba(4, 1, 135, 0.08);
82
- text-align: var(--nutui-elevator-list-item-code-current-text-align, center);
71
+ .nut-address-elevator .nut-elevator-list-item {
72
+ position: relative;
73
+ padding-left: 20px;
83
74
  }
84
- .nut-elevator-bars {
75
+ .nut-address-elevator .nut-elevator-list-item-code {
76
+ display: inline;
85
77
  position: absolute;
86
- right: var(--nutui-elevator-bars-right, 10px);
87
- top: var(--nutui-elevator-bars-top, 50%);
78
+ left: 0;
79
+ top: 0;
80
+ height: 30px;
81
+ line-height: 30px;
82
+ border-bottom: 0;
88
83
  color: var(--nutui-color-text-help);
89
- font-size: var(--nutui-elevator-bars-font-size, var(--nutui-font-text-xs));
90
- transform: var(--nutui-elevator-bars-transform, translateY(-50%));
91
- padding: var(--nutui-elevator-bars-padding, 15px 0);
92
- background-color: var(--nutui-elevator-bars-background-color, transparent);
93
- border-radius: var(--nutui-elevator-bars-border-radius, 6px);
94
- text-align: center;
95
- z-index: var(--nutui-elevator-bars-z-index, 2);
96
- }
97
- .nut-elevator-bars-inner-item {
98
- display: block;
99
- padding: var(--nutui-elevator-bars-inner-item-padding, 3px);
100
- cursor: pointer;
101
- }
102
- .nut-elevator-bars-inner-item-active {
103
- font-weight: var(--nutui-font-weight-bold);
104
- color: var(--nutui-elevator-bars-active-color, var(--nutui-color-primary, #ff6666));
84
+ font-weight: 500;
105
85
  }
106
-
107
- [dir=rtl] .nut-elevator-list-fixed,
108
- .nut-rtl .nut-elevator-list-fixed {
109
- left: auto;
110
- right: 0;
86
+ .nut-address-elevator .nut-elevator-bars {
87
+ top: 40%;
88
+ padding: 0;
89
+ background: none;
111
90
  }
112
- [dir=rtl] .nut-elevator-code-current,
113
- .nut-rtl .nut-elevator-code-current {
114
- right: auto;
115
- left: var(--nutui-elevator-list-item-code-current-right, 40px);
91
+ .nut-address-elevator .nut-elevator-bars-inner-item {
92
+ display: flex;
93
+ justify-content: center;
94
+ align-items: center;
95
+ width: 16px;
96
+ height: 16px;
97
+ font-size: 10px;
98
+ border-radius: 16px;
99
+ margin-bottom: 2px;
100
+ color: var(--nutui-color-text-help);
116
101
  }
117
- [dir=rtl] .nut-elevator-bars,
118
- .nut-rtl .nut-elevator-bars {
119
- right: auto;
120
- left: var(--nutui-elevator-bars-right, 10px);
102
+ .nut-address-elevator .nut-elevator-bars-inner-item-active {
103
+ background-color: var(--nutui-color-primary, #ff6666);
104
+ color: var(--nutui-color-surface-2);
105
+ font-weight: 400;
121
106
  }
@@ -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'>>;