@cloudscape-design/components 3.0.633 → 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.
- package/app-layout/split-panel/styles.css.js +2 -2
- package/app-layout/split-panel/styles.scoped.css +3 -2
- package/app-layout/split-panel/styles.selectors.js +2 -2
- package/cards/index.d.ts.map +1 -1
- package/cards/index.js +6 -6
- package/cards/index.js.map +1 -1
- package/cards/interfaces.d.ts +1 -1
- package/cards/interfaces.js.map +1 -1
- package/internal/direction.d.ts +1 -1
- package/internal/direction.d.ts.map +1 -1
- package/internal/direction.js +3 -0
- package/internal/direction.js.map +1 -1
- package/internal/environment.js +1 -1
- package/internal/environment.json +1 -1
- package/internal/manifest.json +1 -1
- package/mixed-line-bar-chart/bar-series.d.ts +2 -1
- package/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
- package/mixed-line-bar-chart/bar-series.js +6 -3
- package/mixed-line-bar-chart/bar-series.js.map +1 -1
- package/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
- package/mixed-line-bar-chart/chart-container.js +3 -3
- package/mixed-line-bar-chart/chart-container.js.map +1 -1
- package/mixed-line-bar-chart/data-series.d.ts +2 -1
- package/mixed-line-bar-chart/data-series.d.ts.map +1 -1
- package/mixed-line-bar-chart/data-series.js +2 -2
- package/mixed-line-bar-chart/data-series.js.map +1 -1
- package/package.json +1 -1
- package/progress-bar/index.d.ts.map +1 -1
- package/progress-bar/index.js +1 -1
- package/progress-bar/index.js.map +1 -1
- package/progress-bar/internal.d.ts +2 -1
- package/progress-bar/internal.d.ts.map +1 -1
- package/progress-bar/internal.js +2 -2
- package/progress-bar/internal.js.map +1 -1
- package/property-filter/index.d.ts.map +1 -1
- package/property-filter/index.js +8 -2
- package/property-filter/index.js.map +1 -1
- package/property-filter/interfaces.d.ts +5 -0
- package/property-filter/interfaces.d.ts.map +1 -1
- package/property-filter/interfaces.js.map +1 -1
- package/property-filter/styles.css.js +32 -31
- package/property-filter/styles.scoped.css +41 -33
- package/property-filter/styles.selectors.js +32 -31
- package/table/interfaces.d.ts +13 -11
- package/table/interfaces.d.ts.map +1 -1
- package/table/interfaces.js.map +1 -1
- package/table/internal.d.ts.map +1 -1
- package/table/internal.js +9 -4
- package/table/internal.js.map +1 -1
- package/table/selection/interfaces.d.ts +1 -0
- package/table/selection/interfaces.d.ts.map +1 -1
- package/table/selection/interfaces.js.map +1 -1
- package/table/selection/use-selection.d.ts +5 -4
- package/table/selection/use-selection.d.ts.map +1 -1
- package/table/selection/use-selection.js +55 -36
- package/table/selection/use-selection.js.map +1 -1
- package/table/thead.d.ts +1 -1
- package/table/thead.d.ts.map +1 -1
- package/table/thead.js +1 -1
- package/table/thead.js.map +1 -1
- package/test-utils/dom/progress-bar/index.d.ts +1 -0
- package/test-utils/dom/progress-bar/index.js +3 -0
- package/test-utils/dom/progress-bar/index.js.map +1 -1
- package/test-utils/dom/property-filter/index.d.ts +4 -0
- package/test-utils/dom/property-filter/index.js +6 -0
- package/test-utils/dom/property-filter/index.js.map +1 -1
- package/test-utils/selectors/progress-bar/index.d.ts +1 -0
- package/test-utils/selectors/progress-bar/index.js +3 -0
- package/test-utils/selectors/progress-bar/index.js.map +1 -1
- package/test-utils/selectors/property-filter/index.d.ts +4 -0
- package/test-utils/selectors/property-filter/index.js +6 -0
- package/test-utils/selectors/property-filter/index.js.map +1 -1
- 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(
|
|
10
|
-
|
|
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
|
|
14
|
-
const
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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 =
|
|
26
|
-
const allItemsCheckboxIndeterminate =
|
|
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
|
-
|
|
91
|
-
throw new Error('Invariant violation: calling selection props with missing selection type.');
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
118
|
+
return ({
|
|
94
119
|
name: selectionControlName,
|
|
95
|
-
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
|
-
|
|
106
|
-
throw new Error('Invariant violation: calling selection props with missing selection type.');
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
130
|
+
return ({
|
|
109
131
|
name: selectionControlName,
|
|
110
|
-
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
|
|
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;
|
package/table/thead.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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,
|
package/table/thead.js.map
CHANGED
|
@@ -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;;
|
|
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;;
|
|
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;;
|
|
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;;
|
|
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"}
|