@cloudscape-design/components 3.0.236 → 3.0.238
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.
- package/button/index.d.ts.map +1 -1
- package/button/index.js +2 -2
- package/button/index.js.map +1 -1
- package/button/interfaces.d.ts +4 -0
- package/button/interfaces.d.ts.map +1 -1
- package/button/interfaces.js.map +1 -1
- package/container/internal.d.ts.map +1 -1
- package/container/internal.js +4 -2
- package/container/internal.js.map +1 -1
- package/container/styles.css.js +18 -20
- package/container/styles.scoped.css +36 -43
- package/container/styles.selectors.js +18 -20
- package/icon/icons.js +1 -1
- package/icon/interfaces.d.ts +1 -1
- package/icon/interfaces.d.ts.map +1 -1
- package/icon/interfaces.js.map +1 -1
- package/internal/environment.js +1 -1
- package/internal/hooks/use-intersection-observer/index.d.ts +9 -0
- package/internal/hooks/use-intersection-observer/index.d.ts.map +1 -0
- package/internal/hooks/use-intersection-observer/index.js +28 -0
- package/internal/hooks/use-intersection-observer/index.js.map +1 -0
- package/internal/manifest.json +1 -1
- package/modal/internal.d.ts.map +1 -1
- package/modal/internal.js +8 -2
- package/modal/internal.js.map +1 -1
- package/modal/styles.css.js +23 -22
- package/modal/styles.scoped.css +43 -37
- package/modal/styles.selectors.js +23 -22
- package/package.json +1 -1
- package/property-filter/index.d.ts.map +1 -1
- package/property-filter/index.js +6 -4
- package/property-filter/index.js.map +1 -1
- package/property-filter/property-filter-autosuggest.d.ts +1 -0
- package/property-filter/property-filter-autosuggest.d.ts.map +1 -1
- package/property-filter/property-filter-autosuggest.js +2 -2
- package/property-filter/property-filter-autosuggest.js.map +1 -1
- package/property-filter/styles.css.js +31 -33
- package/property-filter/styles.scoped.css +33 -43
- package/property-filter/styles.selectors.js +31 -33
- package/test-utils/dom/property-filter/index.js +2 -1
- package/test-utils/dom/property-filter/index.js.map +1 -1
- package/test-utils/selectors/property-filter/index.js +2 -1
- package/test-utils/selectors/property-filter/index.js.map +1 -1
- package/test-utils/tsconfig.tsbuildinfo +1 -1
- package/text-filter/internal.d.ts.map +1 -1
- package/text-filter/internal.js +4 -8
- package/text-filter/internal.js.map +1 -1
- package/text-filter/search-results.d.ts +8 -0
- package/text-filter/search-results.d.ts.map +1 -0
- package/text-filter/search-results.js +13 -0
- package/text-filter/search-results.js.map +1 -0
- package/text-filter/styles.css.js +3 -4
- package/text-filter/styles.scoped.css +3 -5
- package/text-filter/styles.selectors.js +3 -4
package/modal/styles.scoped.css
CHANGED
|
@@ -94,7 +94,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
94
94
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
95
95
|
SPDX-License-Identifier: Apache-2.0
|
|
96
96
|
*/
|
|
97
|
-
@keyframes awsui_modal-slide-
|
|
97
|
+
@keyframes awsui_modal-slide-up_1d2i7_1ij78_1 {
|
|
98
98
|
0% {
|
|
99
99
|
transform: translate(0, 10px);
|
|
100
100
|
}
|
|
@@ -102,12 +102,12 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
102
102
|
transform: translate(0, 0);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
.
|
|
106
|
-
animation: awsui_modal-slide-
|
|
105
|
+
.awsui_dialog_1d2i7_1ij78_105:not(#\9) {
|
|
106
|
+
animation: awsui_modal-slide-up_1d2i7_1ij78_1 var(--motion-duration-slow-0273ow, 180ms) ease-out, awsui_awsui-motion-fade-in-0_1d2i7_1ij78_1 var(--motion-duration-slow-0273ow, 180ms) ease-out;
|
|
107
107
|
animation-delay: var(--motion-duration-fast-nk2ap0, 90ms);
|
|
108
108
|
animation-fill-mode: both;
|
|
109
109
|
}
|
|
110
|
-
@keyframes awsui_awsui-motion-fade-in-
|
|
110
|
+
@keyframes awsui_awsui-motion-fade-in-0_1d2i7_1ij78_1 {
|
|
111
111
|
from {
|
|
112
112
|
opacity: 0;
|
|
113
113
|
}
|
|
@@ -116,22 +116,22 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
@media (prefers-reduced-motion: reduce) {
|
|
119
|
-
.
|
|
119
|
+
.awsui_dialog_1d2i7_1ij78_105:not(#\9) {
|
|
120
120
|
animation: none;
|
|
121
121
|
transition: none;
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
.awsui-motion-disabled .
|
|
124
|
+
.awsui-motion-disabled .awsui_dialog_1d2i7_1ij78_105:not(#\9), .awsui-mode-entering .awsui_dialog_1d2i7_1ij78_105:not(#\9) {
|
|
125
125
|
animation: none;
|
|
126
126
|
transition: none;
|
|
127
127
|
}
|
|
128
|
-
.
|
|
129
|
-
animation: awsui_awsui-motion-scale-
|
|
128
|
+
.awsui_dialog_1d2i7_1ij78_105.awsui_refresh_1d2i7_1ij78_128:not(#\9) {
|
|
129
|
+
animation: awsui_awsui-motion-scale-popup_1d2i7_1ij78_1, awsui_awsui-motion-fade-in-0_1d2i7_1ij78_1;
|
|
130
130
|
animation-duration: var(--motion-duration-refresh-only-fast-addxjd, 115ms);
|
|
131
131
|
animation-timing-function: var(--motion-easing-refresh-only-a-sy0g8m, cubic-bezier(0, 0, 0, 1));
|
|
132
132
|
animation-fill-mode: both;
|
|
133
133
|
}
|
|
134
|
-
@keyframes awsui_awsui-motion-fade-in-
|
|
134
|
+
@keyframes awsui_awsui-motion-fade-in-0_1d2i7_1ij78_1 {
|
|
135
135
|
from {
|
|
136
136
|
opacity: 0;
|
|
137
137
|
}
|
|
@@ -139,7 +139,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
139
139
|
opacity: 1;
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
@keyframes awsui_awsui-motion-scale-
|
|
142
|
+
@keyframes awsui_awsui-motion-scale-popup_1d2i7_1ij78_1 {
|
|
143
143
|
0% {
|
|
144
144
|
transform: scale(0.95);
|
|
145
145
|
}
|
|
@@ -148,21 +148,21 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
@media (prefers-reduced-motion: reduce) {
|
|
151
|
-
.
|
|
151
|
+
.awsui_dialog_1d2i7_1ij78_105.awsui_refresh_1d2i7_1ij78_128:not(#\9) {
|
|
152
152
|
animation: none;
|
|
153
153
|
transition: none;
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
.awsui-motion-disabled .
|
|
156
|
+
.awsui-motion-disabled .awsui_dialog_1d2i7_1ij78_105.awsui_refresh_1d2i7_1ij78_128:not(#\9), .awsui-mode-entering .awsui_dialog_1d2i7_1ij78_105.awsui_refresh_1d2i7_1ij78_128:not(#\9) {
|
|
157
157
|
animation: none;
|
|
158
158
|
transition: none;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
.
|
|
162
|
-
animation: awsui_awsui-motion-fade-
|
|
161
|
+
.awsui_root_1d2i7_1ij78_161:not(#\9) {
|
|
162
|
+
animation: awsui_awsui-motion-fade-in_1d2i7_1ij78_1 var(--motion-duration-extra-slow-8ks5rs, 270ms) ease-out;
|
|
163
163
|
animation-fill-mode: both;
|
|
164
164
|
}
|
|
165
|
-
@keyframes awsui_awsui-motion-fade-
|
|
165
|
+
@keyframes awsui_awsui-motion-fade-in_1d2i7_1ij78_1 {
|
|
166
166
|
from {
|
|
167
167
|
opacity: 0.2;
|
|
168
168
|
}
|
|
@@ -171,25 +171,25 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
@media (prefers-reduced-motion: reduce) {
|
|
174
|
-
.
|
|
174
|
+
.awsui_root_1d2i7_1ij78_161:not(#\9) {
|
|
175
175
|
animation: none;
|
|
176
176
|
transition: none;
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
.awsui-motion-disabled .
|
|
179
|
+
.awsui-motion-disabled .awsui_root_1d2i7_1ij78_161:not(#\9), .awsui-mode-entering .awsui_root_1d2i7_1ij78_161:not(#\9) {
|
|
180
180
|
animation: none;
|
|
181
181
|
transition: none;
|
|
182
182
|
}
|
|
183
|
-
.
|
|
183
|
+
.awsui_root_1d2i7_1ij78_161.awsui_refresh_1d2i7_1ij78_128:not(#\9) {
|
|
184
184
|
animation-duration: var(--motion-duration-refresh-only-fast-addxjd, 115ms);
|
|
185
185
|
}
|
|
186
186
|
@media (prefers-reduced-motion: reduce) {
|
|
187
|
-
.
|
|
187
|
+
.awsui_root_1d2i7_1ij78_161.awsui_refresh_1d2i7_1ij78_128:not(#\9) {
|
|
188
188
|
animation: none;
|
|
189
189
|
transition: none;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
.awsui-motion-disabled .
|
|
192
|
+
.awsui-motion-disabled .awsui_root_1d2i7_1ij78_161.awsui_refresh_1d2i7_1ij78_128:not(#\9), .awsui-mode-entering .awsui_root_1d2i7_1ij78_161.awsui_refresh_1d2i7_1ij78_128:not(#\9) {
|
|
193
193
|
animation: none;
|
|
194
194
|
transition: none;
|
|
195
195
|
}
|
|
@@ -198,7 +198,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
198
198
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
199
199
|
SPDX-License-Identifier: Apache-2.0
|
|
200
200
|
*/
|
|
201
|
-
.
|
|
201
|
+
.awsui_root_1d2i7_1ij78_161:not(#\9) {
|
|
202
202
|
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
203
203
|
border-collapse: separate;
|
|
204
204
|
border-spacing: 0;
|
|
@@ -249,11 +249,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
249
249
|
overflow: auto;
|
|
250
250
|
cursor: pointer;
|
|
251
251
|
}
|
|
252
|
-
.
|
|
252
|
+
.awsui_root_1d2i7_1ij78_161.awsui_hidden_1d2i7_1ij78_226:not(#\9) {
|
|
253
253
|
display: none;
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
.awsui_focus-
|
|
256
|
+
.awsui_focus-lock_1d2i7_1ij78_230:not(#\9) {
|
|
257
257
|
align-self: flex-start;
|
|
258
258
|
margin: auto;
|
|
259
259
|
padding: var(--space-s-hv8c1d, 12px) 0;
|
|
@@ -261,7 +261,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
261
261
|
pointer-events: none;
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
-
.
|
|
264
|
+
.awsui_dialog_1d2i7_1ij78_105:not(#\9) {
|
|
265
265
|
position: static;
|
|
266
266
|
top: 0;
|
|
267
267
|
transform: translate(0, 0);
|
|
@@ -271,21 +271,21 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
271
271
|
z-index: 5000;
|
|
272
272
|
pointer-events: all;
|
|
273
273
|
}
|
|
274
|
-
.
|
|
274
|
+
.awsui_dialog_1d2i7_1ij78_105.awsui_small_1d2i7_1ij78_248:not(#\9) {
|
|
275
275
|
max-width: 320px;
|
|
276
276
|
}
|
|
277
|
-
.
|
|
277
|
+
.awsui_dialog_1d2i7_1ij78_105.awsui_medium_1d2i7_1ij78_251:not(#\9) {
|
|
278
278
|
max-width: 600px;
|
|
279
279
|
}
|
|
280
|
-
.
|
|
280
|
+
.awsui_dialog_1d2i7_1ij78_105.awsui_large_1d2i7_1ij78_254:not(#\9) {
|
|
281
281
|
max-width: 820px;
|
|
282
282
|
}
|
|
283
|
-
.
|
|
283
|
+
.awsui_dialog_1d2i7_1ij78_105.awsui_max_1d2i7_1ij78_257.awsui_breakpoint-xs_1d2i7_1ij78_257:not(#\9) {
|
|
284
284
|
max-width: calc(100vw - (2 * 4 * 10px + var(--space-xxxl-bo9z7f, 40px)));
|
|
285
285
|
margin: auto;
|
|
286
286
|
}
|
|
287
287
|
|
|
288
|
-
.
|
|
288
|
+
.awsui_container_1d2i7_1ij78_262:not(#\9) {
|
|
289
289
|
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
290
290
|
border-collapse: separate;
|
|
291
291
|
border-spacing: 0;
|
|
@@ -330,39 +330,45 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
330
330
|
box-shadow: var(--shadow-modal-3qhlqt, 0px 4px 20px 1px rgba(0, 7, 22, 0.1));
|
|
331
331
|
}
|
|
332
332
|
|
|
333
|
-
.
|
|
333
|
+
.awsui_content_1d2i7_1ij78_281:not(#\9) {
|
|
334
334
|
padding: var(--space-container-content-top-fsd8nr, 0px) var(--space-modal-horizontal-ah0xld, 20px) var(--space-modal-content-bottom-cecclv, 16px);
|
|
335
335
|
}
|
|
336
|
-
.
|
|
336
|
+
.awsui_content_1d2i7_1ij78_281.awsui_no-paddings_1d2i7_1ij78_284:not(#\9) {
|
|
337
337
|
padding: 0;
|
|
338
338
|
}
|
|
339
339
|
|
|
340
|
-
.
|
|
340
|
+
.awsui_header_1d2i7_1ij78_288:not(#\9) {
|
|
341
341
|
padding: var(--space-s-hv8c1d, 12px) var(--space-modal-horizontal-ah0xld, 20px);
|
|
342
342
|
background-color: var(--color-background-container-header-4flbq5, #ffffff);
|
|
343
343
|
border-bottom: 1px solid var(--color-border-container-divider-4ade7z, transparent);
|
|
344
344
|
border-radius: var(--border-radius-container-gh9ysk, 16px) var(--border-radius-container-gh9ysk, 16px) 0 0;
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
-
.awsui_header--
|
|
347
|
+
.awsui_header--text_1d2i7_1ij78_295:not(#\9) {
|
|
348
348
|
/* used in test-utils */
|
|
349
349
|
}
|
|
350
350
|
|
|
351
|
-
.
|
|
351
|
+
.awsui_footer_1d2i7_1ij78_299:not(#\9) {
|
|
352
352
|
border-top: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-divider-default-7s2wjw, #e9ebed);
|
|
353
353
|
padding: var(--space-scaled-s-cu1hzn, 12px) var(--space-container-horizontal-tlw03i, 20px);
|
|
354
|
+
background-color: var(--color-background-container-content-i8i4a0, #ffffff);
|
|
355
|
+
position: sticky;
|
|
356
|
+
bottom: 0;
|
|
357
|
+
}
|
|
358
|
+
.awsui_footer--stuck_1d2i7_1ij78_306:not(#\9) {
|
|
359
|
+
border-radius: 0 0 var(--border-radius-container-gh9ysk, 16px) var(--border-radius-container-gh9ysk, 16px);
|
|
354
360
|
}
|
|
355
|
-
.
|
|
361
|
+
.awsui_footer_1d2i7_1ij78_299:not(#\9):after {
|
|
356
362
|
content: "";
|
|
357
363
|
display: table;
|
|
358
364
|
clear: both;
|
|
359
365
|
}
|
|
360
366
|
|
|
361
|
-
.awsui_dismiss-
|
|
367
|
+
.awsui_dismiss-control_1d2i7_1ij78_315:not(#\9) {
|
|
362
368
|
/* used in test-utils */
|
|
363
369
|
}
|
|
364
370
|
|
|
365
|
-
.awsui_modal-
|
|
371
|
+
.awsui_modal-open_1d2i7_1ij78_319:not(#\9) {
|
|
366
372
|
overflow: hidden;
|
|
367
373
|
/*
|
|
368
374
|
* When padding-right is added to account for scrollbar being turned
|
|
@@ -2,27 +2,28 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"dialog": "
|
|
6
|
-
"modal-slide-up": "awsui_modal-slide-
|
|
7
|
-
"awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-
|
|
8
|
-
"refresh": "
|
|
9
|
-
"awsui-motion-scale-popup": "awsui_awsui-motion-scale-
|
|
10
|
-
"root": "
|
|
11
|
-
"awsui-motion-fade-in": "awsui_awsui-motion-fade-
|
|
12
|
-
"hidden": "
|
|
13
|
-
"focus-lock": "awsui_focus-
|
|
14
|
-
"small": "
|
|
15
|
-
"medium": "
|
|
16
|
-
"large": "
|
|
17
|
-
"max": "
|
|
18
|
-
"breakpoint-xs": "awsui_breakpoint-
|
|
19
|
-
"container": "
|
|
20
|
-
"content": "
|
|
21
|
-
"no-paddings": "awsui_no-
|
|
22
|
-
"header": "
|
|
23
|
-
"header--text": "awsui_header--
|
|
24
|
-
"footer": "
|
|
25
|
-
"
|
|
26
|
-
"
|
|
5
|
+
"dialog": "awsui_dialog_1d2i7_1ij78_105",
|
|
6
|
+
"modal-slide-up": "awsui_modal-slide-up_1d2i7_1ij78_1",
|
|
7
|
+
"awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-0_1d2i7_1ij78_1",
|
|
8
|
+
"refresh": "awsui_refresh_1d2i7_1ij78_128",
|
|
9
|
+
"awsui-motion-scale-popup": "awsui_awsui-motion-scale-popup_1d2i7_1ij78_1",
|
|
10
|
+
"root": "awsui_root_1d2i7_1ij78_161",
|
|
11
|
+
"awsui-motion-fade-in": "awsui_awsui-motion-fade-in_1d2i7_1ij78_1",
|
|
12
|
+
"hidden": "awsui_hidden_1d2i7_1ij78_226",
|
|
13
|
+
"focus-lock": "awsui_focus-lock_1d2i7_1ij78_230",
|
|
14
|
+
"small": "awsui_small_1d2i7_1ij78_248",
|
|
15
|
+
"medium": "awsui_medium_1d2i7_1ij78_251",
|
|
16
|
+
"large": "awsui_large_1d2i7_1ij78_254",
|
|
17
|
+
"max": "awsui_max_1d2i7_1ij78_257",
|
|
18
|
+
"breakpoint-xs": "awsui_breakpoint-xs_1d2i7_1ij78_257",
|
|
19
|
+
"container": "awsui_container_1d2i7_1ij78_262",
|
|
20
|
+
"content": "awsui_content_1d2i7_1ij78_281",
|
|
21
|
+
"no-paddings": "awsui_no-paddings_1d2i7_1ij78_284",
|
|
22
|
+
"header": "awsui_header_1d2i7_1ij78_288",
|
|
23
|
+
"header--text": "awsui_header--text_1d2i7_1ij78_295",
|
|
24
|
+
"footer": "awsui_footer_1d2i7_1ij78_299",
|
|
25
|
+
"footer--stuck": "awsui_footer--stuck_1d2i7_1ij78_306",
|
|
26
|
+
"dismiss-control": "awsui_dismiss-control_1d2i7_1ij78_315",
|
|
27
|
+
"modal-open": "awsui_modal-open_1d2i7_1ij78_319"
|
|
27
28
|
};
|
|
28
29
|
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAY9E,OAAO,EAAE,mBAAmB,EAAiE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAY9E,OAAO,EAAE,mBAAmB,EAAiE,MAAM,cAAc,CAAC;AAmBlH,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAa/B,QAAA,MAAM,cAAc,qGAiUnB,CAAC;AAGF,eAAe,cAAc,CAAC"}
|
package/property-filter/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import { getBaseProps } from '../internal/base-component';
|
|
|
9
9
|
import { applyDisplayName } from '../internal/utils/apply-display-name';
|
|
10
10
|
import { KeyCode } from '../internal/keycode';
|
|
11
11
|
import SelectToggle from '../token-group/toggle';
|
|
12
|
-
import { generateUniqueId } from '../internal/hooks/use-unique-id/index';
|
|
12
|
+
import { generateUniqueId, useUniqueId } from '../internal/hooks/use-unique-id/index';
|
|
13
13
|
import { fireNonCancelableEvent } from '../internal/events';
|
|
14
14
|
import { TokenButton } from './token';
|
|
15
15
|
import { getQueryActions, parseText, getAutosuggestOptions, getAllowedOperators, getExtendedOperator, } from './controller';
|
|
@@ -20,6 +20,7 @@ import PropertyFilterAutosuggest from './property-filter-autosuggest';
|
|
|
20
20
|
import { PropertyEditor } from './property-editor';
|
|
21
21
|
import { matchTokenValue } from './utils';
|
|
22
22
|
import { useInternalI18n } from '../internal/i18n/context';
|
|
23
|
+
import { SearchResults } from '../text-filter/search-results';
|
|
23
24
|
const OPERATOR_I18N_MAPPING = {
|
|
24
25
|
'=': 'equals',
|
|
25
26
|
'!=': 'not_equals',
|
|
@@ -47,7 +48,7 @@ const PropertyFilter = React.forwardRef((_a, ref) => {
|
|
|
47
48
|
}) });
|
|
48
49
|
useImperativeHandle(ref, () => ({ focus: () => { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); } }), []);
|
|
49
50
|
const { tokens, operation } = query;
|
|
50
|
-
const showResults = (tokens === null || tokens === void 0 ? void 0 : tokens.length) && !disabled;
|
|
51
|
+
const showResults = !!(tokens === null || tokens === void 0 ? void 0 : tokens.length) && !disabled && !!countText;
|
|
51
52
|
const { addToken, removeToken, setToken, setOperation, removeAllTokens } = getQueryActions(query, onChange, inputRef);
|
|
52
53
|
const [filteringText, setFilteringText] = useState('');
|
|
53
54
|
const parsedText = parseText(filteringText, filteringProperties, disableFreeTextFiltering);
|
|
@@ -152,6 +153,7 @@ const PropertyFilter = React.forwardRef((_a, ref) => {
|
|
|
152
153
|
const controlId = useMemo(() => generateUniqueId(), []);
|
|
153
154
|
const operatorForm = parsedText.step === 'property' &&
|
|
154
155
|
((_b = getExtendedOperator(filteringProperties, parsedText.property.key, parsedText.operator)) === null || _b === void 0 ? void 0 : _b.form);
|
|
156
|
+
const searchResultsId = useUniqueId('property-filter-search-results');
|
|
155
157
|
return (React.createElement("div", Object.assign({}, baseProps, { className: clsx(baseProps.className, styles.root), ref: __internalRootRef }),
|
|
156
158
|
React.createElement("div", { className: styles['search-field'] },
|
|
157
159
|
customControl && React.createElement("div", { className: styles['custom-control'] }, customControl),
|
|
@@ -166,8 +168,8 @@ const PropertyFilter = React.forwardRef((_a, ref) => {
|
|
|
166
168
|
setFilteringText('');
|
|
167
169
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus({ preventDropdown: true });
|
|
168
170
|
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.close();
|
|
169
|
-
} })), hideEnteredTextOption: disableFreeTextFiltering && parsedText.step !== 'property', clearAriaLabel: i18nStrings.clearAriaLabel })),
|
|
170
|
-
React.createElement(
|
|
171
|
+
} })), hideEnteredTextOption: disableFreeTextFiltering && parsedText.step !== 'property', clearAriaLabel: i18nStrings.clearAriaLabel, searchResultsId: showResults ? searchResultsId : undefined })),
|
|
172
|
+
showResults ? React.createElement(SearchResults, { id: searchResultsId }, countText) : null),
|
|
171
173
|
tokens && tokens.length > 0 && (React.createElement("div", { className: styles.tokens },
|
|
172
174
|
React.createElement(InternalSpaceBetween, { size: "xs", direction: "horizontal", id: controlId },
|
|
173
175
|
slicedTokens.map((token, index) => (React.createElement(TokenButton, { token: token, first: index === 0, operation: operation, key: index, removeToken: () => removeToken(index), setToken: (newToken) => setToken(index, newToken), setOperation: setOperation, filteringOptions: filteringOptions, filteringProperties: filteringProperties, asyncProps: asyncProps, onLoadItems: onLoadItems, i18nStrings: i18nStrings, asyncProperties: asyncProperties, hideOperations: hideOperations, customGroupsText: customGroupsText, disableFreeTextFiltering: disableFreeTextFiltering, disabled: disabled, expandToViewport: expandToViewport }))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, useState, useMemo, useImperativeHandle } from 'react';\n\nimport InternalSpaceBetween from '../space-between/internal';\nimport { InternalButton } from '../button/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { KeyCode } from '../internal/keycode';\nimport SelectToggle from '../token-group/toggle';\nimport { generateUniqueId } from '../internal/hooks/use-unique-id/index';\nimport { fireNonCancelableEvent } from '../internal/events';\n\nimport { PropertyFilterOperator } from '@cloudscape-design/collection-hooks';\nimport { PropertyFilterProps, ParsedText, Ref, FilteringProperty, ComparisonOperator, Token } from './interfaces';\nimport { TokenButton } from './token';\nimport {\n getQueryActions,\n parseText,\n getAutosuggestOptions,\n getAllowedOperators,\n getExtendedOperator,\n} from './controller';\nimport { useLoadItems } from './use-load-items';\nimport styles from './styles.css.js';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport PropertyFilterAutosuggest, { PropertyFilterAutosuggestProps } from './property-filter-autosuggest';\nimport { PropertyEditor } from './property-editor';\nimport { AutosuggestInputRef } from '../internal/components/autosuggest-input';\nimport { matchTokenValue } from './utils';\nimport { useInternalI18n } from '../internal/i18n/context';\n\nexport { PropertyFilterProps };\n\nconst OPERATOR_I18N_MAPPING: Record<PropertyFilterOperator, string> = {\n '=': 'equals',\n '!=': 'not_equals',\n '>': 'greater_than',\n '>=': 'greater_than_equal',\n '<': 'less_than',\n '<=': 'less_than_equal',\n ':': 'contains',\n '!:': 'not_contains',\n};\n\nconst PropertyFilter = React.forwardRef(\n (\n {\n disabled,\n countText,\n query,\n hideOperations,\n onChange,\n filteringProperties,\n filteringOptions = [],\n customGroupsText = [],\n disableFreeTextFiltering = false,\n onLoadItems,\n virtualScroll,\n customControl,\n filteringEmpty,\n filteringLoadingText,\n filteringFinishedText,\n filteringErrorText,\n filteringRecoveryText,\n filteringStatusType,\n asyncProperties,\n tokenLimit,\n expandToViewport,\n ...rest\n }: PropertyFilterProps,\n ref: React.Ref<Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent('PropertyFilter');\n\n const inputRef = useRef<AutosuggestInputRef>(null);\n const baseProps = getBaseProps(rest);\n\n const i18n = useInternalI18n('property-filter');\n const i18nStrings: PropertyFilterProps.I18nStrings = {\n ...rest.i18nStrings,\n allPropertiesLabel: i18n('i18nStrings.allPropertiesLabel', rest.i18nStrings.allPropertiesLabel),\n applyActionText: i18n('i18nStrings.applyActionText', rest.i18nStrings.applyActionText),\n cancelActionText: i18n('i18nStrings.cancelActionText', rest.i18nStrings.cancelActionText),\n clearFiltersText: i18n('i18nStrings.clearFiltersText', rest.i18nStrings.clearFiltersText),\n editTokenHeader: i18n('i18nStrings.editTokenHeader', rest.i18nStrings.editTokenHeader),\n enteredTextLabel: i18n('i18nStrings.enteredTextLabel', rest.i18nStrings.enteredTextLabel),\n groupPropertiesText: i18n('i18nStrings.groupPropertiesText', rest.i18nStrings.groupPropertiesText),\n groupValuesText: i18n('i18nStrings.groupValuesText', rest.i18nStrings.groupValuesText),\n operationAndText: i18n('i18nStrings.operationAndText', rest.i18nStrings.operationAndText),\n operationOrText: i18n('i18nStrings.operationOrText', rest.i18nStrings.operationOrText),\n operatorContainsText: i18n('i18nStrings.operatorContainsText', rest.i18nStrings.operatorContainsText),\n operatorDoesNotContainText: i18n(\n 'i18nStrings.operatorDoesNotContainText',\n rest.i18nStrings.operatorDoesNotContainText\n ),\n operatorDoesNotEqualText: i18n('i18nStrings.operatorDoesNotEqualText', rest.i18nStrings.operatorDoesNotEqualText),\n operatorEqualsText: i18n('i18nStrings.operatorEqualsText', rest.i18nStrings.operatorEqualsText),\n operatorGreaterOrEqualText: i18n(\n 'i18nStrings.operatorGreaterOrEqualText',\n rest.i18nStrings.operatorGreaterOrEqualText\n ),\n operatorGreaterText: i18n('i18nStrings.operatorGreaterText', rest.i18nStrings.operatorGreaterText),\n operatorLessOrEqualText: i18n('i18nStrings.operatorLessOrEqualText', rest.i18nStrings.operatorLessOrEqualText),\n operatorLessText: i18n('i18nStrings.operatorLessText', rest.i18nStrings.operatorLessText),\n operatorText: i18n('i18nStrings.operatorText', rest.i18nStrings.operatorText),\n operatorsText: i18n('i18nStrings.operatorsText', rest.i18nStrings.operatorsText),\n propertyText: i18n('i18nStrings.propertyText', rest.i18nStrings.propertyText),\n tokenLimitShowFewer: i18n('i18nStrings.tokenLimitShowFewer', rest.i18nStrings.tokenLimitShowFewer),\n tokenLimitShowMore: i18n('i18nStrings.tokenLimitShowMore', rest.i18nStrings.tokenLimitShowMore),\n valueText: i18n('i18nStrings.valueText', rest.i18nStrings.valueText),\n removeTokenButtonAriaLabel: i18n(\n 'i18nStrings.removeTokenButtonAriaLabel',\n rest.i18nStrings.removeTokenButtonAriaLabel,\n format => token =>\n format({\n token__operator: OPERATOR_I18N_MAPPING[token.operator],\n token__propertyKey: token.propertyKey ?? '',\n token__value: token.value,\n })\n ),\n };\n\n useImperativeHandle(ref, () => ({ focus: () => inputRef.current?.focus() }), []);\n const { tokens, operation } = query;\n const showResults = tokens?.length && !disabled;\n const { addToken, removeToken, setToken, setOperation, removeAllTokens } = getQueryActions(\n query,\n onChange,\n inputRef\n );\n const [filteringText, setFilteringText] = useState<string>('');\n const parsedText = parseText(filteringText, filteringProperties, disableFreeTextFiltering);\n const autosuggestOptions = getAutosuggestOptions(\n parsedText,\n filteringOptions,\n filteringProperties,\n customGroupsText,\n i18nStrings\n );\n\n const createToken = (currentText: string) => {\n const parsedText = parseText(currentText, filteringProperties, disableFreeTextFiltering);\n let newToken: Token;\n switch (parsedText.step) {\n case 'property': {\n newToken = matchTokenValue(\n {\n propertyKey: parsedText.property.key,\n operator: parsedText.operator,\n value: parsedText.value,\n },\n filteringOptions\n );\n break;\n }\n case 'free-text': {\n newToken = {\n operator: parsedText.operator || ':',\n value: parsedText.value,\n };\n break;\n }\n case 'operator': {\n newToken = {\n operator: ':',\n value: currentText,\n };\n break;\n }\n }\n if (disableFreeTextFiltering && !('propertyKey' in newToken)) {\n return;\n }\n addToken(newToken);\n setFilteringText('');\n };\n const ignoreKeyDown = useRef<boolean>(false);\n const handleKeyDown: PropertyFilterAutosuggestProps['onKeyDown'] = event => {\n if (filteringText && !ignoreKeyDown.current && event.detail.keyCode === KeyCode.enter) {\n createToken(filteringText);\n }\n };\n const getLoadMoreDetail = (parsedText: ParsedText, filteringText: string) => {\n const loadMoreDetail: {\n filteringProperty: FilteringProperty | undefined;\n filteringText: string;\n filteringOperator: ComparisonOperator | undefined;\n } = {\n filteringProperty: undefined,\n filteringText,\n filteringOperator: undefined,\n };\n if (parsedText.step === 'property') {\n loadMoreDetail.filteringProperty = parsedText.property;\n loadMoreDetail.filteringText = parsedText.value;\n loadMoreDetail.filteringOperator = parsedText.operator;\n }\n return loadMoreDetail;\n };\n const loadMoreDetail = getLoadMoreDetail(parsedText, filteringText);\n const inputLoadItemsHandlers = useLoadItems(\n onLoadItems,\n loadMoreDetail.filteringText,\n loadMoreDetail.filteringProperty,\n loadMoreDetail.filteringText,\n loadMoreDetail.filteringOperator\n );\n const asyncProps = {\n empty: filteringEmpty,\n loadingText: filteringLoadingText,\n finishedText: filteringFinishedText,\n errorText: filteringErrorText,\n recoveryText: filteringRecoveryText,\n statusType: filteringStatusType,\n };\n const asyncAutosuggestProps =\n !!filteringText.length || asyncProperties\n ? {\n ...inputLoadItemsHandlers,\n ...asyncProps,\n }\n : {};\n const handleSelected: PropertyFilterAutosuggestProps['onOptionClick'] = event => {\n // The ignoreKeyDown flag makes sure `createToken` routine runs only once. Autosuggest's `onKeyDown` fires,\n // when an item is selected from the list using \"enter\" key.\n ignoreKeyDown.current = true;\n setTimeout(() => {\n ignoreKeyDown.current = false;\n }, 0);\n const { detail: option } = event;\n const value = option.value || '';\n\n if (!('keepOpenOnSelect' in option)) {\n createToken(value);\n return;\n }\n\n // stop dropdown from closing\n event.preventDefault();\n\n const parsedText = parseText(value, filteringProperties, disableFreeTextFiltering);\n const loadMoreDetail = getLoadMoreDetail(parsedText, value);\n\n // Insert operator automatically if only one operator is defined for the given property.\n if (parsedText.step === 'operator') {\n const operators = getAllowedOperators(parsedText.property);\n if (value.trim() === parsedText.property.propertyLabel && operators.length === 1) {\n loadMoreDetail.filteringProperty = parsedText.property;\n loadMoreDetail.filteringOperator = operators[0];\n loadMoreDetail.filteringText = '';\n setFilteringText(parsedText.property.propertyLabel + ' ' + operators[0] + ' ');\n }\n }\n\n fireNonCancelableEvent(onLoadItems, { ...loadMoreDetail, firstPage: true, samePage: false });\n };\n const [tokensExpanded, setTokensExpanded] = useState(false);\n const toggleExpandedTokens = () => setTokensExpanded(!tokensExpanded);\n const hasHiddenOptions = tokenLimit !== undefined && tokens.length > tokenLimit;\n const slicedTokens = hasHiddenOptions && !tokensExpanded ? tokens.slice(0, tokenLimit) : tokens;\n const controlId = useMemo(() => generateUniqueId(), []);\n\n const operatorForm =\n parsedText.step === 'property' &&\n getExtendedOperator(filteringProperties, parsedText.property.key, parsedText.operator)?.form;\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.root)} ref={__internalRootRef}>\n <div className={styles['search-field']}>\n {customControl && <div className={styles['custom-control']}>{customControl}</div>}\n <PropertyFilterAutosuggest\n ref={inputRef}\n virtualScroll={virtualScroll}\n enteredTextLabel={i18nStrings.enteredTextLabel ?? (value => value)}\n ariaLabel={i18nStrings.filteringAriaLabel}\n placeholder={i18nStrings.filteringPlaceholder}\n value={filteringText}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n {...autosuggestOptions}\n onChange={event => setFilteringText(event.detail.value)}\n empty={filteringEmpty}\n {...asyncAutosuggestProps}\n expandToViewport={expandToViewport}\n onOptionClick={handleSelected}\n customForm={\n operatorForm && (\n <PropertyEditor\n property={parsedText.property}\n operator={parsedText.operator}\n filter={parsedText.value}\n operatorForm={operatorForm}\n i18nStrings={i18nStrings}\n onCancel={() => {\n setFilteringText('');\n inputRef.current?.close();\n inputRef.current?.focus({ preventDropdown: true });\n }}\n onSubmit={token => {\n addToken(token);\n setFilteringText('');\n inputRef.current?.focus({ preventDropdown: true });\n inputRef.current?.close();\n }}\n />\n )\n }\n hideEnteredTextOption={disableFreeTextFiltering && parsedText.step !== 'property'}\n clearAriaLabel={i18nStrings.clearAriaLabel}\n />\n <span\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={clsx(styles.results, showResults && styles['results-visible'])}\n >\n {showResults ? countText : ''}\n </span>\n </div>\n {tokens && tokens.length > 0 && (\n <div className={styles.tokens}>\n <InternalSpaceBetween size=\"xs\" direction=\"horizontal\" id={controlId}>\n {slicedTokens.map((token, index) => (\n <TokenButton\n token={token}\n first={index === 0}\n operation={operation}\n key={index}\n removeToken={() => removeToken(index)}\n setToken={(newToken: Token) => setToken(index, newToken)}\n setOperation={setOperation}\n filteringOptions={filteringOptions}\n filteringProperties={filteringProperties}\n asyncProps={asyncProps}\n onLoadItems={onLoadItems}\n i18nStrings={i18nStrings}\n asyncProperties={asyncProperties}\n hideOperations={hideOperations}\n customGroupsText={customGroupsText}\n disableFreeTextFiltering={disableFreeTextFiltering}\n disabled={disabled}\n expandToViewport={expandToViewport}\n />\n ))}\n {hasHiddenOptions && (\n <div className={styles['toggle-collapsed']}>\n <SelectToggle\n controlId={controlId}\n allHidden={tokenLimit === 0}\n expanded={tokensExpanded}\n numberOfHiddenOptions={tokens.length - slicedTokens.length}\n i18nStrings={{\n limitShowFewer: i18nStrings.tokenLimitShowFewer,\n limitShowMore: i18nStrings.tokenLimitShowMore,\n }}\n onClick={toggleExpandedTokens}\n />\n </div>\n )}\n <div className={styles.separator} />\n <InternalButton onClick={removeAllTokens} className={styles['remove-all']} disabled={disabled}>\n {i18nStrings.clearFiltersText}\n </InternalButton>\n </InternalSpaceBetween>\n </div>\n )}\n </div>\n );\n }\n);\n\napplyDisplayName(PropertyFilter, 'PropertyFilter');\nexport default PropertyFilter;\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, useState, useMemo, useImperativeHandle } from 'react';\n\nimport InternalSpaceBetween from '../space-between/internal';\nimport { InternalButton } from '../button/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { KeyCode } from '../internal/keycode';\nimport SelectToggle from '../token-group/toggle';\nimport { generateUniqueId, useUniqueId } from '../internal/hooks/use-unique-id/index';\nimport { fireNonCancelableEvent } from '../internal/events';\n\nimport { PropertyFilterOperator } from '@cloudscape-design/collection-hooks';\nimport { PropertyFilterProps, ParsedText, Ref, FilteringProperty, ComparisonOperator, Token } from './interfaces';\nimport { TokenButton } from './token';\nimport {\n getQueryActions,\n parseText,\n getAutosuggestOptions,\n getAllowedOperators,\n getExtendedOperator,\n} from './controller';\nimport { useLoadItems } from './use-load-items';\nimport styles from './styles.css.js';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport PropertyFilterAutosuggest, { PropertyFilterAutosuggestProps } from './property-filter-autosuggest';\nimport { PropertyEditor } from './property-editor';\nimport { AutosuggestInputRef } from '../internal/components/autosuggest-input';\nimport { matchTokenValue } from './utils';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { SearchResults } from '../text-filter/search-results';\n\nexport { PropertyFilterProps };\n\nconst OPERATOR_I18N_MAPPING: Record<PropertyFilterOperator, string> = {\n '=': 'equals',\n '!=': 'not_equals',\n '>': 'greater_than',\n '>=': 'greater_than_equal',\n '<': 'less_than',\n '<=': 'less_than_equal',\n ':': 'contains',\n '!:': 'not_contains',\n};\n\nconst PropertyFilter = React.forwardRef(\n (\n {\n disabled,\n countText,\n query,\n hideOperations,\n onChange,\n filteringProperties,\n filteringOptions = [],\n customGroupsText = [],\n disableFreeTextFiltering = false,\n onLoadItems,\n virtualScroll,\n customControl,\n filteringEmpty,\n filteringLoadingText,\n filteringFinishedText,\n filteringErrorText,\n filteringRecoveryText,\n filteringStatusType,\n asyncProperties,\n tokenLimit,\n expandToViewport,\n ...rest\n }: PropertyFilterProps,\n ref: React.Ref<Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent('PropertyFilter');\n\n const inputRef = useRef<AutosuggestInputRef>(null);\n const baseProps = getBaseProps(rest);\n\n const i18n = useInternalI18n('property-filter');\n const i18nStrings: PropertyFilterProps.I18nStrings = {\n ...rest.i18nStrings,\n allPropertiesLabel: i18n('i18nStrings.allPropertiesLabel', rest.i18nStrings.allPropertiesLabel),\n applyActionText: i18n('i18nStrings.applyActionText', rest.i18nStrings.applyActionText),\n cancelActionText: i18n('i18nStrings.cancelActionText', rest.i18nStrings.cancelActionText),\n clearFiltersText: i18n('i18nStrings.clearFiltersText', rest.i18nStrings.clearFiltersText),\n editTokenHeader: i18n('i18nStrings.editTokenHeader', rest.i18nStrings.editTokenHeader),\n enteredTextLabel: i18n('i18nStrings.enteredTextLabel', rest.i18nStrings.enteredTextLabel),\n groupPropertiesText: i18n('i18nStrings.groupPropertiesText', rest.i18nStrings.groupPropertiesText),\n groupValuesText: i18n('i18nStrings.groupValuesText', rest.i18nStrings.groupValuesText),\n operationAndText: i18n('i18nStrings.operationAndText', rest.i18nStrings.operationAndText),\n operationOrText: i18n('i18nStrings.operationOrText', rest.i18nStrings.operationOrText),\n operatorContainsText: i18n('i18nStrings.operatorContainsText', rest.i18nStrings.operatorContainsText),\n operatorDoesNotContainText: i18n(\n 'i18nStrings.operatorDoesNotContainText',\n rest.i18nStrings.operatorDoesNotContainText\n ),\n operatorDoesNotEqualText: i18n('i18nStrings.operatorDoesNotEqualText', rest.i18nStrings.operatorDoesNotEqualText),\n operatorEqualsText: i18n('i18nStrings.operatorEqualsText', rest.i18nStrings.operatorEqualsText),\n operatorGreaterOrEqualText: i18n(\n 'i18nStrings.operatorGreaterOrEqualText',\n rest.i18nStrings.operatorGreaterOrEqualText\n ),\n operatorGreaterText: i18n('i18nStrings.operatorGreaterText', rest.i18nStrings.operatorGreaterText),\n operatorLessOrEqualText: i18n('i18nStrings.operatorLessOrEqualText', rest.i18nStrings.operatorLessOrEqualText),\n operatorLessText: i18n('i18nStrings.operatorLessText', rest.i18nStrings.operatorLessText),\n operatorText: i18n('i18nStrings.operatorText', rest.i18nStrings.operatorText),\n operatorsText: i18n('i18nStrings.operatorsText', rest.i18nStrings.operatorsText),\n propertyText: i18n('i18nStrings.propertyText', rest.i18nStrings.propertyText),\n tokenLimitShowFewer: i18n('i18nStrings.tokenLimitShowFewer', rest.i18nStrings.tokenLimitShowFewer),\n tokenLimitShowMore: i18n('i18nStrings.tokenLimitShowMore', rest.i18nStrings.tokenLimitShowMore),\n valueText: i18n('i18nStrings.valueText', rest.i18nStrings.valueText),\n removeTokenButtonAriaLabel: i18n(\n 'i18nStrings.removeTokenButtonAriaLabel',\n rest.i18nStrings.removeTokenButtonAriaLabel,\n format => token =>\n format({\n token__operator: OPERATOR_I18N_MAPPING[token.operator],\n token__propertyKey: token.propertyKey ?? '',\n token__value: token.value,\n })\n ),\n };\n\n useImperativeHandle(ref, () => ({ focus: () => inputRef.current?.focus() }), []);\n const { tokens, operation } = query;\n const showResults = !!tokens?.length && !disabled && !!countText;\n const { addToken, removeToken, setToken, setOperation, removeAllTokens } = getQueryActions(\n query,\n onChange,\n inputRef\n );\n const [filteringText, setFilteringText] = useState<string>('');\n const parsedText = parseText(filteringText, filteringProperties, disableFreeTextFiltering);\n const autosuggestOptions = getAutosuggestOptions(\n parsedText,\n filteringOptions,\n filteringProperties,\n customGroupsText,\n i18nStrings\n );\n\n const createToken = (currentText: string) => {\n const parsedText = parseText(currentText, filteringProperties, disableFreeTextFiltering);\n let newToken: Token;\n switch (parsedText.step) {\n case 'property': {\n newToken = matchTokenValue(\n {\n propertyKey: parsedText.property.key,\n operator: parsedText.operator,\n value: parsedText.value,\n },\n filteringOptions\n );\n break;\n }\n case 'free-text': {\n newToken = {\n operator: parsedText.operator || ':',\n value: parsedText.value,\n };\n break;\n }\n case 'operator': {\n newToken = {\n operator: ':',\n value: currentText,\n };\n break;\n }\n }\n if (disableFreeTextFiltering && !('propertyKey' in newToken)) {\n return;\n }\n addToken(newToken);\n setFilteringText('');\n };\n const ignoreKeyDown = useRef<boolean>(false);\n const handleKeyDown: PropertyFilterAutosuggestProps['onKeyDown'] = event => {\n if (filteringText && !ignoreKeyDown.current && event.detail.keyCode === KeyCode.enter) {\n createToken(filteringText);\n }\n };\n const getLoadMoreDetail = (parsedText: ParsedText, filteringText: string) => {\n const loadMoreDetail: {\n filteringProperty: FilteringProperty | undefined;\n filteringText: string;\n filteringOperator: ComparisonOperator | undefined;\n } = {\n filteringProperty: undefined,\n filteringText,\n filteringOperator: undefined,\n };\n if (parsedText.step === 'property') {\n loadMoreDetail.filteringProperty = parsedText.property;\n loadMoreDetail.filteringText = parsedText.value;\n loadMoreDetail.filteringOperator = parsedText.operator;\n }\n return loadMoreDetail;\n };\n const loadMoreDetail = getLoadMoreDetail(parsedText, filteringText);\n const inputLoadItemsHandlers = useLoadItems(\n onLoadItems,\n loadMoreDetail.filteringText,\n loadMoreDetail.filteringProperty,\n loadMoreDetail.filteringText,\n loadMoreDetail.filteringOperator\n );\n const asyncProps = {\n empty: filteringEmpty,\n loadingText: filteringLoadingText,\n finishedText: filteringFinishedText,\n errorText: filteringErrorText,\n recoveryText: filteringRecoveryText,\n statusType: filteringStatusType,\n };\n const asyncAutosuggestProps =\n !!filteringText.length || asyncProperties\n ? {\n ...inputLoadItemsHandlers,\n ...asyncProps,\n }\n : {};\n const handleSelected: PropertyFilterAutosuggestProps['onOptionClick'] = event => {\n // The ignoreKeyDown flag makes sure `createToken` routine runs only once. Autosuggest's `onKeyDown` fires,\n // when an item is selected from the list using \"enter\" key.\n ignoreKeyDown.current = true;\n setTimeout(() => {\n ignoreKeyDown.current = false;\n }, 0);\n const { detail: option } = event;\n const value = option.value || '';\n\n if (!('keepOpenOnSelect' in option)) {\n createToken(value);\n return;\n }\n\n // stop dropdown from closing\n event.preventDefault();\n\n const parsedText = parseText(value, filteringProperties, disableFreeTextFiltering);\n const loadMoreDetail = getLoadMoreDetail(parsedText, value);\n\n // Insert operator automatically if only one operator is defined for the given property.\n if (parsedText.step === 'operator') {\n const operators = getAllowedOperators(parsedText.property);\n if (value.trim() === parsedText.property.propertyLabel && operators.length === 1) {\n loadMoreDetail.filteringProperty = parsedText.property;\n loadMoreDetail.filteringOperator = operators[0];\n loadMoreDetail.filteringText = '';\n setFilteringText(parsedText.property.propertyLabel + ' ' + operators[0] + ' ');\n }\n }\n\n fireNonCancelableEvent(onLoadItems, { ...loadMoreDetail, firstPage: true, samePage: false });\n };\n const [tokensExpanded, setTokensExpanded] = useState(false);\n const toggleExpandedTokens = () => setTokensExpanded(!tokensExpanded);\n const hasHiddenOptions = tokenLimit !== undefined && tokens.length > tokenLimit;\n const slicedTokens = hasHiddenOptions && !tokensExpanded ? tokens.slice(0, tokenLimit) : tokens;\n const controlId = useMemo(() => generateUniqueId(), []);\n\n const operatorForm =\n parsedText.step === 'property' &&\n getExtendedOperator(filteringProperties, parsedText.property.key, parsedText.operator)?.form;\n\n const searchResultsId = useUniqueId('property-filter-search-results');\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.root)} ref={__internalRootRef}>\n <div className={styles['search-field']}>\n {customControl && <div className={styles['custom-control']}>{customControl}</div>}\n <PropertyFilterAutosuggest\n ref={inputRef}\n virtualScroll={virtualScroll}\n enteredTextLabel={i18nStrings.enteredTextLabel ?? (value => value)}\n ariaLabel={i18nStrings.filteringAriaLabel}\n placeholder={i18nStrings.filteringPlaceholder}\n value={filteringText}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n {...autosuggestOptions}\n onChange={event => setFilteringText(event.detail.value)}\n empty={filteringEmpty}\n {...asyncAutosuggestProps}\n expandToViewport={expandToViewport}\n onOptionClick={handleSelected}\n customForm={\n operatorForm && (\n <PropertyEditor\n property={parsedText.property}\n operator={parsedText.operator}\n filter={parsedText.value}\n operatorForm={operatorForm}\n i18nStrings={i18nStrings}\n onCancel={() => {\n setFilteringText('');\n inputRef.current?.close();\n inputRef.current?.focus({ preventDropdown: true });\n }}\n onSubmit={token => {\n addToken(token);\n setFilteringText('');\n inputRef.current?.focus({ preventDropdown: true });\n inputRef.current?.close();\n }}\n />\n )\n }\n hideEnteredTextOption={disableFreeTextFiltering && parsedText.step !== 'property'}\n clearAriaLabel={i18nStrings.clearAriaLabel}\n searchResultsId={showResults ? searchResultsId : undefined}\n />\n {showResults ? <SearchResults id={searchResultsId}>{countText}</SearchResults> : null}\n </div>\n {tokens && tokens.length > 0 && (\n <div className={styles.tokens}>\n <InternalSpaceBetween size=\"xs\" direction=\"horizontal\" id={controlId}>\n {slicedTokens.map((token, index) => (\n <TokenButton\n token={token}\n first={index === 0}\n operation={operation}\n key={index}\n removeToken={() => removeToken(index)}\n setToken={(newToken: Token) => setToken(index, newToken)}\n setOperation={setOperation}\n filteringOptions={filteringOptions}\n filteringProperties={filteringProperties}\n asyncProps={asyncProps}\n onLoadItems={onLoadItems}\n i18nStrings={i18nStrings}\n asyncProperties={asyncProperties}\n hideOperations={hideOperations}\n customGroupsText={customGroupsText}\n disableFreeTextFiltering={disableFreeTextFiltering}\n disabled={disabled}\n expandToViewport={expandToViewport}\n />\n ))}\n {hasHiddenOptions && (\n <div className={styles['toggle-collapsed']}>\n <SelectToggle\n controlId={controlId}\n allHidden={tokenLimit === 0}\n expanded={tokensExpanded}\n numberOfHiddenOptions={tokens.length - slicedTokens.length}\n i18nStrings={{\n limitShowFewer: i18nStrings.tokenLimitShowFewer,\n limitShowMore: i18nStrings.tokenLimitShowMore,\n }}\n onClick={toggleExpandedTokens}\n />\n </div>\n )}\n <div className={styles.separator} />\n <InternalButton onClick={removeAllTokens} className={styles['remove-all']} disabled={disabled}>\n {i18nStrings.clearFiltersText}\n </InternalButton>\n </InternalSpaceBetween>\n </div>\n )}\n </div>\n );\n }\n);\n\napplyDisplayName(PropertyFilter, 'PropertyFilter');\nexport default PropertyFilter;\n"]}
|
|
@@ -8,6 +8,7 @@ export interface PropertyFilterAutosuggestProps extends AutosuggestProps, Intern
|
|
|
8
8
|
filterText?: string;
|
|
9
9
|
onOptionClick?: CancelableEventHandler<AutosuggestProps.Option>;
|
|
10
10
|
hideEnteredTextOption?: boolean;
|
|
11
|
+
searchResultsId?: string;
|
|
11
12
|
}
|
|
12
13
|
declare const PropertyFilterAutosuggest: React.ForwardRefExoticComponent<PropertyFilterAutosuggestProps & React.RefAttributes<AutosuggestInputRef>>;
|
|
13
14
|
export default PropertyFilterAutosuggest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-filter-autosuggest.d.ts","sourceRoot":"","sources":["../../../src/property-filter/property-filter-autosuggest.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAM9E,OAAO,EAEL,sBAAsB,EAGvB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAIlF,OAAyB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AASjG,MAAM,WAAW,8BAA+B,SAAQ,gBAAgB,EAAE,0BAA0B;IAClG,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAChE,qBAAqB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"property-filter-autosuggest.d.ts","sourceRoot":"","sources":["../../../src/property-filter/property-filter-autosuggest.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAM9E,OAAO,EAEL,sBAAsB,EAGvB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAIlF,OAAyB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AASjG,MAAM,WAAW,8BAA+B,SAAQ,gBAAgB,EAAE,0BAA0B;IAClG,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAChE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,QAAA,MAAM,yBAAyB,4GA0K9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -21,7 +21,7 @@ const DROPDOWN_WIDTH_OPTIONS_LIST = 300;
|
|
|
21
21
|
const DROPDOWN_WIDTH_CUSTOM_FORM = 200;
|
|
22
22
|
const PropertyFilterAutosuggest = React.forwardRef((props, ref) => {
|
|
23
23
|
var _a;
|
|
24
|
-
const { value, onChange, onFocus, onBlur, onLoadItems, options, statusType = 'finished', placeholder, disabled, ariaLabel, enteredTextLabel, onKeyDown, virtualScroll, expandToViewport, customForm, filterText, onOptionClick, hideEnteredTextOption } = props, rest = __rest(props, ["value", "onChange", "onFocus", "onBlur", "onLoadItems", "options", "statusType", "placeholder", "disabled", "ariaLabel", "enteredTextLabel", "onKeyDown", "virtualScroll", "expandToViewport", "customForm", "filterText", "onOptionClick", "hideEnteredTextOption"]);
|
|
24
|
+
const { value, onChange, onFocus, onBlur, onLoadItems, options, statusType = 'finished', placeholder, disabled, ariaLabel, enteredTextLabel, onKeyDown, virtualScroll, expandToViewport, customForm, filterText, onOptionClick, hideEnteredTextOption, searchResultsId } = props, rest = __rest(props, ["value", "onChange", "onFocus", "onBlur", "onLoadItems", "options", "statusType", "placeholder", "disabled", "ariaLabel", "enteredTextLabel", "onKeyDown", "virtualScroll", "expandToViewport", "customForm", "filterText", "onOptionClick", "hideEnteredTextOption", "searchResultsId"]);
|
|
25
25
|
const highlightText = filterText === undefined ? value : filterText;
|
|
26
26
|
const customFormRef = useRef(null);
|
|
27
27
|
const autosuggestInputRef = useRef(null);
|
|
@@ -102,7 +102,7 @@ const PropertyFilterAutosuggest = React.forwardRef((props, ref) => {
|
|
|
102
102
|
else if (autosuggestItemsState.items.length > 0) {
|
|
103
103
|
content = (React.createElement(AutosuggestOptionsList, { autosuggestItemsState: autosuggestItemsState, autosuggestItemsHandlers: autosuggestItemsHandlers, highlightedOptionId: highlightedOptionId, highlightText: highlightText, listId: listId, controlId: controlId, enteredTextLabel: enteredTextLabel, handleLoadMore: autosuggestLoadMoreHandlers.fireLoadMoreOnScroll, hasDropdownStatus: dropdownStatus.content !== null, virtualScroll: virtualScroll, listBottom: !dropdownStatus.isSticky ? React.createElement(DropdownFooter, { content: dropdownStatus.content }) : null }));
|
|
104
104
|
}
|
|
105
|
-
return (React.createElement(AutosuggestInput, Object.assign({ ref: mergedRef }, rest, { className: clsx(autosuggestStyles.root, styles.input), value: value, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, controlId: controlId, placeholder: placeholder, disabled: disabled, ariaLabel: ariaLabel, expandToViewport: expandToViewport, ariaControls: listId, ariaActivedescendant: highlightedOptionId, dropdownExpanded: autosuggestItemsState.items.length > 1 || dropdownStatus.content !== null || !!customForm, dropdownContentKey: customForm ? 'custom' : 'options', dropdownContent: content, dropdownFooter: dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: dropdownStatus.content, hasItems: autosuggestItemsState.items.length >= 1 })) : null, dropdownWidth: customForm ? DROPDOWN_WIDTH_CUSTOM_FORM : DROPDOWN_WIDTH_OPTIONS_LIST, dropdownContentFocusable: !!customForm, onCloseDropdown: handleCloseDropdown, onDelayedInput: handleDelayedInput, onPressArrowDown: handlePressArrowDown, onPressArrowUp: handlePressArrowUp, onPressEnter: handlePressEnter })));
|
|
105
|
+
return (React.createElement(AutosuggestInput, Object.assign({ ref: mergedRef }, rest, { className: clsx(autosuggestStyles.root, styles.input), value: value, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, controlId: controlId, placeholder: placeholder, disabled: disabled, ariaLabel: ariaLabel, expandToViewport: expandToViewport, ariaControls: listId, ariaActivedescendant: highlightedOptionId, ariaDescribedby: searchResultsId, dropdownExpanded: autosuggestItemsState.items.length > 1 || dropdownStatus.content !== null || !!customForm, dropdownContentKey: customForm ? 'custom' : 'options', dropdownContent: content, dropdownFooter: dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: dropdownStatus.content, hasItems: autosuggestItemsState.items.length >= 1 })) : null, dropdownWidth: customForm ? DROPDOWN_WIDTH_CUSTOM_FORM : DROPDOWN_WIDTH_OPTIONS_LIST, dropdownContentFocusable: !!customForm, onCloseDropdown: handleCloseDropdown, onDelayedInput: handleDelayedInput, onPressArrowDown: handlePressArrowDown, onPressArrowUp: handlePressArrowUp, onPressEnter: handlePressEnter })));
|
|
106
106
|
});
|
|
107
107
|
export default PropertyFilterAutosuggest;
|
|
108
108
|
//# sourceMappingURL=property-filter-autosuggest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-filter-autosuggest.js","sourceRoot":"","sources":["../../../src/property-filter/property-filter-autosuggest.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { Ref, useMemo, useRef } from 'react';\n\nimport { useAutosuggestItems } from '../autosuggest/options-controller';\nimport { AutosuggestItem, AutosuggestProps } from '../autosuggest/interfaces';\n\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\nimport DropdownFooter from '../internal/components/dropdown-footer';\n\nimport { generateUniqueId, useUniqueId } from '../internal/hooks/use-unique-id';\nimport {\n fireNonCancelableEvent,\n CancelableEventHandler,\n NonCancelableCustomEvent,\n BaseKeyDetail,\n} from '../internal/events';\nimport { BaseChangeDetail } from '../input/interfaces';\nimport autosuggestStyles from '../autosuggest/styles.css.js';\nimport styles from './styles.css.js';\nimport { fireCancelableEvent } from '../internal/events/index';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport AutosuggestOptionsList from '../autosuggest/options-list';\nimport { useAutosuggestLoadMore } from '../autosuggest/load-more-controller';\nimport { OptionsLoadItemsDetail } from '../internal/components/dropdown/interfaces';\nimport AutosuggestInput, { AutosuggestInputRef } from '../internal/components/autosuggest-input';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport clsx from 'clsx';\nimport { getFirstFocusable } from '../internal/components/focus-lock/utils';\nimport { filterOptions } from './filter-options';\n\nconst DROPDOWN_WIDTH_OPTIONS_LIST = 300;\nconst DROPDOWN_WIDTH_CUSTOM_FORM = 200;\n\nexport interface PropertyFilterAutosuggestProps extends AutosuggestProps, InternalBaseComponentProps {\n customForm?: React.ReactNode;\n filterText?: string;\n onOptionClick?: CancelableEventHandler<AutosuggestProps.Option>;\n hideEnteredTextOption?: boolean;\n}\n\nconst PropertyFilterAutosuggest = React.forwardRef(\n (props: PropertyFilterAutosuggestProps, ref: Ref<AutosuggestInputRef>) => {\n const {\n value,\n onChange,\n onFocus,\n onBlur,\n onLoadItems,\n options,\n statusType = 'finished',\n placeholder,\n disabled,\n ariaLabel,\n enteredTextLabel,\n onKeyDown,\n virtualScroll,\n expandToViewport,\n customForm,\n filterText,\n onOptionClick,\n hideEnteredTextOption,\n ...rest\n } = props;\n const highlightText = filterText === undefined ? value : filterText;\n\n const customFormRef = useRef<HTMLDivElement>(null);\n const autosuggestInputRef = useRef<AutosuggestInputRef>(null);\n const mergedRef = useMergeRefs(autosuggestInputRef, ref);\n\n const filteredOptions = useMemo(() => filterOptions(options || [], highlightText), [options, highlightText]);\n const [autosuggestItemsState, autosuggestItemsHandlers] = useAutosuggestItems({\n options: filteredOptions,\n filterValue: value,\n filterText: highlightText,\n filteringType: 'manual',\n hideEnteredTextLabel: hideEnteredTextOption,\n onSelectItem: (option: AutosuggestItem) => {\n const value = option.value || '';\n fireNonCancelableEvent(onChange, { value });\n const selectedCancelled = fireCancelableEvent(onOptionClick, option);\n if (!selectedCancelled) {\n autosuggestInputRef.current?.close();\n } else {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n }\n },\n });\n\n const autosuggestLoadMoreHandlers = useAutosuggestLoadMore({\n options,\n statusType,\n onLoadItems: (detail: OptionsLoadItemsDetail) => fireNonCancelableEvent(onLoadItems, detail),\n });\n\n const handleChange = (event: NonCancelableCustomEvent<BaseChangeDetail>) => {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n fireNonCancelableEvent(onChange, event.detail);\n };\n\n const handleDelayedInput = (event: NonCancelableCustomEvent<BaseChangeDetail>) => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnInputChange(event.detail.value);\n };\n\n const handleFocus = () => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnInputFocus();\n fireCancelableEvent(onFocus, null);\n };\n\n const handleBlur = () => {\n fireCancelableEvent(onBlur, null);\n };\n\n const handleKeyDown = (e: CustomEvent<BaseKeyDetail>) => {\n fireCancelableEvent(onKeyDown, e.detail);\n };\n\n const handlePressArrowDown = () => {\n autosuggestItemsHandlers.moveHighlightWithKeyboard(1);\n if (customFormRef.current) {\n getFirstFocusable(customFormRef.current)?.focus();\n }\n };\n\n const handlePressArrowUp = () => {\n autosuggestItemsHandlers.moveHighlightWithKeyboard(-1);\n };\n\n const handlePressEnter = () => {\n return autosuggestItemsHandlers.selectHighlightedOptionWithKeyboard();\n };\n\n const handleCloseDropdown = () => {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n };\n\n const handleRecoveryClick = () => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnRecoveryClick();\n autosuggestInputRef.current?.focus();\n };\n\n const selfControlId = useUniqueId('input');\n const controlId = rest.controlId ?? selfControlId;\n const listId = useUniqueId('list');\n const highlightedOptionId = autosuggestItemsState.highlightedOption ? generateUniqueId() : undefined;\n\n const isEmpty = !value && !autosuggestItemsState.items.length;\n const dropdownStatus = useDropdownStatus({ ...props, isEmpty, onRecoveryClick: handleRecoveryClick });\n\n let content = null;\n if (customForm) {\n content = (\n <div ref={customFormRef} className={styles['custom-content-wrapper']}>\n {customForm}\n </div>\n );\n } else if (autosuggestItemsState.items.length > 0) {\n content = (\n <AutosuggestOptionsList\n autosuggestItemsState={autosuggestItemsState}\n autosuggestItemsHandlers={autosuggestItemsHandlers}\n highlightedOptionId={highlightedOptionId}\n highlightText={highlightText}\n listId={listId}\n controlId={controlId}\n enteredTextLabel={enteredTextLabel}\n handleLoadMore={autosuggestLoadMoreHandlers.fireLoadMoreOnScroll}\n hasDropdownStatus={dropdownStatus.content !== null}\n virtualScroll={virtualScroll}\n listBottom={!dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n />\n );\n }\n\n return (\n <AutosuggestInput\n ref={mergedRef}\n {...rest}\n className={clsx(autosuggestStyles.root, styles.input)}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n controlId={controlId}\n placeholder={placeholder}\n disabled={disabled}\n ariaLabel={ariaLabel}\n expandToViewport={expandToViewport}\n ariaControls={listId}\n ariaActivedescendant={highlightedOptionId}\n dropdownExpanded={autosuggestItemsState.items.length > 1 || dropdownStatus.content !== null || !!customForm}\n dropdownContentKey={customForm ? 'custom' : 'options'}\n dropdownContent={content}\n dropdownFooter={\n dropdownStatus.isSticky ? (\n <DropdownFooter content={dropdownStatus.content} hasItems={autosuggestItemsState.items.length >= 1} />\n ) : null\n }\n dropdownWidth={customForm ? DROPDOWN_WIDTH_CUSTOM_FORM : DROPDOWN_WIDTH_OPTIONS_LIST}\n dropdownContentFocusable={!!customForm}\n onCloseDropdown={handleCloseDropdown}\n onDelayedInput={handleDelayedInput}\n onPressArrowDown={handlePressArrowDown}\n onPressArrowUp={handlePressArrowUp}\n onPressEnter={handlePressEnter}\n />\n );\n }\n);\n\nexport default PropertyFilterAutosuggest;\n"]}
|
|
1
|
+
{"version":3,"file":"property-filter-autosuggest.js","sourceRoot":"","sources":["../../../src/property-filter/property-filter-autosuggest.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { Ref, useMemo, useRef } from 'react';\n\nimport { useAutosuggestItems } from '../autosuggest/options-controller';\nimport { AutosuggestItem, AutosuggestProps } from '../autosuggest/interfaces';\n\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\nimport DropdownFooter from '../internal/components/dropdown-footer';\n\nimport { generateUniqueId, useUniqueId } from '../internal/hooks/use-unique-id';\nimport {\n fireNonCancelableEvent,\n CancelableEventHandler,\n NonCancelableCustomEvent,\n BaseKeyDetail,\n} from '../internal/events';\nimport { BaseChangeDetail } from '../input/interfaces';\nimport autosuggestStyles from '../autosuggest/styles.css.js';\nimport styles from './styles.css.js';\nimport { fireCancelableEvent } from '../internal/events/index';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport AutosuggestOptionsList from '../autosuggest/options-list';\nimport { useAutosuggestLoadMore } from '../autosuggest/load-more-controller';\nimport { OptionsLoadItemsDetail } from '../internal/components/dropdown/interfaces';\nimport AutosuggestInput, { AutosuggestInputRef } from '../internal/components/autosuggest-input';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport clsx from 'clsx';\nimport { getFirstFocusable } from '../internal/components/focus-lock/utils';\nimport { filterOptions } from './filter-options';\n\nconst DROPDOWN_WIDTH_OPTIONS_LIST = 300;\nconst DROPDOWN_WIDTH_CUSTOM_FORM = 200;\n\nexport interface PropertyFilterAutosuggestProps extends AutosuggestProps, InternalBaseComponentProps {\n customForm?: React.ReactNode;\n filterText?: string;\n onOptionClick?: CancelableEventHandler<AutosuggestProps.Option>;\n hideEnteredTextOption?: boolean;\n searchResultsId?: string;\n}\n\nconst PropertyFilterAutosuggest = React.forwardRef(\n (props: PropertyFilterAutosuggestProps, ref: Ref<AutosuggestInputRef>) => {\n const {\n value,\n onChange,\n onFocus,\n onBlur,\n onLoadItems,\n options,\n statusType = 'finished',\n placeholder,\n disabled,\n ariaLabel,\n enteredTextLabel,\n onKeyDown,\n virtualScroll,\n expandToViewport,\n customForm,\n filterText,\n onOptionClick,\n hideEnteredTextOption,\n searchResultsId,\n ...rest\n } = props;\n const highlightText = filterText === undefined ? value : filterText;\n\n const customFormRef = useRef<HTMLDivElement>(null);\n const autosuggestInputRef = useRef<AutosuggestInputRef>(null);\n const mergedRef = useMergeRefs(autosuggestInputRef, ref);\n\n const filteredOptions = useMemo(() => filterOptions(options || [], highlightText), [options, highlightText]);\n const [autosuggestItemsState, autosuggestItemsHandlers] = useAutosuggestItems({\n options: filteredOptions,\n filterValue: value,\n filterText: highlightText,\n filteringType: 'manual',\n hideEnteredTextLabel: hideEnteredTextOption,\n onSelectItem: (option: AutosuggestItem) => {\n const value = option.value || '';\n fireNonCancelableEvent(onChange, { value });\n const selectedCancelled = fireCancelableEvent(onOptionClick, option);\n if (!selectedCancelled) {\n autosuggestInputRef.current?.close();\n } else {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n }\n },\n });\n\n const autosuggestLoadMoreHandlers = useAutosuggestLoadMore({\n options,\n statusType,\n onLoadItems: (detail: OptionsLoadItemsDetail) => fireNonCancelableEvent(onLoadItems, detail),\n });\n\n const handleChange = (event: NonCancelableCustomEvent<BaseChangeDetail>) => {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n fireNonCancelableEvent(onChange, event.detail);\n };\n\n const handleDelayedInput = (event: NonCancelableCustomEvent<BaseChangeDetail>) => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnInputChange(event.detail.value);\n };\n\n const handleFocus = () => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnInputFocus();\n fireCancelableEvent(onFocus, null);\n };\n\n const handleBlur = () => {\n fireCancelableEvent(onBlur, null);\n };\n\n const handleKeyDown = (e: CustomEvent<BaseKeyDetail>) => {\n fireCancelableEvent(onKeyDown, e.detail);\n };\n\n const handlePressArrowDown = () => {\n autosuggestItemsHandlers.moveHighlightWithKeyboard(1);\n if (customFormRef.current) {\n getFirstFocusable(customFormRef.current)?.focus();\n }\n };\n\n const handlePressArrowUp = () => {\n autosuggestItemsHandlers.moveHighlightWithKeyboard(-1);\n };\n\n const handlePressEnter = () => {\n return autosuggestItemsHandlers.selectHighlightedOptionWithKeyboard();\n };\n\n const handleCloseDropdown = () => {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n };\n\n const handleRecoveryClick = () => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnRecoveryClick();\n autosuggestInputRef.current?.focus();\n };\n\n const selfControlId = useUniqueId('input');\n const controlId = rest.controlId ?? selfControlId;\n const listId = useUniqueId('list');\n const highlightedOptionId = autosuggestItemsState.highlightedOption ? generateUniqueId() : undefined;\n\n const isEmpty = !value && !autosuggestItemsState.items.length;\n const dropdownStatus = useDropdownStatus({ ...props, isEmpty, onRecoveryClick: handleRecoveryClick });\n\n let content = null;\n if (customForm) {\n content = (\n <div ref={customFormRef} className={styles['custom-content-wrapper']}>\n {customForm}\n </div>\n );\n } else if (autosuggestItemsState.items.length > 0) {\n content = (\n <AutosuggestOptionsList\n autosuggestItemsState={autosuggestItemsState}\n autosuggestItemsHandlers={autosuggestItemsHandlers}\n highlightedOptionId={highlightedOptionId}\n highlightText={highlightText}\n listId={listId}\n controlId={controlId}\n enteredTextLabel={enteredTextLabel}\n handleLoadMore={autosuggestLoadMoreHandlers.fireLoadMoreOnScroll}\n hasDropdownStatus={dropdownStatus.content !== null}\n virtualScroll={virtualScroll}\n listBottom={!dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n />\n );\n }\n\n return (\n <AutosuggestInput\n ref={mergedRef}\n {...rest}\n className={clsx(autosuggestStyles.root, styles.input)}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n controlId={controlId}\n placeholder={placeholder}\n disabled={disabled}\n ariaLabel={ariaLabel}\n expandToViewport={expandToViewport}\n ariaControls={listId}\n ariaActivedescendant={highlightedOptionId}\n ariaDescribedby={searchResultsId}\n dropdownExpanded={autosuggestItemsState.items.length > 1 || dropdownStatus.content !== null || !!customForm}\n dropdownContentKey={customForm ? 'custom' : 'options'}\n dropdownContent={content}\n dropdownFooter={\n dropdownStatus.isSticky ? (\n <DropdownFooter content={dropdownStatus.content} hasItems={autosuggestItemsState.items.length >= 1} />\n ) : null\n }\n dropdownWidth={customForm ? DROPDOWN_WIDTH_CUSTOM_FORM : DROPDOWN_WIDTH_OPTIONS_LIST}\n dropdownContentFocusable={!!customForm}\n onCloseDropdown={handleCloseDropdown}\n onDelayedInput={handleDelayedInput}\n onPressArrowDown={handlePressArrowDown}\n onPressArrowUp={handlePressArrowUp}\n onPressEnter={handlePressEnter}\n />\n );\n }\n);\n\nexport default PropertyFilterAutosuggest;\n"]}
|