funda-ui 4.5.680 → 4.5.682

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 (35) hide show
  1. package/DragDropList/index.css +188 -0
  2. package/DragDropList/index.d.ts +43 -0
  3. package/DragDropList/index.js +1589 -0
  4. package/MultipleSelect/index.css +237 -144
  5. package/MultipleSelect/index.d.ts +23 -10
  6. package/MultipleSelect/index.js +2242 -1225
  7. package/README.md +3 -1
  8. package/Utils/useBoundedDrag.d.ts +127 -0
  9. package/Utils/useBoundedDrag.js +382 -0
  10. package/Utils/useDragDropPosition.d.ts +169 -0
  11. package/Utils/useDragDropPosition.js +456 -0
  12. package/all.d.ts +1 -0
  13. package/all.js +1 -0
  14. package/lib/cjs/DragDropList/index.d.ts +43 -0
  15. package/lib/cjs/DragDropList/index.js +1589 -0
  16. package/lib/cjs/MultipleSelect/index.d.ts +23 -10
  17. package/lib/cjs/MultipleSelect/index.js +2242 -1225
  18. package/lib/cjs/Utils/useBoundedDrag.d.ts +127 -0
  19. package/lib/cjs/Utils/useBoundedDrag.js +382 -0
  20. package/lib/cjs/Utils/useDragDropPosition.d.ts +169 -0
  21. package/lib/cjs/Utils/useDragDropPosition.js +456 -0
  22. package/lib/cjs/index.d.ts +1 -0
  23. package/lib/cjs/index.js +1 -0
  24. package/lib/css/DragDropList/index.css +188 -0
  25. package/lib/css/MultipleSelect/index.css +237 -144
  26. package/lib/esm/DragDropList/index.scss +245 -0
  27. package/lib/esm/DragDropList/index.tsx +493 -0
  28. package/lib/esm/MultipleSelect/index.scss +288 -183
  29. package/lib/esm/MultipleSelect/index.tsx +304 -166
  30. package/lib/esm/MultipleSelect/utils/func.ts +21 -1
  31. package/lib/esm/Utils/hooks/useBoundedDrag.tsx +303 -0
  32. package/lib/esm/Utils/hooks/useDragDropPosition.tsx +420 -0
  33. package/lib/esm/index.js +1 -0
  34. package/package.json +1 -1
  35. package/lib/esm/MultipleSelect/ItemList.tsx +0 -323
@@ -0,0 +1,245 @@
1
+ /* ======================================================
2
+ <!-- DragDrop List -->
3
+ /* ====================================================== */
4
+ .custom-draggable-list {
5
+
6
+ --custom-draggable-content-bg: transparent;
7
+ --custom-draggable-content-color: inherit;
8
+ --custom-draggable-border-color: #ddd;
9
+ --custom-draggable-wrapper-radius: 0.25rem;
10
+ --custom-draggable-control-radius: 0.25rem;
11
+ --custom-draggable-primary-color: #ffa940;
12
+ --custom-draggable-content-diff-bg: #fafafa;
13
+ --custom-draggable-content-diff-border-color: #d9d9d9;
14
+ --custom-draggable-control-fs: 0.75rem;
15
+ --custom-draggable-control-w: 100px;
16
+ --custom-draggable-btn-confirm-bg: #52c41a;
17
+ --custom-draggable-btn-cancel-bg: #ff4d4f;
18
+ --custom-draggable-btn-color: #fff;
19
+
20
+
21
+ list-style: none;
22
+ padding: 0;
23
+ margin: 0;
24
+ width: 100%;
25
+ position: relative;
26
+ border: 1px solid var(--custom-draggable-border-color);
27
+ border-radius: var(--custom-draggable-wrapper-radius);
28
+
29
+ li {
30
+ margin: 0;
31
+ padding: 0;
32
+ }
33
+
34
+ .custom-draggable-list__item {
35
+ padding: 0;
36
+ position: relative;
37
+ transition: transform 0.15s ease;
38
+ position: relative;
39
+
40
+ .custom-draggable-list__itemcontent {
41
+ padding: 10px 15px;
42
+ background: var(--custom-draggable-content-bg);
43
+ color: var(--custom-draggable-content-color);
44
+ border-bottom: 1px solid var(--custom-draggable-border-color);
45
+ display: flex;
46
+ align-items: center;
47
+ user-select: none;
48
+ transition: all 0.15s ease;
49
+
50
+ .custom-draggable-list__itemcontent-inner {
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: space-between;
54
+ width: 100%;
55
+
56
+ }
57
+ }
58
+
59
+ &:last-child {
60
+ .custom-draggable-list__itemcontent {
61
+ border-bottom: none;
62
+ }
63
+ }
64
+
65
+ &.disabled {
66
+ pointer-events: none !important;
67
+ opacity: .4 !important;
68
+ }
69
+ }
70
+
71
+ &.alternate-collapse {
72
+ .custom-draggable-list__collapse-arrow {
73
+ cursor: pointer;
74
+ display: inline-block;
75
+ width: 20px;
76
+ text-align: center;
77
+ user-select: none;
78
+ margin-left: .2rem;
79
+
80
+ svg {
81
+ transition: all 0.15s ease;
82
+ }
83
+
84
+ &:hover {
85
+ opacity: 0.7;
86
+ }
87
+ }
88
+
89
+ .custom-draggable-list__item {
90
+ &.has-children {
91
+ position: relative;
92
+ }
93
+
94
+ &.collapsed {
95
+ .custom-draggable-list__collapse-arrow svg {
96
+ transform: rotate(-90deg);
97
+ }
98
+ }
99
+ }
100
+ }
101
+
102
+ .custom-draggable-list__item.draggable .custom-draggable-list__itemcontent {
103
+ padding-left: 1.5em;
104
+ }
105
+
106
+
107
+ &.handle-pos-right .custom-draggable-list__item.draggable .custom-draggable-list__itemcontent,
108
+ &.icon-hide .custom-draggable-list__item.draggable .custom-draggable-list__itemcontent {
109
+ padding-left: .5rem;
110
+ }
111
+
112
+
113
+ .custom-draggable-list__item {
114
+ &.block.draggable {
115
+ cursor: move;
116
+ }
117
+
118
+ &.dragging .custom-draggable-list__itemcontent {
119
+ background: #fff9e6;
120
+ border: 1px dashed #ffd591;
121
+ opacity: 0.8;
122
+ }
123
+
124
+ &.drag-over .custom-draggable-list__itemcontent {
125
+ background: #fff9e6;
126
+ border: 2px solid #ffd591;
127
+ }
128
+
129
+ &.drag-over-top::before {
130
+ content: '';
131
+ position: absolute;
132
+ top: -3px;
133
+ left: 0;
134
+ right: 0;
135
+ height: 2px;
136
+ background: var(--custom-draggable-primary-color);
137
+ border-radius: 1px;
138
+ }
139
+
140
+ &.drag-over-bottom::after {
141
+ content: '';
142
+ position: absolute;
143
+ bottom: -3px;
144
+ left: 0;
145
+ right: 0;
146
+ height: 2px;
147
+ background: var(--custom-draggable-primary-color);
148
+ border-radius: 1px;
149
+ }
150
+ }
151
+
152
+ /* Fix the problem that mobile terminals cannot be touched, DO NOT USE "<svg>" */
153
+ .custom-draggable-list__handle {
154
+ color: #999;
155
+ padding: 5px;
156
+ cursor: move;
157
+ transition: color 0.15s ease;
158
+ position: absolute;
159
+ width: 1em;
160
+ height: 1em;
161
+ top: 50%;
162
+ transform: translateY(-50%);
163
+ z-index: 1;
164
+ display: flex;
165
+ align-items: center;
166
+ font-size: 0.75rem;
167
+
168
+ &.left {
169
+ left: 0;
170
+ }
171
+
172
+ &.right {
173
+ right: 1em;
174
+ }
175
+ }
176
+
177
+ .custom-draggable-list__item,
178
+ .custom-draggable-list__itemcontent {
179
+ transition: all 0.15s ease;
180
+ }
181
+
182
+
183
+ .custom-draggable-list__item {
184
+ &.editing .custom-draggable-list__itemcontent,
185
+ &:hover .custom-draggable-list__itemcontent {
186
+ background: var(--custom-draggable-content-diff-bg);
187
+ border-color: var(--custom-draggable-content-diff-border-color);
188
+ }
189
+
190
+
191
+ &.block:hover .custom-draggable-list__handle {
192
+ color: var(--custom-draggable-primary-color);
193
+ }
194
+
195
+ }
196
+
197
+ &.handle .custom-draggable-list__handle:hover {
198
+ color: var(--custom-draggable-primary-color);
199
+ }
200
+
201
+ /* FORM */
202
+ .custom-draggable-list__edit-form {
203
+ display: flex;
204
+ flex: 1;
205
+ gap: 10px;
206
+ align-items: center;
207
+
208
+ input {
209
+ padding: 4px 8px;
210
+ border: 1px solid var(--custom-draggable-border-color);
211
+ border-radius: var(--custom-draggable-control-radius);
212
+ font-size: var(--custom-draggable-control-fs);
213
+ width: var(--custom-draggable-control-w);
214
+ }
215
+ }
216
+
217
+ .custom-draggable-list__edit-buttons {
218
+ display: flex;
219
+ gap: 5px;
220
+
221
+ button {
222
+ padding: .2rem .5rem;
223
+ border: none;
224
+ font-size: 0.75rem;
225
+ border-radius: var(--custom-draggable-control-radius);
226
+ cursor: pointer;
227
+
228
+ &:first-child {
229
+ background: var(--custom-draggable-btn-confirm-bg);
230
+ color: var(--custom-draggable-btn-color);
231
+ }
232
+
233
+ &:last-child {
234
+ background: var(--custom-draggable-btn-cancel-bg);
235
+ color: var(--custom-draggable-btn-color);
236
+ }
237
+
238
+ &:hover {
239
+ opacity: 0.8;
240
+ }
241
+ }
242
+ }
243
+
244
+ }
245
+