@cloudscape-design/components 3.0.52 → 3.0.53

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.
@@ -1,5 +1,5 @@
1
1
 
2
- export var PACKAGE_VERSION = '3.0.0 (b046c87)';
2
+ export var PACKAGE_VERSION = '3.0.0 (b1fc995)';
3
3
  export var THEME = 'open-source-visual-refresh';
4
4
  export var ALWAYS_VISUAL_REFRESH = true;
5
5
 
package/package.json CHANGED
@@ -111,6 +111,6 @@
111
111
  "./internal/base-component/index.js",
112
112
  "./internal/base-component/styles.css.js"
113
113
  ],
114
- "version": "3.0.52",
114
+ "version": "3.0.53",
115
115
  "license": "Apache-2.0"
116
116
  }
@@ -1,32 +1,33 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_1wzqe_5ev6f_93",
5
- "search-field": "awsui_search-field_1wzqe_5ev6f_104",
6
- "input-wrapper": "awsui_input-wrapper_1wzqe_5ev6f_110",
7
- "add-token": "awsui_add-token_1wzqe_5ev6f_114",
8
- "tokens": "awsui_tokens_1wzqe_5ev6f_121",
9
- "token-operator": "awsui_token-operator_1wzqe_5ev6f_125",
10
- "token-editor": "awsui_token-editor_1wzqe_5ev6f_129",
11
- "token-editor-line": "awsui_token-editor-line_1wzqe_5ev6f_136",
12
- "token-editor-label": "awsui_token-editor-label_1wzqe_5ev6f_141",
13
- "token-editor-field": "awsui_token-editor-field_1wzqe_5ev6f_146",
14
- "token-editor-actions": "awsui_token-editor-actions_1wzqe_5ev6f_151",
15
- "token-editor-commit": "awsui_token-editor-commit_1wzqe_5ev6f_156",
16
- "custom-control": "awsui_custom-control_1wzqe_5ev6f_160",
17
- "input": "awsui_input_1wzqe_5ev6f_110",
18
- "results": "awsui_results_1wzqe_5ev6f_168",
19
- "results-visible": "awsui_results-visible_1wzqe_5ev6f_174",
20
- "separator": "awsui_separator_1wzqe_5ev6f_178",
21
- "toggle-collapsed": "awsui_toggle-collapsed_1wzqe_5ev6f_185",
22
- "token-trigger": "awsui_token-trigger_1wzqe_5ev6f_190",
23
- "token-editor-cancel": "awsui_token-editor-cancel_1wzqe_5ev6f_196",
24
- "remove-all": "awsui_remove-all_1wzqe_5ev6f_200",
25
- "token-label": "awsui_token-label_1wzqe_5ev6f_201",
26
- "join-operation": "awsui_join-operation_1wzqe_5ev6f_202",
27
- "property-selector": "awsui_property-selector_1wzqe_5ev6f_203",
28
- "operator-selector": "awsui_operator-selector_1wzqe_5ev6f_204",
29
- "value-selector": "awsui_value-selector_1wzqe_5ev6f_205",
30
- "token-editor-submit": "awsui_token-editor-submit_1wzqe_5ev6f_206"
4
+ "root": "awsui_root_1wzqe_9leos_93",
5
+ "search-field": "awsui_search-field_1wzqe_9leos_104",
6
+ "input-wrapper": "awsui_input-wrapper_1wzqe_9leos_110",
7
+ "add-token": "awsui_add-token_1wzqe_9leos_114",
8
+ "tokens": "awsui_tokens_1wzqe_9leos_121",
9
+ "token-operator": "awsui_token-operator_1wzqe_9leos_125",
10
+ "token-editor": "awsui_token-editor_1wzqe_9leos_129",
11
+ "token-editor-line": "awsui_token-editor-line_1wzqe_9leos_136",
12
+ "token-editor-label": "awsui_token-editor-label_1wzqe_9leos_141",
13
+ "token-editor-field": "awsui_token-editor-field_1wzqe_9leos_146",
14
+ "token-editor-form": "awsui_token-editor-form_1wzqe_9leos_151",
15
+ "token-editor-actions": "awsui_token-editor-actions_1wzqe_9leos_154",
16
+ "token-editor-commit": "awsui_token-editor-commit_1wzqe_9leos_163",
17
+ "custom-control": "awsui_custom-control_1wzqe_9leos_167",
18
+ "input": "awsui_input_1wzqe_9leos_110",
19
+ "results": "awsui_results_1wzqe_9leos_175",
20
+ "results-visible": "awsui_results-visible_1wzqe_9leos_181",
21
+ "separator": "awsui_separator_1wzqe_9leos_185",
22
+ "toggle-collapsed": "awsui_toggle-collapsed_1wzqe_9leos_192",
23
+ "token-trigger": "awsui_token-trigger_1wzqe_9leos_197",
24
+ "token-editor-cancel": "awsui_token-editor-cancel_1wzqe_9leos_203",
25
+ "remove-all": "awsui_remove-all_1wzqe_9leos_207",
26
+ "token-label": "awsui_token-label_1wzqe_9leos_208",
27
+ "join-operation": "awsui_join-operation_1wzqe_9leos_209",
28
+ "property-selector": "awsui_property-selector_1wzqe_9leos_210",
29
+ "operator-selector": "awsui_operator-selector_1wzqe_9leos_211",
30
+ "value-selector": "awsui_value-selector_1wzqe_9leos_212",
31
+ "token-editor-submit": "awsui_token-editor-submit_1wzqe_9leos_213"
31
32
  };
32
33
 
@@ -90,7 +90,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
90
90
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
91
91
  SPDX-License-Identifier: Apache-2.0
92
92
  */
93
- .awsui_root_1wzqe_5ev6f_93:not(#\9) {
93
+ .awsui_root_1wzqe_9leos_93:not(#\9) {
94
94
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
95
95
  border-collapse: separate;
96
96
  border-spacing: 0;
@@ -127,108 +127,115 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
127
127
  font-family: var(--font-family-base-qnistn, "Open Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
128
128
  }
129
129
 
130
- .awsui_search-field_1wzqe_5ev6f_104:not(#\9) {
130
+ .awsui_search-field_1wzqe_9leos_104:not(#\9) {
131
131
  display: flex;
132
132
  align-items: center;
133
133
  max-width: calc(688px - 2 * var(--space-l-4vl6xu, 20px));
134
134
  }
135
135
 
136
- .awsui_input-wrapper_1wzqe_5ev6f_110:not(#\9) {
136
+ .awsui_input-wrapper_1wzqe_9leos_110:not(#\9) {
137
137
  flex-grow: 1;
138
138
  }
139
139
 
140
- .awsui_add-token_1wzqe_5ev6f_114:not(#\9) {
140
+ .awsui_add-token_1wzqe_9leos_114:not(#\9) {
141
141
  border-left: 1px solid var(--color-border-divider-default-7s2wjw, #e9ebed);
142
142
  box-sizing: border-box;
143
143
  margin-left: var(--space-m-17eucw, 16px);
144
144
  padding-left: var(--space-m-17eucw, 16px);
145
145
  }
146
146
 
147
- .awsui_tokens_1wzqe_5ev6f_121:not(#\9) {
147
+ .awsui_tokens_1wzqe_9leos_121:not(#\9) {
148
148
  margin-top: var(--space-xs-rsr2qu, 8px);
149
149
  }
150
150
 
151
- .awsui_token-operator_1wzqe_5ev6f_125:not(#\9) {
151
+ .awsui_token-operator_1wzqe_9leos_125:not(#\9) {
152
152
  font-weight: bold;
153
153
  }
154
154
 
155
- .awsui_token-editor_1wzqe_5ev6f_129:not(#\9) {
155
+ .awsui_token-editor_1wzqe_9leos_129:not(#\9) {
156
156
  margin: var(--space-xxs-ynfts5, 4px);
157
157
  min-width: 300px;
158
158
  display: flex;
159
159
  flex-direction: column;
160
160
  justify-content: space-between;
161
161
  }
162
- .awsui_token-editor-line_1wzqe_5ev6f_136:not(#\9) {
162
+ .awsui_token-editor-line_1wzqe_9leos_136:not(#\9) {
163
163
  display: flex;
164
164
  justify-content: space-between;
165
165
  align-items: center;
166
166
  }
167
- .awsui_token-editor-label_1wzqe_5ev6f_141:not(#\9) {
167
+ .awsui_token-editor-label_1wzqe_9leos_141:not(#\9) {
168
168
  word-wrap: break-word;
169
169
  max-width: 100%;
170
170
  overflow: hidden;
171
171
  }
172
- .awsui_token-editor-field_1wzqe_5ev6f_146:not(#\9) {
172
+ .awsui_token-editor-field_1wzqe_9leos_146:not(#\9) {
173
173
  width: 200px;
174
174
  flex-shrink: 0;
175
175
  margin-left: var(--space-xl-a39hup, 24px);
176
176
  }
177
- .awsui_token-editor-actions_1wzqe_5ev6f_151:not(#\9) {
177
+ .awsui_token-editor-form_1wzqe_9leos_151:not(#\9) {
178
+ margin-bottom: var(--space-scaled-l-t03y3z, 20px);
179
+ }
180
+ .awsui_token-editor-actions_1wzqe_9leos_154:not(#\9) {
178
181
  display: flex;
179
182
  justify-content: flex-end;
180
- margin-top: var(--space-scaled-xl-w2t504, 24px);
183
+ padding-top: var(--space-s-hv8c1d, 12px);
184
+ border-top: 1px solid var(--color-border-dropdown-item-default-faosd8, #e9ebed);
185
+ padding-right: calc(var(--space-m-17eucw, 16px) + var(--space-xxs-ynfts5, 4px));
186
+ margin-left: calc(-1 * var(--space-m-17eucw, 16px) + -1 * var(--space-xxs-ynfts5, 4px));
187
+ margin-right: calc(-1 * var(--space-m-17eucw, 16px) + -1 * var(--space-xxs-ynfts5, 4px));
181
188
  }
182
- .awsui_token-editor-commit_1wzqe_5ev6f_156:not(#\9) {
189
+ .awsui_token-editor-commit_1wzqe_9leos_163:not(#\9) {
183
190
  margin-left: var(--space-xs-rsr2qu, 8px);
184
191
  }
185
192
 
186
- .awsui_custom-control_1wzqe_5ev6f_160:not(#\9) {
193
+ .awsui_custom-control_1wzqe_9leos_167:not(#\9) {
187
194
  margin-right: var(--space-s-hv8c1d, 12px);
188
195
  }
189
196
 
190
- .awsui_input_1wzqe_5ev6f_110:not(#\9) {
197
+ .awsui_input_1wzqe_9leos_110:not(#\9) {
191
198
  flex: 1;
192
199
  }
193
200
 
194
- .awsui_results_1wzqe_5ev6f_168:not(#\9) {
201
+ .awsui_results_1wzqe_9leos_175:not(#\9) {
195
202
  color: var(--color-text-form-label-k3j0b4, #000716);
196
203
  display: inline-block;
197
204
  box-sizing: border-box;
198
205
  white-space: nowrap;
199
206
  }
200
- .awsui_results-visible_1wzqe_5ev6f_174:not(#\9) {
207
+ .awsui_results-visible_1wzqe_9leos_181:not(#\9) {
201
208
  padding-left: var(--space-s-hv8c1d, 12px);
202
209
  }
203
210
 
204
- .awsui_separator_1wzqe_5ev6f_178:not(#\9) {
211
+ .awsui_separator_1wzqe_9leos_185:not(#\9) {
205
212
  margin: 0px var(--space-scaled-m-pv0fmt, 16px);
206
213
  height: 100%;
207
214
  width: var(--border-divider-section-width-4wm2it, 2px);
208
215
  background-color: var(--color-border-divider-default-7s2wjw, #e9ebed);
209
216
  }
210
217
 
211
- .awsui_toggle-collapsed_1wzqe_5ev6f_185:not(#\9) {
218
+ .awsui_toggle-collapsed_1wzqe_9leos_192:not(#\9) {
212
219
  margin-top: calc(-1 * var(--space-scaled-xxs-95dhkm, 4px));
213
220
  margin-left: var(--space-xs-rsr2qu, 8px);
214
221
  }
215
222
 
216
- .awsui_token-trigger_1wzqe_5ev6f_190:not(#\9) {
223
+ .awsui_token-trigger_1wzqe_9leos_197:not(#\9) {
217
224
  min-width: 0;
218
225
  -ms-word-break: break-all;
219
226
  word-break: break-word;
220
227
  }
221
228
 
222
- .awsui_token-editor-cancel_1wzqe_5ev6f_196:not(#\9) {
229
+ .awsui_token-editor-cancel_1wzqe_9leos_203:not(#\9) {
223
230
  margin-right: var(--space-xs-rsr2qu, 8px);
224
231
  }
225
232
 
226
- .awsui_remove-all_1wzqe_5ev6f_200:not(#\9),
227
- .awsui_token-label_1wzqe_5ev6f_201:not(#\9),
228
- .awsui_join-operation_1wzqe_5ev6f_202:not(#\9),
229
- .awsui_property-selector_1wzqe_5ev6f_203:not(#\9),
230
- .awsui_operator-selector_1wzqe_5ev6f_204:not(#\9),
231
- .awsui_value-selector_1wzqe_5ev6f_205:not(#\9),
232
- .awsui_token-editor-submit_1wzqe_5ev6f_206:not(#\9) {
233
+ .awsui_remove-all_1wzqe_9leos_207:not(#\9),
234
+ .awsui_token-label_1wzqe_9leos_208:not(#\9),
235
+ .awsui_join-operation_1wzqe_9leos_209:not(#\9),
236
+ .awsui_property-selector_1wzqe_9leos_210:not(#\9),
237
+ .awsui_operator-selector_1wzqe_9leos_211:not(#\9),
238
+ .awsui_value-selector_1wzqe_9leos_212:not(#\9),
239
+ .awsui_token-editor-submit_1wzqe_9leos_213:not(#\9) {
233
240
  /* used in test-utils */
234
241
  }
@@ -2,32 +2,33 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_1wzqe_5ev6f_93",
6
- "search-field": "awsui_search-field_1wzqe_5ev6f_104",
7
- "input-wrapper": "awsui_input-wrapper_1wzqe_5ev6f_110",
8
- "add-token": "awsui_add-token_1wzqe_5ev6f_114",
9
- "tokens": "awsui_tokens_1wzqe_5ev6f_121",
10
- "token-operator": "awsui_token-operator_1wzqe_5ev6f_125",
11
- "token-editor": "awsui_token-editor_1wzqe_5ev6f_129",
12
- "token-editor-line": "awsui_token-editor-line_1wzqe_5ev6f_136",
13
- "token-editor-label": "awsui_token-editor-label_1wzqe_5ev6f_141",
14
- "token-editor-field": "awsui_token-editor-field_1wzqe_5ev6f_146",
15
- "token-editor-actions": "awsui_token-editor-actions_1wzqe_5ev6f_151",
16
- "token-editor-commit": "awsui_token-editor-commit_1wzqe_5ev6f_156",
17
- "custom-control": "awsui_custom-control_1wzqe_5ev6f_160",
18
- "input": "awsui_input_1wzqe_5ev6f_110",
19
- "results": "awsui_results_1wzqe_5ev6f_168",
20
- "results-visible": "awsui_results-visible_1wzqe_5ev6f_174",
21
- "separator": "awsui_separator_1wzqe_5ev6f_178",
22
- "toggle-collapsed": "awsui_toggle-collapsed_1wzqe_5ev6f_185",
23
- "token-trigger": "awsui_token-trigger_1wzqe_5ev6f_190",
24
- "token-editor-cancel": "awsui_token-editor-cancel_1wzqe_5ev6f_196",
25
- "remove-all": "awsui_remove-all_1wzqe_5ev6f_200",
26
- "token-label": "awsui_token-label_1wzqe_5ev6f_201",
27
- "join-operation": "awsui_join-operation_1wzqe_5ev6f_202",
28
- "property-selector": "awsui_property-selector_1wzqe_5ev6f_203",
29
- "operator-selector": "awsui_operator-selector_1wzqe_5ev6f_204",
30
- "value-selector": "awsui_value-selector_1wzqe_5ev6f_205",
31
- "token-editor-submit": "awsui_token-editor-submit_1wzqe_5ev6f_206"
5
+ "root": "awsui_root_1wzqe_9leos_93",
6
+ "search-field": "awsui_search-field_1wzqe_9leos_104",
7
+ "input-wrapper": "awsui_input-wrapper_1wzqe_9leos_110",
8
+ "add-token": "awsui_add-token_1wzqe_9leos_114",
9
+ "tokens": "awsui_tokens_1wzqe_9leos_121",
10
+ "token-operator": "awsui_token-operator_1wzqe_9leos_125",
11
+ "token-editor": "awsui_token-editor_1wzqe_9leos_129",
12
+ "token-editor-line": "awsui_token-editor-line_1wzqe_9leos_136",
13
+ "token-editor-label": "awsui_token-editor-label_1wzqe_9leos_141",
14
+ "token-editor-field": "awsui_token-editor-field_1wzqe_9leos_146",
15
+ "token-editor-form": "awsui_token-editor-form_1wzqe_9leos_151",
16
+ "token-editor-actions": "awsui_token-editor-actions_1wzqe_9leos_154",
17
+ "token-editor-commit": "awsui_token-editor-commit_1wzqe_9leos_163",
18
+ "custom-control": "awsui_custom-control_1wzqe_9leos_167",
19
+ "input": "awsui_input_1wzqe_9leos_110",
20
+ "results": "awsui_results_1wzqe_9leos_175",
21
+ "results-visible": "awsui_results-visible_1wzqe_9leos_181",
22
+ "separator": "awsui_separator_1wzqe_9leos_185",
23
+ "toggle-collapsed": "awsui_toggle-collapsed_1wzqe_9leos_192",
24
+ "token-trigger": "awsui_token-trigger_1wzqe_9leos_197",
25
+ "token-editor-cancel": "awsui_token-editor-cancel_1wzqe_9leos_203",
26
+ "remove-all": "awsui_remove-all_1wzqe_9leos_207",
27
+ "token-label": "awsui_token-label_1wzqe_9leos_208",
28
+ "join-operation": "awsui_join-operation_1wzqe_9leos_209",
29
+ "property-selector": "awsui_property-selector_1wzqe_9leos_210",
30
+ "operator-selector": "awsui_operator-selector_1wzqe_9leos_211",
31
+ "value-selector": "awsui_value-selector_1wzqe_9leos_212",
32
+ "token-editor-submit": "awsui_token-editor-submit_1wzqe_9leos_213"
32
33
  };
33
34
 
@@ -79,7 +79,7 @@ function ValueInput(_a) {
79
79
  function TokenEditorForm(_a) {
80
80
  var i18nStrings = _a.i18nStrings, onCancel = _a.onCancel, onSubmit = _a.onSubmit, children = _a.children;
81
81
  return (React.createElement("div", { className: styles['token-editor'] },
82
- children,
82
+ React.createElement("div", { className: styles['token-editor-form'] }, children),
83
83
  React.createElement("div", { className: styles['token-editor-actions'] },
84
84
  React.createElement(InternalButton, { variant: "link", className: styles['token-editor-cancel'], onClick: onCancel }, i18nStrings.cancelActionText),
85
85
  React.createElement(InternalButton, { className: styles['token-editor-submit'], onClick: onSubmit }, i18nStrings.applyActionText))));
@@ -1 +1 @@
1
- {"version":3,"file":"token-editor.js","sourceRoot":"","sources":["../../../src/property-filter/token-editor.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 React, { useState, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { SelectProps } from '../select/interfaces';\nimport InternalSelect from '../select/internal';\nimport InternalSpaceBetween from '../space-between/internal';\nimport InternalAutosuggest from '../autosuggest/internal';\nimport InternalPopover, { InternalPopoverRef } from '../popover/internal';\nimport { InternalButton } from '../button/internal';\nimport { useUniqueId } from '../internal/hooks/use-unique-id/index';\n\nimport {\n ComparisonOperator,\n FilteringOption,\n FilteringProperty,\n GroupText,\n I18nStrings,\n LoadItemsDetail,\n Token,\n} from './interfaces';\nimport styles from './styles.css.js';\nimport { useLoadItems } from './use-load-items';\nimport {\n getAllowedOperators,\n getPropertyOptions,\n getPropertyByKey,\n operatorToDescription,\n getPropertySuggestions,\n} from './controller';\nimport { NonCancelableEventHandler } from '../internal/events';\nimport { DropdownStatusProps } from '../internal/components/dropdown-status/interfaces';\n\nconst freeTextOperators: ComparisonOperator[] = [':', '!:'];\n\ninterface TokenEditorFieldProps {\n label: React.ReactNode;\n className: string;\n children: ({ controlId }: { controlId: string }) => React.ReactNode;\n}\n\nfunction TokenEditorField({ className, label, children }: TokenEditorFieldProps) {\n const controlId = useUniqueId();\n return (\n <div className={clsx(styles['token-editor-line'], className)}>\n <label className={styles['token-editor-label']} htmlFor={controlId}>\n {label}\n </label>\n <div className={styles['token-editor-field']}>{children({ controlId })}</div>\n </div>\n );\n}\n\ninterface PropertyInputProps {\n controlId: string;\n asyncProps: null | DropdownStatusProps;\n customGroupsText: readonly GroupText[];\n disableFreeTextFiltering?: boolean;\n filteringProperties: readonly FilteringProperty[];\n i18nStrings: I18nStrings;\n onChangePropertyKey: (propertyKey: undefined | string) => void;\n onLoadItems?: NonCancelableEventHandler<LoadItemsDetail>;\n propertyKey: undefined | string;\n}\n\nfunction PropertyInput({\n controlId,\n propertyKey,\n onChangePropertyKey,\n asyncProps,\n filteringProperties,\n onLoadItems,\n customGroupsText,\n i18nStrings,\n disableFreeTextFiltering,\n}: PropertyInputProps) {\n const property = propertyKey !== undefined ? getPropertyByKey(filteringProperties, propertyKey) : undefined;\n const propertySelectHandlers = useLoadItems(onLoadItems);\n const asyncPropertySelectProps = asyncProps ? { ...asyncProps, ...propertySelectHandlers } : {};\n const propertyOptions: (SelectProps.Option | SelectProps.OptionGroup)[] = getPropertySuggestions(\n filteringProperties,\n customGroupsText,\n i18nStrings,\n ({ propertyLabel, key }) => ({\n value: key,\n label: propertyLabel,\n dontCloseOnSelect: true,\n })\n );\n const allPropertiesOption = {\n label: i18nStrings.allPropertiesLabel,\n value: undefined,\n };\n if (!disableFreeTextFiltering) {\n propertyOptions.unshift(allPropertiesOption);\n }\n return (\n <InternalSelect\n controlId={controlId}\n options={propertyOptions}\n selectedOption={\n property\n ? {\n value: propertyKey ?? undefined,\n label: property.propertyLabel,\n }\n : allPropertiesOption\n }\n onChange={e => onChangePropertyKey(e.detail.selectedOption.value)}\n {...asyncPropertySelectProps}\n />\n );\n}\n\ninterface OperatorInputProps {\n controlId: string;\n filteringProperties: readonly FilteringProperty[];\n i18nStrings: I18nStrings;\n onChangeOperator: (operator: ComparisonOperator) => void;\n operator: undefined | ComparisonOperator;\n propertyKey: undefined | string;\n}\n\nfunction OperatorInput({\n controlId,\n propertyKey,\n operator,\n onChangeOperator,\n filteringProperties,\n i18nStrings,\n}: OperatorInputProps) {\n const property = propertyKey !== undefined ? getPropertyByKey(filteringProperties, propertyKey) : undefined;\n const freeTextOperators: ComparisonOperator[] = [':', '!:'];\n const operatorOptions = (property ? getAllowedOperators(property) : freeTextOperators).map(operator => ({\n value: operator,\n label: operator,\n description: operatorToDescription(operator, i18nStrings),\n }));\n return (\n <InternalSelect\n controlId={controlId}\n options={operatorOptions}\n triggerVariant=\"option\"\n selectedOption={\n operator\n ? {\n value: operator,\n label: operator,\n description: operatorToDescription(operator, i18nStrings),\n }\n : null\n }\n onChange={e => onChangeOperator(e.detail.selectedOption.value as ComparisonOperator)}\n />\n );\n}\n\ninterface ValueInputProps {\n controlId: string;\n asyncProps: DropdownStatusProps;\n filteringOptions: readonly FilteringOption[];\n filteringProperties: readonly FilteringProperty[];\n i18nStrings: I18nStrings;\n onChangeValue: (value: string) => void;\n onLoadItems?: NonCancelableEventHandler<LoadItemsDetail>;\n operator: undefined | ComparisonOperator;\n propertyKey: undefined | string;\n value: undefined | string;\n}\n\nfunction ValueInput({\n controlId,\n propertyKey,\n operator,\n value,\n onChangeValue,\n asyncProps,\n filteringProperties,\n filteringOptions,\n onLoadItems,\n i18nStrings,\n}: ValueInputProps) {\n const property = propertyKey !== undefined ? getPropertyByKey(filteringProperties, propertyKey) : undefined;\n const valueOptions = property ? getPropertyOptions(property, filteringOptions).map(({ value }) => ({ value })) : [];\n const valueAutosuggestHandlers = useLoadItems(onLoadItems, '', property);\n const asyncValueAutosuggesProps = propertyKey\n ? { ...valueAutosuggestHandlers, ...asyncProps }\n : { empty: asyncProps.empty };\n return (\n <InternalAutosuggest\n controlId={controlId}\n enteredTextLabel={i18nStrings.enteredTextLabel}\n value={value ?? ''}\n onChange={e => onChangeValue(e.detail.value)}\n disabled={!operator}\n options={valueOptions}\n {...asyncValueAutosuggesProps}\n virtualScroll={true}\n />\n );\n}\n\ninterface TokenEditorFormProps {\n i18nStrings: I18nStrings;\n onCancel(): void;\n onSubmit(): void;\n children: React.ReactNode;\n}\n\nfunction TokenEditorForm({ i18nStrings, onCancel, onSubmit, children }: TokenEditorFormProps) {\n return (\n <div className={styles['token-editor']}>\n {children}\n\n <div className={styles['token-editor-actions']}>\n <InternalButton variant=\"link\" className={styles['token-editor-cancel']} onClick={onCancel}>\n {i18nStrings.cancelActionText}\n </InternalButton>\n <InternalButton className={styles['token-editor-submit']} onClick={onSubmit}>\n {i18nStrings.applyActionText}\n </InternalButton>\n </div>\n </div>\n );\n}\n\ninterface TokenEditorProps {\n asyncProperties?: boolean;\n asyncProps: DropdownStatusProps;\n customGroupsText: readonly GroupText[];\n disabled?: boolean;\n disableFreeTextFiltering?: boolean;\n expandToViewport?: boolean;\n filteringOptions: readonly FilteringOption[];\n filteringProperties: readonly FilteringProperty[];\n i18nStrings: I18nStrings;\n onLoadItems?: NonCancelableEventHandler<LoadItemsDetail>;\n setToken: (newToken: Token) => void;\n token: Token;\n triggerComponent?: React.ReactNode;\n}\n\nexport function TokenEditor({\n asyncProperties,\n asyncProps,\n customGroupsText,\n disableFreeTextFiltering,\n expandToViewport,\n filteringOptions,\n filteringProperties,\n i18nStrings,\n onLoadItems,\n setToken,\n token,\n triggerComponent,\n}: TokenEditorProps) {\n const [temporaryToken, setTemporaryToken] = useState<Token>(token);\n const popoverRef = useRef<InternalPopoverRef>(null);\n const closePopover = () => {\n popoverRef.current && popoverRef.current.dismissPopover();\n };\n\n const propertyKey = temporaryToken.propertyKey;\n const onChangePropertyKey = (newPropertyKey: undefined | string) => {\n const filteringProperty = filteringProperties.reduce<FilteringProperty | undefined>(\n (acc, property) => (property.key === newPropertyKey ? property : acc),\n undefined\n );\n const allowedOperators = filteringProperty ? getAllowedOperators(filteringProperty) : freeTextOperators;\n const operator =\n temporaryToken.operator && allowedOperators.indexOf(temporaryToken.operator) !== -1\n ? temporaryToken.operator\n : allowedOperators[0];\n setTemporaryToken({ ...temporaryToken, propertyKey: newPropertyKey, operator });\n };\n\n const operator = temporaryToken.operator;\n const onChangeOperator = (newOperator: ComparisonOperator) => {\n setTemporaryToken({ ...temporaryToken, operator: newOperator });\n };\n\n const value = temporaryToken.value;\n const onChangeValue = (newValue: string) => {\n setTemporaryToken({ ...temporaryToken, value: newValue });\n };\n\n return (\n <InternalPopover\n ref={popoverRef}\n className={styles['token-label']}\n triggerType=\"text\"\n header={i18nStrings.editTokenHeader}\n size=\"large\"\n position=\"right\"\n dismissAriaLabel={i18nStrings.dismissAriaLabel}\n __onOpen={() => setTemporaryToken(token)}\n renderWithPortal={expandToViewport}\n content={\n <TokenEditorForm\n i18nStrings={i18nStrings}\n onCancel={closePopover}\n onSubmit={() => {\n setToken(temporaryToken as Token);\n closePopover();\n }}\n >\n <InternalSpaceBetween size=\"l\">\n <TokenEditorField label={i18nStrings.propertyText} className={styles['property-selector']}>\n {({ controlId }) => (\n <PropertyInput\n controlId={controlId}\n propertyKey={propertyKey}\n onChangePropertyKey={onChangePropertyKey}\n asyncProps={asyncProperties ? asyncProps : null}\n filteringProperties={filteringProperties}\n onLoadItems={onLoadItems}\n customGroupsText={customGroupsText}\n i18nStrings={i18nStrings}\n disableFreeTextFiltering={disableFreeTextFiltering}\n />\n )}\n </TokenEditorField>\n\n <TokenEditorField label={i18nStrings.operatorText} className={styles['operator-selector']}>\n {({ controlId }) => (\n <OperatorInput\n controlId={controlId}\n propertyKey={propertyKey}\n operator={operator}\n onChangeOperator={onChangeOperator}\n filteringProperties={filteringProperties}\n i18nStrings={i18nStrings}\n />\n )}\n </TokenEditorField>\n\n <TokenEditorField label={i18nStrings.valueText} className={styles['value-selector']}>\n {({ controlId }) => (\n <ValueInput\n controlId={controlId}\n propertyKey={propertyKey}\n operator={operator}\n value={value}\n onChangeValue={onChangeValue}\n asyncProps={asyncProps}\n filteringProperties={filteringProperties}\n filteringOptions={filteringOptions}\n onLoadItems={onLoadItems}\n i18nStrings={i18nStrings}\n />\n )}\n </TokenEditorField>\n </InternalSpaceBetween>\n </TokenEditorForm>\n }\n >\n {triggerComponent}\n </InternalPopover>\n );\n}\n"]}
1
+ {"version":3,"file":"token-editor.js","sourceRoot":"","sources":["../../../src/property-filter/token-editor.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 React, { useState, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { SelectProps } from '../select/interfaces';\nimport InternalSelect from '../select/internal';\nimport InternalSpaceBetween from '../space-between/internal';\nimport InternalAutosuggest from '../autosuggest/internal';\nimport InternalPopover, { InternalPopoverRef } from '../popover/internal';\nimport { InternalButton } from '../button/internal';\nimport { useUniqueId } from '../internal/hooks/use-unique-id/index';\n\nimport {\n ComparisonOperator,\n FilteringOption,\n FilteringProperty,\n GroupText,\n I18nStrings,\n LoadItemsDetail,\n Token,\n} from './interfaces';\nimport styles from './styles.css.js';\nimport { useLoadItems } from './use-load-items';\nimport {\n getAllowedOperators,\n getPropertyOptions,\n getPropertyByKey,\n operatorToDescription,\n getPropertySuggestions,\n} from './controller';\nimport { NonCancelableEventHandler } from '../internal/events';\nimport { DropdownStatusProps } from '../internal/components/dropdown-status/interfaces';\n\nconst freeTextOperators: ComparisonOperator[] = [':', '!:'];\n\ninterface TokenEditorFieldProps {\n label: React.ReactNode;\n className: string;\n children: ({ controlId }: { controlId: string }) => React.ReactNode;\n}\n\nfunction TokenEditorField({ className, label, children }: TokenEditorFieldProps) {\n const controlId = useUniqueId();\n return (\n <div className={clsx(styles['token-editor-line'], className)}>\n <label className={styles['token-editor-label']} htmlFor={controlId}>\n {label}\n </label>\n <div className={styles['token-editor-field']}>{children({ controlId })}</div>\n </div>\n );\n}\n\ninterface PropertyInputProps {\n controlId: string;\n asyncProps: null | DropdownStatusProps;\n customGroupsText: readonly GroupText[];\n disableFreeTextFiltering?: boolean;\n filteringProperties: readonly FilteringProperty[];\n i18nStrings: I18nStrings;\n onChangePropertyKey: (propertyKey: undefined | string) => void;\n onLoadItems?: NonCancelableEventHandler<LoadItemsDetail>;\n propertyKey: undefined | string;\n}\n\nfunction PropertyInput({\n controlId,\n propertyKey,\n onChangePropertyKey,\n asyncProps,\n filteringProperties,\n onLoadItems,\n customGroupsText,\n i18nStrings,\n disableFreeTextFiltering,\n}: PropertyInputProps) {\n const property = propertyKey !== undefined ? getPropertyByKey(filteringProperties, propertyKey) : undefined;\n const propertySelectHandlers = useLoadItems(onLoadItems);\n const asyncPropertySelectProps = asyncProps ? { ...asyncProps, ...propertySelectHandlers } : {};\n const propertyOptions: (SelectProps.Option | SelectProps.OptionGroup)[] = getPropertySuggestions(\n filteringProperties,\n customGroupsText,\n i18nStrings,\n ({ propertyLabel, key }) => ({\n value: key,\n label: propertyLabel,\n dontCloseOnSelect: true,\n })\n );\n const allPropertiesOption = {\n label: i18nStrings.allPropertiesLabel,\n value: undefined,\n };\n if (!disableFreeTextFiltering) {\n propertyOptions.unshift(allPropertiesOption);\n }\n return (\n <InternalSelect\n controlId={controlId}\n options={propertyOptions}\n selectedOption={\n property\n ? {\n value: propertyKey ?? undefined,\n label: property.propertyLabel,\n }\n : allPropertiesOption\n }\n onChange={e => onChangePropertyKey(e.detail.selectedOption.value)}\n {...asyncPropertySelectProps}\n />\n );\n}\n\ninterface OperatorInputProps {\n controlId: string;\n filteringProperties: readonly FilteringProperty[];\n i18nStrings: I18nStrings;\n onChangeOperator: (operator: ComparisonOperator) => void;\n operator: undefined | ComparisonOperator;\n propertyKey: undefined | string;\n}\n\nfunction OperatorInput({\n controlId,\n propertyKey,\n operator,\n onChangeOperator,\n filteringProperties,\n i18nStrings,\n}: OperatorInputProps) {\n const property = propertyKey !== undefined ? getPropertyByKey(filteringProperties, propertyKey) : undefined;\n const freeTextOperators: ComparisonOperator[] = [':', '!:'];\n const operatorOptions = (property ? getAllowedOperators(property) : freeTextOperators).map(operator => ({\n value: operator,\n label: operator,\n description: operatorToDescription(operator, i18nStrings),\n }));\n return (\n <InternalSelect\n controlId={controlId}\n options={operatorOptions}\n triggerVariant=\"option\"\n selectedOption={\n operator\n ? {\n value: operator,\n label: operator,\n description: operatorToDescription(operator, i18nStrings),\n }\n : null\n }\n onChange={e => onChangeOperator(e.detail.selectedOption.value as ComparisonOperator)}\n />\n );\n}\n\ninterface ValueInputProps {\n controlId: string;\n asyncProps: DropdownStatusProps;\n filteringOptions: readonly FilteringOption[];\n filteringProperties: readonly FilteringProperty[];\n i18nStrings: I18nStrings;\n onChangeValue: (value: string) => void;\n onLoadItems?: NonCancelableEventHandler<LoadItemsDetail>;\n operator: undefined | ComparisonOperator;\n propertyKey: undefined | string;\n value: undefined | string;\n}\n\nfunction ValueInput({\n controlId,\n propertyKey,\n operator,\n value,\n onChangeValue,\n asyncProps,\n filteringProperties,\n filteringOptions,\n onLoadItems,\n i18nStrings,\n}: ValueInputProps) {\n const property = propertyKey !== undefined ? getPropertyByKey(filteringProperties, propertyKey) : undefined;\n const valueOptions = property ? getPropertyOptions(property, filteringOptions).map(({ value }) => ({ value })) : [];\n const valueAutosuggestHandlers = useLoadItems(onLoadItems, '', property);\n const asyncValueAutosuggesProps = propertyKey\n ? { ...valueAutosuggestHandlers, ...asyncProps }\n : { empty: asyncProps.empty };\n return (\n <InternalAutosuggest\n controlId={controlId}\n enteredTextLabel={i18nStrings.enteredTextLabel}\n value={value ?? ''}\n onChange={e => onChangeValue(e.detail.value)}\n disabled={!operator}\n options={valueOptions}\n {...asyncValueAutosuggesProps}\n virtualScroll={true}\n />\n );\n}\n\ninterface TokenEditorFormProps {\n i18nStrings: I18nStrings;\n onCancel(): void;\n onSubmit(): void;\n children: React.ReactNode;\n}\n\nfunction TokenEditorForm({ i18nStrings, onCancel, onSubmit, children }: TokenEditorFormProps) {\n return (\n <div className={styles['token-editor']}>\n <div className={styles['token-editor-form']}>{children}</div>\n\n <div className={styles['token-editor-actions']}>\n <InternalButton variant=\"link\" className={styles['token-editor-cancel']} onClick={onCancel}>\n {i18nStrings.cancelActionText}\n </InternalButton>\n <InternalButton className={styles['token-editor-submit']} onClick={onSubmit}>\n {i18nStrings.applyActionText}\n </InternalButton>\n </div>\n </div>\n );\n}\n\ninterface TokenEditorProps {\n asyncProperties?: boolean;\n asyncProps: DropdownStatusProps;\n customGroupsText: readonly GroupText[];\n disabled?: boolean;\n disableFreeTextFiltering?: boolean;\n expandToViewport?: boolean;\n filteringOptions: readonly FilteringOption[];\n filteringProperties: readonly FilteringProperty[];\n i18nStrings: I18nStrings;\n onLoadItems?: NonCancelableEventHandler<LoadItemsDetail>;\n setToken: (newToken: Token) => void;\n token: Token;\n triggerComponent?: React.ReactNode;\n}\n\nexport function TokenEditor({\n asyncProperties,\n asyncProps,\n customGroupsText,\n disableFreeTextFiltering,\n expandToViewport,\n filteringOptions,\n filteringProperties,\n i18nStrings,\n onLoadItems,\n setToken,\n token,\n triggerComponent,\n}: TokenEditorProps) {\n const [temporaryToken, setTemporaryToken] = useState<Token>(token);\n const popoverRef = useRef<InternalPopoverRef>(null);\n const closePopover = () => {\n popoverRef.current && popoverRef.current.dismissPopover();\n };\n\n const propertyKey = temporaryToken.propertyKey;\n const onChangePropertyKey = (newPropertyKey: undefined | string) => {\n const filteringProperty = filteringProperties.reduce<FilteringProperty | undefined>(\n (acc, property) => (property.key === newPropertyKey ? property : acc),\n undefined\n );\n const allowedOperators = filteringProperty ? getAllowedOperators(filteringProperty) : freeTextOperators;\n const operator =\n temporaryToken.operator && allowedOperators.indexOf(temporaryToken.operator) !== -1\n ? temporaryToken.operator\n : allowedOperators[0];\n setTemporaryToken({ ...temporaryToken, propertyKey: newPropertyKey, operator });\n };\n\n const operator = temporaryToken.operator;\n const onChangeOperator = (newOperator: ComparisonOperator) => {\n setTemporaryToken({ ...temporaryToken, operator: newOperator });\n };\n\n const value = temporaryToken.value;\n const onChangeValue = (newValue: string) => {\n setTemporaryToken({ ...temporaryToken, value: newValue });\n };\n\n return (\n <InternalPopover\n ref={popoverRef}\n className={styles['token-label']}\n triggerType=\"text\"\n header={i18nStrings.editTokenHeader}\n size=\"large\"\n position=\"right\"\n dismissAriaLabel={i18nStrings.dismissAriaLabel}\n __onOpen={() => setTemporaryToken(token)}\n renderWithPortal={expandToViewport}\n content={\n <TokenEditorForm\n i18nStrings={i18nStrings}\n onCancel={closePopover}\n onSubmit={() => {\n setToken(temporaryToken as Token);\n closePopover();\n }}\n >\n <InternalSpaceBetween size=\"l\">\n <TokenEditorField label={i18nStrings.propertyText} className={styles['property-selector']}>\n {({ controlId }) => (\n <PropertyInput\n controlId={controlId}\n propertyKey={propertyKey}\n onChangePropertyKey={onChangePropertyKey}\n asyncProps={asyncProperties ? asyncProps : null}\n filteringProperties={filteringProperties}\n onLoadItems={onLoadItems}\n customGroupsText={customGroupsText}\n i18nStrings={i18nStrings}\n disableFreeTextFiltering={disableFreeTextFiltering}\n />\n )}\n </TokenEditorField>\n\n <TokenEditorField label={i18nStrings.operatorText} className={styles['operator-selector']}>\n {({ controlId }) => (\n <OperatorInput\n controlId={controlId}\n propertyKey={propertyKey}\n operator={operator}\n onChangeOperator={onChangeOperator}\n filteringProperties={filteringProperties}\n i18nStrings={i18nStrings}\n />\n )}\n </TokenEditorField>\n\n <TokenEditorField label={i18nStrings.valueText} className={styles['value-selector']}>\n {({ controlId }) => (\n <ValueInput\n controlId={controlId}\n propertyKey={propertyKey}\n operator={operator}\n value={value}\n onChangeValue={onChangeValue}\n asyncProps={asyncProps}\n filteringProperties={filteringProperties}\n filteringOptions={filteringOptions}\n onLoadItems={onLoadItems}\n i18nStrings={i18nStrings}\n />\n )}\n </TokenEditorField>\n </InternalSpaceBetween>\n </TokenEditorForm>\n }\n >\n {triggerComponent}\n </InternalPopover>\n );\n}\n"]}