@jobber/components 4.79.0 → 4.79.1-JOB-85851.2
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/StatusIndicator.d.ts +1 -0
- package/StatusIndicator.js +17 -0
- package/dist/AnimatedPresence/index.js +5 -99
- package/dist/AnimatedPresence-20a02aaa.js +104 -0
- package/dist/Autocomplete/Menu.d.ts +2 -2
- package/dist/Autocomplete/index.js +16 -11
- package/dist/Banner/index.js +8 -7
- package/dist/Button/index.js +2 -2
- package/dist/{Button-b73a5e01.js → Button-6b922fc1.js} +1 -1
- package/dist/ButtonDismiss/ButtonDismiss.d.ts +1 -1
- package/dist/ButtonDismiss/index.js +3 -3
- package/dist/{ButtonDismiss-350af163.js → ButtonDismiss-a3ba1de2.js} +1 -1
- package/dist/Card/CardClickable.d.ts +1 -1
- package/dist/Card/index.js +7 -7
- package/dist/{Card-426a68a8.js → Card-74f078a4.js} +4 -4
- package/dist/Checkbox/index.js +3 -4
- package/dist/{Checkbox-99f6297f.js → Checkbox-e481a4b1.js} +2 -3
- package/dist/Chip/index.js +5 -3
- package/dist/{Chip-c91fd6c8.js → Chip-76f18555.js} +2 -2
- package/dist/Chips/index.js +9 -8
- package/dist/Combobox/Combobox.types.d.ts +4 -0
- package/dist/Combobox/components/ComboboxOption/ComboboxOption.d.ts +2 -1
- package/dist/Combobox/hooks/useMakeComboboxHandlers.d.ts +1 -1
- package/dist/Combobox/index.js +12 -8
- package/dist/{Combobox-d4b84edf.js → Combobox-6d864202.js} +25 -20
- package/dist/ConfirmationModal/index.js +11 -10
- package/dist/{ConfirmationModal-f1a049fb.js → ConfirmationModal-387aa1b5.js} +2 -2
- package/dist/DataDump/index.js +8 -8
- package/dist/DataList/DataList.const.d.ts +1 -0
- package/dist/DataList/DataList.types.d.ts +0 -1
- package/dist/DataList/components/DataListActionsMenu/DataListActionsMenu.d.ts +2 -2
- package/dist/DataList/components/DataListTotalCount/DataListTotalCount.d.ts +2 -2
- package/dist/DataList/index.js +40 -40
- package/dist/DataTable/BodyLoading.d.ts +1 -1
- package/dist/DataTable/Footer.d.ts +2 -2
- package/dist/DataTable/SortIcon.d.ts +1 -1
- package/dist/DataTable/index.js +7 -8
- package/dist/DatePicker/index.js +3 -3
- package/dist/{DatePicker-64c5ab1a.js → DatePicker-dd9173c7.js} +2 -2
- package/dist/DescriptionList/DescriptionList.d.ts +1 -1
- package/dist/DescriptionList/index.js +2 -2
- package/dist/Disclosure/index.js +1 -1
- package/dist/Drawer/DrawerGrid.d.ts +1 -1
- package/dist/Drawer/index.js +11 -11
- package/dist/Emphasis/Emphasis.d.ts +2 -2
- package/dist/Emphasis/index.js +2 -2
- package/dist/{Emphasis-bda56d3b.js → Emphasis-a77d8ee9.js} +1 -1
- package/dist/FeatureSwitch/index.js +9 -8
- package/dist/Flex/index.js +5 -33
- package/dist/Flex-d490c4db.js +38 -0
- package/dist/FormField/FormFieldAffix.d.ts +2 -2
- package/dist/FormField/index.js +5 -6
- package/dist/{FormField-b4e6c549.js → FormField-3ec1c85d.js} +5 -6
- package/dist/FormatFile/FormatFileDeleteButton.d.ts +2 -2
- package/dist/FormatFile/index.js +13 -12
- package/dist/{FormatFile-652edda8.js → FormatFile-5ba4cf69.js} +7 -7
- package/dist/Gallery/index.js +15 -13
- package/dist/Glimmer/index.js +1 -1
- package/dist/{Glimmer-7c317864.js → Glimmer-84dee1ed.js} +1 -1
- package/dist/Heading/index.js +4 -3
- package/dist/{Heading-1e8e4bd3.js → Heading-bae3c69e.js} +3 -3
- package/dist/InlineLabel/InlineLabel.d.ts +3 -3
- package/dist/InlineLabel/index.js +2 -2
- package/dist/{InlineLabel-a6557829.js → InlineLabel-4d463bd6.js} +1 -1
- package/dist/InputAvatar/index.js +5 -6
- package/dist/InputDate/index.js +6 -7
- package/dist/InputEmail/index.js +5 -6
- package/dist/InputFile/InputFile.d.ts +1 -1
- package/dist/InputFile/index.js +5 -6
- package/dist/{InputFile-c9eeb04b.js → InputFile-20b9074a.js} +7 -5
- package/dist/InputNumber/InputNumber.d.ts +1 -1
- package/dist/InputNumber/index.js +6 -7
- package/dist/{InputNumber-ceae3872.js → InputNumber-75ae72b9.js} +1 -1
- package/dist/InputPassword/InputPassword.d.ts +2 -2
- package/dist/InputPassword/index.js +5 -6
- package/dist/InputPhoneNumber/index.js +5 -6
- package/dist/InputText/index.js +7 -7
- package/dist/{InputText-6e356985.js → InputText-de22af8c.js} +3 -2
- package/dist/InputTime/index.js +5 -6
- package/dist/InputValidation/index.js +3 -3
- package/dist/{InputValidation-05e839fa.js → InputValidation-a92bb519.js} +1 -1
- package/dist/LightBox/LightBox.d.ts +2 -2
- package/dist/LightBox/index.js +5 -4
- package/dist/{LightBox-a89d8863.js → LightBox-7efe8932.js} +7 -3
- package/dist/List/index.js +7 -6
- package/dist/Markdown/index.js +7 -6
- package/dist/{Markdown-f7c55304.js → Markdown-b1b65457.js} +3 -3
- package/dist/Menu/Menu.d.ts +4 -4
- package/dist/Menu/index.js +4 -4
- package/dist/{Menu-81b12936.js → Menu-d6dd673e.js} +6 -6
- package/dist/Modal/Modal.d.ts +2 -2
- package/dist/Modal/index.js +7 -6
- package/dist/{Modal-a0627c92.js → Modal-5b866c72.js} +7 -5
- package/dist/MultiSelect/index.js +3 -4
- package/dist/{Option-8565da71.js → Option-c4b05656.js} +1 -1
- package/dist/Page/index.js +9 -9
- package/dist/Popover/index.js +8 -4
- package/dist/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/RadioGroup/index.js +3 -4
- package/dist/{RadioGroup-ca7a5978.js → RadioGroup-678f4932.js} +3 -4
- package/dist/RecurringSelect/CurrentRecurrenceComponent.d.ts +2 -2
- package/dist/RecurringSelect/components/DayOfMonthSelect.d.ts +2 -2
- package/dist/RecurringSelect/components/MonthlyDayOfWeekSelect.d.ts +2 -2
- package/dist/RecurringSelect/components/MonthlySelect.d.ts +2 -2
- package/dist/RecurringSelect/components/WeeklySelect.d.ts +2 -2
- package/dist/RecurringSelect/index.js +10 -11
- package/dist/Select/index.js +6 -7
- package/dist/StatusIndicator/StatusIndicator.d.ts +7 -0
- package/dist/StatusIndicator/StatusIndicator.type.d.ts +1 -0
- package/dist/StatusIndicator/index.d.ts +2 -0
- package/dist/StatusIndicator/index.js +11 -0
- package/dist/StatusIndicator-7b5258ea.js +18 -0
- package/dist/StatusLabel/StatusLabel.d.ts +3 -3
- package/dist/StatusLabel/index.js +8 -10
- package/dist/Switch/index.js +2 -2
- package/dist/{Switch-7d4aa7c3.js → Switch-eac89586.js} +1 -1
- package/dist/Table/Body.d.ts +1 -1
- package/dist/Table/Cells/Cell.d.ts +2 -2
- package/dist/Table/Cells/CellCurrency.d.ts +2 -2
- package/dist/Table/Cells/CellNumeric.d.ts +1 -1
- package/dist/Table/Footer.d.ts +1 -1
- package/dist/Table/Header.d.ts +1 -1
- package/dist/Table/Row.d.ts +1 -1
- package/dist/Table/Table.d.ts +1 -1
- package/dist/Tabs/index.js +1 -1
- package/dist/Text/Text.d.ts +1 -1
- package/dist/Text/index.js +2 -2
- package/dist/{Text-259af966.js → Text-fbeaaca6.js} +1 -1
- package/dist/Toast/index.js +2 -2
- package/dist/Tooltip/index.js +3 -1
- package/dist/{Tooltip-27771182.js → Tooltip-b9de6e57.js} +6 -3
- package/dist/Typography/Typography.d.ts +1 -1
- package/dist/Typography/css/TextColors.css.d.ts +1 -0
- package/dist/Typography/index.js +1 -1
- package/dist/{Typography-c45bf216.js → Typography-e2a23b7e.js} +2 -2
- package/dist/useAtlantisConfig-ed0bee66.js +16 -0
- package/dist/utils/useAtlantisConfig.d.ts +3 -0
- package/package.json +8 -12
- package/rollup.config.js +0 -1
- package/dist/getAtlantisConfig-0f3e8af2.js +0 -13
- package/dist/utils/getAtlantisConfig.d.ts +0 -3
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
export interface ComboboxOptionProps {
|
|
3
3
|
readonly id: string | number;
|
|
4
4
|
readonly label: string;
|
|
5
|
+
readonly prefix?: React.ReactNode;
|
|
5
6
|
}
|
|
6
7
|
export declare function ComboboxOption(props: ComboboxOptionProps): JSX.Element;
|
|
@@ -4,4 +4,4 @@ export interface UseMakeComboboxHandlersReturn {
|
|
|
4
4
|
handleClose: () => void;
|
|
5
5
|
handleSelection: (selection: ComboboxOption) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare function useMakeComboboxHandlers(setOpen: (open: boolean) => void, setSearchValue: (searchValue: string) => void, selectedOptions: ComboboxOption[], shouldScroll: React.MutableRefObject<boolean>, selectedStateSetter: (selected: ComboboxOption[]) => void, multiSelect?: boolean, onClose?: () => void): UseMakeComboboxHandlersReturn;
|
|
7
|
+
export declare function useMakeComboboxHandlers(setOpen: (open: boolean) => void, setSearchValue: (searchValue: string) => void, selectedOptions: ComboboxOption[], shouldScroll: React.MutableRefObject<boolean>, selectedStateSetter: (selected: ComboboxOption[]) => void, multiSelect?: boolean, onClose?: () => void, onSearch?: (searchValue: string) => void): UseMakeComboboxHandlersReturn;
|
package/dist/Combobox/index.js
CHANGED
|
@@ -2,31 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Combobox = require('../Combobox-
|
|
5
|
+
var Combobox = require('../Combobox-6d864202.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('classnames');
|
|
8
8
|
require('react-dom');
|
|
9
9
|
require('../style-inject.es-9d2f5f4e.js');
|
|
10
10
|
require('../Icon-405a216c.js');
|
|
11
11
|
require('@jobber/design');
|
|
12
|
-
require('../Text-
|
|
13
|
-
require('../Typography-
|
|
14
|
-
require('../Glimmer-
|
|
12
|
+
require('../Text-fbeaaca6.js');
|
|
13
|
+
require('../Typography-e2a23b7e.js');
|
|
14
|
+
require('../Glimmer-84dee1ed.js');
|
|
15
15
|
require('../tslib.es6-754e2961.js');
|
|
16
16
|
require('../Content-e3f7b6fc.js');
|
|
17
17
|
require('../Spinner-9d8fc7ff.js');
|
|
18
|
+
require('../AnimatedPresence-20a02aaa.js');
|
|
19
|
+
require('framer-motion');
|
|
20
|
+
require('../Flex-d490c4db.js');
|
|
18
21
|
require('@jobber/hooks/useInView');
|
|
19
|
-
require('../Button-
|
|
22
|
+
require('../Button-6b922fc1.js');
|
|
20
23
|
require('react-router-dom');
|
|
21
24
|
require('@jobber/hooks/useRefocusOnActivator');
|
|
22
25
|
require('@jobber/hooks/useFocusTrap');
|
|
23
26
|
require('react-popper');
|
|
24
27
|
require('@jobber/hooks/useOnKeyDown');
|
|
25
|
-
require('../Chip-
|
|
28
|
+
require('../Chip-76f18555.js');
|
|
26
29
|
require('../Avatar-76a799fa.js');
|
|
27
30
|
require('color');
|
|
28
|
-
require('../Tooltip-
|
|
29
|
-
require('
|
|
31
|
+
require('../Tooltip-b9de6e57.js');
|
|
32
|
+
require('@jobber/hooks/useSafeLayoutEffect');
|
|
33
|
+
require('@jobber/hooks/useIsMounted');
|
|
30
34
|
require('lodash/debounce');
|
|
31
35
|
require('lodash/noop');
|
|
32
36
|
require('@jobber/hooks/useAssert');
|
|
@@ -5,18 +5,20 @@ var classnames = require('classnames');
|
|
|
5
5
|
var ReactDOM = require('react-dom');
|
|
6
6
|
var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
|
|
7
7
|
var Icon = require('./Icon-405a216c.js');
|
|
8
|
-
var Text = require('./Text-
|
|
9
|
-
var Glimmer = require('./Glimmer-
|
|
8
|
+
var Text = require('./Text-fbeaaca6.js');
|
|
9
|
+
var Glimmer = require('./Glimmer-84dee1ed.js');
|
|
10
10
|
var Spinner = require('./Spinner-9d8fc7ff.js');
|
|
11
|
+
var AnimatedPresence = require('./AnimatedPresence-20a02aaa.js');
|
|
12
|
+
var Flex = require('./Flex-d490c4db.js');
|
|
11
13
|
var tslib_es6 = require('./tslib.es6-754e2961.js');
|
|
12
14
|
var useInView = require('@jobber/hooks/useInView');
|
|
13
|
-
var Typography = require('./Typography-
|
|
14
|
-
var Button = require('./Button-
|
|
15
|
+
var Typography = require('./Typography-e2a23b7e.js');
|
|
16
|
+
var Button = require('./Button-6b922fc1.js');
|
|
15
17
|
var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
|
|
16
18
|
var useFocusTrap = require('@jobber/hooks/useFocusTrap');
|
|
17
19
|
var reactPopper = require('react-popper');
|
|
18
20
|
var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
|
|
19
|
-
var Chip = require('./Chip-
|
|
21
|
+
var Chip = require('./Chip-76f18555.js');
|
|
20
22
|
var debounce = require('lodash/debounce');
|
|
21
23
|
var noop = require('lodash/noop');
|
|
22
24
|
require('@jobber/design');
|
|
@@ -64,7 +66,7 @@ function ComboboxContentSearch(props) {
|
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
68
|
|
|
67
|
-
var css_248z$5 = ".SgMzjOcdE-E- {\n position: relative;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n}\n\n.TwoTCjgcssc- {\n display: -ms-flexbox;\n display: flex;\n\n max-height: calc((16px / 2) * 33.33);\n\n max-height: calc(calc(16px / 2) * 33.33);\n\n max-height: calc(var(--space-small) * 33.33);\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n -ms-flex-direction: column;\n flex-direction: column;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n._8T5M7MGwCRE-,\n._4y5NXkNeIQM- {\n padding: calc(16px / 2) calc(16px * 1);\n padding: var(--space-small) var(--space-base);\n}\n\n.SgMzjOcdE-E-::before,\n.SgMzjOcdE-E-::after {\n content: \"\";\n display: block;\n position: absolute;\n right: 0;\n left: 0;\n height: calc(16px * 1);\n height: var(--space-base);\n pointer-events: none;\n transition: opacity 0.3s ease-in-out;\n}\n\n.SgMzjOcdE-E-::after {\n bottom: calc(16px / 2);\n bottom: var(--space-small);\n background: linear-gradient(\n 180deg,\n rgba(255, 255, 255, 0) 0%,\n rgb(255, 255, 255) 100%\n );\n}\n\n.SgMzjOcdE-E-::before {\n top: calc(16px / 2);\n top: var(--space-small);\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 1),\n rgba(255, 255, 255, 0)\n );\n}\n\n.T6E3VwBGoQM-::before,\n._6HQzxMQkXnE-::before {\n opacity: 0;\n}\n\n._5YsJZyMDkbA-::after,\n._6HQzxMQkXnE-::after {\n opacity: 0;\n}\n\n.A6z4OI58xoE- {\n padding: calc(16px * 1) calc(16px * 1);\n padding: var(--space-base) var(--space-base);\n}\n\n.A6z4OI58xoE-.QqHBSf52fPk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n
|
|
69
|
+
var css_248z$5 = ".SgMzjOcdE-E- {\n position: relative;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n}\n\n.TwoTCjgcssc- {\n display: -ms-flexbox;\n display: flex;\n\n max-height: calc((16px / 2) * 33.33);\n\n max-height: calc(calc(16px / 2) * 33.33);\n\n max-height: calc(var(--space-small) * 33.33);\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n -ms-flex-direction: column;\n flex-direction: column;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n._8T5M7MGwCRE-,\n._4y5NXkNeIQM- {\n padding: calc(16px / 2) calc(16px * 1);\n padding: var(--space-small) var(--space-base);\n}\n\n.SgMzjOcdE-E-::before,\n.SgMzjOcdE-E-::after {\n content: \"\";\n display: block;\n position: absolute;\n right: 0;\n left: 0;\n height: calc(16px * 1);\n height: var(--space-base);\n pointer-events: none;\n transition: opacity 0.3s ease-in-out;\n}\n\n.SgMzjOcdE-E-::after {\n bottom: calc(16px / 2);\n bottom: var(--space-small);\n background: linear-gradient(\n 180deg,\n rgba(255, 255, 255, 0) 0%,\n rgb(255, 255, 255) 100%\n );\n}\n\n.SgMzjOcdE-E-::before {\n top: calc(16px / 2);\n top: var(--space-small);\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 1),\n rgba(255, 255, 255, 0)\n );\n}\n\n.T6E3VwBGoQM-::before,\n._6HQzxMQkXnE-::before {\n opacity: 0;\n}\n\n._5YsJZyMDkbA-::after,\n._6HQzxMQkXnE-::after {\n opacity: 0;\n}\n\n.A6z4OI58xoE- {\n padding: calc(16px * 1) calc(16px * 1);\n padding: var(--space-base) var(--space-base);\n}\n\n.A6z4OI58xoE-.QqHBSf52fPk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n position: sticky;\n bottom: 0;\n padding: calc(16px * 1) 0;\n padding: var(--space-base) 0;\n}\n\n.A6z4OI58xoE-.QqHBSf52fPk-:empty {\n display: none;\n}\n";
|
|
68
70
|
var styles$5 = {"container":"SgMzjOcdE-E-","optionsList":"TwoTCjgcssc-","filterMessage":"_8T5M7MGwCRE-","emptyStateMessage":"_4y5NXkNeIQM-","scrollTop":"T6E3VwBGoQM-","scrollNone":"_6HQzxMQkXnE-","scrollBottom":"_5YsJZyMDkbA-","loadingContainer":"A6z4OI58xoE-","hasOptions":"QqHBSf52fPk-"};
|
|
69
71
|
styleInject_es.styleInject(css_248z$5);
|
|
70
72
|
|
|
@@ -83,7 +85,9 @@ function ComboboxOption(props) {
|
|
|
83
85
|
const isSelected = selected.some(selection => selection.id.toString() === props.id.toString());
|
|
84
86
|
return (React__default["default"].createElement("li", { key: props.id, tabIndex: -1, "data-selected": isSelected, role: "option", "aria-selected": isSelected, onClick: () => selectionHandler &&
|
|
85
87
|
selectionHandler({ id: props.id, label: props.label }), className: classnames__default["default"](styles$4.option) },
|
|
86
|
-
props.
|
|
88
|
+
React__default["default"].createElement(Flex.Flex, { template: props.prefix ? ["shrink", "grow"] : ["grow"] },
|
|
89
|
+
props.prefix,
|
|
90
|
+
props.label),
|
|
87
91
|
React__default["default"].createElement("div", null, isSelected && React__default["default"].createElement(Icon.Icon, { name: "checkmark", color: "blue" }))));
|
|
88
92
|
}
|
|
89
93
|
|
|
@@ -106,13 +110,10 @@ function ComboboxContentList(props) {
|
|
|
106
110
|
return (React__default["default"].createElement("div", { className: classnames__default["default"](styles$5.container, styles$5[listScrollState]) },
|
|
107
111
|
optionsExist && (React__default["default"].createElement("ul", { className: styles$5.optionsList, role: "listbox", "aria-multiselectable": props.multiselect, ref: props.optionsListRef },
|
|
108
112
|
props.options.map(option => {
|
|
109
|
-
return (React__default["default"].createElement(ComboboxOption, { key: option.id, id: option.id, label: option.label }));
|
|
113
|
+
return (React__default["default"].createElement(ComboboxOption, { key: option.id, id: option.id, label: option.label, prefix: option.prefix }));
|
|
110
114
|
}),
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
styles$5.hasOptions,
|
|
114
|
-
]) },
|
|
115
|
-
React__default["default"].createElement(Spinner.Spinner, { size: "small" }))),
|
|
115
|
+
React__default["default"].createElement("div", { className: classnames__default["default"]([styles$5.loadingContainer, styles$5.hasOptions]) },
|
|
116
|
+
React__default["default"].createElement(AnimatedPresence.AnimatedPresence, { transition: "fromBottom" }, Boolean(props.loading && optionsExist) && (React__default["default"].createElement(Spinner.Spinner, { size: "small" })))),
|
|
116
117
|
props.onLoadMore && (React__default["default"].createElement(ComboboxLoadMore, { onLoadMore: props.onLoadMore })))),
|
|
117
118
|
props.loading && !optionsExist && (React__default["default"].createElement(React__default["default"].Fragment, null, Array.from({ length: 5 }).map((_, index) => (React__default["default"].createElement("div", { className: styles$5.loadingContainer, key: index },
|
|
118
119
|
React__default["default"].createElement(Glimmer.Glimmer, { shape: "rectangle", size: "small" })))))),
|
|
@@ -165,7 +166,7 @@ function useScrollState(optionsListRef, options) {
|
|
|
165
166
|
return { listScrollState };
|
|
166
167
|
}
|
|
167
168
|
|
|
168
|
-
var css_248z$2 = ".Q-mwo-g5Fi8- {\n display: -ms-flexbox;\n display: flex;\n padding: calc(16px * 1) calc(16px / 2) 0 calc(16px * 1);\n padding: var(--space-base) var(--space-small) 0 var(--space-base);\n -ms-flex-pack: justify;\n justify-content: space-between;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n";
|
|
169
|
+
var css_248z$2 = ".Q-mwo-g5Fi8- {\n display: -ms-flexbox;\n display: flex;\n padding: calc(16px * 1) calc(16px / 2) 0 calc(16px * 1);\n padding: var(--space-base) var(--space-small) 0 var(--space-base);\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: baseline;\n align-items: baseline;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n";
|
|
169
170
|
var styles$2 = {"header":"Q-mwo-g5Fi8-"};
|
|
170
171
|
styleInject_es.styleInject(css_248z$2);
|
|
171
172
|
|
|
@@ -303,7 +304,7 @@ function ComboboxContent(props) {
|
|
|
303
304
|
const { popperRef, popperStyles, attributes } = useComboboxAccessibility(props.handleSelection, props.options, optionsListRef, props.open, props.wrapperRef);
|
|
304
305
|
const template = (React__default["default"].createElement("div", Object.assign({ ref: popperRef, id: "ATL-Combobox-Content", "data-testid": "ATL-Combobox-Content", tabIndex: 0, className: classnames__default["default"](styles$7.content, { [styles$7.hidden]: !props.open }), style: popperStyles.popper }, attributes.popper),
|
|
305
306
|
React__default["default"].createElement(ComboboxContentSearch, { open: props.open, placeholder: props.subjectNoun, searchValue: props.searchValue, setSearchValue: props.setSearchValue, handleSearchChange: props.handleSearchChange }),
|
|
306
|
-
props.multiselect && optionsExist && (React__default["default"].createElement(ComboboxContentHeader, { hasOptionsVisible: optionsExist, subjectNoun: props.subjectNoun, selectedCount: props.selected.length, onClearAll: () => {
|
|
307
|
+
props.multiselect && (optionsExist || props.selected.length > 0) && (React__default["default"].createElement(ComboboxContentHeader, { hasOptionsVisible: optionsExist, subjectNoun: props.subjectNoun, selectedCount: props.selected.length, onClearAll: () => {
|
|
307
308
|
props.selectedStateSetter([]);
|
|
308
309
|
}, onSelectAll: () => {
|
|
309
310
|
props.selectedStateSetter(props.options);
|
|
@@ -312,7 +313,9 @@ function ComboboxContent(props) {
|
|
|
312
313
|
props.actionElements && (React__default["default"].createElement("div", { className: styles$7.actions, role: "group" }, props.actionElements.map((child, index, childrenArray) => (React__default["default"].createElement("div", { key: index, className: classnames__default["default"]({
|
|
313
314
|
[styles$7.actionPadding]: index === childrenArray.length - 1,
|
|
314
315
|
}) }, child)))))));
|
|
315
|
-
return
|
|
316
|
+
return (globalThis === null || globalThis === void 0 ? void 0 : globalThis.document)
|
|
317
|
+
? ReactDOM__default["default"].createPortal(template, document.body)
|
|
318
|
+
: template;
|
|
316
319
|
}
|
|
317
320
|
|
|
318
321
|
var css_248z$1 = ".Ow9wSNnGP-g- {\n width: 100%;\n box-sizing: border-box;\n padding: 0 calc(16px / 2);\n padding: 0 var(--space-small);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.ncp0nKHQ7d8- {\n position: relative;\n width: 100%;\n min-height: calc((calc(16px * 3) - calc(16px / 2)));\n min-height: calc((var(--space-largest) - var(--space-small)));\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n border-radius: calc(16px / 4);\n border-radius: var(--radius-large);\n text-align: left;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n cursor: pointer;\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.jobber-retheme .ncp0nKHQ7d8- {\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n}\n\n.ncp0nKHQ7d8-:focus {\n outline: none;\n}\n\n.ncp0nKHQ7d8-:hover,\n.ncp0nKHQ7d8-:focus-visible {\n outline: none;\n background-color: rgb(244, 246, 250);\n background-color: var(--color-surface--hover);\n}\n\n.ncp0nKHQ7d8-:focus-visible {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n\n.ncp0nKHQ7d8- span {\n margin-left: calc(16px / 2);\n margin-left: var(--space-small);\n}\n";
|
|
@@ -338,7 +341,7 @@ function ComboboxTrigger({ label = "Select", selected, }) {
|
|
|
338
341
|
const { handleClose, open, setOpen } = React__default["default"].useContext(ComboboxContext);
|
|
339
342
|
const hasSelection = selected.length;
|
|
340
343
|
const selectedLabel = selected.map(option => option.label).join(", ");
|
|
341
|
-
return (React__default["default"].createElement(Chip.Chip, { variation: hasSelection ? "base" : "subtle", label: hasSelection ? selectedLabel : "", heading: label, onClick: () => {
|
|
344
|
+
return (React__default["default"].createElement(Chip.Chip, { variation: hasSelection ? "base" : "subtle", label: hasSelection ? selectedLabel : "", ariaLabel: label, heading: label, onClick: () => {
|
|
342
345
|
if (open) {
|
|
343
346
|
handleClose();
|
|
344
347
|
}
|
|
@@ -353,15 +356,16 @@ var css_248z = ".W8qMZnORYxI- {\n position: fixed;\n top: 0;\n right: 0;\n b
|
|
|
353
356
|
var styles = {"overlay":"W8qMZnORYxI-","wrapper":"_-0dkolvLF-Y-"};
|
|
354
357
|
styleInject_es.styleInject(css_248z);
|
|
355
358
|
|
|
356
|
-
function useMakeComboboxHandlers(setOpen, setSearchValue, selectedOptions, shouldScroll, selectedStateSetter, multiSelect, onClose) {
|
|
359
|
+
function useMakeComboboxHandlers(setOpen, setSearchValue, selectedOptions, shouldScroll, selectedStateSetter, multiSelect, onClose, onSearch) {
|
|
357
360
|
const handleClose = React.useCallback(() => {
|
|
358
361
|
setOpen(false);
|
|
359
362
|
setSearchValue("");
|
|
363
|
+
onSearch && onSearch("");
|
|
360
364
|
onClose && onClose();
|
|
361
365
|
if (selectedOptions.length > 0) {
|
|
362
366
|
shouldScroll.current = true;
|
|
363
367
|
}
|
|
364
|
-
}, [setOpen, setSearchValue, onClose, selectedOptions.length]);
|
|
368
|
+
}, [setOpen, setSearchValue, onClose, onSearch, selectedOptions.length]);
|
|
365
369
|
const handleSelection = React.useCallback((selection) => {
|
|
366
370
|
if (multiSelect) {
|
|
367
371
|
handleMultiSelect(selectedStateSetter, selectedOptions, selection);
|
|
@@ -394,7 +398,7 @@ function useCombobox(selected, onSelect, options, onClose, multiSelect, onSearch
|
|
|
394
398
|
const [open, setOpen] = React.useState(false);
|
|
395
399
|
const [searchValue, setSearchValue] = React.useState("");
|
|
396
400
|
const searchCallback = React.useCallback(debounce__default["default"]((value) => onSearch === null || onSearch === void 0 ? void 0 : onSearch(value), debounceTime), [onSearch, debounceTime]);
|
|
397
|
-
const { handleClose, handleSelection } = useMakeComboboxHandlers(setOpen, setSearchValue, selected, shouldScroll, onSelect, multiSelect, onClose);
|
|
401
|
+
const { handleClose, handleSelection } = useMakeComboboxHandlers(setOpen, setSearchValue, selected, shouldScroll, onSelect, multiSelect, onClose, onSearch);
|
|
398
402
|
const internalFilteredOptions = options.filter(option => option.label.toLowerCase().includes(searchValue.toLowerCase()));
|
|
399
403
|
return {
|
|
400
404
|
wrapperRef,
|
|
@@ -460,6 +464,7 @@ function Combobox(props) {
|
|
|
460
464
|
const options = React.useMemo(() => (optionElements === null || optionElements === void 0 ? void 0 : optionElements.map(option => ({
|
|
461
465
|
id: option.props.id,
|
|
462
466
|
label: option.props.label,
|
|
467
|
+
prefix: option.props.prefix,
|
|
463
468
|
}))) || [], [optionElements]);
|
|
464
469
|
const { selectedOptions, selectedStateSetter, shouldScroll, wrapperRef, searchValue, setSearchValue, open, setOpen, handleClose, handleSelection, internalFilteredOptions, handleSearchChange, } = useCombobox(props.selected, props.onSelect, options, props.onClose, props.multiSelect, props.onSearch, props.onSearchDebounce);
|
|
465
470
|
return (React__default["default"].createElement(ComboboxContextProvider, { selected: selectedOptions, selectionHandler: handleSelection, open: open, setOpen: setOpen, handleClose: handleClose, shouldScroll: shouldScroll, searchValue: searchValue },
|
|
@@ -2,29 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var ConfirmationModal = require('../ConfirmationModal-
|
|
5
|
+
var ConfirmationModal = require('../ConfirmationModal-387aa1b5.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('@jobber/hooks/useOnKeyDown');
|
|
8
|
-
require('../Modal-
|
|
8
|
+
require('../Modal-5b866c72.js');
|
|
9
9
|
require('react-dom');
|
|
10
10
|
require('classnames');
|
|
11
11
|
require('framer-motion');
|
|
12
12
|
require('@jobber/hooks/useRefocusOnActivator');
|
|
13
13
|
require('@jobber/hooks/useFocusTrap');
|
|
14
14
|
require('../style-inject.es-9d2f5f4e.js');
|
|
15
|
-
require('../Heading-
|
|
16
|
-
require('../Typography-
|
|
17
|
-
require('../
|
|
18
|
-
require('
|
|
15
|
+
require('../Heading-bae3c69e.js');
|
|
16
|
+
require('../Typography-e2a23b7e.js');
|
|
17
|
+
require('../useAtlantisConfig-ed0bee66.js');
|
|
18
|
+
require('@jobber/hooks/useSafeLayoutEffect');
|
|
19
|
+
require('../Button-6b922fc1.js');
|
|
19
20
|
require('react-router-dom');
|
|
20
21
|
require('../Icon-405a216c.js');
|
|
21
22
|
require('@jobber/design');
|
|
22
|
-
require('../ButtonDismiss-
|
|
23
|
+
require('../ButtonDismiss-a3ba1de2.js');
|
|
23
24
|
require('../Content-e3f7b6fc.js');
|
|
24
|
-
require('../Markdown-
|
|
25
|
+
require('../Markdown-b1b65457.js');
|
|
25
26
|
require('react-markdown');
|
|
26
|
-
require('../Text-
|
|
27
|
-
require('../Emphasis-
|
|
27
|
+
require('../Text-fbeaaca6.js');
|
|
28
|
+
require('../Emphasis-a77d8ee9.js');
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
|
|
5
|
-
var Modal = require('./Modal-
|
|
5
|
+
var Modal = require('./Modal-5b866c72.js');
|
|
6
6
|
var Content = require('./Content-e3f7b6fc.js');
|
|
7
|
-
var Markdown = require('./Markdown-
|
|
7
|
+
var Markdown = require('./Markdown-b1b65457.js');
|
|
8
8
|
|
|
9
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
10
|
|
package/dist/DataDump/index.js
CHANGED
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var Card = require('../Card-
|
|
6
|
+
var Card = require('../Card-74f078a4.js');
|
|
7
7
|
var Content = require('../Content-e3f7b6fc.js');
|
|
8
|
-
var Emphasis = require('../Emphasis-
|
|
8
|
+
var Emphasis = require('../Emphasis-a77d8ee9.js');
|
|
9
9
|
require('classnames');
|
|
10
10
|
require('../style-inject.es-9d2f5f4e.js');
|
|
11
|
-
require('../Heading-
|
|
12
|
-
require('../Typography-
|
|
13
|
-
require('../
|
|
14
|
-
require('
|
|
11
|
+
require('../Heading-bae3c69e.js');
|
|
12
|
+
require('../Typography-e2a23b7e.js');
|
|
13
|
+
require('../useAtlantisConfig-ed0bee66.js');
|
|
14
|
+
require('@jobber/hooks/useSafeLayoutEffect');
|
|
15
|
+
require('../Button-6b922fc1.js');
|
|
15
16
|
require('react-router-dom');
|
|
16
17
|
require('../Icon-405a216c.js');
|
|
17
18
|
require('@jobber/design');
|
|
18
|
-
require('../Menu-
|
|
19
|
-
require('uuid');
|
|
19
|
+
require('../Menu-d6dd673e.js');
|
|
20
20
|
require('framer-motion');
|
|
21
21
|
require('@jobber/hooks/useOnKeyDown');
|
|
22
22
|
require('@jobber/hooks/useRefocusOnActivator');
|
|
@@ -15,6 +15,7 @@ export declare const SEARCH_DEBOUNCE_DELAY: number;
|
|
|
15
15
|
export declare const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
|
|
16
16
|
export declare const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
|
|
17
17
|
export declare const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
|
|
18
|
+
export declare const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
|
|
18
19
|
export declare const TRANSITION_DURATION_IN_SECONDS: number;
|
|
19
20
|
export declare const TRANSITION_DELAY_IN_SECONDS: number;
|
|
20
21
|
export {};
|
|
@@ -189,7 +189,6 @@ export interface DataListContextProps<T extends DataListObject> extends DataList
|
|
|
189
189
|
readonly itemActionComponent?: ReactElement<DataListItemActionsProps<T>>;
|
|
190
190
|
readonly bulkActionsComponent?: ReactElement<DataListItemActionsProps<T>>;
|
|
191
191
|
readonly layoutBreakpoints: Breakpoints[];
|
|
192
|
-
readonly registerLayoutBreakpoints: (breakpoint: Breakpoints) => void;
|
|
193
192
|
readonly layouts: {
|
|
194
193
|
readonly [Breakpoint in Breakpoints]?: LayoutRenderer<T>;
|
|
195
194
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { PropsWithChildren } from "react";
|
|
2
2
|
interface DataListActionsMenuProps {
|
|
3
3
|
readonly visible: boolean;
|
|
4
4
|
readonly position: {
|
|
@@ -7,5 +7,5 @@ interface DataListActionsMenuProps {
|
|
|
7
7
|
};
|
|
8
8
|
readonly onRequestClose: () => void;
|
|
9
9
|
}
|
|
10
|
-
export declare function DataListActionsMenu({ visible, position, onRequestClose, children, }: PropsWithChildren<DataListActionsMenuProps>):
|
|
10
|
+
export declare function DataListActionsMenu({ visible, position, onRequestClose, children, }: PropsWithChildren<DataListActionsMenuProps>): JSX.Element;
|
|
11
11
|
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const DATALIST_TOTALCOUNT_TEST_ID = "ATL-DataList-TotalCount";
|
|
3
3
|
interface DataListTotalCountProps {
|
|
4
|
-
totalCount?: number | null;
|
|
5
|
-
loading?: boolean;
|
|
4
|
+
readonly totalCount?: number | null;
|
|
5
|
+
readonly loading?: boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare function DataListTotalCount({ totalCount, loading, }: DataListTotalCountProps): JSX.Element | null;
|
|
8
8
|
export {};
|
package/dist/DataList/index.js
CHANGED
|
@@ -5,44 +5,47 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib_es6 = require('../tslib.es6-754e2961.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
|
|
8
|
-
var Text = require('../Text-
|
|
9
|
-
var Glimmer = require('../Glimmer-
|
|
8
|
+
var Text = require('../Text-fbeaaca6.js');
|
|
9
|
+
var Glimmer = require('../Glimmer-84dee1ed.js');
|
|
10
10
|
var noop = require('lodash/noop');
|
|
11
11
|
var design = require('@jobber/design');
|
|
12
12
|
var framerMotion = require('framer-motion');
|
|
13
13
|
var classnames = require('classnames');
|
|
14
|
-
var Tooltip = require('../Tooltip-
|
|
15
|
-
var Button = require('../Button-
|
|
14
|
+
var Tooltip = require('../Tooltip-b9de6e57.js');
|
|
15
|
+
var Button = require('../Button-6b922fc1.js');
|
|
16
16
|
var useInView = require('@jobber/hooks/useInView');
|
|
17
17
|
var isEmpty = require('lodash/isEmpty');
|
|
18
|
-
var InlineLabel = require('../InlineLabel-
|
|
18
|
+
var InlineLabel = require('../InlineLabel-4d463bd6.js');
|
|
19
19
|
var useFocusTrap = require('@jobber/hooks/useFocusTrap');
|
|
20
20
|
var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
|
|
21
21
|
var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
|
|
22
22
|
var Icon = require('../Icon-405a216c.js');
|
|
23
23
|
var FormatDate = require('../FormatDate-70ea5b43.js');
|
|
24
|
-
var Heading = require('../Heading-
|
|
24
|
+
var Heading = require('../Heading-bae3c69e.js');
|
|
25
25
|
var ReactDOM = require('react-dom');
|
|
26
|
-
var
|
|
26
|
+
var useIsMounted = require('@jobber/hooks/useIsMounted');
|
|
27
|
+
var Checkbox = require('../Checkbox-e481a4b1.js');
|
|
27
28
|
var reactRouterDom = require('react-router-dom');
|
|
28
29
|
var AnimatedSwitcher = require('../AnimatedSwitcher-3d45ec5d.js');
|
|
29
|
-
var Combobox = require('../Combobox-
|
|
30
|
-
var Chip = require('../Chip-
|
|
30
|
+
var Combobox = require('../Combobox-6d864202.js');
|
|
31
|
+
var Chip = require('../Chip-76f18555.js');
|
|
31
32
|
var debounce = require('lodash/debounce');
|
|
32
|
-
var InputText = require('../InputText-
|
|
33
|
+
var InputText = require('../InputText-de22af8c.js');
|
|
33
34
|
var Spinner = require('../Spinner-9d8fc7ff.js');
|
|
34
|
-
var Typography = require('../Typography-
|
|
35
|
+
var Typography = require('../Typography-e2a23b7e.js');
|
|
35
36
|
require('../Content-e3f7b6fc.js');
|
|
37
|
+
require('@jobber/hooks/useSafeLayoutEffect');
|
|
36
38
|
require('react-popper');
|
|
37
|
-
require('../
|
|
38
|
-
require('uuid');
|
|
39
|
+
require('../useAtlantisConfig-ed0bee66.js');
|
|
39
40
|
require('react-hook-form');
|
|
41
|
+
require('../AnimatedPresence-20a02aaa.js');
|
|
42
|
+
require('../Flex-d490c4db.js');
|
|
40
43
|
require('@jobber/hooks/useAssert');
|
|
41
44
|
require('../Avatar-76a799fa.js');
|
|
42
45
|
require('color');
|
|
43
|
-
require('../FormField-
|
|
46
|
+
require('../FormField-3ec1c85d.js');
|
|
44
47
|
require('@jobber/hooks/useShowClear');
|
|
45
|
-
require('../InputValidation-
|
|
48
|
+
require('../InputValidation-a92bb519.js');
|
|
46
49
|
|
|
47
50
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
48
51
|
|
|
@@ -52,7 +55,7 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
|
52
55
|
var isEmpty__default = /*#__PURE__*/_interopDefaultLegacy(isEmpty);
|
|
53
56
|
var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
54
57
|
|
|
55
|
-
var css_248z$g = ".TkdrExYnvcY-,\n.TkdrExYnvcY- * {\n box-sizing: border-box;\n}\n\n.TkdrExYnvcY- {\n --data-list--minimum-item-height: calc(var(--base-unit) * 3.5);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n z-index: 0;\n z-index: var(--elevation-default);\n -ms-flex: 1;\n flex: 1;\n}\n\n/*\n * Header\n */\n\n.IcAlZHoB4LI- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n z-index: 1;\n z-index: var(--elevation-base);\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.TFO76ysivmg- {\n display: grid;\n padding: calc((16px / 2) + (16px / 4)) 0;\n padding: calc(calc(16px / 2) + calc(16px / 4)) 0;\n padding: calc(var(--space-small) + var(--space-smaller)) 0;\n gap: calc(16px / 2);\n grid-gap: calc(16px / 2);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n grid-template-columns: auto fit-content(calc(16px * 14));\n grid-template-columns: auto fit-content(calc(var(--base-unit) * 14));\n}\n\n.jGHZZYZm1ZY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: calc(16px * 3);\n min-height: var(--space-largest);\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 8) solid rgb(217, 223, 225);\n border-bottom: var(--border-thick) solid var(--color-border);\n}\n\n.GiD7MjZJbcw- {\n --data-list--header-actions-gap: var(--space-small);\n display: -ms-flexbox;\n display: flex;\n gap: calc(16px / 2);\n gap: var(--data-list--header-actions-gap);\n}\n\n@media (max-width: 489px) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n@media (--small-screens-and-below) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n.jMSVGIAr5tk- > p {\n font-weight: 500;\n white-space: nowrap;\n}\n\n.jMSVGIAr5tk- {\n display: -ms-flexbox;\n display: flex;\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n -ms-flex-align: center;\n align-items: center;\n gap: var(--data-list--header-actions-gap);\n}\n\n/*\n * List Item\n */\n\n.ise8kHCfhCY- {\n position: relative;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.ise8kHCfhCY-,\n.Tq6e0BGwcSM- {\n display: grid;\n grid-template-columns: minmax(0px, auto);\n min-height: var(--data-list--minimum-item-height);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.ise8kHCfhCY-.Pc0JGX6jCD4-,\n.ise8kHCfhCY-:hover,\n.ise8kHCfhCY-:focus-within {\n --data-list-item-active-color: var(--color-surface--hover);\n background-color: rgb(244, 246, 250);\n background-color: var(--data-list-item-active-color);\n}\n\n.Tq6e0BGwcSM- {\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n text-align: left;\n -webkit-text-decoration: none;\n text-decoration: none;\n background-color: transparent;\n cursor: pointer;\n}\n\n/**\n * Reset CSS properties on focus to ensure we only have the focus state on the\n * parent .listItem\n */\n\n.Tq6e0BGwcSM-:focus {\n outline: none;\n background-color: transparent;\n}\n\n/**\n * Enable a better hover and focus experience when :has() is supported.\n * This is a workaround for Firefox where the :has() selector is not supported.\n */\n\n@supports selector(*:has(*)) {\n .ise8kHCfhCY-:hover,\n .ise8kHCfhCY-:focus-within {\n background-color: transparent;\n }\n\n .ise8kHCfhCY-:has(.Tq6e0BGwcSM-:hover, .Tq6e0BGwcSM-:focus) {\n background-color: var(--data-list-item-active-color);\n }\n}\n\n/*\n * List Item Selection\n */\n\n.d-79rkMqufg- {\n display: grid;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (min-width: 768px) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n.d-79rkMqufg-,\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n grid-template-columns: -webkit-max-content minmax(0px, auto);\n grid-template-columns: max-content minmax(0px, auto);\n -webkit-column-gap: calc(16px / 2);\n -webkit-column-gap: var(--space-small);\n -moz-column-gap: calc(16px / 2);\n -moz-column-gap: var(--space-small);\n column-gap: calc(16px / 2);\n column-gap: var(--space-small);\n}\n\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n display: grid;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qm-SSuWTXkI- {\n display: -ms-flexbox;\n display: flex;\n visibility: hidden;\n\n /* To compensate the Checkbox's label margin that we are using for screen-readers */\n margin-right: calc((16px * 1) * -1);\n margin-right: calc(calc(16px * 1) * -1);\n margin-right: calc(var(--space-base) * -1);\n}\n\n.qm-SSuWTXkI-.VA9RnQp6nbI- {\n visibility: visible;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :first-child {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n -ms-flex-order: 1;\n order: 1;\n padding-top: calc(16px / 4);\n padding-top: var(--space-smaller);\n opacity: 1;\n transition: opacity 100ms ease-in-out;\n transition: opacity var(--transition-properties);\n --transition-properties: var(--timing-quick) ease-in-out;\n}\n\n@media (min-width: 768px) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n.ise8kHCfhCY-:hover .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY-:focus-within .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY- .d-79rkMqufg-._4L7iXXzLr5k- > :last-child {\n opacity: 1;\n}\n\n/*\n * Filters\n */\n\n.Kkp-IYmwq-s- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(255, 255, 255, 0.6);\n background-color: var(--color-overlay--dimmed);\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.m-eCShL7TU4- {\n position: sticky;\n top: 50vh;\n}\n\n/* This hides the text from the UI but not from the screen readers */\n\n.esUiRgWabYw- {\n position: absolute;\n top: auto;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n text-indent: -10000px;\n}\n";
|
|
58
|
+
var css_248z$g = ".TkdrExYnvcY-,\n.TkdrExYnvcY- * {\n box-sizing: border-box;\n}\n\n.TkdrExYnvcY- {\n --data-list--minimum-item-height: calc(var(--base-unit) * 3.5);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n z-index: 0;\n z-index: var(--elevation-default);\n -ms-flex: 1;\n flex: 1;\n}\n\n/*\n * Header\n */\n\n.IcAlZHoB4LI- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n z-index: 1;\n z-index: var(--elevation-base);\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.TFO76ysivmg- {\n display: grid;\n padding: calc((16px / 2) + (16px / 4)) 0;\n padding: calc(calc(16px / 2) + calc(16px / 4)) 0;\n padding: calc(var(--space-small) + var(--space-smaller)) 0;\n gap: calc(16px / 2);\n grid-gap: calc(16px / 2);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n grid-template-columns: auto fit-content(calc(16px * 14));\n grid-template-columns: auto fit-content(calc(var(--base-unit) * 14));\n}\n\n.TFO76ysivmg-:empty {\n display: none;\n}\n\n.jGHZZYZm1ZY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: calc(16px * 3);\n min-height: var(--space-largest);\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 8) solid rgb(217, 223, 225);\n border-bottom: var(--border-thick) solid var(--color-border);\n}\n\n.GiD7MjZJbcw- {\n --data-list--header-actions-gap: var(--space-small);\n display: -ms-flexbox;\n display: flex;\n gap: calc(16px / 2);\n gap: var(--data-list--header-actions-gap);\n}\n\n@media (max-width: 489px) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n@media (--small-screens-and-below) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n.jMSVGIAr5tk- > p {\n font-weight: 500;\n white-space: nowrap;\n}\n\n.jMSVGIAr5tk- {\n display: -ms-flexbox;\n display: flex;\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n -ms-flex-align: center;\n align-items: center;\n gap: var(--data-list--header-actions-gap);\n}\n\n/*\n * List Item\n */\n\n.ise8kHCfhCY- {\n position: relative;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.ise8kHCfhCY-,\n.Tq6e0BGwcSM- {\n display: grid;\n grid-template-columns: minmax(0px, auto);\n min-height: var(--data-list--minimum-item-height);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.ise8kHCfhCY-.Pc0JGX6jCD4-,\n.ise8kHCfhCY-:hover,\n.ise8kHCfhCY-:focus-within {\n --data-list-item-active-color: var(--color-surface--hover);\n background-color: rgb(244, 246, 250);\n background-color: var(--data-list-item-active-color);\n}\n\n.Tq6e0BGwcSM- {\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n text-align: left;\n -webkit-text-decoration: none;\n text-decoration: none;\n background-color: transparent;\n cursor: pointer;\n}\n\n/**\n * Reset CSS properties on focus to ensure we only have the focus state on the\n * parent .listItem\n */\n\n.Tq6e0BGwcSM-:focus {\n outline: none;\n background-color: transparent;\n}\n\n/**\n * Enable a better hover and focus experience when :has() is supported.\n * This is a workaround for Firefox where the :has() selector is not supported.\n */\n\n@supports selector(*:has(*)) {\n .ise8kHCfhCY-:hover,\n .ise8kHCfhCY-:focus-within {\n background-color: transparent;\n }\n\n .ise8kHCfhCY-:has(.Tq6e0BGwcSM-:hover, .Tq6e0BGwcSM-:focus) {\n background-color: var(--data-list-item-active-color);\n }\n}\n\n/*\n * List Item Selection\n */\n\n.d-79rkMqufg- {\n display: grid;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (min-width: 768px) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n.d-79rkMqufg-,\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n grid-template-columns: -webkit-max-content minmax(0px, auto);\n grid-template-columns: max-content minmax(0px, auto);\n -webkit-column-gap: calc(16px / 2);\n -webkit-column-gap: var(--space-small);\n -moz-column-gap: calc(16px / 2);\n -moz-column-gap: var(--space-small);\n column-gap: calc(16px / 2);\n column-gap: var(--space-small);\n}\n\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n display: grid;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qm-SSuWTXkI- {\n display: -ms-flexbox;\n display: flex;\n visibility: hidden;\n\n /* To compensate the Checkbox's label margin that we are using for screen-readers */\n margin-right: calc((16px * 1) * -1);\n margin-right: calc(calc(16px * 1) * -1);\n margin-right: calc(var(--space-base) * -1);\n}\n\n.qm-SSuWTXkI-.VA9RnQp6nbI- {\n visibility: visible;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :first-child {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n -ms-flex-order: 1;\n order: 1;\n padding-top: calc(16px / 4);\n padding-top: var(--space-smaller);\n opacity: 1;\n transition: opacity 100ms ease-in-out;\n transition: opacity var(--transition-properties);\n --transition-properties: var(--timing-quick) ease-in-out;\n}\n\n@media (min-width: 768px) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n.ise8kHCfhCY-:hover .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY-:focus-within .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY- .d-79rkMqufg-._4L7iXXzLr5k- > :last-child {\n opacity: 1;\n}\n\n/*\n * Filters\n */\n\n.Kkp-IYmwq-s- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(255, 255, 255, 0.6);\n background-color: var(--color-overlay--dimmed);\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.m-eCShL7TU4- {\n position: sticky;\n top: 50vh;\n}\n\n/* This hides the text from the UI but not from the screen readers */\n\n.esUiRgWabYw- {\n position: absolute;\n top: auto;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n text-indent: -10000px;\n}\n";
|
|
56
59
|
var styles$g = {"wrapper":"TkdrExYnvcY-","titleContainer":"IcAlZHoB4LI-","headerFilters":"TFO76ysivmg-","headerTitles":"jGHZZYZm1ZY-","batchSelectContainer":"GiD7MjZJbcw-","headerBatchSelect":"jMSVGIAr5tk-","listItem":"ise8kHCfhCY-","listItemClickable":"Tq6e0BGwcSM-","active":"Pc0JGX6jCD4-","selectable":"d-79rkMqufg-","selectAllCheckbox":"qm-SSuWTXkI-","visible":"VA9RnQp6nbI-","selected":"_4L7iXXzLr5k-","filtering":"Kkp-IYmwq-s-","filteringSpinner":"m-eCShL7TU4-","srOnly":"esUiRgWabYw-"};
|
|
57
60
|
styleInject_es.styleInject(css_248z$g);
|
|
58
61
|
|
|
@@ -84,7 +87,6 @@ const defaultValues$1 = {
|
|
|
84
87
|
children: [],
|
|
85
88
|
selected: [],
|
|
86
89
|
layoutBreakpoints: [],
|
|
87
|
-
registerLayoutBreakpoints: noop__default["default"],
|
|
88
90
|
layouts: {
|
|
89
91
|
xs: children => React__default["default"].createElement(React__default["default"].Fragment, null, children),
|
|
90
92
|
sm: children => React__default["default"].createElement(React__default["default"].Fragment, null, children),
|
|
@@ -144,6 +146,7 @@ const SEARCH_DEBOUNCE_DELAY = design.tokens["timing-slowest"];
|
|
|
144
146
|
const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
|
|
145
147
|
const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
|
|
146
148
|
const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
|
|
149
|
+
const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
|
|
147
150
|
const TRANSITION_DURATION_IN_SECONDS = design.tokens["timing-base"] / 1000;
|
|
148
151
|
const TRANSITION_DELAY_IN_SECONDS = design.tokens["timing-quick"] / 1000;
|
|
149
152
|
|
|
@@ -310,7 +313,7 @@ function DataListSortingOptions({ options, selectedOption, onSelectChange, onClo
|
|
|
310
313
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
311
314
|
};
|
|
312
315
|
}, [optionsListRef, dataListHeaderTileRef, onClose]);
|
|
313
|
-
return (React__default["default"].createElement("ul", { className: styles$8.optionsList, ref: optionsListRef }, options.map(option => (React__default["default"].createElement("li", { className: styles$8.option, key: option.id
|
|
316
|
+
return (React__default["default"].createElement("ul", { className: styles$8.optionsList, ref: optionsListRef }, options.map(option => (React__default["default"].createElement("li", { className: styles$8.option, key: `${option.id}${option.order}`, onClick: () => onSelectChange(option), onKeyDown: event => handleKeyDown(event, option), tabIndex: 0, "data-value": option.id },
|
|
314
317
|
option.label,
|
|
315
318
|
option.label === (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) && (React__default["default"].createElement(Icon.Icon, { name: "checkmark", color: "blue" })))))));
|
|
316
319
|
function handleKeyDown(event, option) {
|
|
@@ -419,11 +422,11 @@ function generateListItemElement(item) {
|
|
|
419
422
|
acc[key] = currentItem;
|
|
420
423
|
}
|
|
421
424
|
else if (currentItem instanceof Date) {
|
|
422
|
-
acc[key] = (React__default["default"].createElement(Text.Text,
|
|
425
|
+
acc[key] = (React__default["default"].createElement(Text.Text, null,
|
|
423
426
|
React__default["default"].createElement(FormatDate.FormatDate, { date: currentItem })));
|
|
424
427
|
}
|
|
425
428
|
else {
|
|
426
|
-
acc[key] = React__default["default"].createElement(Text.Text,
|
|
429
|
+
acc[key] = React__default["default"].createElement(Text.Text, null, currentItem);
|
|
427
430
|
}
|
|
428
431
|
return acc;
|
|
429
432
|
}, {});
|
|
@@ -468,12 +471,16 @@ const variants$1 = {
|
|
|
468
471
|
};
|
|
469
472
|
function DataListActionsMenu({ visible = false, position, onRequestClose, children, }) {
|
|
470
473
|
const [ref, setRef] = React.useState();
|
|
474
|
+
const mounted = useIsMounted.useIsMounted();
|
|
471
475
|
useRefocusOnActivator.useRefocusOnActivator(visible);
|
|
472
476
|
const focusTrapRef = useFocusTrap.useFocusTrap(visible);
|
|
473
477
|
useOnKeyDown.useOnKeyDown(onRequestClose, "Escape");
|
|
474
|
-
|
|
478
|
+
const actionsMenu = (React__default["default"].createElement(framerMotion.AnimatePresence, null, visible && (React__default["default"].createElement("div", { ref: focusTrapRef, onClick: handleClick },
|
|
475
479
|
React__default["default"].createElement(framerMotion.motion.div, { role: "menu", ref: setRef, variants: variants$1, initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: TRANSITION_DELAY_IN_SECONDS }, className: styles$7.menu, style: getPositionCssVars(), onClick: onRequestClose }, children),
|
|
476
|
-
React__default["default"].createElement("button", { type: "button", className: styles$7.overlay, onClick: onRequestClose, "aria-label": "Close menu" }))))
|
|
480
|
+
React__default["default"].createElement("button", { type: "button", className: styles$7.overlay, onClick: onRequestClose, "aria-label": "Close menu" })))));
|
|
481
|
+
return mounted.current
|
|
482
|
+
? ReactDOM.createPortal(actionsMenu, document.body)
|
|
483
|
+
: actionsMenu;
|
|
477
484
|
function handleClick(event) {
|
|
478
485
|
// Prevent menu from firing the parent's onClick event when it is nested
|
|
479
486
|
// within a clickable list item
|
|
@@ -764,17 +771,12 @@ function DataListItems({ size = "xs", }) {
|
|
|
764
771
|
}
|
|
765
772
|
|
|
766
773
|
function DataListLayout({ children, size = "xs", }) {
|
|
767
|
-
const {
|
|
768
|
-
const
|
|
769
|
-
React.useEffect(() => {
|
|
770
|
-
registerLayoutBreakpoints(size);
|
|
771
|
-
}, [size]);
|
|
774
|
+
const { registerLayout, loadingState } = useDataListContext();
|
|
775
|
+
const { activeBreakpoint } = useActiveLayout();
|
|
772
776
|
React.useEffect(() => {
|
|
773
777
|
registerLayout(size, children);
|
|
774
778
|
}, [size, children]);
|
|
775
|
-
const
|
|
776
|
-
const nextAvailableSize = layoutBreakpoints[sizeIndex + 1];
|
|
777
|
-
const shouldRenderList = breakpoints[size] && !breakpoints[nextAvailableSize];
|
|
779
|
+
const shouldRenderList = size === activeBreakpoint;
|
|
778
780
|
if (loadingState !== "initial" && shouldRenderList) {
|
|
779
781
|
return React__default["default"].createElement(DataListItems, { size: size });
|
|
780
782
|
}
|
|
@@ -1016,7 +1018,7 @@ function DataListStickyHeader({ children }) {
|
|
|
1016
1018
|
ref.current && observer.unobserve(ref.current);
|
|
1017
1019
|
};
|
|
1018
1020
|
}, [handleObserver, ref.current]);
|
|
1019
|
-
return (React__default["default"].createElement("div", { ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
|
|
1021
|
+
return (React__default["default"].createElement("div", { "data-testid": DATA_LIST_STICKY_HEADER_TEST_ID, ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
|
|
1020
1022
|
}
|
|
1021
1023
|
|
|
1022
1024
|
var css_248z$4 = ".tj0MOMhLEEY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.SaPMOnvw-3c- {\n --transition-properties: var(--timing-base) ease-in-out;\n --button-offset: calc(var(--space-largest) - var(--space-smaller));\n\n position: absolute;\n top: 50%;\n right: calc((16px * 3) - (16px / 4));\n right: calc(calc(16px * 3) - calc(16px / 4));\n right: var(--button-offset);\n visibility: hidden;\n width: 0;\n padding: calc(16px / 4) 0;\n padding: var(--space-smaller) 0;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n opacity: 0;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n transition: opacity 200ms ease-in-out,\n width 200ms ease-in-out, visibility 200ms ease-in-out;\n transition: opacity var(--transition-properties),\n width var(--transition-properties), visibility var(--transition-properties);\n}\n\n._3S1-91v2SYI- {\n visibility: visible;\n width: calc(100% - var(--button-offset));\n opacity: 1;\n}\n\n@media (min-width: 768px) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n._9GlBktsUALw- {\n display: block;\n}\n\n@media (min-width: 768px) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n/*\n * No Filters Styling\n *\n * When there are no filters, the search input is always visible.\n * ------------------------------------------------------------------------- */\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n position: static;\n visibility: visible;\n width: auto;\n opacity: 1;\n transition: none;\n}\n\n@media (min-width: 768px) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n._3Pjrt42x454- ._9GlBktsUALw- {\n display: none;\n}\n";
|
|
@@ -1222,14 +1224,16 @@ function InternalDataListStatusBar() {
|
|
|
1222
1224
|
|
|
1223
1225
|
function DataList(_a) {
|
|
1224
1226
|
var { selected = [], sorting } = _a, props = tslib_es6.__rest(_a, ["selected", "sorting"]);
|
|
1225
|
-
const [layoutBreakpoints, setLayoutBreakpoints] = React.useState([]);
|
|
1226
1227
|
const [layouts, setLayouts] = React.useState({});
|
|
1228
|
+
const layoutBreakpoints = React.useMemo(() => sortBreakpoints(Object.keys(layouts)), [layouts]);
|
|
1227
1229
|
const searchComponent = getCompoundComponent(props.children, DataListSearch);
|
|
1228
1230
|
const filterComponent = getCompoundComponent(props.children, DataListFilters);
|
|
1229
1231
|
const layoutComponents = getCompoundComponents(props.children, DataListLayout);
|
|
1230
1232
|
const emptyStateComponents = getCompoundComponents(props.children, DataListEmptyState);
|
|
1231
1233
|
const itemActionComponent = getCompoundComponent(props.children, DataListItemActions);
|
|
1232
1234
|
const bulkActionsComponent = getCompoundComponent(props.children, DataListBulkActions);
|
|
1235
|
+
const headerCount = Object.keys(props.headers).length;
|
|
1236
|
+
const shouldRenderStickyHeader = !!filterComponent || !!searchComponent || headerCount > 0;
|
|
1233
1237
|
return (React__default["default"].createElement(DataListContext.Provider, { value: Object.assign(Object.assign({ searchComponent,
|
|
1234
1238
|
filterComponent,
|
|
1235
1239
|
layoutComponents,
|
|
@@ -1237,20 +1241,16 @@ function DataList(_a) {
|
|
|
1237
1241
|
itemActionComponent,
|
|
1238
1242
|
bulkActionsComponent,
|
|
1239
1243
|
layoutBreakpoints,
|
|
1240
|
-
registerLayoutBreakpoints,
|
|
1241
1244
|
layouts,
|
|
1242
1245
|
registerLayout }, props), { selected,
|
|
1243
1246
|
// T !== DataListObject
|
|
1244
1247
|
sorting: sorting }) },
|
|
1245
|
-
React__default["default"].createElement(InternalDataList,
|
|
1246
|
-
function registerLayoutBreakpoints(size) {
|
|
1247
|
-
setLayoutBreakpoints(prev => sortBreakpoints([...prev, size]));
|
|
1248
|
-
}
|
|
1248
|
+
React__default["default"].createElement(InternalDataList, { shouldRenderStickyHeader: shouldRenderStickyHeader })));
|
|
1249
1249
|
function registerLayout(size, children) {
|
|
1250
1250
|
setLayouts(prev => (Object.assign(Object.assign({}, prev), { [size]: children })));
|
|
1251
1251
|
}
|
|
1252
1252
|
}
|
|
1253
|
-
function InternalDataList() {
|
|
1253
|
+
function InternalDataList({ shouldRenderStickyHeader, }) {
|
|
1254
1254
|
const { data, title, totalCount, loadingState = "none", layoutComponents, } = useDataListContext();
|
|
1255
1255
|
const backToTopRef = React.useRef(null);
|
|
1256
1256
|
const initialLoading = loadingState === "initial";
|
|
@@ -1261,12 +1261,12 @@ function InternalDataList() {
|
|
|
1261
1261
|
title && React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
|
|
1262
1262
|
React__default["default"].createElement(DataListTotalCount, { totalCount: totalCount, loading: initialLoading })),
|
|
1263
1263
|
React__default["default"].createElement("div", { ref: backToTopRef }),
|
|
1264
|
-
React__default["default"].createElement(DataListStickyHeader, null,
|
|
1264
|
+
shouldRenderStickyHeader && (React__default["default"].createElement(DataListStickyHeader, null,
|
|
1265
1265
|
React__default["default"].createElement("div", { className: styles$g.headerFilters },
|
|
1266
1266
|
React__default["default"].createElement(InternalDataListFilters, null),
|
|
1267
1267
|
React__default["default"].createElement(InternalDataListSearch, null)),
|
|
1268
1268
|
React__default["default"].createElement(InternalDataListStatusBar, null),
|
|
1269
|
-
React__default["default"].createElement(DataListHeader, null)),
|
|
1269
|
+
React__default["default"].createElement(DataListHeader, null))),
|
|
1270
1270
|
initialLoading && React__default["default"].createElement(DataListLoadingState, null),
|
|
1271
1271
|
showEmptyState && React__default["default"].createElement(InternalDataListEmptyState, null),
|
|
1272
1272
|
layoutComponents,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Table } from "@tanstack/react-table";
|
|
3
3
|
interface BodyLoadingProps<T> {
|
|
4
|
-
table: Table<T>;
|
|
4
|
+
readonly table: Table<T>;
|
|
5
5
|
}
|
|
6
6
|
export declare function BodyLoading<T extends object>({ table }: BodyLoadingProps<T>): JSX.Element;
|
|
7
7
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Table } from "@tanstack/react-table";
|
|
2
2
|
export type ViewType = "desktop" | "handheld";
|
|
3
3
|
export interface FooterProps<T> {
|
|
4
|
-
table: Table<T>;
|
|
5
|
-
viewType?: ViewType;
|
|
4
|
+
readonly table: Table<T>;
|
|
5
|
+
readonly viewType?: ViewType;
|
|
6
6
|
}
|
|
7
7
|
export declare const Footer: <T extends object>({ table, viewType, }: FooterProps<T>) => JSX.Element | null;
|