@datarobot/design-system 28.8.4 → 28.9.0
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/cjs/file-tree/file-tree-loading.d.ts +8 -0
- package/cjs/file-tree/file-tree-loading.js +71 -0
- package/cjs/file-tree/file-tree.d.ts +9 -1
- package/cjs/file-tree/file-tree.js +11 -1
- package/cjs/file-tree/index.d.ts +2 -1
- package/cjs/file-tree/index.js +7 -0
- package/cjs/table-react/components/table.js +1 -1
- package/cjs/table-react/table-react.d.ts +0 -1
- package/cjs/table-react/table-react.js +0 -1
- package/esm/file-tree/file-tree-loading.d.ts +8 -0
- package/esm/file-tree/file-tree-loading.js +64 -0
- package/esm/file-tree/file-tree.d.ts +9 -1
- package/esm/file-tree/file-tree.js +12 -2
- package/esm/file-tree/index.d.ts +2 -1
- package/esm/file-tree/index.js +2 -1
- package/esm/table-react/components/table.js +1 -1
- package/esm/table-react/table-react.d.ts +0 -1
- package/esm/table-react/table-react.js +0 -1
- package/js/bundle/bundle.js +94 -5
- package/js/bundle/bundle.min.js +1 -1
- package/js/bundle/index.d.ts +19 -3
- package/package.json +1 -1
- package/styles/index.css +114 -72
- package/styles/index.min.css +1 -1
- package/styles/themes/light.css +42 -0
- package/styles/themes/light.min.css +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type FileTreeLoadingProps = {
|
|
2
|
+
loadingPattern: number[];
|
|
3
|
+
rootClass?: string;
|
|
4
|
+
rootTestId?: string;
|
|
5
|
+
branchTestId?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function FileTreeLoading({ loadingPattern, rootClass, rootTestId, branchTestId, }: FileTreeLoadingProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FileTreeLoading = FileTreeLoading;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
var _skeleton = require("../skeleton");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
function getRandomWidth() {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
if (window.IS_SNAPSHOT_ENV) {
|
|
16
|
+
return 70;
|
|
17
|
+
}
|
|
18
|
+
return Math.round(Math.random() * 3 + 5) * 10; // generates random width between 60% and 80%
|
|
19
|
+
}
|
|
20
|
+
function FileTreeLoading({
|
|
21
|
+
loadingPattern,
|
|
22
|
+
rootClass,
|
|
23
|
+
rootTestId,
|
|
24
|
+
branchTestId
|
|
25
|
+
}) {
|
|
26
|
+
const renderSkeletonItem = (level, index) => {
|
|
27
|
+
const width = level === 0 ? '85%' : `${getRandomWidth()}%`; // generates random width between 60% and 80%
|
|
28
|
+
|
|
29
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
|
|
30
|
+
className: "branch-item",
|
|
31
|
+
"test-id": "file-tree-skeleton-item",
|
|
32
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
33
|
+
className: "item",
|
|
34
|
+
style: {
|
|
35
|
+
paddingLeft: `${level * 20}px`
|
|
36
|
+
},
|
|
37
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
38
|
+
className: "file-tree-item-content",
|
|
39
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
40
|
+
className: "item-label",
|
|
41
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
42
|
+
className: "item-icon",
|
|
43
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_skeleton.Skeleton, {
|
|
44
|
+
type: _skeleton.SKELETON_TYPES.CIRCULAR,
|
|
45
|
+
width: 16,
|
|
46
|
+
height: 16,
|
|
47
|
+
testId: `file-tree-skeleton-${level}-${index}-icon`
|
|
48
|
+
})
|
|
49
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_skeleton.Skeleton, {
|
|
50
|
+
type: _skeleton.SKELETON_TYPES.TEXT,
|
|
51
|
+
width: width,
|
|
52
|
+
height: 16,
|
|
53
|
+
testId: `file-tree-skeleton-${level}-${index}`
|
|
54
|
+
})]
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
})
|
|
58
|
+
}, `skeleton-${level}-${index}`);
|
|
59
|
+
};
|
|
60
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
61
|
+
className: (0, _classnames.default)('file-tree-root', rootClass),
|
|
62
|
+
"test-id": rootTestId,
|
|
63
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
|
|
64
|
+
className: "branch",
|
|
65
|
+
"test-id": `${branchTestId}-skeleton`,
|
|
66
|
+
children: loadingPattern.map((level, index) => {
|
|
67
|
+
return renderSkeletonItem(level, index);
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
});
|
|
71
|
+
}
|
|
@@ -53,9 +53,17 @@ export type FileTreeProps = {
|
|
|
53
53
|
* Optional row size prop that dictates action button size.
|
|
54
54
|
*/
|
|
55
55
|
rowSize?: ButtonSizeType;
|
|
56
|
+
/**
|
|
57
|
+
* Shows skeleton isLoading state when true
|
|
58
|
+
*/
|
|
59
|
+
isLoading?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Optional loading pattern to use for skeleton loading state. It's an array of levels to render. Default is [0, 1, 1, 2, 0]
|
|
62
|
+
*/
|
|
63
|
+
loadingPattern?: number[];
|
|
56
64
|
};
|
|
57
65
|
/** Displays a browsable file tree navigation component
|
|
58
66
|
@midnight-gray-supported
|
|
59
67
|
@alpine-light-supported
|
|
60
68
|
*/
|
|
61
|
-
export declare const FileTree: ({ fileTree, folderComponentProps, fileComponentProps, rootClass, fileTestId, folderTestId, rowSize, FileComponent, FolderComponent, ItemContentComponent, rootTestId, branchTestId, itemTestId, disabled, sortingStrategy, }: FileTreeProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
69
|
+
export declare const FileTree: ({ fileTree, folderComponentProps, fileComponentProps, rootClass, fileTestId, folderTestId, rowSize, FileComponent, FolderComponent, ItemContentComponent, rootTestId, branchTestId, itemTestId, disabled, sortingStrategy, isLoading, loadingPattern, }: FileTreeProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -32,11 +32,21 @@ const FileTree = ({
|
|
|
32
32
|
branchTestId = 'file-tree-branch',
|
|
33
33
|
itemTestId = 'file-tree-item-wrapper',
|
|
34
34
|
disabled = false,
|
|
35
|
-
sortingStrategy = value => value
|
|
35
|
+
sortingStrategy = value => value,
|
|
36
|
+
isLoading = false,
|
|
37
|
+
loadingPattern = [0, 1, 1, 2, 0]
|
|
36
38
|
}) => {
|
|
37
39
|
const adapter = (0, _react.useMemo)(() => (0, _fileTreeNavigationAdapter.getFileTreeNavigationAdapter)({
|
|
38
40
|
isExpandedByDefault: !!folderComponentProps?.expand
|
|
39
41
|
}), [!!folderComponentProps?.expand]);
|
|
42
|
+
if (isLoading) {
|
|
43
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FileTreeLoading, {
|
|
44
|
+
loadingPattern: loadingPattern,
|
|
45
|
+
rootClass: rootClass,
|
|
46
|
+
rootTestId: rootTestId,
|
|
47
|
+
branchTestId: branchTestId
|
|
48
|
+
});
|
|
49
|
+
}
|
|
40
50
|
if (!fileTree.length) {
|
|
41
51
|
return null;
|
|
42
52
|
}
|
package/cjs/file-tree/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import FileTreeFolderComponent, { FileTreeFolderComponentProps } from './file-tr
|
|
|
5
5
|
import FileTreeItem, { FileTreeItemProps } from './file-tree-item';
|
|
6
6
|
import FileTreeItemActions, { FileTreeItemActionsActions, FileTreeItemActionsProps } from './file-tree-item-actions';
|
|
7
7
|
import FileTreeItemContent, { FileTreeItemContentComponent, FileTreeItemContentProps, FileTreeItemContentType, FileNodeType } from './file-tree-item-content';
|
|
8
|
+
import { FileTreeLoading } from './file-tree-loading';
|
|
8
9
|
import * as compareUtils from './compareUtils';
|
|
9
|
-
export { FileTreeFileComponent, FileTreeFolderComponent, FileTree, FileTreeItem, FileTreeItemContent, FileTreeItemActions, FILE_TYPE, fileTreeAdapter, cleanUpPath, compareUtils, };
|
|
10
|
+
export { FileTreeFileComponent, FileTreeFolderComponent, FileTree, FileTreeItem, FileTreeItemContent, FileTreeItemActions, FILE_TYPE, fileTreeAdapter, cleanUpPath, compareUtils, FileTreeLoading, };
|
|
10
11
|
export type { FileTreeItemContentComponent, FileTreeFileComponentProps, FileTreeFolderComponentProps, FileTreeItemProps, FileTreeProps, FileTreeItemActionsActions, FileTreeItemActionsProps, FileTreeItemContentType, FileTreeItemContentProps, FileNodeType, FileTreeType, };
|
package/cjs/file-tree/index.js
CHANGED
|
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "FileTreeItemContent", {
|
|
|
45
45
|
return _fileTreeItemContent.default;
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
+
Object.defineProperty(exports, "FileTreeLoading", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _fileTreeLoading.FileTreeLoading;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
48
54
|
Object.defineProperty(exports, "cleanUpPath", {
|
|
49
55
|
enumerable: true,
|
|
50
56
|
get: function () {
|
|
@@ -65,6 +71,7 @@ var _fileTreeFolder = _interopRequireDefault(require("./file-tree-folder"));
|
|
|
65
71
|
var _fileTreeItem = _interopRequireDefault(require("./file-tree-item"));
|
|
66
72
|
var _fileTreeItemActions = _interopRequireDefault(require("./file-tree-item-actions"));
|
|
67
73
|
var _fileTreeItemContent = _interopRequireDefault(require("./file-tree-item-content"));
|
|
74
|
+
var _fileTreeLoading = require("./file-tree-loading");
|
|
68
75
|
var compareUtils = _interopRequireWildcard(require("./compareUtils"));
|
|
69
76
|
exports.compareUtils = compareUtils;
|
|
70
77
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -188,7 +188,7 @@ function Table({
|
|
|
188
188
|
setColumnSizing(touchedResizedColumns);
|
|
189
189
|
}
|
|
190
190
|
}, [width]);
|
|
191
|
-
const tableData = (0, _useLoading.useLoading)(isLoading, afterLoading, data, pagination?.pageSize
|
|
191
|
+
const tableData = (0, _useLoading.useLoading)(isLoading, afterLoading, data, loadingRowCount || pagination?.pageSize);
|
|
192
192
|
const isEmpty = tableData.length === 0 && !errorMessage;
|
|
193
193
|
const tableModel = (0, _reactTable.useReactTable)({
|
|
194
194
|
data: tableData,
|
|
@@ -136,7 +136,6 @@ export type TableReactPropsType<TData, TMeta> = {
|
|
|
136
136
|
* New configurable table that uses [@tanstack/react-table](https://tanstack.com/table) under the hood.
|
|
137
137
|
* Also check the full page table demo [Here](/Controlled Table)
|
|
138
138
|
* @midnight-gray-supported
|
|
139
|
-
* @uxr-only-supported
|
|
140
139
|
* @alpine-light-supported
|
|
141
140
|
*/
|
|
142
141
|
export default function TableReact<IData, IMeta>({ tableContainerTestId, width: defaultWidth, state, handlers, settings, components, classes, ...props }: TableReactPropsType<IData, IMeta>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,7 +13,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
13
13
|
* New configurable table that uses [@tanstack/react-table](https://tanstack.com/table) under the hood.
|
|
14
14
|
* Also check the full page table demo [Here](/Controlled Table)
|
|
15
15
|
* @midnight-gray-supported
|
|
16
|
-
* @uxr-only-supported
|
|
17
16
|
* @alpine-light-supported
|
|
18
17
|
*/
|
|
19
18
|
function TableReact({
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type FileTreeLoadingProps = {
|
|
2
|
+
loadingPattern: number[];
|
|
3
|
+
rootClass?: string;
|
|
4
|
+
rootTestId?: string;
|
|
5
|
+
branchTestId?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function FileTreeLoading({ loadingPattern, rootClass, rootTestId, branchTestId, }: FileTreeLoadingProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { Skeleton, SKELETON_TYPES } from '../skeleton';
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
function getRandomWidth() {
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
if (window.IS_SNAPSHOT_ENV) {
|
|
9
|
+
return 70;
|
|
10
|
+
}
|
|
11
|
+
return Math.round(Math.random() * 3 + 5) * 10; // generates random width between 60% and 80%
|
|
12
|
+
}
|
|
13
|
+
export function FileTreeLoading({
|
|
14
|
+
loadingPattern,
|
|
15
|
+
rootClass,
|
|
16
|
+
rootTestId,
|
|
17
|
+
branchTestId
|
|
18
|
+
}) {
|
|
19
|
+
const renderSkeletonItem = (level, index) => {
|
|
20
|
+
const width = level === 0 ? '85%' : `${getRandomWidth()}%`; // generates random width between 60% and 80%
|
|
21
|
+
|
|
22
|
+
return /*#__PURE__*/_jsx("li", {
|
|
23
|
+
className: "branch-item",
|
|
24
|
+
"test-id": "file-tree-skeleton-item",
|
|
25
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
26
|
+
className: "item",
|
|
27
|
+
style: {
|
|
28
|
+
paddingLeft: `${level * 20}px`
|
|
29
|
+
},
|
|
30
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
31
|
+
className: "file-tree-item-content",
|
|
32
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
33
|
+
className: "item-label",
|
|
34
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
35
|
+
className: "item-icon",
|
|
36
|
+
children: /*#__PURE__*/_jsx(Skeleton, {
|
|
37
|
+
type: SKELETON_TYPES.CIRCULAR,
|
|
38
|
+
width: 16,
|
|
39
|
+
height: 16,
|
|
40
|
+
testId: `file-tree-skeleton-${level}-${index}-icon`
|
|
41
|
+
})
|
|
42
|
+
}), /*#__PURE__*/_jsx(Skeleton, {
|
|
43
|
+
type: SKELETON_TYPES.TEXT,
|
|
44
|
+
width: width,
|
|
45
|
+
height: 16,
|
|
46
|
+
testId: `file-tree-skeleton-${level}-${index}`
|
|
47
|
+
})]
|
|
48
|
+
})
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
}, `skeleton-${level}-${index}`);
|
|
52
|
+
};
|
|
53
|
+
return /*#__PURE__*/_jsx("div", {
|
|
54
|
+
className: classNames('file-tree-root', rootClass),
|
|
55
|
+
"test-id": rootTestId,
|
|
56
|
+
children: /*#__PURE__*/_jsx("ul", {
|
|
57
|
+
className: "branch",
|
|
58
|
+
"test-id": `${branchTestId}-skeleton`,
|
|
59
|
+
children: loadingPattern.map((level, index) => {
|
|
60
|
+
return renderSkeletonItem(level, index);
|
|
61
|
+
})
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
}
|
|
@@ -53,9 +53,17 @@ export type FileTreeProps = {
|
|
|
53
53
|
* Optional row size prop that dictates action button size.
|
|
54
54
|
*/
|
|
55
55
|
rowSize?: ButtonSizeType;
|
|
56
|
+
/**
|
|
57
|
+
* Shows skeleton isLoading state when true
|
|
58
|
+
*/
|
|
59
|
+
isLoading?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Optional loading pattern to use for skeleton loading state. It's an array of levels to render. Default is [0, 1, 1, 2, 0]
|
|
62
|
+
*/
|
|
63
|
+
loadingPattern?: number[];
|
|
56
64
|
};
|
|
57
65
|
/** Displays a browsable file tree navigation component
|
|
58
66
|
@midnight-gray-supported
|
|
59
67
|
@alpine-light-supported
|
|
60
68
|
*/
|
|
61
|
-
export declare const FileTree: ({ fileTree, folderComponentProps, fileComponentProps, rootClass, fileTestId, folderTestId, rowSize, FileComponent, FolderComponent, ItemContentComponent, rootTestId, branchTestId, itemTestId, disabled, sortingStrategy, }: FileTreeProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
69
|
+
export declare const FileTree: ({ fileTree, folderComponentProps, fileComponentProps, rootClass, fileTestId, folderTestId, rowSize, FileComponent, FolderComponent, ItemContentComponent, rootTestId, branchTestId, itemTestId, disabled, sortingStrategy, isLoading, loadingPattern, }: FileTreeProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -3,7 +3,7 @@ import classNames from 'classnames';
|
|
|
3
3
|
import { TreeNavigationProvider } from '../hooks/use-tree-navigation';
|
|
4
4
|
import { FILE_TYPE } from './file-tree-adapter';
|
|
5
5
|
import { getFileTreeNavigationAdapter } from './file-tree-navigation-adapter';
|
|
6
|
-
import { FileTreeFolderComponent, FileTreeFileComponent, FileTreeItemContent } from '.';
|
|
6
|
+
import { FileTreeFolderComponent, FileTreeFileComponent, FileTreeItemContent, FileTreeLoading } from '.';
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
/** Displays a browsable file tree navigation component
|
|
9
9
|
@midnight-gray-supported
|
|
@@ -24,11 +24,21 @@ export const FileTree = ({
|
|
|
24
24
|
branchTestId = 'file-tree-branch',
|
|
25
25
|
itemTestId = 'file-tree-item-wrapper',
|
|
26
26
|
disabled = false,
|
|
27
|
-
sortingStrategy = value => value
|
|
27
|
+
sortingStrategy = value => value,
|
|
28
|
+
isLoading = false,
|
|
29
|
+
loadingPattern = [0, 1, 1, 2, 0]
|
|
28
30
|
}) => {
|
|
29
31
|
const adapter = useMemo(() => getFileTreeNavigationAdapter({
|
|
30
32
|
isExpandedByDefault: !!folderComponentProps?.expand
|
|
31
33
|
}), [!!folderComponentProps?.expand]);
|
|
34
|
+
if (isLoading) {
|
|
35
|
+
return /*#__PURE__*/_jsx(FileTreeLoading, {
|
|
36
|
+
loadingPattern: loadingPattern,
|
|
37
|
+
rootClass: rootClass,
|
|
38
|
+
rootTestId: rootTestId,
|
|
39
|
+
branchTestId: branchTestId
|
|
40
|
+
});
|
|
41
|
+
}
|
|
32
42
|
if (!fileTree.length) {
|
|
33
43
|
return null;
|
|
34
44
|
}
|
package/esm/file-tree/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import FileTreeFolderComponent, { FileTreeFolderComponentProps } from './file-tr
|
|
|
5
5
|
import FileTreeItem, { FileTreeItemProps } from './file-tree-item';
|
|
6
6
|
import FileTreeItemActions, { FileTreeItemActionsActions, FileTreeItemActionsProps } from './file-tree-item-actions';
|
|
7
7
|
import FileTreeItemContent, { FileTreeItemContentComponent, FileTreeItemContentProps, FileTreeItemContentType, FileNodeType } from './file-tree-item-content';
|
|
8
|
+
import { FileTreeLoading } from './file-tree-loading';
|
|
8
9
|
import * as compareUtils from './compareUtils';
|
|
9
|
-
export { FileTreeFileComponent, FileTreeFolderComponent, FileTree, FileTreeItem, FileTreeItemContent, FileTreeItemActions, FILE_TYPE, fileTreeAdapter, cleanUpPath, compareUtils, };
|
|
10
|
+
export { FileTreeFileComponent, FileTreeFolderComponent, FileTree, FileTreeItem, FileTreeItemContent, FileTreeItemActions, FILE_TYPE, fileTreeAdapter, cleanUpPath, compareUtils, FileTreeLoading, };
|
|
10
11
|
export type { FileTreeItemContentComponent, FileTreeFileComponentProps, FileTreeFolderComponentProps, FileTreeItemProps, FileTreeProps, FileTreeItemActionsActions, FileTreeItemActionsProps, FileTreeItemContentType, FileTreeItemContentProps, FileNodeType, FileTreeType, };
|
package/esm/file-tree/index.js
CHANGED
|
@@ -5,5 +5,6 @@ import FileTreeFolderComponent from './file-tree-folder';
|
|
|
5
5
|
import FileTreeItem from './file-tree-item';
|
|
6
6
|
import FileTreeItemActions from './file-tree-item-actions';
|
|
7
7
|
import FileTreeItemContent from './file-tree-item-content';
|
|
8
|
+
import { FileTreeLoading } from './file-tree-loading';
|
|
8
9
|
import * as compareUtils from './compareUtils';
|
|
9
|
-
export { FileTreeFileComponent, FileTreeFolderComponent, FileTree, FileTreeItem, FileTreeItemContent, FileTreeItemActions, FILE_TYPE, fileTreeAdapter, cleanUpPath, compareUtils };
|
|
10
|
+
export { FileTreeFileComponent, FileTreeFolderComponent, FileTree, FileTreeItem, FileTreeItemContent, FileTreeItemActions, FILE_TYPE, fileTreeAdapter, cleanUpPath, compareUtils, FileTreeLoading };
|
|
@@ -180,7 +180,7 @@ export function Table({
|
|
|
180
180
|
setColumnSizing(touchedResizedColumns);
|
|
181
181
|
}
|
|
182
182
|
}, [width]);
|
|
183
|
-
const tableData = useLoading(isLoading, afterLoading, data, pagination?.pageSize
|
|
183
|
+
const tableData = useLoading(isLoading, afterLoading, data, loadingRowCount || pagination?.pageSize);
|
|
184
184
|
const isEmpty = tableData.length === 0 && !errorMessage;
|
|
185
185
|
const tableModel = useReactTable({
|
|
186
186
|
data: tableData,
|
|
@@ -136,7 +136,6 @@ export type TableReactPropsType<TData, TMeta> = {
|
|
|
136
136
|
* New configurable table that uses [@tanstack/react-table](https://tanstack.com/table) under the hood.
|
|
137
137
|
* Also check the full page table demo [Here](/Controlled Table)
|
|
138
138
|
* @midnight-gray-supported
|
|
139
|
-
* @uxr-only-supported
|
|
140
139
|
* @alpine-light-supported
|
|
141
140
|
*/
|
|
142
141
|
export default function TableReact<IData, IMeta>({ tableContainerTestId, width: defaultWidth, state, handlers, settings, components, classes, ...props }: TableReactPropsType<IData, IMeta>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,7 +6,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
6
|
* New configurable table that uses [@tanstack/react-table](https://tanstack.com/table) under the hood.
|
|
7
7
|
* Also check the full page table demo [Here](/Controlled Table)
|
|
8
8
|
* @midnight-gray-supported
|
|
9
|
-
* @uxr-only-supported
|
|
10
9
|
* @alpine-light-supported
|
|
11
10
|
*/
|
|
12
11
|
export default function TableReact({
|
package/js/bundle/bundle.js
CHANGED
|
@@ -55000,6 +55000,80 @@ FileTreeItem.displayName = 'FileTreeItem';
|
|
|
55000
55000
|
|
|
55001
55001
|
/***/ }),
|
|
55002
55002
|
|
|
55003
|
+
/***/ "./src/components/file-tree/file-tree-loading.tsx":
|
|
55004
|
+
/*!********************************************************!*\
|
|
55005
|
+
!*** ./src/components/file-tree/file-tree-loading.tsx ***!
|
|
55006
|
+
\********************************************************/
|
|
55007
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
55008
|
+
|
|
55009
|
+
"use strict";
|
|
55010
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
55011
|
+
/* harmony export */ FileTreeLoading: () => (/* binding */ FileTreeLoading)
|
|
55012
|
+
/* harmony export */ });
|
|
55013
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
55014
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
55015
|
+
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
|
|
55016
|
+
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
|
|
55017
|
+
/* harmony import */ var _skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../skeleton */ "./src/components/skeleton/index.ts");
|
|
55018
|
+
|
|
55019
|
+
|
|
55020
|
+
|
|
55021
|
+
function getRandomWidth() {
|
|
55022
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
55023
|
+
// @ts-ignore
|
|
55024
|
+
if (window.IS_SNAPSHOT_ENV) {
|
|
55025
|
+
return 70;
|
|
55026
|
+
}
|
|
55027
|
+
return Math.round(Math.random() * 3 + 5) * 10; // generates random width between 60% and 80%
|
|
55028
|
+
}
|
|
55029
|
+
function FileTreeLoading(_ref) {
|
|
55030
|
+
var loadingPattern = _ref.loadingPattern,
|
|
55031
|
+
rootClass = _ref.rootClass,
|
|
55032
|
+
rootTestId = _ref.rootTestId,
|
|
55033
|
+
branchTestId = _ref.branchTestId;
|
|
55034
|
+
var renderSkeletonItem = function renderSkeletonItem(level, index) {
|
|
55035
|
+
var width = level === 0 ? '85%' : "".concat(getRandomWidth(), "%"); // generates random width between 60% and 80%
|
|
55036
|
+
|
|
55037
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
|
|
55038
|
+
key: "skeleton-".concat(level, "-").concat(index),
|
|
55039
|
+
className: "branch-item",
|
|
55040
|
+
"test-id": "file-tree-skeleton-item"
|
|
55041
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
55042
|
+
className: "item",
|
|
55043
|
+
style: {
|
|
55044
|
+
paddingLeft: "".concat(level * 20, "px")
|
|
55045
|
+
}
|
|
55046
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
55047
|
+
className: "file-tree-item-content"
|
|
55048
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
55049
|
+
className: "item-label"
|
|
55050
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
55051
|
+
className: "item-icon"
|
|
55052
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_skeleton__WEBPACK_IMPORTED_MODULE_2__.Skeleton, {
|
|
55053
|
+
type: _skeleton__WEBPACK_IMPORTED_MODULE_2__.SKELETON_TYPES.CIRCULAR,
|
|
55054
|
+
width: 16,
|
|
55055
|
+
height: 16,
|
|
55056
|
+
testId: "file-tree-skeleton-".concat(level, "-").concat(index, "-icon")
|
|
55057
|
+
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_skeleton__WEBPACK_IMPORTED_MODULE_2__.Skeleton, {
|
|
55058
|
+
type: _skeleton__WEBPACK_IMPORTED_MODULE_2__.SKELETON_TYPES.TEXT,
|
|
55059
|
+
width: width,
|
|
55060
|
+
height: 16,
|
|
55061
|
+
testId: "file-tree-skeleton-".concat(level, "-").concat(index)
|
|
55062
|
+
})))));
|
|
55063
|
+
};
|
|
55064
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
55065
|
+
className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('file-tree-root', rootClass),
|
|
55066
|
+
"test-id": rootTestId
|
|
55067
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
|
|
55068
|
+
className: "branch",
|
|
55069
|
+
"test-id": "".concat(branchTestId, "-skeleton")
|
|
55070
|
+
}, loadingPattern.map(function (level, index) {
|
|
55071
|
+
return renderSkeletonItem(level, index);
|
|
55072
|
+
})));
|
|
55073
|
+
}
|
|
55074
|
+
|
|
55075
|
+
/***/ }),
|
|
55076
|
+
|
|
55003
55077
|
/***/ "./src/components/file-tree/file-tree-navigation-adapter.ts":
|
|
55004
55078
|
/*!******************************************************************!*\
|
|
55005
55079
|
!*** ./src/components/file-tree/file-tree-navigation-adapter.ts ***!
|
|
@@ -55120,12 +55194,24 @@ var FileTree = function FileTree(_ref) {
|
|
|
55120
55194
|
_ref$sortingStrategy = _ref.sortingStrategy,
|
|
55121
55195
|
sortingStrategy = _ref$sortingStrategy === void 0 ? function (value) {
|
|
55122
55196
|
return value;
|
|
55123
|
-
} : _ref$sortingStrategy
|
|
55197
|
+
} : _ref$sortingStrategy,
|
|
55198
|
+
_ref$isLoading = _ref.isLoading,
|
|
55199
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
55200
|
+
_ref$loadingPattern = _ref.loadingPattern,
|
|
55201
|
+
loadingPattern = _ref$loadingPattern === void 0 ? [0, 1, 1, 2, 0] : _ref$loadingPattern;
|
|
55124
55202
|
var adapter = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {
|
|
55125
55203
|
return (0,_file_tree_navigation_adapter__WEBPACK_IMPORTED_MODULE_4__.getFileTreeNavigationAdapter)({
|
|
55126
55204
|
isExpandedByDefault: !!(folderComponentProps !== null && folderComponentProps !== void 0 && folderComponentProps.expand)
|
|
55127
55205
|
});
|
|
55128
55206
|
}, [!!(folderComponentProps !== null && folderComponentProps !== void 0 && folderComponentProps.expand)]);
|
|
55207
|
+
if (isLoading) {
|
|
55208
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_5__.FileTreeLoading, {
|
|
55209
|
+
loadingPattern: loadingPattern,
|
|
55210
|
+
rootClass: rootClass,
|
|
55211
|
+
rootTestId: rootTestId,
|
|
55212
|
+
branchTestId: branchTestId
|
|
55213
|
+
});
|
|
55214
|
+
}
|
|
55129
55215
|
if (!fileTree.length) {
|
|
55130
55216
|
return null;
|
|
55131
55217
|
}
|
|
@@ -55200,8 +55286,9 @@ var FileTree = function FileTree(_ref) {
|
|
|
55200
55286
|
/* harmony export */ FileTreeItem: () => (/* reexport safe */ _file_tree_item__WEBPACK_IMPORTED_MODULE_4__["default"]),
|
|
55201
55287
|
/* harmony export */ FileTreeItemActions: () => (/* reexport safe */ _file_tree_item_actions__WEBPACK_IMPORTED_MODULE_5__["default"]),
|
|
55202
55288
|
/* harmony export */ FileTreeItemContent: () => (/* reexport safe */ _file_tree_item_content__WEBPACK_IMPORTED_MODULE_6__["default"]),
|
|
55289
|
+
/* harmony export */ FileTreeLoading: () => (/* reexport safe */ _file_tree_loading__WEBPACK_IMPORTED_MODULE_7__.FileTreeLoading),
|
|
55203
55290
|
/* harmony export */ cleanUpPath: () => (/* reexport safe */ _file_tree_adapter__WEBPACK_IMPORTED_MODULE_1__.cleanUpPath),
|
|
55204
|
-
/* harmony export */ compareUtils: () => (/* reexport module object */
|
|
55291
|
+
/* harmony export */ compareUtils: () => (/* reexport module object */ _compareUtils__WEBPACK_IMPORTED_MODULE_8__),
|
|
55205
55292
|
/* harmony export */ fileTreeAdapter: () => (/* reexport safe */ _file_tree_adapter__WEBPACK_IMPORTED_MODULE_1__.fileTreeAdapter)
|
|
55206
55293
|
/* harmony export */ });
|
|
55207
55294
|
/* harmony import */ var _file_tree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./file-tree */ "./src/components/file-tree/file-tree.tsx");
|
|
@@ -55211,7 +55298,9 @@ var FileTree = function FileTree(_ref) {
|
|
|
55211
55298
|
/* harmony import */ var _file_tree_item__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./file-tree-item */ "./src/components/file-tree/file-tree-item.tsx");
|
|
55212
55299
|
/* harmony import */ var _file_tree_item_actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./file-tree-item-actions */ "./src/components/file-tree/file-tree-item-actions.tsx");
|
|
55213
55300
|
/* harmony import */ var _file_tree_item_content__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./file-tree-item-content */ "./src/components/file-tree/file-tree-item-content.tsx");
|
|
55214
|
-
/* harmony import */ var
|
|
55301
|
+
/* harmony import */ var _file_tree_loading__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./file-tree-loading */ "./src/components/file-tree/file-tree-loading.tsx");
|
|
55302
|
+
/* harmony import */ var _compareUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./compareUtils */ "./src/components/file-tree/compareUtils.ts");
|
|
55303
|
+
|
|
55215
55304
|
|
|
55216
55305
|
|
|
55217
55306
|
|
|
@@ -63903,6 +63992,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
63903
63992
|
/* harmony export */ FileTreeItem: () => (/* reexport safe */ _file_tree__WEBPACK_IMPORTED_MODULE_36__.FileTreeItem),
|
|
63904
63993
|
/* harmony export */ FileTreeItemActions: () => (/* reexport safe */ _file_tree__WEBPACK_IMPORTED_MODULE_36__.FileTreeItemActions),
|
|
63905
63994
|
/* harmony export */ FileTreeItemContent: () => (/* reexport safe */ _file_tree__WEBPACK_IMPORTED_MODULE_36__.FileTreeItemContent),
|
|
63995
|
+
/* harmony export */ FileTreeLoading: () => (/* reexport safe */ _file_tree__WEBPACK_IMPORTED_MODULE_36__.FileTreeLoading),
|
|
63906
63996
|
/* harmony export */ FileUpload: () => (/* reexport safe */ _file_upload__WEBPACK_IMPORTED_MODULE_37__.FileUpload),
|
|
63907
63997
|
/* harmony export */ FileUploader: () => (/* reexport safe */ _file_uploader__WEBPACK_IMPORTED_MODULE_38__.FileUploader),
|
|
63908
63998
|
/* harmony export */ FilesUploadArea: () => (/* reexport safe */ _files_upload_area__WEBPACK_IMPORTED_MODULE_39__.FilesUploadArea),
|
|
@@ -76640,7 +76730,7 @@ function Table(_ref) {
|
|
|
76640
76730
|
setColumnSizing(touchedResizedColumns);
|
|
76641
76731
|
}
|
|
76642
76732
|
}, [width]);
|
|
76643
|
-
var tableData = (0,_hooks_useLoading__WEBPACK_IMPORTED_MODULE_12__.useLoading)(isLoading, afterLoading, data, (pagination === null || pagination === void 0 ? void 0 : pagination.pageSize)
|
|
76733
|
+
var tableData = (0,_hooks_useLoading__WEBPACK_IMPORTED_MODULE_12__.useLoading)(isLoading, afterLoading, data, loadingRowCount || (pagination === null || pagination === void 0 ? void 0 : pagination.pageSize));
|
|
76644
76734
|
var isEmpty = tableData.length === 0 && !errorMessage;
|
|
76645
76735
|
var tableModel = (0,_tanstack_react_table__WEBPACK_IMPORTED_MODULE_20__.useReactTable)({
|
|
76646
76736
|
data: tableData,
|
|
@@ -77575,7 +77665,6 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
|
|
|
77575
77665
|
* New configurable table that uses [@tanstack/react-table](https://tanstack.com/table) under the hood.
|
|
77576
77666
|
* Also check the full page table demo [Here](/Controlled Table)
|
|
77577
77667
|
* @midnight-gray-supported
|
|
77578
|
-
* @uxr-only-supported
|
|
77579
77668
|
* @alpine-light-supported
|
|
77580
77669
|
*/
|
|
77581
77670
|
function TableReact(_ref) {
|