funda-ui 2.0.555 → 2.0.755

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 (43) hide show
  1. package/CascadingSelect/index.css +128 -83
  2. package/CascadingSelect/index.d.ts +10 -6
  3. package/CascadingSelect/index.js +564 -135
  4. package/CascadingSelectE2E/index.css +128 -83
  5. package/CascadingSelectE2E/index.d.ts +7 -3
  6. package/CascadingSelectE2E/index.js +488 -133
  7. package/DropdownMenu/index.css +93 -74
  8. package/DropdownMenu/index.d.ts +3 -4
  9. package/DropdownMenu/index.js +296 -39
  10. package/LiveSearch/index.css +43 -0
  11. package/LiveSearch/index.d.ts +2 -3
  12. package/LiveSearch/index.js +443 -180
  13. package/MultiFuncSelect/index.js +59 -20
  14. package/lib/cjs/CascadingSelect/index.d.ts +10 -6
  15. package/lib/cjs/CascadingSelect/index.js +564 -135
  16. package/lib/cjs/CascadingSelectE2E/index.d.ts +7 -3
  17. package/lib/cjs/CascadingSelectE2E/index.js +488 -133
  18. package/lib/cjs/DropdownMenu/index.d.ts +3 -4
  19. package/lib/cjs/DropdownMenu/index.js +296 -39
  20. package/lib/cjs/LiveSearch/index.d.ts +2 -3
  21. package/lib/cjs/LiveSearch/index.js +443 -180
  22. package/lib/cjs/MultiFuncSelect/index.js +59 -20
  23. package/lib/css/CascadingSelect/index.css +128 -83
  24. package/lib/css/CascadingSelectE2E/index.css +128 -83
  25. package/lib/css/DropdownMenu/index.css +93 -74
  26. package/lib/css/LiveSearch/index.css +43 -0
  27. package/lib/esm/CascadingSelect/Group.tsx +37 -5
  28. package/lib/esm/CascadingSelect/index.scss +178 -116
  29. package/lib/esm/CascadingSelect/index.tsx +553 -250
  30. package/lib/esm/CascadingSelect/utils/get-element-property.js +154 -0
  31. package/lib/esm/CascadingSelect/utils/tree.js +119 -0
  32. package/lib/esm/CascadingSelectE2E/Group.tsx +38 -4
  33. package/lib/esm/CascadingSelectE2E/index.scss +178 -116
  34. package/lib/esm/CascadingSelectE2E/index.tsx +347 -134
  35. package/lib/esm/CascadingSelectE2E/utils/get-element-property.js +154 -0
  36. package/lib/esm/DropdownMenu/Option.tsx +16 -15
  37. package/lib/esm/DropdownMenu/index.scss +118 -101
  38. package/lib/esm/DropdownMenu/index.tsx +191 -27
  39. package/lib/esm/DropdownMenu/utils/get-element-property.js +153 -0
  40. package/lib/esm/LiveSearch/index.scss +69 -0
  41. package/lib/esm/LiveSearch/index.tsx +343 -144
  42. package/lib/esm/MultiFuncSelect/index.tsx +75 -23
  43. package/package.json +1 -1
@@ -1,49 +1,40 @@
1
1
  /* ======================================================
2
2
  <!-- Cascading Select -->
3
3
  /* ====================================================== */
4
- .c-select__wrapper {
5
- --c-select-opt-header-border-color: rgba(1, 1, 1, .2);
6
- --c-select-opt-header-text-color: #999;
7
- --c-select-opt-hover-bg: #f7f7f7;
8
- --c-select-opt-active-bg: #eeeeee;
9
- --c-select-items-box-shadow: 0 5px 15px 5px rgba(80, 102, 224, 0.08);
10
- --c-select-items-bg: #fff;
11
- --c-select-items-color: inherit;
12
- --c-select-items-border-color: rgba(0, 0, 0, .1);
13
- --c-select-items-li-border-color: #eee;
14
- --c-select-arrow-fill: #a5a5a5;
15
- --c-select-result-arrow-fill: #a5a5a5;
16
- --c-select-result-font-size: 1rem;
17
- --c-select-result-padding-x: 0.75rem;
18
- --c-select-result-padding-y: 0.375rem;
19
- --c-select-opt-font-size: 0.875rem;
20
- --c-select-opt-padding-x: .4rem;
21
- --c-select-opt-padding-y: .3rem;
22
- }
23
- .c-select__wrapper .c-select__result {
4
+ .cas-select__wrapper {
5
+ --cas-select-arrow-fill: #a5a5a5;
6
+ --cas-select-result-arrow-fill: #a5a5a5;
7
+ --cas-select-result-font-size: 1rem;
8
+ --cas-select-result-padding-x: 0.75rem;
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
+ }
14
+ .cas-select__wrapper .cas-select__result {
24
15
  position: absolute;
25
16
  left: auto;
26
17
  z-index: 1;
27
18
  top: 0;
28
- padding: var(--c-select-result-padding-y) var(--c-select-result-padding-x);
29
- font-size: var(--c-select-result-font-size);
19
+ padding: var(--cas-select-result-padding-y) var(--cas-select-result-padding-x);
20
+ font-size: var(--cas-select-result-font-size);
30
21
  font-weight: 400;
31
22
  line-height: 1.5;
32
23
  color: inherit;
33
24
  }
34
- .c-select__wrapper .c-select__result div {
25
+ .cas-select__wrapper .cas-select__result div {
35
26
  display: inline;
36
27
  }
37
- .c-select__wrapper .c-select__result span {
28
+ .cas-select__wrapper .cas-select__result span {
38
29
  padding: 3px;
39
30
  }
40
- .c-select__wrapper .c-select__result svg {
31
+ .cas-select__wrapper .cas-select__result svg {
41
32
  margin: 0 0.3rem;
42
33
  }
43
- .c-select__wrapper .c-select__result svg path {
44
- fill: var(--c-select-result-arrow-fill);
34
+ .cas-select__wrapper .cas-select__result svg path {
35
+ fill: var(--cas-select-result-arrow-fill);
45
36
  }
46
- .c-select__wrapper .c-select__closemask {
37
+ .cas-select__wrapper .cas-select__closemask {
47
38
  position: absolute;
48
39
  z-index: 1;
49
40
  top: 0;
@@ -53,111 +44,165 @@
53
44
  background: rgba(0, 0, 0, 0);
54
45
  user-select: none;
55
46
  }
56
- .c-select__wrapper .c-select__val {
47
+ .cas-select__wrapper .cas-select__trigger {
48
+ position: relative;
49
+ z-index: 0;
50
+ }
51
+ .cas-select__wrapper .cas-select__val {
57
52
  position: relative;
58
53
  }
59
- .c-select__wrapper .c-select__val input {
54
+ .cas-select__wrapper .cas-select__val input {
60
55
  cursor: pointer;
61
56
  color: transparent !important;
62
57
  }
63
- .c-select__wrapper .c-select__val input:focus {
58
+ .cas-select__wrapper .cas-select__val input:focus {
64
59
  color: transparent !important;
65
60
  }
66
- .c-select__wrapper .c-select__val .arrow {
61
+ .cas-select__wrapper .cas-select__val .arrow {
67
62
  position: absolute;
68
63
  top: 0;
69
64
  margin-top: 0.3rem;
70
65
  right: 0.5rem;
71
66
  }
72
- .c-select__wrapper .c-select__val .arrow svg .arrow-fill-g {
73
- fill: var(--c-select-arrow-fill);
74
- }
75
- .c-select__wrapper .c-select {
76
- display: flex;
77
- align-items: center;
78
- position: relative;
79
- z-index: 1;
80
- }
81
- .c-select__wrapper .c-select ul,
82
- .c-select__wrapper .c-select li {
83
- list-style: none;
84
- margin: 0;
85
- padding: 0;
86
- }
87
- .c-select__wrapper .c-select .c-select__trigger {
88
- position: relative;
89
- z-index: 0;
90
- }
91
- .c-select__wrapper .c-select .c-select__items {
92
- box-shadow: var(--c-select-items-box-shadow);
67
+ .cas-select__wrapper .cas-select__val .arrow svg .arrow-fill-g {
68
+ fill: var(--cas-select-arrow-fill);
69
+ }
70
+
71
+ /*------ List ------*/
72
+ .cas-select__items-wrapper {
73
+ --cas-select-opt-header-border-color: rgba(1, 1, 1, .2);
74
+ --cas-select-opt-header-text-color: #999;
75
+ --cas-select-opt-hover-bg: #f7f7f7;
76
+ --cas-select-opt-active-bg: #eeeeee;
77
+ --cas-select-items-box-shadow: 0 5px 15px 5px rgba(80, 102, 224, 0.08);
78
+ --cas-select-items-bg: #fff;
79
+ --cas-select-items-color: inherit;
80
+ --cas-select-items-border-color: rgba(0, 0, 0, .1);
81
+ --cas-select-items-li-border-color: #eee;
82
+ --cas-select-loader-color: #000000;
83
+ --cas-select-clean-btn-color: #b5b5b5;
84
+ box-shadow: var(--cas-select-items-box-shadow);
93
85
  position: absolute;
94
86
  left: auto;
95
87
  max-height: 350px;
96
- border: 1px solid var(--c-select-items-border-color);
97
- background: var(--c-select-items-bg);
88
+ border: 1px solid var(--cas-select-items-border-color);
89
+ background: var(--cas-select-items-bg);
98
90
  padding: 10px;
99
91
  overflow-y: auto;
100
92
  box-sizing: border-box;
101
- z-index: 1;
102
93
  top: 2.3rem;
103
94
  border-radius: 5px;
104
95
  width: max-content;
105
96
  /* required -> the content will not wrap at all even if it causes overflows*/
106
- color: var(--c-select-items-color);
97
+ color: var(--cas-select-items-color);
98
+ display: none;
99
+ z-index: 1055; /* --bs-modal-zindex */
107
100
  /* each item */
101
+ /* Options */
108
102
  }
109
- .c-select__wrapper .c-select .c-select__items.bottom-0 {
110
- top: auto;
103
+ .cas-select__items-wrapper.active {
104
+ display: block;
111
105
  }
112
- .c-select__wrapper .c-select .c-select__items .c-select__close svg {
106
+ .cas-select__items-wrapper ul,
107
+ .cas-select__items-wrapper li {
108
+ list-style: none;
109
+ margin: 0;
110
+ padding: 0;
111
+ }
112
+ .cas-select__items-wrapper .cas-select__items-loader {
113
+ position: absolute;
114
+ pointer-events: none;
115
+ left: 0;
116
+ top: 0;
117
+ margin-left: 5px;
118
+ z-index: 1;
119
+ z-index: 1;
120
+ width: 12px;
121
+ height: 12px;
122
+ text-align: center;
123
+ transform-origin: bottom;
124
+ animation: 1s linear infinite cas-select__spinner;
125
+ }
126
+ .cas-select__items-wrapper .cas-select__items-loader svg path {
127
+ fill: var(--cas-select-loader-color);
128
+ }
129
+ @keyframes cas-select__spinner {
130
+ to {
131
+ transform: rotate(-360deg);
132
+ }
133
+ }
134
+ .cas-select__items-wrapper .cas-select__close svg {
113
135
  opacity: 0.4;
114
136
  }
115
- .c-select__wrapper .c-select .c-select__items .c-select__close:hover svg {
137
+ .cas-select__items-wrapper .cas-select__close:hover svg {
116
138
  transition: 0.2s ease-out;
117
139
  opacity: 0.7;
118
140
  }
119
- .c-select__wrapper .c-select .c-select__items ul {
141
+ .cas-select__items-wrapper ul {
120
142
  transition: 0.2s ease-out;
121
143
  min-width: 8px;
122
144
  min-height: 9px;
123
145
  }
124
- .c-select__wrapper .c-select .c-select__items ul > li {
146
+ .cas-select__items-wrapper ul > li {
125
147
  position: relative;
126
148
  cursor: pointer;
127
149
  float: left;
128
150
  padding: 0 10px;
129
151
  margin-right: 15px;
130
- border-right: 1px dotted var(--c-select-items-li-border-color);
152
+ border-right: 1px dotted var(--cas-select-items-li-border-color);
131
153
  transition: 0.2s ease-out;
132
154
  }
133
- .c-select__wrapper .c-select .c-select__items ul > li:last-child {
155
+ .cas-select__items-wrapper ul > li.hide-col {
156
+ display: none;
157
+ }
158
+ .cas-select__items-wrapper ul > li:last-child {
134
159
  margin-right: 0;
135
160
  border-right: none;
136
161
  }
137
- .c-select__wrapper .c-select .c-select__opt {
138
- padding: var(--c-select-opt-padding-y) var(--c-select-opt-padding-x);
139
- font-size: var(--c-select-opt-font-size);
162
+ .cas-select__items-wrapper .cas-select__opt {
163
+ padding: var(--cas-select-opt-padding-y) var(--cas-select-opt-padding-x);
164
+ font-size: var(--cas-select-opt-font-size);
140
165
  border-radius: 2px;
141
166
  }
142
- .c-select__wrapper .c-select .c-select__opt:hover {
143
- background: var(--c-select-opt-hover-bg);
167
+ .cas-select__items-wrapper .cas-select__opt:hover {
168
+ background: var(--cas-select-opt-hover-bg);
144
169
  }
145
- .c-select__wrapper .c-select .c-select__opt.active {
146
- background: var(--c-select-opt-active-bg);
170
+ .cas-select__items-wrapper .cas-select__opt.active {
171
+ background: var(--cas-select-opt-active-bg);
147
172
  }
148
- .c-select__wrapper .c-select .c-select__opt-header {
149
- padding: var(--c-select-opt-padding-y) var(--c-select-opt-padding-x);
150
- font-size: var(--c-select-opt-font-size);
151
- border-bottom: 1px dotted var(--c-select-opt-header-border-color);
173
+ .cas-select__items-wrapper .cas-select__opt-header {
174
+ padding: var(--cas-select-opt-padding-y) var(--cas-select-opt-padding-x);
175
+ font-size: var(--cas-select-opt-font-size);
176
+ border-bottom: 1px dotted var(--cas-select-opt-header-border-color);
152
177
  border-radius: 2px;
153
178
  position: sticky;
154
- top: calc(var(--c-select-opt-font-size) * -1);
155
- background: var(--c-select-items-bg);
156
- color: var(--c-select-opt-header-text-color);
179
+ top: calc(var(--cas-select-opt-font-size) * -1);
180
+ background: var(--cas-select-items-bg);
181
+ color: var(--cas-select-opt-header-text-color);
182
+ display: flex;
183
+ align-items: center;
184
+ }
185
+ .cas-select__items-wrapper .cas-select__opt-header > span {
186
+ cursor: default;
187
+ }
188
+ .cas-select__items-wrapper .cas-select__opt-header:hover {
189
+ background: var(--cas-select-opt-hover-bg);
190
+ }
191
+ .cas-select__items-wrapper .cas-select__opt-header.active {
192
+ background: var(--cas-select-opt-active-bg);
193
+ }
194
+ .cas-select__items-wrapper .cas-select__opt-header .cas-select__opt-header__clean {
195
+ display: inline-block;
196
+ margin-left: 0.2rem;
197
+ padding: 0.1rem;
198
+ }
199
+ .cas-select__items-wrapper .cas-select__opt-header .cas-select__opt-header__clean:hover {
200
+ transform: scale(1.1);
157
201
  }
158
- .c-select__wrapper .c-select .c-select__opt-header:hover {
159
- background: var(--c-select-opt-hover-bg);
202
+ .cas-select__items-wrapper .cas-select__opt-header .cas-select__opt-header__clean svg {
203
+ border: 1px var(--cas-select-clean-btn-color) solid;
204
+ border-radius: 50%;
160
205
  }
161
- .c-select__wrapper .c-select .c-select__opt-header.active {
162
- background: var(--c-select-opt-active-bg);
206
+ .cas-select__items-wrapper .cas-select__opt-header .cas-select__opt-header__clean svg path {
207
+ fill: var(--cas-select-clean-btn-color);
163
208
  }
@@ -4,7 +4,7 @@ declare module 'react' {
4
4
  children?: any;
5
5
  }
6
6
  }
7
- declare type CascadingSelectOptionChangeFnType = (input: any, currentData: any, index: any, depth: any, value: any) => void;
7
+ declare type CascadingSelectOptionChangeFnType = (input: any, currentData: any, index: any, depth: any, value: any, closeFunc: any) => void;
8
8
  declare type CascadingSelectProps = {
9
9
  wrapperClassName?: string;
10
10
  controlClassName?: string;
@@ -14,11 +14,11 @@ declare type CascadingSelectProps = {
14
14
  placeholder?: string;
15
15
  disabled?: any;
16
16
  required?: any;
17
- /** Whether to use square brackets to save result and initialize default value */
18
- extractValueByBrackets?: boolean;
17
+ /** Whether to use curly braces to save result and initialize default value */
18
+ extractValueByBraces?: boolean;
19
19
  /** Set headers for each column group */
20
20
  columnTitle?: any[];
21
- /** Set whether to use "label" or "value" for the value of this form, they will be separated by commas, such as `Text 1,Text 1_1,Text 1_1_1` or `1,1_1,1_1_1`.
21
+ /** Set whether to use "label" or "value" for the value of this form
22
22
  * Optional values: `label`, `value`
23
23
  */
24
24
  valueType?: string;
@@ -36,10 +36,14 @@ declare type CascadingSelectProps = {
36
36
  displayResultArrow?: React.ReactNode;
37
37
  /** Set an arrow of control */
38
38
  controlArrow?: React.ReactNode;
39
- /** Specify a class for this Node. */
39
+ /** Specify a class for trigger. */
40
40
  triggerClassName?: string;
41
41
  /** Set a piece of text or HTML code for the trigger */
42
42
  triggerContent?: React.ReactNode;
43
+ /** Specify a class for clean node button. */
44
+ cleanNodeBtnClassName?: string;
45
+ /** Set a piece of text or HTML code for the clean node button */
46
+ cleanNodeBtnContent?: React.ReactNode;
43
47
  /** -- */
44
48
  id?: string;
45
49
  style?: React.CSSProperties;
@@ -49,7 +53,7 @@ declare type CascadingSelectProps = {
49
53
  fetchFuncMethod?: string;
50
54
  fetchFuncMethodParams?: any[];
51
55
  fetchCallback?: (data: any) => void;
52
- onFetch?: (data: any) => void;
56
+ onFetch?: (data: any, childrenData: any) => void;
53
57
  onChange?: CascadingSelectOptionChangeFnType | null;
54
58
  onBlur?: (e: any) => void;
55
59
  onFocus?: (e: any) => void;