@cloudscape-design/components 3.0.632 → 3.0.634

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/app-layout/split-panel/styles.css.js +2 -2
  2. package/app-layout/split-panel/styles.scoped.css +3 -2
  3. package/app-layout/split-panel/styles.selectors.js +2 -2
  4. package/cards/index.d.ts.map +1 -1
  5. package/cards/index.js +6 -6
  6. package/cards/index.js.map +1 -1
  7. package/cards/interfaces.d.ts +1 -1
  8. package/cards/interfaces.js.map +1 -1
  9. package/copy-to-clipboard/index.d.ts +1 -1
  10. package/copy-to-clipboard/index.d.ts.map +1 -1
  11. package/copy-to-clipboard/index.js +7 -42
  12. package/copy-to-clipboard/index.js.map +1 -1
  13. package/copy-to-clipboard/internal.d.ts +7 -0
  14. package/copy-to-clipboard/internal.d.ts.map +1 -0
  15. package/copy-to-clipboard/internal.js +44 -0
  16. package/copy-to-clipboard/internal.js.map +1 -0
  17. package/internal/direction.d.ts +1 -1
  18. package/internal/direction.d.ts.map +1 -1
  19. package/internal/direction.js +3 -0
  20. package/internal/direction.js.map +1 -1
  21. package/internal/environment.js +1 -1
  22. package/internal/environment.json +1 -1
  23. package/internal/manifest.json +1 -1
  24. package/mixed-line-bar-chart/bar-series.d.ts +2 -1
  25. package/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
  26. package/mixed-line-bar-chart/bar-series.js +6 -3
  27. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  28. package/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  29. package/mixed-line-bar-chart/chart-container.js +3 -3
  30. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  31. package/mixed-line-bar-chart/data-series.d.ts +2 -1
  32. package/mixed-line-bar-chart/data-series.d.ts.map +1 -1
  33. package/mixed-line-bar-chart/data-series.js +2 -2
  34. package/mixed-line-bar-chart/data-series.js.map +1 -1
  35. package/package.json +1 -1
  36. package/progress-bar/index.d.ts.map +1 -1
  37. package/progress-bar/index.js +1 -1
  38. package/progress-bar/index.js.map +1 -1
  39. package/progress-bar/internal.d.ts +2 -1
  40. package/progress-bar/internal.d.ts.map +1 -1
  41. package/progress-bar/internal.js +2 -2
  42. package/progress-bar/internal.js.map +1 -1
  43. package/property-filter/index.d.ts.map +1 -1
  44. package/property-filter/index.js +8 -2
  45. package/property-filter/index.js.map +1 -1
  46. package/property-filter/interfaces.d.ts +5 -0
  47. package/property-filter/interfaces.d.ts.map +1 -1
  48. package/property-filter/interfaces.js.map +1 -1
  49. package/property-filter/styles.css.js +32 -31
  50. package/property-filter/styles.scoped.css +41 -33
  51. package/property-filter/styles.selectors.js +32 -31
  52. package/table/interfaces.d.ts +13 -11
  53. package/table/interfaces.d.ts.map +1 -1
  54. package/table/interfaces.js.map +1 -1
  55. package/table/internal.d.ts.map +1 -1
  56. package/table/internal.js +9 -4
  57. package/table/internal.js.map +1 -1
  58. package/table/selection/interfaces.d.ts +1 -0
  59. package/table/selection/interfaces.d.ts.map +1 -1
  60. package/table/selection/interfaces.js.map +1 -1
  61. package/table/selection/use-selection.d.ts +5 -4
  62. package/table/selection/use-selection.d.ts.map +1 -1
  63. package/table/selection/use-selection.js +55 -36
  64. package/table/selection/use-selection.js.map +1 -1
  65. package/table/thead.d.ts +1 -1
  66. package/table/thead.d.ts.map +1 -1
  67. package/table/thead.js +1 -1
  68. package/table/thead.js.map +1 -1
  69. package/test-utils/dom/progress-bar/index.d.ts +1 -0
  70. package/test-utils/dom/progress-bar/index.js +3 -0
  71. package/test-utils/dom/progress-bar/index.js.map +1 -1
  72. package/test-utils/dom/property-filter/index.d.ts +4 -0
  73. package/test-utils/dom/property-filter/index.js +6 -0
  74. package/test-utils/dom/property-filter/index.js.map +1 -1
  75. package/test-utils/selectors/progress-bar/index.d.ts +1 -0
  76. package/test-utils/selectors/progress-bar/index.js +3 -0
  77. package/test-utils/selectors/progress-bar/index.js.map +1 -1
  78. package/test-utils/selectors/property-filter/index.d.ts +4 -0
  79. package/test-utils/selectors/property-filter/index.js +6 -0
  80. package/test-utils/selectors/property-filter/index.js.map +1 -1
  81. package/test-utils/tsconfig.tsbuildinfo +1 -1
@@ -6,27 +6,61 @@ import { useUniqueId } from '../../internal/hooks/use-unique-id';
6
6
  import { getTrackableValue } from '../utils';
7
7
  import { joinStrings } from '../../internal/utils/strings';
8
8
  import { ItemSet } from './utils';
9
- export function useSelection({ items, selectedItems = [], selectionType, isItemDisabled = () => false, trackBy, onSelectionChange, ariaLabels, loading, }) {
10
- // The name assigned to all radio- controls to combine them in a single group.
9
+ export function useSelection(options) {
10
+ const singleSelectionProps = useSingleSelection(options);
11
+ const multiSelectionProps = useMultiSelection(options);
12
+ return options.selectionType === 'single' ? singleSelectionProps : multiSelectionProps;
13
+ }
14
+ function useSingleSelection({ ariaLabels, isItemDisabled = () => false, onSelectionChange, selectedItems = [], selectionType, trackBy, }) {
15
+ // The name assigned to all controls to combine them in a single group.
11
16
  const selectionControlName = useUniqueId();
17
+ if (selectionType !== 'single') {
18
+ return { isItemSelected: () => false };
19
+ }
12
20
  // Selection state for individual items.
13
- const finalSelectedItems = selectionType === 'single' ? selectedItems.slice(0, 1) : selectedItems;
14
- const selectedSet = new ItemSet(trackBy, finalSelectedItems);
21
+ const selectedSet = new ItemSet(trackBy, selectedItems.slice(0, 1));
22
+ const isItemSelected = selectedSet.has.bind(selectedSet);
23
+ const handleToggleItem = (item) => {
24
+ if (!isItemDisabled(item) && !isItemSelected(item)) {
25
+ fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });
26
+ }
27
+ };
28
+ return {
29
+ isItemSelected,
30
+ getItemSelectionProps: (item) => {
31
+ var _a;
32
+ return ({
33
+ name: selectionControlName,
34
+ selectionType: 'single',
35
+ disabled: isItemDisabled(item),
36
+ checked: isItemSelected(item),
37
+ onChange: () => handleToggleItem(item),
38
+ ariaLabel: joinStrings(ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.selectionGroupLabel, (_a = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.itemSelectionLabel) === null || _a === void 0 ? void 0 : _a.call(ariaLabels, { selectedItems }, item)),
39
+ });
40
+ },
41
+ };
42
+ }
43
+ function useMultiSelection({ ariaLabels, isItemDisabled = () => false, items, loading, onSelectionChange, selectedItems = [], selectionType, trackBy, }) {
44
+ // The name assigned to all controls to combine them in a single group.
45
+ const selectionControlName = useUniqueId();
46
+ const [shiftPressed, setShiftPressed] = useState(false);
47
+ const [lastClickedItem, setLastClickedItem] = useState(null);
48
+ if (selectionType !== 'multi') {
49
+ return { isItemSelected: () => false };
50
+ }
51
+ // Selection state for individual items.
52
+ const selectedSet = new ItemSet(trackBy, selectedItems);
15
53
  const isItemSelected = selectedSet.has.bind(selectedSet);
16
54
  // Derived selection state for all-items checkbox.
17
55
  let allItemsDisabled = true;
18
56
  let allEnabledItemsSelected = true;
19
- if (selectionType === 'multi') {
20
- for (const item of items) {
21
- allItemsDisabled = allItemsDisabled && isItemDisabled(item);
22
- allEnabledItemsSelected = allEnabledItemsSelected && (isItemSelected(item) || isItemDisabled(item));
23
- }
57
+ for (const item of items) {
58
+ allItemsDisabled = allItemsDisabled && isItemDisabled(item);
59
+ allEnabledItemsSelected = allEnabledItemsSelected && (isItemSelected(item) || isItemDisabled(item));
24
60
  }
25
- const allItemsCheckboxSelected = finalSelectedItems.length > 0 && allEnabledItemsSelected;
26
- const allItemsCheckboxIndeterminate = finalSelectedItems.length > 0 && !allEnabledItemsSelected;
61
+ const allItemsCheckboxSelected = selectedItems.length > 0 && allEnabledItemsSelected;
62
+ const allItemsCheckboxIndeterminate = selectedItems.length > 0 && !allEnabledItemsSelected;
27
63
  // Shift-selection helpers.
28
- const [shiftPressed, setShiftPressed] = useState(false);
29
- const [lastClickedItem, setLastClickedItem] = useState(null);
30
64
  const itemIndexesMap = new Map();
31
65
  items.forEach((item, i) => itemIndexesMap.set(getTrackableValue(trackBy, item), i));
32
66
  const getShiftSelectedItems = (item) => {
@@ -70,13 +104,7 @@ export function useSelection({ items, selectedItems = [], selectionType, isItemD
70
104
  fireNonCancelableEvent(onSelectionChange, { selectedItems: newSelectedItems });
71
105
  };
72
106
  const handleToggleItem = (item) => {
73
- if (isItemDisabled(item)) {
74
- return;
75
- }
76
- if (selectionType === 'single' && !isItemSelected(item)) {
77
- fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });
78
- }
79
- if (selectionType === 'multi') {
107
+ if (!isItemDisabled(item)) {
80
108
  const requestedItems = shiftPressed ? getShiftSelectedItems(item) : [item];
81
109
  const selectedItems = isItemSelected(item) ? deselectItems(requestedItems) : selectItems(requestedItems);
82
110
  fireNonCancelableEvent(onSelectionChange, { selectedItems });
@@ -87,36 +115,27 @@ export function useSelection({ items, selectedItems = [], selectionType, isItemD
87
115
  isItemSelected,
88
116
  getSelectAllProps: () => {
89
117
  var _a;
90
- if (!selectionType) {
91
- throw new Error('Invariant violation: calling selection props with missing selection type.');
92
- }
93
- return {
118
+ return ({
94
119
  name: selectionControlName,
95
- selectionType: selectionType,
120
+ selectionType: 'multi',
96
121
  disabled: allItemsDisabled || !!loading,
97
122
  checked: allItemsCheckboxSelected,
98
123
  indeterminate: allItemsCheckboxIndeterminate,
99
124
  onChange: handleToggleAll,
100
125
  ariaLabel: joinStrings(ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.selectionGroupLabel, (_a = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.allItemsSelectionLabel) === null || _a === void 0 ? void 0 : _a.call(ariaLabels, { selectedItems })),
101
- };
126
+ });
102
127
  },
103
128
  getItemSelectionProps: (item) => {
104
129
  var _a;
105
- if (!selectionType) {
106
- throw new Error('Invariant violation: calling selection props with missing selection type.');
107
- }
108
- return {
130
+ return ({
109
131
  name: selectionControlName,
110
- selectionType: selectionType,
132
+ selectionType: 'multi',
111
133
  disabled: isItemDisabled(item),
112
134
  checked: isItemSelected(item),
113
- indeterminate: false,
114
135
  onChange: () => handleToggleItem(item),
136
+ onShiftToggle: (value) => setShiftPressed(value),
115
137
  ariaLabel: joinStrings(ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.selectionGroupLabel, (_a = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.itemSelectionLabel) === null || _a === void 0 ? void 0 : _a.call(ariaLabels, { selectedItems }, item)),
116
- };
117
- },
118
- updateShiftToggle: (value) => {
119
- setShiftPressed(value);
138
+ });
120
139
  },
121
140
  };
122
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-selection.js","sourceRoot":"","sources":["../../../../src/table/selection/use-selection.ts"],"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 { useState } from 'react';\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { useUniqueId } from '../../internal/hooks/use-unique-id';\nimport { TableProps } from '../interfaces';\nimport { getTrackableValue } from '../utils';\nimport { joinStrings } from '../../internal/utils/strings';\nimport { SelectionProps } from './interfaces';\nimport { ItemSet } from './utils';\n\nexport function useSelection<T>({\n items,\n selectedItems = [],\n selectionType,\n isItemDisabled = () => false,\n trackBy,\n onSelectionChange,\n ariaLabels,\n loading,\n}: Pick<\n TableProps<T>,\n | 'ariaLabels'\n | 'items'\n | 'selectedItems'\n | 'selectionType'\n | 'isItemDisabled'\n | 'trackBy'\n | 'onSelectionChange'\n | 'loading'\n>) {\n // The name assigned to all radio- controls to combine them in a single group.\n const selectionControlName = useUniqueId();\n\n // Selection state for individual items.\n const finalSelectedItems = selectionType === 'single' ? selectedItems.slice(0, 1) : selectedItems;\n const selectedSet = new ItemSet(trackBy, finalSelectedItems);\n const isItemSelected = selectedSet.has.bind(selectedSet);\n\n // Derived selection state for all-items checkbox.\n let allItemsDisabled = true;\n let allEnabledItemsSelected = true;\n if (selectionType === 'multi') {\n for (const item of items) {\n allItemsDisabled = allItemsDisabled && isItemDisabled(item);\n allEnabledItemsSelected = allEnabledItemsSelected && (isItemSelected(item) || isItemDisabled(item));\n }\n }\n const allItemsCheckboxSelected = finalSelectedItems.length > 0 && allEnabledItemsSelected;\n const allItemsCheckboxIndeterminate = finalSelectedItems.length > 0 && !allEnabledItemsSelected;\n\n // Shift-selection helpers.\n const [shiftPressed, setShiftPressed] = useState(false);\n const [lastClickedItem, setLastClickedItem] = useState<null | T>(null);\n const itemIndexesMap = new Map<T, number>();\n items.forEach((item, i) => itemIndexesMap.set(getTrackableValue(trackBy, item), i));\n const getShiftSelectedItems = (item: T): T[] => {\n const lastClickedItemIndex = lastClickedItem\n ? itemIndexesMap.get(getTrackableValue(trackBy, lastClickedItem))\n : undefined;\n // We use lastClickedItemIndex to determine if filtering/sorting/pagination\n // made previously selected item invisible, therefore we reset state for shift-select.\n if (lastClickedItemIndex !== undefined) {\n const currentItemIndex = itemIndexesMap.get(getTrackableValue(trackBy, item))!;\n const start = Math.min(currentItemIndex, lastClickedItemIndex);\n const end = Math.max(currentItemIndex, lastClickedItemIndex);\n return items.slice(start, end + 1);\n }\n return [item];\n };\n\n // Select items that are not already selected or disabled.\n const selectItems = (requestedItems: readonly T[]) => {\n const newSelectedItems = [...selectedItems];\n requestedItems.forEach(newItem => {\n if (!isItemSelected(newItem) && !isItemDisabled(newItem)) {\n newSelectedItems.push(newItem);\n }\n });\n return newSelectedItems;\n };\n\n // Unselect items unless they are disabled.\n const deselectItems = (requestedItems: readonly T[]) => {\n const requestedItemsSet = new ItemSet(trackBy, requestedItems);\n const newSelectedItems: Array<T> = [];\n selectedItems.forEach(selectedItem => {\n const shouldUnselect = requestedItemsSet.has(selectedItem);\n if (!shouldUnselect || isItemDisabled(selectedItem)) {\n newSelectedItems.push(selectedItem);\n }\n });\n return newSelectedItems;\n };\n\n const handleToggleAll = () => {\n const newSelectedItems = allEnabledItemsSelected ? deselectItems(items) : selectItems(items);\n fireNonCancelableEvent(onSelectionChange, { selectedItems: newSelectedItems });\n };\n\n const handleToggleItem = (item: T) => {\n if (isItemDisabled(item)) {\n return;\n }\n if (selectionType === 'single' && !isItemSelected(item)) {\n fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });\n }\n if (selectionType === 'multi') {\n const requestedItems = shiftPressed ? getShiftSelectedItems(item) : [item];\n const selectedItems = isItemSelected(item) ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems });\n setLastClickedItem(item);\n }\n };\n\n return {\n isItemSelected,\n getSelectAllProps: (): SelectionProps => {\n if (!selectionType) {\n throw new Error('Invariant violation: calling selection props with missing selection type.');\n }\n return {\n name: selectionControlName,\n selectionType: selectionType,\n disabled: allItemsDisabled || !!loading,\n checked: allItemsCheckboxSelected,\n indeterminate: allItemsCheckboxIndeterminate,\n onChange: handleToggleAll,\n ariaLabel: joinStrings(\n ariaLabels?.selectionGroupLabel,\n ariaLabels?.allItemsSelectionLabel?.({ selectedItems })\n ),\n };\n },\n getItemSelectionProps: (item: T): SelectionProps => {\n if (!selectionType) {\n throw new Error('Invariant violation: calling selection props with missing selection type.');\n }\n return {\n name: selectionControlName,\n selectionType: selectionType,\n disabled: isItemDisabled(item),\n checked: isItemSelected(item),\n indeterminate: false,\n onChange: () => handleToggleItem(item),\n ariaLabel: joinStrings(\n ariaLabels?.selectionGroupLabel,\n ariaLabels?.itemSelectionLabel?.({ selectedItems }, item)\n ),\n };\n },\n updateShiftToggle: (value: boolean) => {\n setShiftPressed(value);\n },\n };\n}\n"]}
1
+ {"version":3,"file":"use-selection.js","sourceRoot":"","sources":["../../../../src/table/selection/use-selection.ts"],"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 { useState } from 'react';\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { useUniqueId } from '../../internal/hooks/use-unique-id';\nimport { TableProps } from '../interfaces';\nimport { getTrackableValue } from '../utils';\nimport { joinStrings } from '../../internal/utils/strings';\nimport { SelectionProps } from './interfaces';\nimport { ItemSet } from './utils';\n\ntype SelectionOptions<T> = Pick<\n TableProps<T>,\n | 'ariaLabels'\n | 'isItemDisabled'\n | 'items'\n | 'loading'\n | 'onSelectionChange'\n | 'selectedItems'\n | 'selectionType'\n | 'trackBy'\n>;\n\nexport function useSelection<T>(options: SelectionOptions<T>): {\n isItemSelected: (item: T) => boolean;\n getSelectAllProps?: () => SelectionProps;\n getItemSelectionProps?: (item: T) => SelectionProps;\n} {\n const singleSelectionProps = useSingleSelection(options);\n const multiSelectionProps = useMultiSelection(options);\n return options.selectionType === 'single' ? singleSelectionProps : multiSelectionProps;\n}\n\nfunction useSingleSelection<T>({\n ariaLabels,\n isItemDisabled = () => false,\n onSelectionChange,\n selectedItems = [],\n selectionType,\n trackBy,\n}: SelectionOptions<T>) {\n // The name assigned to all controls to combine them in a single group.\n const selectionControlName = useUniqueId();\n\n if (selectionType !== 'single') {\n return { isItemSelected: () => false };\n }\n\n // Selection state for individual items.\n const selectedSet = new ItemSet(trackBy, selectedItems.slice(0, 1));\n const isItemSelected = selectedSet.has.bind(selectedSet);\n\n const handleToggleItem = (item: T) => {\n if (!isItemDisabled(item) && !isItemSelected(item)) {\n fireNonCancelableEvent(onSelectionChange, { selectedItems: [item] });\n }\n };\n\n return {\n isItemSelected,\n getItemSelectionProps: (item: T): SelectionProps => ({\n name: selectionControlName,\n selectionType: 'single',\n disabled: isItemDisabled(item),\n checked: isItemSelected(item),\n onChange: () => handleToggleItem(item),\n ariaLabel: joinStrings(\n ariaLabels?.selectionGroupLabel,\n ariaLabels?.itemSelectionLabel?.({ selectedItems }, item)\n ),\n }),\n };\n}\n\nfunction useMultiSelection<T>({\n ariaLabels,\n isItemDisabled = () => false,\n items,\n loading,\n onSelectionChange,\n selectedItems = [],\n selectionType,\n trackBy,\n}: SelectionOptions<T>) {\n // The name assigned to all controls to combine them in a single group.\n const selectionControlName = useUniqueId();\n const [shiftPressed, setShiftPressed] = useState(false);\n const [lastClickedItem, setLastClickedItem] = useState<null | T>(null);\n\n if (selectionType !== 'multi') {\n return { isItemSelected: () => false };\n }\n\n // Selection state for individual items.\n const selectedSet = new ItemSet(trackBy, selectedItems);\n const isItemSelected = selectedSet.has.bind(selectedSet);\n\n // Derived selection state for all-items checkbox.\n let allItemsDisabled = true;\n let allEnabledItemsSelected = true;\n for (const item of items) {\n allItemsDisabled = allItemsDisabled && isItemDisabled(item);\n allEnabledItemsSelected = allEnabledItemsSelected && (isItemSelected(item) || isItemDisabled(item));\n }\n const allItemsCheckboxSelected = selectedItems.length > 0 && allEnabledItemsSelected;\n const allItemsCheckboxIndeterminate = selectedItems.length > 0 && !allEnabledItemsSelected;\n\n // Shift-selection helpers.\n const itemIndexesMap = new Map<T, number>();\n items.forEach((item, i) => itemIndexesMap.set(getTrackableValue(trackBy, item), i));\n const getShiftSelectedItems = (item: T): T[] => {\n const lastClickedItemIndex = lastClickedItem\n ? itemIndexesMap.get(getTrackableValue(trackBy, lastClickedItem))\n : undefined;\n // We use lastClickedItemIndex to determine if filtering/sorting/pagination\n // made previously selected item invisible, therefore we reset state for shift-select.\n if (lastClickedItemIndex !== undefined) {\n const currentItemIndex = itemIndexesMap.get(getTrackableValue(trackBy, item))!;\n const start = Math.min(currentItemIndex, lastClickedItemIndex);\n const end = Math.max(currentItemIndex, lastClickedItemIndex);\n return items.slice(start, end + 1);\n }\n return [item];\n };\n\n // Select items that are not already selected or disabled.\n const selectItems = (requestedItems: readonly T[]) => {\n const newSelectedItems = [...selectedItems];\n requestedItems.forEach(newItem => {\n if (!isItemSelected(newItem) && !isItemDisabled(newItem)) {\n newSelectedItems.push(newItem);\n }\n });\n return newSelectedItems;\n };\n\n // Unselect items unless they are disabled.\n const deselectItems = (requestedItems: readonly T[]) => {\n const requestedItemsSet = new ItemSet(trackBy, requestedItems);\n const newSelectedItems: Array<T> = [];\n selectedItems.forEach(selectedItem => {\n const shouldUnselect = requestedItemsSet.has(selectedItem);\n if (!shouldUnselect || isItemDisabled(selectedItem)) {\n newSelectedItems.push(selectedItem);\n }\n });\n return newSelectedItems;\n };\n\n const handleToggleAll = () => {\n const newSelectedItems = allEnabledItemsSelected ? deselectItems(items) : selectItems(items);\n fireNonCancelableEvent(onSelectionChange, { selectedItems: newSelectedItems });\n };\n\n const handleToggleItem = (item: T) => {\n if (!isItemDisabled(item)) {\n const requestedItems = shiftPressed ? getShiftSelectedItems(item) : [item];\n const selectedItems = isItemSelected(item) ? deselectItems(requestedItems) : selectItems(requestedItems);\n fireNonCancelableEvent(onSelectionChange, { selectedItems });\n setLastClickedItem(item);\n }\n };\n\n return {\n isItemSelected,\n getSelectAllProps: (): SelectionProps => ({\n name: selectionControlName,\n selectionType: 'multi',\n disabled: allItemsDisabled || !!loading,\n checked: allItemsCheckboxSelected,\n indeterminate: allItemsCheckboxIndeterminate,\n onChange: handleToggleAll,\n ariaLabel: joinStrings(ariaLabels?.selectionGroupLabel, ariaLabels?.allItemsSelectionLabel?.({ selectedItems })),\n }),\n getItemSelectionProps: (item: T): SelectionProps => ({\n name: selectionControlName,\n selectionType: 'multi',\n disabled: isItemDisabled(item),\n checked: isItemSelected(item),\n onChange: () => handleToggleItem(item),\n onShiftToggle: (value: boolean) => setShiftPressed(value),\n ariaLabel: joinStrings(\n ariaLabels?.selectionGroupLabel,\n ariaLabels?.itemSelectionLabel?.({ selectedItems }, item)\n ),\n }),\n };\n}\n"]}
package/table/thead.d.ts CHANGED
@@ -13,7 +13,7 @@ export interface TheadProps {
13
13
  variant: TableProps.Variant;
14
14
  wrapLines: boolean | undefined;
15
15
  resizableColumns: boolean | undefined;
16
- getSelectAllProps: () => SelectionProps;
16
+ getSelectAllProps?: () => SelectionProps;
17
17
  onFocusMove: ((sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) => void) | undefined;
18
18
  onResizeFinish: (newWidths: Map<PropertyKey, number>) => void;
19
19
  onSortingChange: NonCancelableEventHandler<TableProps.SortingState<any>> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["../../../src/table/thead.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAkC,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAA0B,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAQvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAA8B,SAAS,EAAE,MAAM,cAAc,CAAC;AAKrE,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;IACpD,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACzD,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtG,cAAc,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9D,eAAe,EAAE,yBAAyB,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,iBAAiB,EAAE,WAAW,CAAC;IAC/B,gBAAgB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,KAAK,wFA6HV,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["../../../src/table/thead.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAkC,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAA0B,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAQvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAA8B,SAAS,EAAE,MAAM,cAAc,CAAC;AAKrE,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;IACpD,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACzD,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,cAAc,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtG,cAAc,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9D,eAAe,EAAE,yBAAyB,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,iBAAiB,EAAE,WAAW,CAAC;IAC/B,gBAAgB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,KAAK,wFA6HV,CAAC;AAEF,eAAe,KAAK,CAAC"}
package/table/thead.js CHANGED
@@ -28,7 +28,7 @@ const Thead = React.forwardRef(({ selectionType, getSelectAllProps, columnDefini
28
28
  onFocusedComponentChange === null || onFocusedComponentChange === void 0 ? void 0 : onFocusedComponentChange(focusId);
29
29
  }, onBlur: () => onFocusedComponentChange === null || onFocusedComponentChange === void 0 ? void 0 : onFocusedComponentChange(null) }),
30
30
  selectionType ? (React.createElement(TableThElement, { className: clsx(headerCellClass, selectionCellClass, hidden && headerCellStyles['header-cell-hidden']), hidden: hidden, tableRole: tableRole, colIndex: 0, focusedComponent: focusedComponent, columnId: selectionColumnId, stickyState: stickyState },
31
- selectionType === 'multi' ? (React.createElement(SelectionControl, Object.assign({ onFocusDown: event => {
31
+ getSelectAllProps ? (React.createElement(SelectionControl, Object.assign({ onFocusDown: event => {
32
32
  onFocusMove(event.target, -1, +1);
33
33
  }, focusedComponent: focusedComponent }, getSelectAllProps(), (sticky ? { tabIndex: -1 } : {})))) : (React.createElement(ScreenreaderOnly, null, singleSelectionHeaderAriaLabel)),
34
34
  React.createElement(Divider, { className: styles['resize-divider'] }))) : null,
@@ -1 +1 @@
1
- {"version":3,"file":"thead.js","sourceRoot":"","sources":["../../../src/table/thead.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 from 'react';\nimport { TableProps } from './interfaces';\nimport { SelectionControl, focusMarkers, SelectionProps } from './selection';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { getColumnKey } from './utils';\nimport { TableHeaderCell } from './header-cell';\nimport { useColumnWidths } from './use-column-widths';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport headerCellStyles from './header-cell/styles.css.js';\nimport ScreenreaderOnly from '../internal/components/screenreader-only';\nimport { StickyColumnsModel } from './sticky-columns';\nimport { getTableHeaderRowRoleProps, TableRole } from './table-role';\nimport { TableThElement } from './header-cell/th-element';\nimport { findUpUntil } from '@cloudscape-design/component-toolkit/dom';\nimport { Divider } from './resizer';\n\nexport interface TheadProps {\n selectionType: TableProps.SelectionType | undefined;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>;\n sortingColumn: TableProps.SortingColumn<any> | undefined;\n sortingDescending: boolean | undefined;\n sortingDisabled: boolean | undefined;\n variant: TableProps.Variant;\n wrapLines: boolean | undefined;\n resizableColumns: boolean | undefined;\n getSelectAllProps: () => SelectionProps;\n onFocusMove: ((sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) => void) | undefined;\n onResizeFinish: (newWidths: Map<PropertyKey, number>) => void;\n onSortingChange: NonCancelableEventHandler<TableProps.SortingState<any>> | undefined;\n sticky?: boolean;\n hidden?: boolean;\n stuck?: boolean;\n singleSelectionHeaderAriaLabel?: string;\n resizerRoleDescription?: string;\n stripedRows?: boolean;\n stickyState: StickyColumnsModel;\n selectionColumnId: PropertyKey;\n focusedComponent?: null | string;\n onFocusedComponentChange?: (focusId: null | string) => void;\n tableRole: TableRole;\n isExpandable?: boolean;\n}\n\nconst Thead = React.forwardRef(\n (\n {\n selectionType,\n getSelectAllProps,\n columnDefinitions,\n sortingColumn,\n sortingDisabled,\n sortingDescending,\n resizableColumns,\n variant,\n wrapLines,\n onFocusMove,\n onSortingChange,\n onResizeFinish,\n singleSelectionHeaderAriaLabel,\n stripedRows,\n sticky = false,\n hidden = false,\n stuck = false,\n stickyState,\n selectionColumnId,\n focusedComponent,\n onFocusedComponentChange,\n tableRole,\n resizerRoleDescription,\n isExpandable,\n }: TheadProps,\n outerRef: React.Ref<HTMLTableRowElement>\n ) => {\n const isVisualRefresh = useVisualRefresh();\n\n const headerCellClass = clsx(\n headerCellStyles['header-cell'],\n headerCellStyles[`header-cell-variant-${variant}`],\n sticky && headerCellStyles['header-cell-sticky'],\n stuck && headerCellStyles['header-cell-stuck'],\n stripedRows && headerCellStyles['has-striped-rows'],\n isVisualRefresh && headerCellStyles['is-visual-refresh']\n );\n\n const selectionCellClass = clsx(\n styles['selection-control'],\n styles['selection-control-header'],\n isVisualRefresh && styles['is-visual-refresh']\n );\n\n const { getColumnStyles, columnWidths, updateColumn, setCell } = useColumnWidths();\n\n return (\n <thead className={clsx(!hidden && styles['thead-active'])}>\n <tr\n {...focusMarkers.all}\n ref={outerRef}\n aria-rowindex={1}\n {...getTableHeaderRowRoleProps({ tableRole })}\n onFocus={event => {\n const focusControlElement = findUpUntil(event.target, element => !!element.getAttribute('data-focus-id'));\n const focusId = focusControlElement?.getAttribute('data-focus-id') ?? null;\n onFocusedComponentChange?.(focusId);\n }}\n onBlur={() => onFocusedComponentChange?.(null)}\n >\n {selectionType ? (\n <TableThElement\n className={clsx(headerCellClass, selectionCellClass, hidden && headerCellStyles['header-cell-hidden'])}\n hidden={hidden}\n tableRole={tableRole}\n colIndex={0}\n focusedComponent={focusedComponent}\n columnId={selectionColumnId}\n stickyState={stickyState}\n >\n {selectionType === 'multi' ? (\n <SelectionControl\n onFocusDown={event => {\n onFocusMove!(event.target as HTMLElement, -1, +1);\n }}\n focusedComponent={focusedComponent}\n {...getSelectAllProps()}\n {...(sticky ? { tabIndex: -1 } : {})}\n />\n ) : (\n <ScreenreaderOnly>{singleSelectionHeaderAriaLabel}</ScreenreaderOnly>\n )}\n <Divider className={styles['resize-divider']} />\n </TableThElement>\n ) : null}\n\n {columnDefinitions.map((column, colIndex) => {\n const columnId = getColumnKey(column, colIndex);\n return (\n <TableHeaderCell\n key={columnId}\n style={getColumnStyles(sticky, columnId)}\n className={headerCellClass}\n tabIndex={sticky ? -1 : 0}\n focusedComponent={focusedComponent}\n column={column}\n activeSortingColumn={sortingColumn}\n sortingDescending={sortingDescending}\n sortingDisabled={sortingDisabled}\n wrapLines={wrapLines}\n hidden={hidden}\n colIndex={selectionType ? colIndex + 1 : colIndex}\n columnId={columnId}\n updateColumn={updateColumn}\n onResizeFinish={() => onResizeFinish(columnWidths)}\n resizableColumns={resizableColumns}\n onClick={detail => fireNonCancelableEvent(onSortingChange, detail)}\n isEditable={!!column.editConfig}\n stickyState={stickyState}\n cellRef={node => setCell(sticky, columnId, node)}\n tableRole={tableRole}\n resizerRoleDescription={resizerRoleDescription}\n // Expandable option is only applicable to the first data column of the table.\n // When present, the header content receives extra padding to match the first offset in the data cells.\n isExpandable={colIndex === 0 && isExpandable}\n />\n );\n })}\n </tr>\n </thead>\n );\n }\n);\n\nexport default Thead;\n"]}
1
+ {"version":3,"file":"thead.js","sourceRoot":"","sources":["../../../src/table/thead.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 from 'react';\nimport { TableProps } from './interfaces';\nimport { SelectionControl, focusMarkers, SelectionProps } from './selection';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { getColumnKey } from './utils';\nimport { TableHeaderCell } from './header-cell';\nimport { useColumnWidths } from './use-column-widths';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport headerCellStyles from './header-cell/styles.css.js';\nimport ScreenreaderOnly from '../internal/components/screenreader-only';\nimport { StickyColumnsModel } from './sticky-columns';\nimport { getTableHeaderRowRoleProps, TableRole } from './table-role';\nimport { TableThElement } from './header-cell/th-element';\nimport { findUpUntil } from '@cloudscape-design/component-toolkit/dom';\nimport { Divider } from './resizer';\n\nexport interface TheadProps {\n selectionType: TableProps.SelectionType | undefined;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>;\n sortingColumn: TableProps.SortingColumn<any> | undefined;\n sortingDescending: boolean | undefined;\n sortingDisabled: boolean | undefined;\n variant: TableProps.Variant;\n wrapLines: boolean | undefined;\n resizableColumns: boolean | undefined;\n getSelectAllProps?: () => SelectionProps;\n onFocusMove: ((sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) => void) | undefined;\n onResizeFinish: (newWidths: Map<PropertyKey, number>) => void;\n onSortingChange: NonCancelableEventHandler<TableProps.SortingState<any>> | undefined;\n sticky?: boolean;\n hidden?: boolean;\n stuck?: boolean;\n singleSelectionHeaderAriaLabel?: string;\n resizerRoleDescription?: string;\n stripedRows?: boolean;\n stickyState: StickyColumnsModel;\n selectionColumnId: PropertyKey;\n focusedComponent?: null | string;\n onFocusedComponentChange?: (focusId: null | string) => void;\n tableRole: TableRole;\n isExpandable?: boolean;\n}\n\nconst Thead = React.forwardRef(\n (\n {\n selectionType,\n getSelectAllProps,\n columnDefinitions,\n sortingColumn,\n sortingDisabled,\n sortingDescending,\n resizableColumns,\n variant,\n wrapLines,\n onFocusMove,\n onSortingChange,\n onResizeFinish,\n singleSelectionHeaderAriaLabel,\n stripedRows,\n sticky = false,\n hidden = false,\n stuck = false,\n stickyState,\n selectionColumnId,\n focusedComponent,\n onFocusedComponentChange,\n tableRole,\n resizerRoleDescription,\n isExpandable,\n }: TheadProps,\n outerRef: React.Ref<HTMLTableRowElement>\n ) => {\n const isVisualRefresh = useVisualRefresh();\n\n const headerCellClass = clsx(\n headerCellStyles['header-cell'],\n headerCellStyles[`header-cell-variant-${variant}`],\n sticky && headerCellStyles['header-cell-sticky'],\n stuck && headerCellStyles['header-cell-stuck'],\n stripedRows && headerCellStyles['has-striped-rows'],\n isVisualRefresh && headerCellStyles['is-visual-refresh']\n );\n\n const selectionCellClass = clsx(\n styles['selection-control'],\n styles['selection-control-header'],\n isVisualRefresh && styles['is-visual-refresh']\n );\n\n const { getColumnStyles, columnWidths, updateColumn, setCell } = useColumnWidths();\n\n return (\n <thead className={clsx(!hidden && styles['thead-active'])}>\n <tr\n {...focusMarkers.all}\n ref={outerRef}\n aria-rowindex={1}\n {...getTableHeaderRowRoleProps({ tableRole })}\n onFocus={event => {\n const focusControlElement = findUpUntil(event.target, element => !!element.getAttribute('data-focus-id'));\n const focusId = focusControlElement?.getAttribute('data-focus-id') ?? null;\n onFocusedComponentChange?.(focusId);\n }}\n onBlur={() => onFocusedComponentChange?.(null)}\n >\n {selectionType ? (\n <TableThElement\n className={clsx(headerCellClass, selectionCellClass, hidden && headerCellStyles['header-cell-hidden'])}\n hidden={hidden}\n tableRole={tableRole}\n colIndex={0}\n focusedComponent={focusedComponent}\n columnId={selectionColumnId}\n stickyState={stickyState}\n >\n {getSelectAllProps ? (\n <SelectionControl\n onFocusDown={event => {\n onFocusMove!(event.target as HTMLElement, -1, +1);\n }}\n focusedComponent={focusedComponent}\n {...getSelectAllProps()}\n {...(sticky ? { tabIndex: -1 } : {})}\n />\n ) : (\n <ScreenreaderOnly>{singleSelectionHeaderAriaLabel}</ScreenreaderOnly>\n )}\n <Divider className={styles['resize-divider']} />\n </TableThElement>\n ) : null}\n\n {columnDefinitions.map((column, colIndex) => {\n const columnId = getColumnKey(column, colIndex);\n return (\n <TableHeaderCell\n key={columnId}\n style={getColumnStyles(sticky, columnId)}\n className={headerCellClass}\n tabIndex={sticky ? -1 : 0}\n focusedComponent={focusedComponent}\n column={column}\n activeSortingColumn={sortingColumn}\n sortingDescending={sortingDescending}\n sortingDisabled={sortingDisabled}\n wrapLines={wrapLines}\n hidden={hidden}\n colIndex={selectionType ? colIndex + 1 : colIndex}\n columnId={columnId}\n updateColumn={updateColumn}\n onResizeFinish={() => onResizeFinish(columnWidths)}\n resizableColumns={resizableColumns}\n onClick={detail => fireNonCancelableEvent(onSortingChange, detail)}\n isEditable={!!column.editConfig}\n stickyState={stickyState}\n cellRef={node => setCell(sticky, columnId, node)}\n tableRole={tableRole}\n resizerRoleDescription={resizerRoleDescription}\n // Expandable option is only applicable to the first data column of the table.\n // When present, the header content receives extra padding to match the first offset in the data cells.\n isExpandable={colIndex === 0 && isExpandable}\n />\n );\n })}\n </tr>\n </thead>\n );\n }\n);\n\nexport default Thead;\n"]}
@@ -13,4 +13,5 @@ export default class ProgressBarWrapper extends ComponentWrapper {
13
13
  * If not specified, the method returns the result text that is currently displayed, independently of the result status.
14
14
  */
15
15
  findResultText(status?: string): ElementWrapper | null;
16
+ findAdditionalInfo(): ElementWrapper | null;
16
17
  }
@@ -24,6 +24,9 @@ class ProgressBarWrapper extends dom_1.ComponentWrapper {
24
24
  const statusClassName = status ? `.${styles_selectors_js_1.default[`result-container-${status}`]} ` : '';
25
25
  return this.find(`${statusClassName}.${styles_selectors_js_1.default['result-text']}`);
26
26
  }
27
+ findAdditionalInfo() {
28
+ return this.find(`[data-testid="additional-info"]`);
29
+ }
27
30
  }
28
31
  exports.default = ProgressBarWrapper;
29
32
  ProgressBarWrapper.rootSelector = styles_selectors_js_1.default.root;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/progress-bar/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,gEAA0F;AAC1F,mFAA+D;AAG/D,MAAqB,kBAAmB,SAAQ,sBAAgB;IAG9D,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,gBAAgB;;QACd,OAAO,CAAA,MAAA,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,0CAAE,UAAU,EAAE,KAAI,IAAI,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,MAAe;QAC5B,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,6BAAM,CAAC,oBAAoB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,IAAI,6BAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;;AAtBH,qCAuBC;AAtBQ,+BAAY,GAAG,6BAAM,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/progress-bar/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,gEAA0F;AAC1F,mFAA+D;AAG/D,MAAqB,kBAAmB,SAAQ,sBAAgB;IAG9D,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,gBAAgB;;QACd,OAAO,CAAA,MAAA,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,0CAAE,UAAU,EAAE,KAAI,IAAI,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,MAAe;QAC5B,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,6BAAM,CAAC,oBAAoB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,IAAI,6BAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACtD,CAAC;;AA1BH,qCA2BC;AA1BQ,+BAAY,GAAG,6BAAM,CAAC,IAAI,CAAC"}
@@ -21,4 +21,8 @@ export default class PropertyFilterWrapper extends AutosuggestWrapper {
21
21
  * Returns the element containing the `customFilterActions` slot.
22
22
  */
23
23
  findCustomFilterActions(): ElementWrapper | null;
24
+ /**
25
+ * Returns the element containing the `filteringConstraintText` slot.
26
+ */
27
+ findConstraint(): ElementWrapper | null;
24
28
  }
@@ -36,6 +36,12 @@ class PropertyFilterWrapper extends autosuggest_1.default {
36
36
  findCustomFilterActions() {
37
37
  return this.findByClassName(styles_selectors_js_1.default['custom-filter-actions']);
38
38
  }
39
+ /**
40
+ * Returns the element containing the `filteringConstraintText` slot.
41
+ */
42
+ findConstraint() {
43
+ return this.findByClassName(styles_selectors_js_1.default.constraint);
44
+ }
39
45
  }
40
46
  exports.default = PropertyFilterWrapper;
41
47
  PropertyFilterWrapper.rootSelector = styles_selectors_js_1.default.root;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/property-filter/index.ts"],"names":[],"mappings":";;AAIA,sFAAkE;AAClE,qGAA6F;AAC7F,kFAAwE;AAExE,gDAAgD;AAEhD,iEAAgE;AAEhE,MAAqB,qBAAsB,SAAQ,qBAAkB;IAGnE,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAgB,CAAC,OAAO,CAAE,CAAC;IACzD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,yBAAqB,CAAC,YAAY,CAAC,CAAC,GAAG,CACpE,CAAC,cAA8B,EAAE,EAAE,CAAC,IAAI,yBAAqB,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAkB,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC/D,CAAC;;AArCH,wCAsCC;AArCQ,kCAAY,GAAG,6BAAM,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/property-filter/index.ts"],"names":[],"mappings":";;AAIA,sFAAkE;AAClE,qGAA6F;AAC7F,kFAAwE;AAExE,gDAAgD;AAEhD,iEAAgE;AAEhE,MAAqB,qBAAsB,SAAQ,qBAAkB;IAGnE,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAgB,CAAC,OAAO,CAAE,CAAC;IACzD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,yBAAqB,CAAC,YAAY,CAAC,CAAC,GAAG,CACpE,CAAC,cAA8B,EAAE,EAAE,CAAC,IAAI,yBAAqB,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAkB,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;;AA5CH,wCA6CC;AA5CQ,kCAAY,GAAG,6BAAM,CAAC,IAAI,CAAC"}
@@ -13,4 +13,5 @@ export default class ProgressBarWrapper extends ComponentWrapper {
13
13
  * If not specified, the method returns the result text that is currently displayed, independently of the result status.
14
14
  */
15
15
  findResultText(status?: string): ElementWrapper;
16
+ findAdditionalInfo(): ElementWrapper;
16
17
  }
@@ -24,6 +24,9 @@ class ProgressBarWrapper extends selectors_1.ComponentWrapper {
24
24
  const statusClassName = status ? `.${styles_selectors_js_1.default[`result-container-${status}`]} ` : '';
25
25
  return this.find(`${statusClassName}.${styles_selectors_js_1.default['result-text']}`);
26
26
  }
27
+ findAdditionalInfo() {
28
+ return this.find(`[data-testid="additional-info"]`);
29
+ }
27
30
  }
28
31
  exports.default = ProgressBarWrapper;
29
32
  ProgressBarWrapper.rootSelector = styles_selectors_js_1.default.root;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/progress-bar/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAAgG;AAChG,mFAA+D;AAE/D,MAAqB,kBAAmB,SAAQ,4BAAgB;IAE9D,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,gBAAgB;;QACd,OAAO,CAAA,MAAA,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,0CAAE,UAAU,EAAE,KAAI,IAAI,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,MAAe;QAC5B,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,6BAAM,CAAC,oBAAoB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,IAAI,6BAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;;AApBH,qCAqBC;AApBQ,+BAAY,GAAG,6BAAM,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/progress-bar/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAAgG;AAChG,mFAA+D;AAE/D,MAAqB,kBAAmB,SAAQ,4BAAgB;IAE9D,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,gBAAgB;;QACd,OAAO,CAAA,MAAA,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,0CAAE,UAAU,EAAE,KAAI,IAAI,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,MAAe;QAC5B,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,6BAAM,CAAC,oBAAoB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,IAAI,6BAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACtD,CAAC;;AAvBH,qCAwBC;AAvBQ,+BAAY,GAAG,6BAAM,CAAC,IAAI,CAAC"}
@@ -21,4 +21,8 @@ export default class PropertyFilterWrapper extends AutosuggestWrapper {
21
21
  * Returns the element containing the `customFilterActions` slot.
22
22
  */
23
23
  findCustomFilterActions(): ElementWrapper;
24
+ /**
25
+ * Returns the element containing the `filteringConstraintText` slot.
26
+ */
27
+ findConstraint(): ElementWrapper;
24
28
  }
@@ -36,6 +36,12 @@ class PropertyFilterWrapper extends autosuggest_1.default {
36
36
  findCustomFilterActions() {
37
37
  return this.findByClassName(styles_selectors_js_1.default['custom-filter-actions']);
38
38
  }
39
+ /**
40
+ * Returns the element containing the `filteringConstraintText` slot.
41
+ */
42
+ findConstraint() {
43
+ return this.findByClassName(styles_selectors_js_1.default.constraint);
44
+ }
39
45
  }
40
46
  exports.default = PropertyFilterWrapper;
41
47
  PropertyFilterWrapper.rootSelector = styles_selectors_js_1.default.root;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/property-filter/index.ts"],"names":[],"mappings":";;AAGA,sFAAkE;AAClE,qGAA6F;AAC7F,kFAAwE;AACxE,gDAAgD;AAChD,iEAAgE;AAChE,MAAqB,qBAAsB,SAAQ,qBAAkB;IAEnE,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAgB,CAAC,OAAO,CAAE,CAAC;IACzD,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,yBAAqB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,IAAI,yBAAqB,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrK,CAAC;IACD;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAkB,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC/D,CAAC;;AAjCH,wCAkCC;AAjCQ,kCAAY,GAAG,6BAAM,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/property-filter/index.ts"],"names":[],"mappings":";;AAGA,sFAAkE;AAClE,qGAA6F;AAC7F,kFAAwE;AACxE,gDAAgD;AAChD,iEAAgE;AAChE,MAAqB,qBAAsB,SAAQ,qBAAkB;IAEnE,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAgB,CAAC,OAAO,CAAE,CAAC;IACzD,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,yBAAqB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,IAAI,yBAAqB,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrK,CAAC;IACD;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAkB,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;;AAxCH,wCAyCC;AAxCQ,kCAAY,GAAG,6BAAM,CAAC,IAAI,CAAC"}