@headless-adminapp/fluent 0.0.17-alpha.52 → 0.0.17-alpha.53

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.
Files changed (174) hide show
  1. package/App/App.js +7 -11
  2. package/App/AppHeaderContianer.js +38 -42
  3. package/App/AppLogo.js +8 -12
  4. package/App/AppStringContext.js +9 -13
  5. package/App/AppUI.js +11 -15
  6. package/App/LayoutProvider.js +11 -15
  7. package/App/NavigationContainer.js +25 -29
  8. package/App/QuickActionItem.js +5 -9
  9. package/App/index.js +1 -5
  10. package/App/utils.js +1 -4
  11. package/CommandBar/Button.js +14 -17
  12. package/CommandBar/Divider.js +6 -9
  13. package/CommandBar/IconButton.js +13 -16
  14. package/CommandBar/Label.js +8 -11
  15. package/CommandBar/MenuButton.js +17 -20
  16. package/CommandBar/MenuItem.js +15 -18
  17. package/CommandBar/MenuItems.js +8 -11
  18. package/CommandBar/MenuList.js +9 -12
  19. package/CommandBar/Wrapper.js +7 -10
  20. package/CommandBar/index.js +13 -15
  21. package/DataForm/SectionControl.js +4 -7
  22. package/DataGrid/ActionCell.js +11 -14
  23. package/DataGrid/CommandContainer.js +6 -10
  24. package/DataGrid/CustomizeColumns/AddColumns.js +34 -37
  25. package/DataGrid/CustomizeColumns/ColumnItem.js +19 -23
  26. package/DataGrid/CustomizeColumns/CustomizeColumns.js +36 -42
  27. package/DataGrid/CustomizeColumns/index.js +1 -5
  28. package/DataGrid/FormSubgridCommandContainer.js +13 -17
  29. package/DataGrid/FormSubgridViewSelector.js +18 -22
  30. package/DataGrid/GridColumnHeader/ConditionValueControl.js +14 -20
  31. package/DataGrid/GridColumnHeader/FilterForm.js +23 -27
  32. package/DataGrid/GridColumnHeader/OperatorSelect.js +13 -19
  33. package/DataGrid/GridColumnHeader/TableHeaderFilterCell.js +28 -32
  34. package/DataGrid/GridColumnHeader/index.js +1 -5
  35. package/DataGrid/GridColumnHeader/utils.js +2 -6
  36. package/DataGrid/GridHeaderContainer.js +4 -8
  37. package/DataGrid/GridHeaderDesktop.js +26 -30
  38. package/DataGrid/GridHeaderMobile.js +17 -21
  39. package/DataGrid/GridListContainer.js +39 -43
  40. package/DataGrid/GridPaginationContainer.js +12 -16
  41. package/DataGrid/GridTableContainer.js +74 -78
  42. package/DataGrid/TableCell/TableCellAction.js +11 -15
  43. package/DataGrid/TableCell/TableCellBase.js +4 -8
  44. package/DataGrid/TableCell/TableCellCheckbox.js +7 -10
  45. package/DataGrid/TableCell/TableCellChoice.js +11 -14
  46. package/DataGrid/TableCell/TableCellLink.d.ts +1 -1
  47. package/DataGrid/TableCell/TableCellLink.js +13 -12
  48. package/DataGrid/TableCell/TableCellText.js +7 -10
  49. package/DataGrid/TableCell/index.js +4 -20
  50. package/DataGrid/index.js +4 -11
  51. package/DataGrid/types.js +1 -2
  52. package/DataGrid/useTableColumns.js +139 -90
  53. package/DataGrid/utils.js +1 -5
  54. package/DialogContainer/AlertDialog.js +5 -8
  55. package/DialogContainer/ConfirmDialog.js +6 -9
  56. package/DialogContainer/DialogContainer.js +14 -18
  57. package/DialogContainer/ErrorDialog.js +9 -12
  58. package/DialogContainer/PromptDialog.js +30 -57
  59. package/DialogContainer/index.js +1 -5
  60. package/Insights/CommandBarContainer.js +11 -14
  61. package/Insights/FilterBarContainer.js +17 -20
  62. package/Insights/Grid.js +9 -13
  63. package/Insights/InsightsContainer.js +19 -22
  64. package/Insights/WidgetChartContainer.js +30 -34
  65. package/Insights/WidgetDataGridContainer.js +32 -35
  66. package/Insights/WidgetTableContainer.js +24 -28
  67. package/Insights/WidgetTileContainer.js +12 -16
  68. package/Insights/WidgetTitleBar.js +9 -15
  69. package/Insights/Widgets.js +25 -28
  70. package/Insights/charts/AreaChart.js +12 -15
  71. package/Insights/charts/BarChart.js +12 -15
  72. package/Insights/charts/ComposedChart.js +12 -15
  73. package/Insights/charts/CustomTooltipContent.js +8 -12
  74. package/Insights/charts/GaugeChart.js +3 -6
  75. package/Insights/charts/LineChart.js +12 -15
  76. package/Insights/charts/OhlcChart.js +36 -41
  77. package/Insights/charts/PieChart.js +23 -26
  78. package/Insights/charts/RadarChart.js +16 -19
  79. package/Insights/charts/ScatterChart.js +23 -26
  80. package/Insights/charts/constants.js +1 -4
  81. package/Insights/charts/formatters.js +17 -29
  82. package/Insights/charts/index.js +1 -2
  83. package/Insights/charts/renderers.js +25 -36
  84. package/Insights/hooks/useQueriesData.js +19 -25
  85. package/Insights/hooks/useWidgetDetail.js +13 -16
  86. package/OverflowCommandBar/OverflowCommandBar.js +12 -19
  87. package/OverflowCommandBar/OverflowMenu.js +16 -20
  88. package/OverflowCommandBar/OverflowMenuDivider.js +6 -10
  89. package/OverflowCommandBar/index.js +3 -9
  90. package/OverflowCommandBar/render.js +9 -15
  91. package/OverflowCommandBar/utils.js +1 -4
  92. package/PageBoard/BoardColumn.js +5 -8
  93. package/PageBoard/BoardColumnCard.js +12 -15
  94. package/PageBoard/BoardColumnUI.js +34 -38
  95. package/PageBoard/BoardingColumnCardLoading.js +10 -13
  96. package/PageBoard/Header.js +16 -20
  97. package/PageBoard/PageBoard.d.ts +1 -1
  98. package/PageBoard/PageBoard.js +26 -29
  99. package/PageBoard/index.js +1 -5
  100. package/PageEntityForm/CommandContainer.js +21 -25
  101. package/PageEntityForm/FormTabRelated.js +17 -20
  102. package/PageEntityForm/PageEntityForm.js +16 -20
  103. package/PageEntityForm/PageEntityFormDesktopContainer.js +68 -72
  104. package/PageEntityForm/PageEntityFormStringContext.js +5 -9
  105. package/PageEntityForm/ProcessFlow.js +21 -24
  106. package/PageEntityForm/RecordCard.js +21 -24
  107. package/PageEntityForm/RecordCardLoading.js +10 -13
  108. package/PageEntityForm/RecordSetNavigatorContainer.js +30 -34
  109. package/PageEntityForm/RelatedViewSelector.js +28 -31
  110. package/PageEntityForm/SectionContainer.js +25 -28
  111. package/PageEntityForm/StandardControl.d.ts +3 -3
  112. package/PageEntityForm/StandardControl.js +74 -81
  113. package/PageEntityForm/SubgridControl.js +20 -23
  114. package/PageEntityForm/index.js +1 -5
  115. package/PageEntityView/FormSubgridContainer.js +22 -26
  116. package/PageEntityView/PageEntityView.js +15 -19
  117. package/PageEntityView/PageEntityViewDesktopContainer.js +9 -13
  118. package/PageEntityView/PageEntityViewDesktopFrame.js +17 -21
  119. package/PageEntityView/PageEntityViewMobileContainer.js +9 -13
  120. package/PageEntityView/PageEntityViewStringContext.js +5 -9
  121. package/PageEntityView/index.js +1 -5
  122. package/PageInsights/PageInsights.js +9 -13
  123. package/PageInsights/index.js +1 -6
  124. package/ProgressIndicatorContainer/index.js +10 -14
  125. package/ToastNotificationContainer/index.js +14 -18
  126. package/componentStore.js +2 -5
  127. package/components/BodyLoading.js +7 -11
  128. package/components/DialogLogin.js +5 -8
  129. package/components/LoginForm.js +21 -47
  130. package/components/PageBroken.js +5 -8
  131. package/components/PageLoading.js +5 -8
  132. package/components/PageLogin.js +14 -17
  133. package/form/FormControl.js +39 -44
  134. package/form/FormControlLoading.js +4 -8
  135. package/form/controls/AttachmentControl.js +56 -60
  136. package/form/controls/AttachmentsControl.js +15 -19
  137. package/form/controls/CurrencyControl.js +10 -13
  138. package/form/controls/DateControl.js +18 -24
  139. package/form/controls/DateRangeControl.js +14 -20
  140. package/form/controls/DateTimeControl.js +39 -45
  141. package/form/controls/DecimalControl.js +8 -11
  142. package/form/controls/DurationControl.js +11 -15
  143. package/form/controls/EmailControl.js +7 -10
  144. package/form/controls/IntegerControl.js +4 -7
  145. package/form/controls/LookupControl.d.ts +1 -0
  146. package/form/controls/LookupControl.js +75 -38
  147. package/form/controls/MultiSelectControl.js +8 -11
  148. package/form/controls/MultiSelectLookupControl.js +40 -43
  149. package/form/controls/PasswordControl.js +8 -11
  150. package/form/controls/RichTextControl.js +5 -32
  151. package/form/controls/SelectControl.js +8 -11
  152. package/form/controls/SwitchControl.js +4 -7
  153. package/form/controls/TelephoneControl.js +7 -10
  154. package/form/controls/TextAreaControl.js +4 -7
  155. package/form/controls/TextControl.js +5 -8
  156. package/form/controls/UrlControl.js +7 -10
  157. package/form/controls/types.js +1 -2
  158. package/form/controls/useLookupData.js +14 -18
  159. package/form/layout/FormBody/FormBody.js +6 -10
  160. package/form/layout/FormBody/index.js +1 -17
  161. package/form/layout/FormSection/FormSection.js +18 -22
  162. package/form/layout/FormSection/FormSectionColumn.js +3 -7
  163. package/form/layout/FormSection/FormSectionLoading.js +1 -5
  164. package/form/layout/FormSection/index.js +1 -5
  165. package/form/layout/FormTab/FormTab.js +16 -20
  166. package/form/layout/FormTab/FormTabColumn.js +5 -9
  167. package/form/layout/FormTab/index.js +1 -5
  168. package/form/layout/TabContext.js +2 -5
  169. package/form/layout/index.js +3 -9
  170. package/form/types.js +1 -2
  171. package/package.json +3 -2
  172. package/types/index.js +1 -2
  173. package/utils/avatar.d.ts +2 -0
  174. package/utils/avatar.js +42 -0
@@ -1,27 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GridTableContainer = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_components_1 = require("@fluentui/react-components");
6
- const ScrollbarWithMoreDataRequest_1 = require("@headless-adminapp/app/components/ScrollbarWithMoreDataRequest");
7
- const datagrid_1 = require("@headless-adminapp/app/datagrid");
8
- const hooks_1 = require("@headless-adminapp/app/datagrid/hooks");
9
- const locale_1 = require("@headless-adminapp/app/locale");
10
- const mutable_1 = require("@headless-adminapp/app/mutable");
11
- const navigation_1 = require("@headless-adminapp/app/navigation");
12
- const hooks_2 = require("@headless-adminapp/app/recordset/hooks");
13
- const icons_1 = require("@headless-adminapp/icons");
14
- const react_table_1 = require("@tanstack/react-table");
15
- const react_virtual_1 = require("@tanstack/react-virtual");
16
- const react_1 = require("react");
17
- const uuid_1 = require("uuid");
18
- const PageEntityViewStringContext_1 = require("../PageEntityView/PageEntityViewStringContext");
19
- const useTableColumns_1 = require("./useTableColumns");
20
- const utils_1 = require("./utils");
21
- const useStyles = (0, react_components_1.makeStyles)({
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Body1, makeStyles, mergeClasses, SkeletonItem, Table, TableBody, TableCell, TableHeader, TableRow, tokens, } from '@fluentui/react-components';
3
+ import { ScrollbarWithMoreDataRequest } from '@headless-adminapp/app/components/ScrollbarWithMoreDataRequest';
4
+ import { GridContext } from '@headless-adminapp/app/datagrid';
5
+ import { useDataGridSchema, useGridColumns, useGridData, useGridDataState, useGridSelection, useGridSorting, } from '@headless-adminapp/app/datagrid/hooks';
6
+ import { useLocale } from '@headless-adminapp/app/locale';
7
+ import { useContextSelector } from '@headless-adminapp/app/mutable';
8
+ import { useOpenForm } from '@headless-adminapp/app/navigation';
9
+ import { useRecordSetSetter } from '@headless-adminapp/app/recordset/hooks';
10
+ import { Icons } from '@headless-adminapp/icons';
11
+ import { flexRender, getCoreRowModel, useReactTable, } from '@tanstack/react-table';
12
+ import { useVirtualizer } from '@tanstack/react-virtual';
13
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
14
+ import { v4 as uuid } from 'uuid';
15
+ import { usePageEntityViewStrings } from '../PageEntityView/PageEntityViewStringContext';
16
+ import { useTableColumns } from './useTableColumns';
17
+ import { adjustTableHeight } from './utils';
18
+ const useStyles = makeStyles({
22
19
  root: {
23
20
  '[aria-selected="true"]': {
24
- background: react_components_1.tokens.colorBrandBackground2,
21
+ background: tokens.colorBrandBackground2,
25
22
  '& .fui-TableSelectionCell': {
26
23
  background: 'inherit',
27
24
  },
@@ -39,9 +36,9 @@ const useStyles = (0, react_components_1.makeStyles)({
39
36
  },
40
37
  },
41
38
  '& .tableCellAction': {
42
- background: react_components_1.tokens.colorNeutralBackground1,
39
+ background: tokens.colorNeutralBackground1,
43
40
  },
44
- borderBottom: `${react_components_1.tokens.strokeWidthThin} solid ${react_components_1.tokens.colorNeutralStroke3}`,
41
+ borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke3}`,
45
42
  '& .fui-TableCell': {
46
43
  // borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke3}`,
47
44
  // borderBottom: 'none !important',
@@ -50,7 +47,7 @@ const useStyles = (0, react_components_1.makeStyles)({
50
47
  selectionCell: {
51
48
  position: 'sticky',
52
49
  left: 0,
53
- background: react_components_1.tokens.colorNeutralBackground1,
50
+ background: tokens.colorNeutralBackground1,
54
51
  zIndex: 1,
55
52
  display: 'flex',
56
53
  alignItems: 'center',
@@ -65,28 +62,28 @@ const useStyles = (0, react_components_1.makeStyles)({
65
62
  },
66
63
  });
67
64
  const fallbackData = [];
68
- const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort, disableColumnResize, disableContextMenu, disableSelection, }) => {
65
+ export const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort, disableColumnResize, disableContextMenu, disableSelection, }) => {
69
66
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
70
67
  const styles = useStyles();
71
- const data = (0, hooks_1.useGridData)();
72
- const dataState = (0, hooks_1.useGridDataState)();
73
- const fetchNextPage = (0, mutable_1.useContextSelector)(datagrid_1.GridContext, (state) => state.fetchNextPage);
74
- const columns = (0, hooks_1.useGridColumns)();
75
- const [sorting] = (0, hooks_1.useGridSorting)();
76
- const schema = (0, hooks_1.useDataGridSchema)();
77
- const [selectedIds, setSelectedIds] = (0, hooks_1.useGridSelection)();
78
- const setSelectedIdsRef = (0, react_1.useRef)(setSelectedIds);
68
+ const data = useGridData();
69
+ const dataState = useGridDataState();
70
+ const fetchNextPage = useContextSelector(GridContext, (state) => state.fetchNextPage);
71
+ const columns = useGridColumns();
72
+ const [sorting] = useGridSorting();
73
+ const schema = useDataGridSchema();
74
+ const [selectedIds, setSelectedIds] = useGridSelection();
75
+ const setSelectedIdsRef = useRef(setSelectedIds);
79
76
  setSelectedIdsRef.current = setSelectedIds;
80
- const sortingState = (0, react_1.useMemo)(() => {
77
+ const sortingState = useMemo(() => {
81
78
  return sorting.map((sort) => ({
82
79
  id: sort.field,
83
80
  desc: sort.order === 'desc',
84
81
  }));
85
82
  }, [sorting]);
86
- const tableWrapperRef = (0, react_1.useRef)(null);
87
- const recordSetSetter = (0, hooks_2.useRecordSetSetter)();
88
- const openFormInternal = (0, navigation_1.useOpenForm)();
89
- const openRecord = (0, react_1.useCallback)((id) => {
83
+ const tableWrapperRef = useRef(null);
84
+ const recordSetSetter = useRecordSetSetter();
85
+ const openFormInternal = useOpenForm();
86
+ const openRecord = useCallback((id) => {
90
87
  var _a, _b;
91
88
  recordSetSetter(schema.logicalName, (_b = (_a = dataRef.current) === null || _a === void 0 ? void 0 : _a.records.map((x) => x[schema.idAttribute])) !== null && _b !== void 0 ? _b : []);
92
89
  openFormInternal({
@@ -94,11 +91,11 @@ const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort,
94
91
  id,
95
92
  });
96
93
  }, [openFormInternal, recordSetSetter, schema.idAttribute, schema.logicalName]);
97
- const { direction } = (0, locale_1.useLocale)();
98
- const strings = (0, PageEntityViewStringContext_1.usePageEntityViewStrings)();
99
- const dataRef = (0, react_1.useRef)(data);
94
+ const { direction } = useLocale();
95
+ const strings = usePageEntityViewStrings();
96
+ const dataRef = useRef(data);
100
97
  dataRef.current = data;
101
- const tableColumns = (0, useTableColumns_1.useTableColumns)({
98
+ const tableColumns = useTableColumns({
102
99
  disableColumnFilter,
103
100
  disableColumnResize,
104
101
  disableColumnSort,
@@ -106,26 +103,26 @@ const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort,
106
103
  disableSelection,
107
104
  tableWrapperRef,
108
105
  });
109
- const uniqueRecords = (0, react_1.useMemo)(() => {
106
+ const uniqueRecords = useMemo(() => {
110
107
  var _a;
111
- return ((_a = data === null || data === void 0 ? void 0 : data.records.map((record) => (Object.assign(Object.assign({}, record), { __uuid: (0, uuid_1.v4)() })))) !== null && _a !== void 0 ? _a : fallbackData);
108
+ return ((_a = data === null || data === void 0 ? void 0 : data.records.map((record) => (Object.assign(Object.assign({}, record), { __uuid: uuid() })))) !== null && _a !== void 0 ? _a : fallbackData);
112
109
  }, [data === null || data === void 0 ? void 0 : data.records]);
113
- const idMapping = (0, react_1.useMemo)(() => uniqueRecords.reduce((acc, record) => {
110
+ const idMapping = useMemo(() => uniqueRecords.reduce((acc, record) => {
114
111
  acc[record[schema.idAttribute]] = record.__uuid;
115
112
  return acc;
116
113
  }, {}), [uniqueRecords, schema.idAttribute]);
117
- const rowSelection = (0, react_1.useMemo)(() => {
114
+ const rowSelection = useMemo(() => {
118
115
  return selectedIds.reduce((acc, id) => {
119
116
  acc[idMapping[id]] = true;
120
117
  return acc;
121
118
  }, {});
122
119
  }, [selectedIds, idMapping]);
123
- const table = (0, react_table_1.useReactTable)({
120
+ const table = useReactTable({
124
121
  data: uniqueRecords,
125
122
  columns: tableColumns,
126
123
  getRowId: (row) => row.__uuid,
127
124
  enableRowSelection: true,
128
- getCoreRowModel: (0, react_table_1.getCoreRowModel)(),
125
+ getCoreRowModel: getCoreRowModel(),
129
126
  columnResizeMode: 'onChange',
130
127
  columnResizeDirection: 'ltr',
131
128
  onRowSelectionChange: () => {
@@ -136,29 +133,29 @@ const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort,
136
133
  sorting: sortingState,
137
134
  },
138
135
  });
139
- const tableRef = (0, react_1.useRef)(table);
136
+ const tableRef = useRef(table);
140
137
  tableRef.current = table;
141
- (0, react_1.useEffect)(() => {
138
+ useEffect(() => {
142
139
  tableRef.current.resetColumnSizing();
143
140
  }, [columns]);
144
141
  const rows = table.getRowModel().rows;
145
- const virtualizer = (0, react_virtual_1.useVirtualizer)({
142
+ const virtualizer = useVirtualizer({
146
143
  count: rows.length,
147
144
  getScrollElement: () => { var _a, _b; return (_b = (_a = tableWrapperRef.current) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement; },
148
145
  estimateSize: () => 44,
149
146
  overscan: 30,
150
147
  paddingStart: 33,
151
148
  });
152
- const tableElementRef = (0, react_1.useRef)(null);
149
+ const tableElementRef = useRef(null);
153
150
  const virtualItems = virtualizer.getVirtualItems();
154
151
  const virtualSize = virtualizer.getTotalSize();
155
- const [isScrollNearBottom, setIsScrollNearBottom] = (0, react_1.useState)(false);
152
+ const [isScrollNearBottom, setIsScrollNearBottom] = useState(false);
156
153
  // callback to adjust the height of the pseudo element
157
- const handlePseudoResize = (0, react_1.useCallback)(() => {
158
- return (0, utils_1.adjustTableHeight)(tableElementRef, virtualSize);
154
+ const handlePseudoResize = useCallback(() => {
155
+ return adjustTableHeight(tableElementRef, virtualSize);
159
156
  }, [virtualSize]);
160
157
  // callback to handle scrolling, checking if we are near the bottom
161
- const handleScroll = (0, react_1.useCallback)(() => {
158
+ const handleScroll = useCallback(() => {
162
159
  var _a, _b, _c, _d, _e, _f, _g, _h;
163
160
  if ((_b = (_a = tableWrapperRef.current) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) {
164
161
  const scrollPosition = (_e = (_d = (_c = tableWrapperRef.current) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop;
@@ -168,7 +165,7 @@ const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort,
168
165
  }, [virtualSize]);
169
166
  // add an event listener on the scrollable parent container and resize the
170
167
  // pseudo element whenever the table renders with new data
171
- (0, react_1.useEffect)(() => {
168
+ useEffect(() => {
172
169
  var _a, _b;
173
170
  const scrollable = (_b = (_a = tableWrapperRef.current) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement;
174
171
  if (scrollable)
@@ -182,19 +179,19 @@ const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort,
182
179
  // if we are near the bottom of the table, resize the pseudo element each time
183
180
  // the length of virtual items changes (which is effectively the number of table
184
181
  // rows rendered to the DOM). This ensures we don't scroll too far or too short.
185
- (0, react_1.useEffect)(() => {
182
+ useEffect(() => {
186
183
  if (isScrollNearBottom)
187
184
  handlePseudoResize();
188
185
  }, [isScrollNearBottom, virtualItems.length, handlePseudoResize]);
189
186
  const isScrolledToRight = ((_c = (_b = (_a = tableWrapperRef.current) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) === null || _c === void 0 ? void 0 : _c.scrollLeft) ===
190
187
  ((_g = (_f = (_e = (_d = tableWrapperRef.current) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.parentElement) === null || _f === void 0 ? void 0 : _f.scrollWidth) !== null && _g !== void 0 ? _g : 0) -
191
188
  ((_l = (_k = (_j = (_h = tableWrapperRef.current) === null || _h === void 0 ? void 0 : _h.parentElement) === null || _j === void 0 ? void 0 : _j.parentElement) === null || _k === void 0 ? void 0 : _k.clientWidth) !== null && _l !== void 0 ? _l : 0);
192
- return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flex: 1, flexDirection: 'column' }, children: (0, jsx_runtime_1.jsxs)(ScrollbarWithMoreDataRequest_1.ScrollbarWithMoreDataRequest, { data: data === null || data === void 0 ? void 0 : data.records, hasMore: dataState === null || dataState === void 0 ? void 0 : dataState.hasNextPage, rtl: direction === 'rtl', onRequestMore: () => {
189
+ return (_jsx("div", { style: { display: 'flex', flex: 1, flexDirection: 'column' }, children: _jsxs(ScrollbarWithMoreDataRequest, { data: data === null || data === void 0 ? void 0 : data.records, hasMore: dataState === null || dataState === void 0 ? void 0 : dataState.hasNextPage, rtl: direction === 'rtl', onRequestMore: () => {
193
190
  fetchNextPage();
194
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
191
+ }, children: [_jsx("div", { style: {
195
192
  paddingInline: noPadding ? 0 : 8,
196
193
  position: 'relative',
197
- }, ref: tableWrapperRef, children: (0, jsx_runtime_1.jsxs)(react_components_1.Table, { style: {
194
+ }, ref: tableWrapperRef, children: _jsxs(Table, { style: {
198
195
  display: 'flex',
199
196
  flexDirection: 'column',
200
197
  borderCollapse: 'collapse',
@@ -203,27 +200,27 @@ const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort,
203
200
  ['--action-shadow']: !isScrolledToRight
204
201
  ? '-2px 0px 6px rgba(0, 0, 0, 0.12)'
205
202
  : 'none',
206
- }, ref: tableElementRef, className: "table-pseduo", children: [(0, jsx_runtime_1.jsx)(react_components_1.TableHeader, { style: {
203
+ }, ref: tableElementRef, className: "table-pseduo", children: [_jsx(TableHeader, { style: {
207
204
  display: 'flex',
208
205
  position: 'sticky',
209
206
  top: 0,
210
- background: react_components_1.tokens.colorNeutralBackground1,
207
+ background: tokens.colorNeutralBackground1,
211
208
  zIndex: 2,
212
- }, children: table.getHeaderGroups().map((headerGroup) => ((0, jsx_runtime_1.jsx)(react_components_1.TableRow, { style: {
209
+ }, children: table.getHeaderGroups().map((headerGroup) => (_jsx(TableRow, { style: {
213
210
  position: 'sticky',
214
211
  top: 0,
215
212
  display: 'flex',
216
213
  minWidth: 'calc(100% - 16px)',
217
- borderBottom: `${react_components_1.tokens.strokeWidthThin} solid ${react_components_1.tokens.colorNeutralStroke3}`,
214
+ borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke3}`,
218
215
  }, children: headerGroup.headers.map((header) => header.isPlaceholder
219
216
  ? null
220
- : (0, react_table_1.flexRender)(header.column.columnDef.header, Object.assign(Object.assign({}, header.getContext()), { key: header.id }))) }, headerGroup.id))) }), (0, jsx_runtime_1.jsx)(react_components_1.TableBody, { style: {
217
+ : flexRender(header.column.columnDef.header, Object.assign(Object.assign({}, header.getContext()), { key: header.id }))) }, headerGroup.id))) }), _jsx(TableBody, { style: {
221
218
  display: 'flex',
222
219
  flexDirection: 'column',
223
220
  transform: 'translateY(-33px)',
224
221
  }, children: virtualItems.map((virtualRow) => {
225
222
  const row = rows[virtualRow.index];
226
- return ((0, jsx_runtime_1.jsx)(react_components_1.TableRow, { "aria-selected": row.getIsSelected(), className: (0, react_components_1.mergeClasses)(styles.root), style: {
223
+ return (_jsx(TableRow, { "aria-selected": row.getIsSelected(), className: mergeClasses(styles.root), style: {
227
224
  display: 'flex',
228
225
  height: `${virtualRow.size}px`,
229
226
  minWidth: 'calc(100% - 16px)',
@@ -237,33 +234,32 @@ const GridTableContainer = ({ noPadding, disableColumnFilter, disableColumnSort,
237
234
  }, onDoubleClick: () => {
238
235
  const id = row.original[schema.idAttribute];
239
236
  openRecord(id);
240
- }, children: row.getVisibleCells().map((cell) => (0, react_table_1.flexRender)(cell.column.columnDef.cell, Object.assign(Object.assign({}, cell.getContext()), { key: cell.column.id }))) }, row.id));
241
- }) }), dataState.isFetching && ((0, jsx_runtime_1.jsx)(react_components_1.TableBody, { style: {
237
+ }, children: row.getVisibleCells().map((cell) => flexRender(cell.column.columnDef.cell, Object.assign(Object.assign({}, cell.getContext()), { key: cell.column.id }))) }, row.id));
238
+ }) }), dataState.isFetching && (_jsx(TableBody, { style: {
242
239
  display: 'flex',
243
240
  flexDirection: 'column',
244
241
  position: 'absolute',
245
242
  transform: `translateY(${virtualSize}px)`,
246
- }, children: Array.from({ length: 10 }).map((_, index) => ((0, jsx_runtime_1.jsx)(react_components_1.TableRow, { style: {
243
+ }, children: Array.from({ length: 10 }).map((_, index) => (_jsx(TableRow, { style: {
247
244
  display: 'flex',
248
245
  height: 44,
249
246
  alignItems: 'center',
250
247
  }, children: table.getAllColumns().map((column) => {
251
248
  if (!column.getIsVisible())
252
249
  return null;
253
- return ((0, jsx_runtime_1.jsx)(react_components_1.TableCell, { style: {
250
+ return (_jsx(TableCell, { style: {
254
251
  display: 'flex',
255
252
  alignItems: 'center',
256
253
  width: column.getSize(),
257
- }, children: (0, jsx_runtime_1.jsx)(react_components_1.SkeletonItem, { size: 16 }) }, column.id));
258
- }) }, index))) }))] }) }), (data === null || data === void 0 ? void 0 : data.records.length) === 0 && !dataState.isFetching && ((0, jsx_runtime_1.jsxs)("div", { style: {
254
+ }, children: _jsx(SkeletonItem, { size: 16 }) }, column.id));
255
+ }) }, index))) }))] }) }), (data === null || data === void 0 ? void 0 : data.records.length) === 0 && !dataState.isFetching && (_jsxs("div", { style: {
259
256
  display: 'flex',
260
257
  flexDirection: 'column',
261
258
  alignItems: 'center',
262
259
  justifyContent: 'center',
263
260
  position: 'absolute',
264
261
  inset: 0,
265
- gap: react_components_1.tokens.spacingVerticalL,
266
- color: react_components_1.tokens.colorNeutralForeground3,
267
- }, children: [(0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(icons_1.Icons.Search, { size: 64 }) }), (0, jsx_runtime_1.jsx)(react_components_1.Body1, { children: strings.noRecordsFound })] }))] }) }));
262
+ gap: tokens.spacingVerticalL,
263
+ color: tokens.colorNeutralForeground3,
264
+ }, children: [_jsx("div", { children: _jsx(Icons.Search, { size: 64 }) }), _jsx(Body1, { children: strings.noRecordsFound })] }))] }) }));
268
265
  };
269
- exports.GridTableContainer = GridTableContainer;
@@ -1,20 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableCellAction = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_components_1 = require("@fluentui/react-components");
6
- const icons_1 = require("@headless-adminapp/icons");
7
- const MenuList_1 = require("../../CommandBar/MenuList");
8
- const useStyles = (0, react_components_1.makeStyles)({
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, makeStyles, Menu, MenuPopover, MenuTrigger, TableCell, tokens, } from '@fluentui/react-components';
3
+ import { Icons } from '@headless-adminapp/icons';
4
+ import { MenuList } from '../../CommandBar/MenuList';
5
+ const useStyles = makeStyles({
9
6
  button: {
10
7
  '&:hover': {
11
- background: react_components_1.tokens.colorNeutralBackground5,
8
+ background: tokens.colorNeutralBackground5,
12
9
  },
13
10
  },
14
11
  });
15
- const TableCellAction = ({ items, onOpen, }) => {
12
+ export const TableCellAction = ({ items, onOpen, }) => {
16
13
  const styles = useStyles();
17
- return ((0, jsx_runtime_1.jsx)(react_components_1.TableCell, { className: "tableCellAction", style: {
14
+ return (_jsx(TableCell, { className: "tableCellAction", style: {
18
15
  display: 'flex',
19
16
  padding: 0,
20
17
  // width: 32,
@@ -29,13 +26,12 @@ const TableCellAction = ({ items, onOpen, }) => {
29
26
  justifyContent: 'right',
30
27
  // background: 'white',
31
28
  // boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',
32
- borderBottom: `${react_components_1.tokens.strokeWidthThin} solid ${react_components_1.tokens.colorNeutralStroke3}`,
33
- }, children: (0, jsx_runtime_1.jsxs)(react_components_1.Menu, { positioning: "before-top", children: [(0, jsx_runtime_1.jsx)(react_components_1.MenuTrigger, { children: (0, jsx_runtime_1.jsx)(react_components_1.Button, { appearance: "transparent", icon: (0, jsx_runtime_1.jsx)(icons_1.Icons.MoreVertical, {}), onClick: onOpen, className: styles.button, style: {
29
+ borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke3}`,
30
+ }, children: _jsxs(Menu, { positioning: "before-top", children: [_jsx(MenuTrigger, { children: _jsx(Button, { appearance: "transparent", icon: _jsx(Icons.MoreVertical, {}), onClick: onOpen, className: styles.button, style: {
34
31
  // background: 'white',
35
32
  // boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',
36
33
  boxShadow: 'var(--action-shadow)',
37
34
  borderRadius: 0,
38
35
  // background: tokens.colorNeutralBackground1,
39
- } }) }), (0, jsx_runtime_1.jsx)(react_components_1.MenuPopover, { children: (0, jsx_runtime_1.jsx)(MenuList_1.MenuList, { items: items }) })] }) }));
36
+ } }) }), _jsx(MenuPopover, { children: _jsx(MenuList, { items: items }) })] }) }));
40
37
  };
41
- exports.TableCellAction = TableCellAction;
@@ -1,9 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableCellBase = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_components_1 = require("@fluentui/react-components");
6
- const TableCellBase = ({ children, onClick, style, }) => {
7
- return ((0, jsx_runtime_1.jsx)(react_components_1.TableCell, { onClick: onClick, style: Object.assign({ display: 'flex', alignItems: 'center' }, style), children: children }));
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TableCell as TableCellInternal } from '@fluentui/react-components';
3
+ export const TableCellBase = ({ children, onClick, style, }) => {
4
+ return (_jsx(TableCellInternal, { onClick: onClick, style: Object.assign({ display: 'flex', alignItems: 'center' }, style), children: children }));
8
5
  };
9
- exports.TableCellBase = TableCellBase;
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableCellCheckbox = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_components_1 = require("@fluentui/react-components");
6
- const react_1 = require("react");
7
- exports.TableCellCheckbox = (0, react_1.memo)(({ checked, onChange }) => {
8
- return ((0, jsx_runtime_1.jsx)(react_components_1.TableCell, { style: { display: 'flex', alignItems: 'center' }, onClick: (event) => {
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Checkbox, TableCell } from '@fluentui/react-components';
3
+ import { memo } from 'react';
4
+ export const TableCellCheckbox = memo(({ checked, onChange }) => {
5
+ return (_jsx(TableCell, { style: { display: 'flex', alignItems: 'center' }, onClick: (event) => {
9
6
  event.stopPropagation();
10
- }, children: (0, jsx_runtime_1.jsx)(react_components_1.Checkbox, { checked: checked !== null && checked !== void 0 ? checked : false, onChange: (event) => {
7
+ }, children: _jsx(Checkbox, { checked: checked !== null && checked !== void 0 ? checked : false, onChange: (event) => {
11
8
  event.stopPropagation();
12
9
  onChange === null || onChange === void 0 ? void 0 : onChange(event);
13
10
  } }) }));
14
11
  });
15
- exports.TableCellCheckbox.displayName = 'TableCellCheckbox';
12
+ TableCellCheckbox.displayName = 'TableCellCheckbox';
@@ -1,31 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableCellChoice = TableCellChoice;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_components_1 = require("@fluentui/react-components");
6
- const color_1 = require("@headless-adminapp/app/utils/color");
7
- const react_1 = require("react");
8
- const TableCellBase_1 = require("./TableCellBase");
9
- function TableCellChoice(props) {
10
- const bgColor = (0, react_1.useMemo)(() => {
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Tag } from '@fluentui/react-components';
3
+ import { isColorDark } from '@headless-adminapp/app/utils/color';
4
+ import { useMemo } from 'react';
5
+ import { TableCellBase } from './TableCellBase';
6
+ export function TableCellChoice(props) {
7
+ const bgColor = useMemo(() => {
11
8
  var _a;
12
9
  if (!props.value || !props.attribute.options) {
13
10
  return;
14
11
  }
15
12
  return (_a = props.attribute.options.find((option) => option.value === props.value)) === null || _a === void 0 ? void 0 : _a.color;
16
13
  }, [props.attribute.options, props.value]);
17
- const color = (0, react_1.useMemo)(() => {
14
+ const color = useMemo(() => {
18
15
  if (!bgColor) {
19
16
  return;
20
17
  }
21
- return (0, color_1.isColorDark)(bgColor) ? '#FFFFFF' : '#000000';
18
+ return isColorDark(bgColor) ? '#FFFFFF' : '#000000';
22
19
  }, [bgColor]);
23
- return ((0, jsx_runtime_1.jsx)(TableCellBase_1.TableCellBase, { style: {
20
+ return (_jsx(TableCellBase, { style: {
24
21
  textOverflow: 'ellipsis',
25
22
  overflow: 'hidden',
26
23
  whiteSpace: 'nowrap',
27
24
  width: props.width,
28
25
  minWidth: props.width,
29
26
  maxWidth: props.width,
30
- }, children: (0, jsx_runtime_1.jsx)(react_components_1.Tag, { size: "small", style: { backgroundColor: bgColor, color }, children: props.formattedValue }) }));
27
+ }, children: _jsx(Tag, { size: "small", style: { backgroundColor: bgColor, color }, children: props.formattedValue }) }));
31
28
  }
@@ -1,6 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  export interface TableCellLinkProps {
3
- value: string | undefined | null;
3
+ value: React.ReactNode | undefined | null;
4
4
  href?: string;
5
5
  onClick?: () => void;
6
6
  width: number;
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableCellLink = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_components_1 = require("@fluentui/react-components");
6
- const hooks_1 = require("@headless-adminapp/app/route/hooks");
7
- const react_1 = require("react");
8
- exports.TableCellLink = (0, react_1.memo)(({ value, href, onClick, width, target }) => {
9
- const router = (0, hooks_1.useRouter)();
10
- return ((0, jsx_runtime_1.jsx)(react_components_1.TableCell, { style: {
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Link, TableCell, tokens } from '@fluentui/react-components';
3
+ import { useRouter } from '@headless-adminapp/app/route/hooks';
4
+ import { memo } from 'react';
5
+ export const TableCellLink = memo(({ value, href, onClick, width, target }) => {
6
+ const router = useRouter();
7
+ return (_jsx(TableCell, { style: {
11
8
  textOverflow: 'ellipsis',
12
9
  overflow: 'hidden',
13
10
  whiteSpace: 'nowrap',
@@ -16,7 +13,7 @@ exports.TableCellLink = (0, react_1.memo)(({ value, href, onClick, width, target
16
13
  maxWidth: width,
17
14
  display: 'flex',
18
15
  alignItems: 'center',
19
- }, children: (0, jsx_runtime_1.jsx)(react_components_1.Link, { as: "a", href: href, target: target, onClick: (event) => {
16
+ }, children: _jsx(Link, { as: "a", href: href, target: target, onClick: (event) => {
20
17
  if (target === '_blank') {
21
18
  return;
22
19
  }
@@ -32,6 +29,10 @@ exports.TableCellLink = (0, react_1.memo)(({ value, href, onClick, width, target
32
29
  router.push(href);
33
30
  event.preventDefault();
34
31
  }
32
+ }, style: {
33
+ display: 'flex',
34
+ alignItems: 'center',
35
+ gap: tokens.spacingHorizontalXS,
35
36
  }, children: value }) }));
36
37
  });
37
- exports.TableCellLink.displayName = 'TableCellLink';
38
+ TableCellLink.displayName = 'TableCellLink';
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableCellText = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const TableCellBase_1 = require("./TableCellBase");
7
- exports.TableCellText = (0, react_1.memo)(({ value, width, textAlignment }) => {
8
- return ((0, jsx_runtime_1.jsx)(TableCellBase_1.TableCellBase, { style: {
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { TableCellBase } from './TableCellBase';
4
+ export const TableCellText = memo(({ value, width, textAlignment }) => {
5
+ return (_jsx(TableCellBase, { style: {
9
6
  textAlign: textAlignment || 'left',
10
7
  textOverflow: 'ellipsis',
11
8
  overflow: 'hidden',
@@ -20,10 +17,10 @@ exports.TableCellText = (0, react_1.memo)(({ value, width, textAlignment }) => {
20
17
  // display: 'flex',
21
18
  // alignItems: 'center',
22
19
  // borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke3}`,
23
- }, children: (0, jsx_runtime_1.jsx)("div", { style: {
20
+ }, children: _jsx("div", { style: {
24
21
  overflow: 'hidden',
25
22
  textOverflow: 'ellipsis',
26
23
  width: '100%',
27
24
  }, children: value }) }));
28
25
  });
29
- exports.TableCellText.displayName = 'TableCellText';
26
+ TableCellText.displayName = 'TableCellText';
@@ -1,20 +1,4 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./TableCellBase"), exports);
18
- __exportStar(require("./TableCellText"), exports);
19
- __exportStar(require("./TableCellAction"), exports);
20
- __exportStar(require("./TableCellCheckbox"), exports);
1
+ export * from './TableCellBase';
2
+ export * from './TableCellText';
3
+ export * from './TableCellAction';
4
+ export * from './TableCellCheckbox';
package/DataGrid/index.js CHANGED
@@ -1,11 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GridTableContainer = exports.GridPaginationContainer = exports.GridHeaderContainer = exports.CommandContainer = void 0;
4
- var CommandContainer_1 = require("./CommandContainer");
5
- Object.defineProperty(exports, "CommandContainer", { enumerable: true, get: function () { return CommandContainer_1.CommandContainer; } });
6
- var GridHeaderContainer_1 = require("./GridHeaderContainer");
7
- Object.defineProperty(exports, "GridHeaderContainer", { enumerable: true, get: function () { return GridHeaderContainer_1.GridHeaderContainer; } });
8
- var GridPaginationContainer_1 = require("./GridPaginationContainer");
9
- Object.defineProperty(exports, "GridPaginationContainer", { enumerable: true, get: function () { return GridPaginationContainer_1.GridPaginationContainer; } });
10
- var GridTableContainer_1 = require("./GridTableContainer");
11
- Object.defineProperty(exports, "GridTableContainer", { enumerable: true, get: function () { return GridTableContainer_1.GridTableContainer; } });
1
+ export { CommandContainer } from './CommandContainer';
2
+ export { GridHeaderContainer } from './GridHeaderContainer';
3
+ export { GridPaginationContainer } from './GridPaginationContainer';
4
+ export { GridTableContainer } from './GridTableContainer';
package/DataGrid/types.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};