@gooddata/sdk-ui-kit 10.34.0-alpha.16 → 10.34.0-alpha.18
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/esm/@ui/@types/size.d.ts +8 -0
- package/esm/@ui/@types/size.d.ts.map +1 -1
- package/esm/@ui/@types/variant.d.ts +4 -0
- package/esm/@ui/@types/variant.d.ts.map +1 -1
- package/esm/@ui/@utils/size.d.ts +2 -2
- package/esm/@ui/@utils/size.d.ts.map +1 -1
- package/esm/@ui/@utils/size.js +4 -0
- package/esm/@ui/@utils/size.js.map +1 -1
- package/esm/@ui/UiBadge/UiBadge.d.ts +13 -0
- package/esm/@ui/UiBadge/UiBadge.d.ts.map +1 -0
- package/esm/@ui/UiBadge/UiBadge.js +12 -0
- package/esm/@ui/UiBadge/UiBadge.js.map +1 -0
- package/esm/@ui/UiButton/UiButton.d.ts.map +1 -1
- package/esm/@ui/UiButton/UiButton.js +1 -2
- package/esm/@ui/UiButton/UiButton.js.map +1 -1
- package/esm/@ui/UiCheckbox/UiCheckbox.d.ts +15 -0
- package/esm/@ui/UiCheckbox/UiCheckbox.d.ts.map +1 -0
- package/esm/@ui/UiCheckbox/UiCheckbox.js +11 -0
- package/esm/@ui/UiCheckbox/UiCheckbox.js.map +1 -0
- package/esm/@ui/UiIconButton/UiIconButtonRenderer.d.ts +4 -4
- package/esm/@ui/UiIconButton/UiIconButtonRenderer.d.ts.map +1 -1
- package/esm/@ui/UiIconButton/UiIconButtonRenderer.js.map +1 -1
- package/esm/@ui/UiPagedVirtualList/UiPagedVirtualList.d.ts +3 -0
- package/esm/@ui/UiPagedVirtualList/UiPagedVirtualList.d.ts.map +1 -1
- package/esm/@ui/UiPagedVirtualList/UiPagedVirtualList.js +21 -5
- package/esm/@ui/UiPagedVirtualList/UiPagedVirtualList.js.map +1 -1
- package/esm/@ui/UiSkeleton/UiSkeleton.d.ts +5 -1
- package/esm/@ui/UiSkeleton/UiSkeleton.d.ts.map +1 -1
- package/esm/@ui/UiSkeleton/UiSkeleton.js +4 -1
- package/esm/@ui/UiSkeleton/UiSkeleton.js.map +1 -1
- package/esm/Dialog/ShareDialog/ShareDialogBase/ShareLink.d.ts.map +1 -1
- package/esm/Dialog/ShareDialog/ShareDialogBase/ShareLink.js +1 -1
- package/esm/Dialog/ShareDialog/ShareDialogBase/ShareLink.js.map +1 -1
- package/esm/Table/AsyncTable.d.ts +9 -0
- package/esm/Table/AsyncTable.d.ts.map +1 -0
- package/esm/Table/AsyncTable.js +97 -0
- package/esm/Table/AsyncTable.js.map +1 -0
- package/esm/Table/AsyncTableBulkActions.d.ts +4 -0
- package/esm/Table/AsyncTableBulkActions.d.ts.map +1 -0
- package/esm/Table/AsyncTableBulkActions.js +21 -0
- package/esm/Table/AsyncTableBulkActions.js.map +1 -0
- package/esm/Table/AsyncTableCheckbox.d.ts +4 -0
- package/esm/Table/AsyncTableCheckbox.d.ts.map +1 -0
- package/esm/Table/AsyncTableCheckbox.js +9 -0
- package/esm/Table/AsyncTableCheckbox.js.map +1 -0
- package/esm/Table/AsyncTableDropdownItem.d.ts +5 -0
- package/esm/Table/AsyncTableDropdownItem.d.ts.map +1 -0
- package/esm/Table/AsyncTableDropdownItem.js +6 -0
- package/esm/Table/AsyncTableDropdownItem.js.map +1 -0
- package/esm/Table/AsyncTableEmptyState.d.ts +3 -0
- package/esm/Table/AsyncTableEmptyState.d.ts.map +1 -0
- package/esm/Table/AsyncTableEmptyState.js +14 -0
- package/esm/Table/AsyncTableEmptyState.js.map +1 -0
- package/esm/Table/AsyncTableFilter.d.ts +7 -0
- package/esm/Table/AsyncTableFilter.d.ts.map +1 -0
- package/esm/Table/AsyncTableFilter.js +32 -0
- package/esm/Table/AsyncTableFilter.js.map +1 -0
- package/esm/Table/AsyncTableHeader.d.ts +4 -0
- package/esm/Table/AsyncTableHeader.d.ts.map +1 -0
- package/esm/Table/AsyncTableHeader.js +58 -0
- package/esm/Table/AsyncTableHeader.js.map +1 -0
- package/esm/Table/AsyncTableRow.d.ts +6 -0
- package/esm/Table/AsyncTableRow.d.ts.map +1 -0
- package/esm/Table/AsyncTableRow.js +68 -0
- package/esm/Table/AsyncTableRow.js.map +1 -0
- package/esm/Table/AsyncTableTitle.d.ts +4 -0
- package/esm/Table/AsyncTableTitle.d.ts.map +1 -0
- package/esm/Table/AsyncTableTitle.js +36 -0
- package/esm/Table/AsyncTableTitle.js.map +1 -0
- package/esm/Table/AsyncTableToolbar.d.ts +6 -0
- package/esm/Table/AsyncTableToolbar.d.ts.map +1 -0
- package/esm/Table/AsyncTableToolbar.js +56 -0
- package/esm/Table/AsyncTableToolbar.js.map +1 -0
- package/esm/Table/SkeletonItemFactory.d.ts +7 -0
- package/esm/Table/SkeletonItemFactory.d.ts.map +1 -0
- package/esm/Table/SkeletonItemFactory.js +12 -0
- package/esm/Table/SkeletonItemFactory.js.map +1 -0
- package/esm/Table/asyncTableBem.d.ts +2 -0
- package/esm/Table/asyncTableBem.d.ts.map +1 -0
- package/esm/Table/asyncTableBem.js +4 -0
- package/esm/Table/asyncTableBem.js.map +1 -0
- package/esm/Table/constants.d.ts +10 -0
- package/esm/Table/constants.d.ts.map +1 -0
- package/esm/Table/constants.js +11 -0
- package/esm/Table/constants.js.map +1 -0
- package/esm/Table/index.d.ts +3 -0
- package/esm/Table/index.d.ts.map +1 -0
- package/esm/Table/index.js +3 -0
- package/esm/Table/index.js.map +1 -0
- package/esm/Table/locales.d.ts +3 -0
- package/esm/Table/locales.d.ts.map +1 -0
- package/esm/Table/locales.js +13 -0
- package/esm/Table/locales.js.map +1 -0
- package/esm/Table/types.d.ts +137 -0
- package/esm/Table/types.d.ts.map +1 -0
- package/esm/Table/types.js +3 -0
- package/esm/Table/types.js.map +1 -0
- package/esm/Table/utils.d.ts +2 -0
- package/esm/Table/utils.d.ts.map +1 -0
- package/esm/Table/utils.js +6 -0
- package/esm/Table/utils.js.map +1 -0
- package/esm/index.d.ts +7 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -0
- package/esm/index.js.map +1 -1
- package/esm/sdk-ui-kit.d.ts +150 -5
- package/package.json +8 -8
- package/src/@ui/UiBadge/UiBadge.scss +16 -0
- package/src/@ui/UiCheckbox/UiCheckbox.scss +71 -0
- package/src/@ui/UiIconButton/UiIconButton.scss +37 -0
- package/src/@ui/UiPagedVirtualList/UiPagedVirtualList.scss +17 -0
- package/src/@ui/UiSkeleton/UiSkeleton.scss +2 -1
- package/src/@ui/defaultTheme.scss +17 -0
- package/src/@ui/index.scss +2 -0
- package/styles/css/asyncTable.css +205 -0
- package/styles/css/asyncTable.css.map +1 -0
- package/styles/css/main.css +333 -0
- package/styles/css/main.css.map +1 -1
- package/styles/scss/asyncTable.scss +261 -0
- package/styles/scss/main.scss +1 -0
@@ -0,0 +1,9 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React from "react";
|
3
|
+
import { e } from "./asyncTableBem.js";
|
4
|
+
import { UiCheckbox } from "../@ui/UiCheckbox/UiCheckbox.js";
|
5
|
+
export function AsyncTableCheckbox({ onChange, checked, indeterminate }) {
|
6
|
+
return (React.createElement("div", { className: e("cell", { checkbox: true }), onClick: onChange },
|
7
|
+
React.createElement(UiCheckbox, { checked: checked, preventDefault: true, indeterminate: indeterminate })));
|
8
|
+
}
|
9
|
+
//# sourceMappingURL=AsyncTableCheckbox.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableCheckbox.js","sourceRoot":"","sources":["../../src/Table/AsyncTableCheckbox.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAA4B;IAC7F,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ;QAC5D,oBAAC,UAAU,IAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,GAAI,CAClF,CACT,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { IAsyncTableDropdownItemProps } from "./types.js";
|
3
|
+
declare const AsyncTableDropdownItem: ({ label, onSelect, isSelected }: IAsyncTableDropdownItemProps) => React.JSX.Element;
|
4
|
+
export default AsyncTableDropdownItem;
|
5
|
+
//# sourceMappingURL=AsyncTableDropdownItem.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableDropdownItem.d.ts","sourceRoot":"","sources":["../../src/Table/AsyncTableDropdownItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1D,QAAA,MAAM,sBAAsB,oCAAqC,4BAA4B,sBAI5F,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React from "react";
|
3
|
+
import { e } from "./asyncTableBem.js";
|
4
|
+
const AsyncTableDropdownItem = ({ label, onSelect, isSelected }) => (React.createElement("div", { className: e("dropdown-item", { selected: isSelected }), onClick: onSelect }, label));
|
5
|
+
export default AsyncTableDropdownItem;
|
6
|
+
//# sourceMappingURL=AsyncTableDropdownItem.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableDropdownItem.js","sourceRoot":"","sources":["../../src/Table/AsyncTableDropdownItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAGvC,MAAM,sBAAsB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAgC,EAAE,EAAE,CAAC,CAC9F,6BAAK,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,IAC1E,KAAK,CACJ,CACT,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableEmptyState.d.ts","sourceRoot":"","sources":["../../src/Table/AsyncTableEmptyState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,oBAAoB,yBAYhC,CAAC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React from "react";
|
3
|
+
import { UiIcon } from "../@ui/UiIcon/UiIcon.js";
|
4
|
+
import { useIntl } from "react-intl";
|
5
|
+
import { messages } from "./locales.js";
|
6
|
+
import { e } from "./asyncTableBem.js";
|
7
|
+
export const AsyncTableEmptyState = () => {
|
8
|
+
const intl = useIntl();
|
9
|
+
return (React.createElement("div", { className: e("empty-state") },
|
10
|
+
React.createElement(UiIcon, { type: "search", color: "complementary-5", size: 44 }),
|
11
|
+
React.createElement("div", { className: e("empty-state-title") }, intl.formatMessage(messages.noMatchFound)),
|
12
|
+
React.createElement("div", { className: e("empty-state-description") }, intl.formatMessage(messages.tryAdjustingFilters))));
|
13
|
+
};
|
14
|
+
//# sourceMappingURL=AsyncTableEmptyState.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableEmptyState.js","sourceRoot":"","sources":["../../src/Table/AsyncTableEmptyState.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACrC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC;QAC5B,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAE,EAAE,GAAI;QAC1D,6BAAK,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAO;QACzF,6BAAK,SAAS,EAAE,CAAC,CAAC,yBAAyB,CAAC,IACvC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAC/C,CACJ,CACT,CAAC;AACN,CAAC,CAAC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { IAsyncTableFilterProps } from "./types.js";
|
3
|
+
/**
|
4
|
+
* @internal
|
5
|
+
*/
|
6
|
+
export declare function AsyncTableFilter({ label, options, selected, onItemClick, scrollToStart, }: IAsyncTableFilterProps): React.JSX.Element;
|
7
|
+
//# sourceMappingURL=AsyncTableFilter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableFilter.d.ts","sourceRoot":"","sources":["../../src/Table/AsyncTableFilter.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAS5D,OAAO,EAA2B,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAG7E;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,aAAa,GAChB,EAAE,sBAAsB,qBAwDxB"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React, { useCallback, useMemo, useRef } from "react";
|
3
|
+
import { e } from "./asyncTableBem.js";
|
4
|
+
import { Dropdown } from "../Dropdown/Dropdown.js";
|
5
|
+
import { UiButton } from "../@ui/UiButton/UiButton.js";
|
6
|
+
import { UiAutofocus } from "../@ui/UiFocusManager/UiAutofocus.js";
|
7
|
+
import { DropdownList } from "../Dropdown/DropdownList.js";
|
8
|
+
import AsyncTableDropdownItem from "./AsyncTableDropdownItem.js";
|
9
|
+
import { useIntl } from "react-intl";
|
10
|
+
import { messages } from "./locales.js";
|
11
|
+
import { useDebouncedState } from "../utils/debounce.js";
|
12
|
+
/**
|
13
|
+
* @internal
|
14
|
+
*/
|
15
|
+
export function AsyncTableFilter({ label, options, selected, onItemClick, scrollToStart, }) {
|
16
|
+
const intl = useIntl();
|
17
|
+
const buttonRef = useRef(null);
|
18
|
+
const [searchValue, setSearchValue, debouncedSearchValue] = useDebouncedState("", 300);
|
19
|
+
const filteredOptions = useMemo(() => {
|
20
|
+
const searchLowerCased = debouncedSearchValue.toLowerCase();
|
21
|
+
return options.filter((option) => option.label.toLowerCase().includes(searchLowerCased));
|
22
|
+
}, [options, debouncedSearchValue]);
|
23
|
+
const onSelect = useCallback((item, closeDropdown) => {
|
24
|
+
scrollToStart();
|
25
|
+
onItemClick(item);
|
26
|
+
closeDropdown();
|
27
|
+
}, [scrollToStart, onItemClick]);
|
28
|
+
return (React.createElement("div", { className: e("filter") },
|
29
|
+
React.createElement(Dropdown, { renderButton: ({ toggleDropdown }) => (React.createElement(UiButton, { ref: buttonRef, label: selected ? selected : label, onClick: () => toggleDropdown(), size: "small", iconAfter: "navigateDown" })), alignPoints: [{ align: "bl tl" }], renderBody: ({ closeDropdown }) => (React.createElement(UiAutofocus, null,
|
30
|
+
React.createElement(DropdownList, { items: filteredOptions, renderItem: ({ item }) => (React.createElement(AsyncTableDropdownItem, { label: item.label ?? String(item.value), onSelect: () => onSelect(item, closeDropdown), isSelected: item.value === selected })), showSearch: true, searchPlaceholder: intl.formatMessage(messages.filterSearchPlaceholder), searchString: searchValue, onSearch: setSearchValue, title: label, renderVirtualisedList: true, onKeyDownSelect: (item) => onSelect(item, closeDropdown) }))) })));
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=AsyncTableFilter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableFilter.js","sourceRoot":"","sources":["../../src/Table/AsyncTableFilter.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { IAsyncTableHeaderProps } from "./types.js";
|
3
|
+
export declare function AsyncTableHeader<T>({ columns, handleColumnClick, sortBy, sortDirection, hasCheckbox, width, small, largeRow, }: IAsyncTableHeaderProps<T>): React.JSX.Element;
|
4
|
+
//# sourceMappingURL=AsyncTableHeader.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableHeader.d.ts","sourceRoot":"","sources":["../../src/Table/AsyncTableHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAW,MAAM,YAAY,CAAC;AAS7D,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAChC,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,GACX,EAAE,sBAAsB,CAAC,CAAC,CAAC,qBAiC3B"}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
3
|
+
import { e } from "./asyncTableBem.js";
|
4
|
+
import { UiIcon } from "../@ui/UiIcon/UiIcon.js";
|
5
|
+
import { AsyncTableCheckbox } from "./AsyncTableCheckbox.js";
|
6
|
+
import { makeTabsKeyboardNavigation } from "../@ui/@utils/keyboardNavigation.js";
|
7
|
+
import { getColumnWidth } from "./utils.js";
|
8
|
+
const arrowIcon = React.createElement(UiIcon, { type: "dropDown", size: 14, color: "complementary-6" });
|
9
|
+
export function AsyncTableHeader({ columns, handleColumnClick, sortBy, sortDirection, hasCheckbox, width, small, largeRow, }) {
|
10
|
+
const { handleKeyDown, isFocused } = useHeaderKeyboardNavigation(columns, handleColumnClick);
|
11
|
+
return (React.createElement("div", { tabIndex: 0, className: e("header", { small }), role: "row", onKeyDown: handleKeyDown, style: { width } },
|
12
|
+
hasCheckbox ? React.createElement(AsyncTableCheckbox, null) : null,
|
13
|
+
columns.map((column, index) => {
|
14
|
+
const width = getColumnWidth(!!column.renderMenu, largeRow, column.width);
|
15
|
+
const sorted = sortBy && sortBy === column.key;
|
16
|
+
const desc = sorted && sortDirection === "desc";
|
17
|
+
const { sortable } = column;
|
18
|
+
return (React.createElement("div", { key: index, onClick: () => sortable && handleColumnClick(column.key), className: e("cell", { sorted, desc, sortable, isFocused: isFocused(index) }), style: { width }, role: "columnheader", "aria-sort": sorted ? (desc ? "descending" : "ascending") : "none" },
|
19
|
+
React.createElement("span", { className: e("text") }, column.label),
|
20
|
+
sortable ? React.createElement("div", { className: e("sort") }, arrowIcon) : null));
|
21
|
+
})));
|
22
|
+
}
|
23
|
+
function useHeaderKeyboardNavigation(columns, handleColumnClick) {
|
24
|
+
const [focusedIndexPosition, setFocusedIndexPosition] = useState(0);
|
25
|
+
useEffect(() => {
|
26
|
+
setFocusedIndexPosition(0);
|
27
|
+
}, [columns]);
|
28
|
+
const focusableIndexes = useMemo(() => columns.map((_, index) => index).filter((index) => columns[index].sortable), [columns]);
|
29
|
+
const handleKeyDown = useMemo(() => {
|
30
|
+
return makeTabsKeyboardNavigation({
|
31
|
+
onSelect: () => {
|
32
|
+
if (columns[focusableIndexes[focusedIndexPosition]].sortable) {
|
33
|
+
handleColumnClick(columns[focusableIndexes[focusedIndexPosition]].key);
|
34
|
+
}
|
35
|
+
},
|
36
|
+
onFocusNext: () => {
|
37
|
+
setFocusedIndexPosition(focusedIndexPosition >= focusableIndexes.length - 1 ? 0 : focusedIndexPosition + 1);
|
38
|
+
},
|
39
|
+
onFocusPrevious: () => {
|
40
|
+
setFocusedIndexPosition(focusedIndexPosition <= 0 ? focusableIndexes.length - 1 : focusedIndexPosition - 1);
|
41
|
+
},
|
42
|
+
onFocusFirst: () => {
|
43
|
+
setFocusedIndexPosition(0);
|
44
|
+
},
|
45
|
+
onFocusLast: () => {
|
46
|
+
setFocusedIndexPosition(focusableIndexes.length - 1);
|
47
|
+
},
|
48
|
+
});
|
49
|
+
}, [handleColumnClick, focusedIndexPosition, setFocusedIndexPosition, focusableIndexes, columns]);
|
50
|
+
const isFocused = useCallback((index) => {
|
51
|
+
return focusableIndexes[focusedIndexPosition] === index;
|
52
|
+
}, [focusableIndexes, focusedIndexPosition]);
|
53
|
+
return {
|
54
|
+
handleKeyDown,
|
55
|
+
isFocused,
|
56
|
+
};
|
57
|
+
}
|
58
|
+
//# sourceMappingURL=AsyncTableHeader.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableHeader.js","sourceRoot":"","sources":["../../src/Table/AsyncTableHeader.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { IAsyncTableRowProps } from "./types.js";
|
3
|
+
export declare function AsyncTableRow<T extends {
|
4
|
+
id: string;
|
5
|
+
}>({ item, columns, onSelect, isSelected, hasCheckbox, isLarge, }: IAsyncTableRowProps<T>): React.JSX.Element;
|
6
|
+
//# sourceMappingURL=AsyncTableRow.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableRow.d.ts","sourceRoot":"","sources":["../../src/Table/AsyncTableRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAO3C,OAAO,EAAE,mBAAmB,EAAW,MAAM,YAAY,CAAC;AAG1D,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,EACpD,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACX,OAAO,GACV,EAAE,mBAAmB,CAAC,CAAC,CAAC,qBAkBxB"}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React, { useCallback } from "react";
|
3
|
+
import { e } from "./asyncTableBem.js";
|
4
|
+
import { AsyncTableCheckbox } from "./AsyncTableCheckbox.js";
|
5
|
+
import { UiIconButton } from "../@ui/UiIconButton/UiIconButton.js";
|
6
|
+
import { Dropdown } from "../Dropdown/Dropdown.js";
|
7
|
+
import { useIntl } from "react-intl";
|
8
|
+
import { messages } from "./locales.js";
|
9
|
+
import { getColumnWidth } from "./utils.js";
|
10
|
+
export function AsyncTableRow({ item, columns, onSelect, isSelected, hasCheckbox, isLarge, }) {
|
11
|
+
const { renderCellContent } = useRenderCellContent({ isLarge });
|
12
|
+
return (React.createElement("div", { className: e("row", { large: isLarge }) },
|
13
|
+
hasCheckbox ? React.createElement(AsyncTableCheckbox, { checked: isSelected, onChange: () => onSelect(item) }) : null,
|
14
|
+
columns.map((column, index) => {
|
15
|
+
const { bold, renderMenu, width: widthProp } = column;
|
16
|
+
const width = getColumnWidth(!!renderMenu, isLarge, widthProp);
|
17
|
+
const key = index;
|
18
|
+
return (React.createElement("div", { style: { width }, key: key, className: e("cell", { bold }) }, renderCellContent(column, item)));
|
19
|
+
})));
|
20
|
+
}
|
21
|
+
const useRenderCellContent = ({ isLarge }) => {
|
22
|
+
const intl = useIntl();
|
23
|
+
const renderRoleIconWithWrapper = useCallback((renderRoleIcon, item) => {
|
24
|
+
return renderRoleIcon ? React.createElement("div", { className: e("role-icon") }, renderRoleIcon(item)) : null;
|
25
|
+
}, []);
|
26
|
+
const renderBadgeWithWrapper = useCallback((renderBadge, item) => {
|
27
|
+
return renderBadge ? React.createElement("div", { className: e("badge") }, renderBadge(item)) : null;
|
28
|
+
}, []);
|
29
|
+
const renderPrefixIconWithWrapper = useCallback((renderPrefixIcon, item) => {
|
30
|
+
return renderPrefixIcon ? React.createElement("div", { className: e("prefix-icon") }, renderPrefixIcon(item)) : null;
|
31
|
+
}, []);
|
32
|
+
const renderSuffixIconWithWrapper = useCallback((renderSuffixIcon, item) => {
|
33
|
+
return renderSuffixIcon ? React.createElement("div", { className: e("suffix-icon") }, renderSuffixIcon(item)) : null;
|
34
|
+
}, []);
|
35
|
+
const renderMenuIcon = useCallback((renderMenu, item) => {
|
36
|
+
const label = intl.formatMessage(messages.moreActions);
|
37
|
+
return (React.createElement(Dropdown, { renderButton: ({ toggleDropdown, isOpen }) => (React.createElement(UiIconButton, { size: isLarge ? "xxlarge" : "xlarge", icon: "ellipsis", label: label, variant: "table", onClick: () => toggleDropdown(), isActive: isOpen, accessibilityConfig: {
|
38
|
+
ariaLabel: label,
|
39
|
+
} })), alignPoints: [{ align: "br tr" }], renderBody: () => renderMenu(item) }));
|
40
|
+
}, [intl, isLarge]);
|
41
|
+
const renderCellContent = useCallback(({ renderButton, renderMenu, renderRoleIcon, renderPrefixIcon, renderSuffixIcon, renderBadge, getMultiLineContent, key, }, item) => {
|
42
|
+
const textContent = String(item[key]);
|
43
|
+
if (renderButton) {
|
44
|
+
return renderButton(item);
|
45
|
+
}
|
46
|
+
if (renderMenu) {
|
47
|
+
return renderMenuIcon(renderMenu, item);
|
48
|
+
}
|
49
|
+
return (React.createElement(React.Fragment, null,
|
50
|
+
renderRoleIconWithWrapper(renderRoleIcon, item),
|
51
|
+
renderPrefixIconWithWrapper(renderPrefixIcon, item),
|
52
|
+
React.createElement("div", { title: textContent, className: e("text", { "multi-line": !!getMultiLineContent }) }, getMultiLineContent
|
53
|
+
? getMultiLineContent(item).map((line, index) => React.createElement("span", { key: index }, line))
|
54
|
+
: textContent),
|
55
|
+
renderSuffixIconWithWrapper(renderSuffixIcon, item),
|
56
|
+
renderBadgeWithWrapper(renderBadge, item)));
|
57
|
+
}, [
|
58
|
+
renderMenuIcon,
|
59
|
+
renderRoleIconWithWrapper,
|
60
|
+
renderPrefixIconWithWrapper,
|
61
|
+
renderSuffixIconWithWrapper,
|
62
|
+
renderBadgeWithWrapper,
|
63
|
+
]);
|
64
|
+
return {
|
65
|
+
renderCellContent,
|
66
|
+
};
|
67
|
+
};
|
68
|
+
//# sourceMappingURL=AsyncTableRow.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableRow.js","sourceRoot":"","sources":["../../src/Table/AsyncTableRow.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableTitle.d.ts","sourceRoot":"","sources":["../../src/Table/AsyncTableTitle.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAC;AAOtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,eAAe,6CAA8C,qBAAqB,sBAoD9F,CAAC"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React, { useCallback, useEffect } from "react";
|
3
|
+
import { e } from "./asyncTableBem.js";
|
4
|
+
import { Input } from "../Form/Input.js";
|
5
|
+
import { SeparatorLine } from "../SeparatorLine/SeparatorLine.js";
|
6
|
+
import { useDebouncedState } from "../utils/debounce.js";
|
7
|
+
import { useIntl } from "react-intl";
|
8
|
+
import { messages } from "./locales.js";
|
9
|
+
export const AsyncTableTitle = ({ title, onSearch, renderIcon, actions }) => {
|
10
|
+
const intl = useIntl();
|
11
|
+
const [searchValue, setSearchValue, debouncedSearchValue] = useDebouncedState("", 300);
|
12
|
+
useEffect(() => {
|
13
|
+
onSearch?.(debouncedSearchValue);
|
14
|
+
}, [debouncedSearchValue, onSearch]);
|
15
|
+
const renderIconWithWrapper = useCallback(() => {
|
16
|
+
return renderIcon ? React.createElement("div", { className: e("title-icon") }, renderIcon()) : null;
|
17
|
+
}, [renderIcon]);
|
18
|
+
const renderSearchWithWrapper = useCallback(() => {
|
19
|
+
const placeholder = intl.formatMessage(messages.titleSearchPlaceholder);
|
20
|
+
return onSearch ? (React.createElement("div", { className: e("title-search") },
|
21
|
+
React.createElement(Input, { isSearch: true, type: "search", clearOnEsc: true, placeholder: placeholder, accessibilityConfig: {
|
22
|
+
ariaLabel: placeholder,
|
23
|
+
}, value: searchValue, onChange: setSearchValue }))) : null;
|
24
|
+
}, [onSearch, intl, searchValue, setSearchValue]);
|
25
|
+
const renderActionsWithWrapper = useCallback(() => {
|
26
|
+
return actions ? (React.createElement("div", { key: "actions", className: e("title-actions") }, actions.map((action, index) => (React.createElement(React.Fragment, { key: index }, action.renderAction()))))) : null;
|
27
|
+
}, [actions]);
|
28
|
+
return (React.createElement("div", { className: e("title") },
|
29
|
+
React.createElement("h1", { className: e("title-text") }, title),
|
30
|
+
renderIconWithWrapper(),
|
31
|
+
React.createElement("div", { className: e("title-divider") },
|
32
|
+
React.createElement(SeparatorLine, null)),
|
33
|
+
renderSearchWithWrapper(),
|
34
|
+
renderActionsWithWrapper()));
|
35
|
+
};
|
36
|
+
//# sourceMappingURL=AsyncTableTitle.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableTitle.js","sourceRoot":"","sources":["../../src/Table/AsyncTableTitle.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAyB,EAAE,EAAE;IAC/F,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,WAAW,EAAE,cAAc,EAAE,oBAAoB,CAAC,GAAG,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEvF,SAAS,CAAC,GAAG,EAAE;QACX,QAAQ,EAAE,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErC,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3C,OAAO,UAAU,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,IAAG,UAAU,EAAE,CAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QACxE,OAAO,QAAQ,CAAC,CAAC,CAAC,CACd,6BAAK,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC;YAC7B,oBAAC,KAAK,IACF,QAAQ,EAAE,IAAI,EACd,IAAI,EAAC,QAAQ,EACb,UAAU,QACV,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE;oBACjB,SAAS,EAAE,WAAW;iBACzB,EACD,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,GAC1B,CACA,CACT,CAAC,CAAC,CAAC,IAAI,CAAC;IACb,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElD,MAAM,wBAAwB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,CACb,6BAAK,GAAG,EAAC,SAAS,EAAC,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,IAC3C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,IAAG,MAAM,CAAC,YAAY,EAAE,CAAkB,CACvE,CAAC,CACA,CACT,CAAC,CAAC,CAAC,IAAI,CAAC;IACb,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;QACtB,4BAAI,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,IAAG,KAAK,CAAM;QAC3C,qBAAqB,EAAE;QACxB,6BAAK,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC;YAC9B,oBAAC,aAAa,OAAG,CACf;QACL,uBAAuB,EAAE;QACzB,wBAAwB,EAAE,CACzB,CACT,CAAC;AACN,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableToolbar.d.ts","sourceRoot":"","sources":["../../src/Table/AsyncTableToolbar.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAOpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,qBAqB5F"}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React, { useCallback, useMemo } from "react";
|
3
|
+
import { e } from "./asyncTableBem.js";
|
4
|
+
import { AsyncTableFilter } from "./AsyncTableFilter.js";
|
5
|
+
import { AsyncTableCheckbox } from "./AsyncTableCheckbox.js";
|
6
|
+
import { AsyncTableBulkActions } from "./AsyncTableBulkActions.js";
|
7
|
+
import { useIntl } from "react-intl";
|
8
|
+
import { messages } from "./locales.js";
|
9
|
+
export function AsyncTableToolbar(props) {
|
10
|
+
const { isChecked, isCheckboxIndeterminate, hasContent, checkbox, handleCheckboxChange, renderBulkActions, renderFilters, } = useAsyncTableToolbar(props);
|
11
|
+
return hasContent ? (React.createElement("div", { className: e("toolbar", { checkbox }) },
|
12
|
+
React.createElement(AsyncTableCheckbox, { onChange: handleCheckboxChange, checked: isChecked, indeterminate: isCheckboxIndeterminate }),
|
13
|
+
renderBulkActions(),
|
14
|
+
renderFilters())) : null;
|
15
|
+
}
|
16
|
+
const useAsyncTableToolbar = ({ filters, bulkActions, scrollToStart, selectedItemIds, setSelectedItemIds, totalItemsCount, items, }) => {
|
17
|
+
const intl = useIntl();
|
18
|
+
const handleCheckboxChange = useCallback(() => {
|
19
|
+
setSelectedItemIds(selectedItemIds.length === 0 ? items.map((item) => item.id) : []);
|
20
|
+
}, [selectedItemIds, items, setSelectedItemIds]);
|
21
|
+
const renderBulkActions = useCallback(() => {
|
22
|
+
if (bulkActions) {
|
23
|
+
return (React.createElement(React.Fragment, null,
|
24
|
+
React.createElement("div", { className: e("toolbar-selected-count") }, intl.formatMessage(messages.selectedCount, {
|
25
|
+
selectedCount: selectedItemIds.length,
|
26
|
+
totalCount: totalItemsCount,
|
27
|
+
})),
|
28
|
+
selectedItemIds.length > 0 ? React.createElement(AsyncTableBulkActions, { bulkActions: bulkActions }) : null));
|
29
|
+
}
|
30
|
+
return null;
|
31
|
+
}, [bulkActions, selectedItemIds, totalItemsCount, intl]);
|
32
|
+
const renderFilters = useCallback(() => {
|
33
|
+
return filters.length ? (React.createElement(React.Fragment, null,
|
34
|
+
React.createElement("div", { className: e("toolbar-label") }, intl.formatMessage(messages.filterLabel)),
|
35
|
+
filters.map((filter) => (React.createElement(AsyncTableFilter, { key: filter.label, scrollToStart: scrollToStart, ...filter }))))) : null;
|
36
|
+
}, [filters, scrollToStart, intl]);
|
37
|
+
const hasContent = useMemo(() => {
|
38
|
+
return filters?.length || bulkActions;
|
39
|
+
}, [filters, bulkActions]);
|
40
|
+
const isChecked = useMemo(() => {
|
41
|
+
return !!selectedItemIds?.length;
|
42
|
+
}, [selectedItemIds]);
|
43
|
+
const isCheckboxIndeterminate = useMemo(() => {
|
44
|
+
return !!bulkActions && selectedItemIds?.length !== items.length;
|
45
|
+
}, [bulkActions, selectedItemIds, items]);
|
46
|
+
return {
|
47
|
+
isChecked,
|
48
|
+
isCheckboxIndeterminate,
|
49
|
+
hasContent,
|
50
|
+
checkbox: !!bulkActions,
|
51
|
+
handleCheckboxChange,
|
52
|
+
renderBulkActions,
|
53
|
+
renderFilters,
|
54
|
+
};
|
55
|
+
};
|
56
|
+
//# sourceMappingURL=AsyncTableToolbar.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AsyncTableToolbar.js","sourceRoot":"","sources":["../../src/Table/AsyncTableToolbar.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { IColumn } from "./types.js";
|
3
|
+
import { UiPagedVirtualListSkeletonItemProps } from "../@ui/UiPagedVirtualList/UiPagedVirtualList.js";
|
4
|
+
export declare function skeletonItemFactory<T extends {
|
5
|
+
id: string;
|
6
|
+
}>(columns: IColumn<T>[], hasCheckbox?: boolean): React.ComponentType<UiPagedVirtualListSkeletonItemProps>;
|
7
|
+
//# sourceMappingURL=SkeletonItemFactory.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SkeletonItemFactory.d.ts","sourceRoot":"","sources":["../../src/Table/SkeletonItemFactory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,mCAAmC,EAAE,MAAM,iDAAiD,CAAC;AAQtG,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACxD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EACrB,WAAW,CAAC,EAAE,OAAO,GACtB,KAAK,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAgB1D"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React from "react";
|
3
|
+
import { UiSkeleton } from "../@ui/UiSkeleton/UiSkeleton.js";
|
4
|
+
import { CHECKBOX_COLUMN_WIDTH, COLUMN_PADDING, MENU_COLUMN_WIDTH, SKELETON_ITEM_HEIGHT, } from "./constants.js";
|
5
|
+
export function skeletonItemFactory(columns, hasCheckbox) {
|
6
|
+
return function SkeletonItem() {
|
7
|
+
const columnWidths = columns.map((col) => (col.renderMenu ? MENU_COLUMN_WIDTH : col.width));
|
8
|
+
const widths = hasCheckbox ? [CHECKBOX_COLUMN_WIDTH, ...columnWidths] : columnWidths;
|
9
|
+
return (React.createElement(UiSkeleton, { itemHeight: SKELETON_ITEM_HEIGHT, itemWidth: widths, itemPadding: COLUMN_PADDING, itemsCount: widths.length, direction: "row", itemsGap: 0 }));
|
10
|
+
};
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=SkeletonItemFactory.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SkeletonItemFactory.js","sourceRoot":"","sources":["../../src/Table/SkeletonItemFactory.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACH,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,mBAAmB,CAC/B,OAAqB,EACrB,WAAqB;IAErB,OAAO,SAAS,YAAY;QACxB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAErF,OAAO,CACH,oBAAC,UAAU,IACP,UAAU,EAAE,oBAAoB,EAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EACzB,SAAS,EAAC,KAAK,EACf,QAAQ,EAAE,CAAC,GACb,CACL,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"asyncTableBem.d.ts","sourceRoot":"","sources":["../../src/Table/asyncTableBem.ts"],"names":[],"mappings":"AAGA,eAAO,MAAQ,CAAC,iEAAE,CAAC,gFAAiC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"asyncTableBem.js","sourceRoot":"","sources":["../../src/Table/asyncTableBem.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
export declare const CHECKBOX_COLUMN_WIDTH = 34;
|
2
|
+
export declare const ROW_HEIGHT_NORMAL = 45;
|
3
|
+
export declare const ROW_HEIGHT_LARGE = 55;
|
4
|
+
export declare const COLUMN_PADDING = 10;
|
5
|
+
export declare const MENU_COLUMN_WIDTH = 55;
|
6
|
+
export declare const MENU_COLUMN_WIDTH_LARGE = 65;
|
7
|
+
export declare const SKELETON_ITEM_HEIGHT = 14;
|
8
|
+
export declare const SKELETON_ITEM_GAP = 0;
|
9
|
+
export declare const SCROLLBAR_WIDTH = 10;
|
10
|
+
//# sourceMappingURL=constants.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/Table/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,eAAO,MAAM,eAAe,KAAK,CAAC"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
export const CHECKBOX_COLUMN_WIDTH = 34;
|
3
|
+
export const ROW_HEIGHT_NORMAL = 45;
|
4
|
+
export const ROW_HEIGHT_LARGE = 55;
|
5
|
+
export const COLUMN_PADDING = 10;
|
6
|
+
export const MENU_COLUMN_WIDTH = 55;
|
7
|
+
export const MENU_COLUMN_WIDTH_LARGE = 65;
|
8
|
+
export const SKELETON_ITEM_HEIGHT = 14;
|
9
|
+
export const SKELETON_ITEM_GAP = 0;
|
10
|
+
export const SCROLLBAR_WIDTH = 10;
|
11
|
+
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/Table/constants.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Table/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACR,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,sBAAsB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Table/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAYhC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../src/Table/locales.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CASrD,CAAC"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import { defineMessages } from "react-intl";
|
3
|
+
export const messages = defineMessages({
|
4
|
+
moreActions: { id: "table.moreActions" },
|
5
|
+
titleSearchPlaceholder: { id: "table.title.searchPlaceholder" },
|
6
|
+
filterLabel: { id: "table.filter.label" },
|
7
|
+
filterSearchPlaceholder: { id: "table.filter.searchPlaceholder" },
|
8
|
+
chooseAction: { id: "table.bulkActions.chooseAction" },
|
9
|
+
selectedCount: { id: "table.bulkActions.selectedCount" },
|
10
|
+
noMatchFound: { id: "table.emptyState.noMatch" },
|
11
|
+
tryAdjustingFilters: { id: "table.emptyState.tryAdjustingFilters" },
|
12
|
+
});
|
13
|
+
//# sourceMappingURL=locales.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"locales.js","sourceRoot":"","sources":["../../src/Table/locales.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAqB,MAAM,YAAY,CAAC;AAE/D,MAAM,CAAC,MAAM,QAAQ,GAAsC,cAAc,CAAC;IACtE,WAAW,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE;IACxC,sBAAsB,EAAE,EAAE,EAAE,EAAE,+BAA+B,EAAE;IAC/D,WAAW,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE;IACzC,uBAAuB,EAAE,EAAE,EAAE,EAAE,gCAAgC,EAAE;IACjE,YAAY,EAAE,EAAE,EAAE,EAAE,gCAAgC,EAAE;IACtD,aAAa,EAAE,EAAE,EAAE,EAAE,iCAAiC,EAAE;IACxD,YAAY,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE;IAChD,mBAAmB,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;CACtE,CAAC,CAAC"}
|