@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.
@@ -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
  }
@@ -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, };
@@ -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 || loadingRowCount);
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
  }
@@ -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, };
@@ -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 || loadingRowCount);
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({
@@ -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 */ _compareUtils__WEBPACK_IMPORTED_MODULE_7__),
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 _compareUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./compareUtils */ "./src/components/file-tree/compareUtils.ts");
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) || loadingRowCount);
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) {