@fluentui/react-table 9.11.11 → 9.11.13

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/CHANGELOG.md CHANGED
@@ -1,12 +1,48 @@
1
1
  # Change Log - @fluentui/react-table
2
2
 
3
- This log was last generated on Tue, 20 Feb 2024 14:15:29 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 07 Mar 2024 19:26:59 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.11.13](https://github.com/microsoft/fluentui/tree/@fluentui/react-table_v9.11.13)
8
+
9
+ Thu, 07 Mar 2024 19:26:59 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-table_v9.11.12..@fluentui/react-table_v9.11.13)
11
+
12
+ ### Patches
13
+
14
+ - fix: allRowsSelected is false when there are no rows ([PR #30706](https://github.com/microsoft/fluentui/pull/30706) by lingfangao@hotmail.com)
15
+ - Bump @fluentui/react-aria to v9.10.0 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
16
+ - Bump @fluentui/react-avatar to v9.6.17 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
17
+ - Bump @fluentui/react-checkbox to v9.2.15 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
18
+ - Bump @fluentui/react-context-selector to v9.1.54 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
19
+ - Bump @fluentui/react-radio to v9.2.10 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
20
+ - Bump @fluentui/react-shared-contexts to v9.15.0 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
21
+ - Bump @fluentui/react-tabster to v9.19.3 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
22
+ - Bump @fluentui/react-theme to v9.1.17 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
23
+ - Bump @fluentui/react-utilities to v9.18.3 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
24
+ - Bump @fluentui/react-jsx-runtime to v9.0.32 ([PR #30687](https://github.com/microsoft/fluentui/pull/30687) by beachball)
25
+
26
+ ## [9.11.12](https://github.com/microsoft/fluentui/tree/@fluentui/react-table_v9.11.12)
27
+
28
+ Wed, 28 Feb 2024 02:34:19 GMT
29
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-table_v9.11.11..@fluentui/react-table_v9.11.12)
30
+
31
+ ### Patches
32
+
33
+ - Bump @fluentui/react-aria to v9.9.1 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
34
+ - Bump @fluentui/react-avatar to v9.6.16 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
35
+ - Bump @fluentui/react-checkbox to v9.2.14 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
36
+ - Bump @fluentui/react-context-selector to v9.1.53 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
37
+ - Bump @fluentui/react-radio to v9.2.9 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
38
+ - Bump @fluentui/react-shared-contexts to v9.14.1 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
39
+ - Bump @fluentui/react-tabster to v9.19.2 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
40
+ - Bump @fluentui/react-utilities to v9.18.2 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
41
+ - Bump @fluentui/react-jsx-runtime to v9.0.31 ([PR #30639](https://github.com/microsoft/fluentui/pull/30639) by beachball)
42
+
7
43
  ## [9.11.11](https://github.com/microsoft/fluentui/tree/@fluentui/react-table_v9.11.11)
8
44
 
9
- Tue, 20 Feb 2024 14:15:29 GMT
45
+ Tue, 20 Feb 2024 14:22:25 GMT
10
46
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-table_v9.11.10..@fluentui/react-table_v9.11.11)
11
47
 
12
48
  ### Patches
@@ -48,6 +48,9 @@ export function useTableSelectionState(tableState, options) {
48
48
  if (selected.size < selectableRowIds.size) {
49
49
  return false;
50
50
  }
51
+ if (selectableRowIds.size === 0) {
52
+ return false;
53
+ }
51
54
  let res = true;
52
55
  selectableRowIds.forEach((selectableRowId)=>{
53
56
  if (!selected.has(selectableRowId)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["useTableSelection.ts"],"sourcesContent":["import * as React from 'react';\nimport { SelectionHookParams, useEventCallback, useSelection } from '@fluentui/react-utilities';\nimport type { TableRowId, TableSelectionState, TableFeaturesState } from './types';\n\nconst noop = () => undefined;\n\nexport const defaultTableSelectionState: TableSelectionState = {\n allRowsSelected: false,\n clearRows: noop,\n deselectRow: noop,\n isRowSelected: () => false,\n selectRow: noop,\n selectedRows: new Set(),\n someRowsSelected: false,\n toggleAllRows: noop,\n toggleRow: noop,\n selectionMode: 'multiselect',\n};\n\nexport function useTableSelection<TItem>(options: SelectionHookParams) {\n // False positive, these plugin hooks are intended to be run on every render\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (tableState: TableFeaturesState<TItem>) => useTableSelectionState(tableState, options);\n}\n\nexport function useTableSelectionState<TItem>(\n tableState: TableFeaturesState<TItem>,\n options: SelectionHookParams,\n): TableFeaturesState<TItem> {\n const { items, getRowId } = tableState;\n const { selectionMode: selectionMode, defaultSelectedItems, selectedItems, onSelectionChange } = options;\n\n const [selected, selectionMethods] = useSelection({\n selectionMode,\n defaultSelectedItems,\n selectedItems,\n onSelectionChange,\n });\n\n // Selection state can contain obselete items (i.e. rows that are removed)\n const selectableRowIds = React.useMemo(() => {\n const rowIds = new Set<TableRowId>();\n for (let i = 0; i < items.length; i++) {\n rowIds.add(getRowId?.(items[i]) ?? i);\n }\n\n return rowIds;\n }, [items, getRowId]);\n\n const allRowsSelected = React.useMemo(() => {\n if (selectionMode === 'single') {\n const selectedRow = Array.from(selected)[0];\n return selectableRowIds.has(selectedRow);\n }\n\n // multiselect case\n if (selected.size < selectableRowIds.size) {\n return false;\n }\n\n let res = true;\n selectableRowIds.forEach(selectableRowId => {\n if (!selected.has(selectableRowId)) {\n res = false;\n }\n });\n\n return res;\n }, [selectableRowIds, selected, selectionMode]);\n\n const someRowsSelected = React.useMemo(() => {\n if (selected.size <= 0) {\n return false;\n }\n\n let res = false;\n selectableRowIds.forEach(selectableRowId => {\n if (selected.has(selectableRowId)) {\n res = true;\n }\n });\n\n return res;\n }, [selectableRowIds, selected]);\n\n const toggleAllRows: TableSelectionState['toggleAllRows'] = useEventCallback(e => {\n selectionMethods.toggleAllItems(\n e,\n items.map((item, i) => getRowId?.(item) ?? i),\n );\n });\n\n const toggleRow: TableSelectionState['toggleRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.toggleItem(e, rowId),\n );\n\n const deselectRow: TableSelectionState['deselectRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.deselectItem(e, rowId),\n );\n\n const selectRow: TableSelectionState['selectRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.selectItem(e, rowId),\n );\n\n const isRowSelected: TableSelectionState['isRowSelected'] = (rowId: TableRowId) => selectionMethods.isSelected(rowId);\n\n const clearRows: TableSelectionState['clearRows'] = useEventCallback(e => selectionMethods.clearItems(e));\n\n return {\n ...tableState,\n selection: {\n selectionMode,\n someRowsSelected,\n allRowsSelected,\n selectedRows: selected,\n toggleRow,\n toggleAllRows,\n clearRows,\n deselectRow,\n selectRow,\n isRowSelected,\n },\n };\n}\n"],"names":["React","useEventCallback","useSelection","noop","undefined","defaultTableSelectionState","allRowsSelected","clearRows","deselectRow","isRowSelected","selectRow","selectedRows","Set","someRowsSelected","toggleAllRows","toggleRow","selectionMode","useTableSelection","options","tableState","useTableSelectionState","items","getRowId","defaultSelectedItems","selectedItems","onSelectionChange","selected","selectionMethods","selectableRowIds","useMemo","rowIds","i","length","add","selectedRow","Array","from","has","size","res","forEach","selectableRowId","e","toggleAllItems","map","item","rowId","toggleItem","deselectItem","selectItem","isSelected","clearItems","selection"],"mappings":"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"}
1
+ {"version":3,"sources":["useTableSelection.ts"],"sourcesContent":["import * as React from 'react';\nimport { SelectionHookParams, useEventCallback, useSelection } from '@fluentui/react-utilities';\nimport type { TableRowId, TableSelectionState, TableFeaturesState } from './types';\n\nconst noop = () => undefined;\n\nexport const defaultTableSelectionState: TableSelectionState = {\n allRowsSelected: false,\n clearRows: noop,\n deselectRow: noop,\n isRowSelected: () => false,\n selectRow: noop,\n selectedRows: new Set(),\n someRowsSelected: false,\n toggleAllRows: noop,\n toggleRow: noop,\n selectionMode: 'multiselect',\n};\n\nexport function useTableSelection<TItem>(options: SelectionHookParams) {\n // False positive, these plugin hooks are intended to be run on every render\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (tableState: TableFeaturesState<TItem>) => useTableSelectionState(tableState, options);\n}\n\nexport function useTableSelectionState<TItem>(\n tableState: TableFeaturesState<TItem>,\n options: SelectionHookParams,\n): TableFeaturesState<TItem> {\n const { items, getRowId } = tableState;\n const { selectionMode: selectionMode, defaultSelectedItems, selectedItems, onSelectionChange } = options;\n\n const [selected, selectionMethods] = useSelection({\n selectionMode,\n defaultSelectedItems,\n selectedItems,\n onSelectionChange,\n });\n\n // Selection state can contain obselete items (i.e. rows that are removed)\n const selectableRowIds = React.useMemo(() => {\n const rowIds = new Set<TableRowId>();\n for (let i = 0; i < items.length; i++) {\n rowIds.add(getRowId?.(items[i]) ?? i);\n }\n\n return rowIds;\n }, [items, getRowId]);\n\n const allRowsSelected = React.useMemo(() => {\n if (selectionMode === 'single') {\n const selectedRow = Array.from(selected)[0];\n return selectableRowIds.has(selectedRow);\n }\n\n // multiselect case\n if (selected.size < selectableRowIds.size) {\n return false;\n }\n\n if (selectableRowIds.size === 0) {\n return false;\n }\n\n let res = true;\n selectableRowIds.forEach(selectableRowId => {\n if (!selected.has(selectableRowId)) {\n res = false;\n }\n });\n\n return res;\n }, [selectableRowIds, selected, selectionMode]);\n\n const someRowsSelected = React.useMemo(() => {\n if (selected.size <= 0) {\n return false;\n }\n\n let res = false;\n selectableRowIds.forEach(selectableRowId => {\n if (selected.has(selectableRowId)) {\n res = true;\n }\n });\n\n return res;\n }, [selectableRowIds, selected]);\n\n const toggleAllRows: TableSelectionState['toggleAllRows'] = useEventCallback(e => {\n selectionMethods.toggleAllItems(\n e,\n items.map((item, i) => getRowId?.(item) ?? i),\n );\n });\n\n const toggleRow: TableSelectionState['toggleRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.toggleItem(e, rowId),\n );\n\n const deselectRow: TableSelectionState['deselectRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.deselectItem(e, rowId),\n );\n\n const selectRow: TableSelectionState['selectRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.selectItem(e, rowId),\n );\n\n const isRowSelected: TableSelectionState['isRowSelected'] = (rowId: TableRowId) => selectionMethods.isSelected(rowId);\n\n const clearRows: TableSelectionState['clearRows'] = useEventCallback(e => selectionMethods.clearItems(e));\n\n return {\n ...tableState,\n selection: {\n selectionMode,\n someRowsSelected,\n allRowsSelected,\n selectedRows: selected,\n toggleRow,\n toggleAllRows,\n clearRows,\n deselectRow,\n selectRow,\n isRowSelected,\n },\n };\n}\n"],"names":["React","useEventCallback","useSelection","noop","undefined","defaultTableSelectionState","allRowsSelected","clearRows","deselectRow","isRowSelected","selectRow","selectedRows","Set","someRowsSelected","toggleAllRows","toggleRow","selectionMode","useTableSelection","options","tableState","useTableSelectionState","items","getRowId","defaultSelectedItems","selectedItems","onSelectionChange","selected","selectionMethods","selectableRowIds","useMemo","rowIds","i","length","add","selectedRow","Array","from","has","size","res","forEach","selectableRowId","e","toggleAllItems","map","item","rowId","toggleItem","deselectItem","selectItem","isSelected","clearItems","selection"],"mappings":"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"}
@@ -70,6 +70,9 @@ function useTableSelectionState(tableState, options) {
70
70
  if (selected.size < selectableRowIds.size) {
71
71
  return false;
72
72
  }
73
+ if (selectableRowIds.size === 0) {
74
+ return false;
75
+ }
73
76
  let res = true;
74
77
  selectableRowIds.forEach((selectableRowId)=>{
75
78
  if (!selected.has(selectableRowId)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["useTableSelection.js"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback, useSelection } from '@fluentui/react-utilities';\nconst noop = ()=>undefined;\nexport const defaultTableSelectionState = {\n allRowsSelected: false,\n clearRows: noop,\n deselectRow: noop,\n isRowSelected: ()=>false,\n selectRow: noop,\n selectedRows: new Set(),\n someRowsSelected: false,\n toggleAllRows: noop,\n toggleRow: noop,\n selectionMode: 'multiselect'\n};\nexport function useTableSelection(options) {\n // False positive, these plugin hooks are intended to be run on every render\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (tableState)=>useTableSelectionState(tableState, options);\n}\nexport function useTableSelectionState(tableState, options) {\n const { items, getRowId } = tableState;\n const { selectionMode: selectionMode, defaultSelectedItems, selectedItems, onSelectionChange } = options;\n const [selected, selectionMethods] = useSelection({\n selectionMode,\n defaultSelectedItems,\n selectedItems,\n onSelectionChange\n });\n // Selection state can contain obselete items (i.e. rows that are removed)\n const selectableRowIds = React.useMemo(()=>{\n const rowIds = new Set();\n for(let i = 0; i < items.length; i++){\n var _getRowId;\n rowIds.add((_getRowId = getRowId === null || getRowId === void 0 ? void 0 : getRowId(items[i])) !== null && _getRowId !== void 0 ? _getRowId : i);\n }\n return rowIds;\n }, [\n items,\n getRowId\n ]);\n const allRowsSelected = React.useMemo(()=>{\n if (selectionMode === 'single') {\n const selectedRow = Array.from(selected)[0];\n return selectableRowIds.has(selectedRow);\n }\n // multiselect case\n if (selected.size < selectableRowIds.size) {\n return false;\n }\n let res = true;\n selectableRowIds.forEach((selectableRowId)=>{\n if (!selected.has(selectableRowId)) {\n res = false;\n }\n });\n return res;\n }, [\n selectableRowIds,\n selected,\n selectionMode\n ]);\n const someRowsSelected = React.useMemo(()=>{\n if (selected.size <= 0) {\n return false;\n }\n let res = false;\n selectableRowIds.forEach((selectableRowId)=>{\n if (selected.has(selectableRowId)) {\n res = true;\n }\n });\n return res;\n }, [\n selectableRowIds,\n selected\n ]);\n const toggleAllRows = useEventCallback((e)=>{\n selectionMethods.toggleAllItems(e, items.map((item, i)=>{\n var _getRowId;\n return (_getRowId = getRowId === null || getRowId === void 0 ? void 0 : getRowId(item)) !== null && _getRowId !== void 0 ? _getRowId : i;\n }));\n });\n const toggleRow = useEventCallback((e, rowId)=>selectionMethods.toggleItem(e, rowId));\n const deselectRow = useEventCallback((e, rowId)=>selectionMethods.deselectItem(e, rowId));\n const selectRow = useEventCallback((e, rowId)=>selectionMethods.selectItem(e, rowId));\n const isRowSelected = (rowId)=>selectionMethods.isSelected(rowId);\n const clearRows = useEventCallback((e)=>selectionMethods.clearItems(e));\n return {\n ...tableState,\n selection: {\n selectionMode,\n someRowsSelected,\n allRowsSelected,\n selectedRows: selected,\n toggleRow,\n toggleAllRows,\n clearRows,\n deselectRow,\n selectRow,\n isRowSelected\n }\n };\n}\n"],"names":["defaultTableSelectionState","useTableSelection","useTableSelectionState","noop","undefined","allRowsSelected","clearRows","deselectRow","isRowSelected","selectRow","selectedRows","Set","someRowsSelected","toggleAllRows","toggleRow","selectionMode","options","tableState","items","getRowId","defaultSelectedItems","selectedItems","onSelectionChange","selected","selectionMethods","useSelection","selectableRowIds","React","useMemo","rowIds","i","length","_getRowId","add","selectedRow","Array","from","has","size","res","forEach","selectableRowId","useEventCallback","e","toggleAllItems","map","item","rowId","toggleItem","deselectItem","selectItem","isSelected","clearItems","selection"],"mappings":"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"}
1
+ {"version":3,"sources":["useTableSelection.js"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback, useSelection } from '@fluentui/react-utilities';\nconst noop = ()=>undefined;\nexport const defaultTableSelectionState = {\n allRowsSelected: false,\n clearRows: noop,\n deselectRow: noop,\n isRowSelected: ()=>false,\n selectRow: noop,\n selectedRows: new Set(),\n someRowsSelected: false,\n toggleAllRows: noop,\n toggleRow: noop,\n selectionMode: 'multiselect'\n};\nexport function useTableSelection(options) {\n // False positive, these plugin hooks are intended to be run on every render\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (tableState)=>useTableSelectionState(tableState, options);\n}\nexport function useTableSelectionState(tableState, options) {\n const { items, getRowId } = tableState;\n const { selectionMode: selectionMode, defaultSelectedItems, selectedItems, onSelectionChange } = options;\n const [selected, selectionMethods] = useSelection({\n selectionMode,\n defaultSelectedItems,\n selectedItems,\n onSelectionChange\n });\n // Selection state can contain obselete items (i.e. rows that are removed)\n const selectableRowIds = React.useMemo(()=>{\n const rowIds = new Set();\n for(let i = 0; i < items.length; i++){\n var _getRowId;\n rowIds.add((_getRowId = getRowId === null || getRowId === void 0 ? void 0 : getRowId(items[i])) !== null && _getRowId !== void 0 ? _getRowId : i);\n }\n return rowIds;\n }, [\n items,\n getRowId\n ]);\n const allRowsSelected = React.useMemo(()=>{\n if (selectionMode === 'single') {\n const selectedRow = Array.from(selected)[0];\n return selectableRowIds.has(selectedRow);\n }\n // multiselect case\n if (selected.size < selectableRowIds.size) {\n return false;\n }\n if (selectableRowIds.size === 0) {\n return false;\n }\n let res = true;\n selectableRowIds.forEach((selectableRowId)=>{\n if (!selected.has(selectableRowId)) {\n res = false;\n }\n });\n return res;\n }, [\n selectableRowIds,\n selected,\n selectionMode\n ]);\n const someRowsSelected = React.useMemo(()=>{\n if (selected.size <= 0) {\n return false;\n }\n let res = false;\n selectableRowIds.forEach((selectableRowId)=>{\n if (selected.has(selectableRowId)) {\n res = true;\n }\n });\n return res;\n }, [\n selectableRowIds,\n selected\n ]);\n const toggleAllRows = useEventCallback((e)=>{\n selectionMethods.toggleAllItems(e, items.map((item, i)=>{\n var _getRowId;\n return (_getRowId = getRowId === null || getRowId === void 0 ? void 0 : getRowId(item)) !== null && _getRowId !== void 0 ? _getRowId : i;\n }));\n });\n const toggleRow = useEventCallback((e, rowId)=>selectionMethods.toggleItem(e, rowId));\n const deselectRow = useEventCallback((e, rowId)=>selectionMethods.deselectItem(e, rowId));\n const selectRow = useEventCallback((e, rowId)=>selectionMethods.selectItem(e, rowId));\n const isRowSelected = (rowId)=>selectionMethods.isSelected(rowId);\n const clearRows = useEventCallback((e)=>selectionMethods.clearItems(e));\n return {\n ...tableState,\n selection: {\n selectionMode,\n someRowsSelected,\n allRowsSelected,\n selectedRows: selected,\n toggleRow,\n toggleAllRows,\n clearRows,\n deselectRow,\n selectRow,\n isRowSelected\n }\n };\n}\n"],"names":["defaultTableSelectionState","useTableSelection","useTableSelectionState","noop","undefined","allRowsSelected","clearRows","deselectRow","isRowSelected","selectRow","selectedRows","Set","someRowsSelected","toggleAllRows","toggleRow","selectionMode","options","tableState","items","getRowId","defaultSelectedItems","selectedItems","onSelectionChange","selected","selectionMethods","useSelection","selectableRowIds","React","useMemo","rowIds","i","length","_getRowId","add","selectedRow","Array","from","has","size","res","forEach","selectableRowId","useEventCallback","e","toggleAllItems","map","item","rowId","toggleItem","deselectItem","selectItem","isSelected","clearItems","selection"],"mappings":";;;;;;;;;;;IAGaA,0BAA0B;eAA1BA;;IAYGC,iBAAiB;eAAjBA;;IAKAC,sBAAsB;eAAtBA;;;;iEApBO;gCACwB;AAC/C,MAAMC,OAAO,IAAIC;AACV,MAAMJ,6BAA6B;IACtCK,iBAAiB;IACjBC,WAAWH;IACXI,aAAaJ;IACbK,eAAe,IAAI;IACnBC,WAAWN;IACXO,cAAc,IAAIC;IAClBC,kBAAkB;IAClBC,eAAeV;IACfW,WAAWX;IACXY,eAAe;AACnB;AACO,SAASd,kBAAkBe,OAAO;IACrC,4EAA4E;IAC5E,sDAAsD;IACtD,OAAO,CAACC,aAAaf,uBAAuBe,YAAYD;AAC5D;AACO,SAASd,uBAAuBe,UAAU,EAAED,OAAO;IACtD,MAAM,EAAEE,KAAK,EAAEC,QAAQ,EAAE,GAAGF;IAC5B,MAAM,EAAEF,eAAeA,aAAa,EAAEK,oBAAoB,EAAEC,aAAa,EAAEC,iBAAiB,EAAE,GAAGN;IACjG,MAAM,CAACO,UAAUC,iBAAiB,GAAGC,IAAAA,4BAAY,EAAC;QAC9CV;QACAK;QACAC;QACAC;IACJ;IACA,0EAA0E;IAC1E,MAAMI,mBAAmBC,OAAMC,OAAO,CAAC;QACnC,MAAMC,SAAS,IAAIlB;QACnB,IAAI,IAAImB,IAAI,GAAGA,IAAIZ,MAAMa,MAAM,EAAED,IAAI;YACjC,IAAIE;YACJH,OAAOI,GAAG,CAAC,AAACD,CAAAA,YAAYb,aAAa,QAAQA,aAAa,KAAK,IAAI,KAAK,IAAIA,SAASD,KAAK,CAACY,EAAE,CAAA,MAAO,QAAQE,cAAc,KAAK,IAAIA,YAAYF;QACnJ;QACA,OAAOD;IACX,GAAG;QACCX;QACAC;KACH;IACD,MAAMd,kBAAkBsB,OAAMC,OAAO,CAAC;QAClC,IAAIb,kBAAkB,UAAU;YAC5B,MAAMmB,cAAcC,MAAMC,IAAI,CAACb,SAAS,CAAC,EAAE;YAC3C,OAAOG,iBAAiBW,GAAG,CAACH;QAChC;QACA,mBAAmB;QACnB,IAAIX,SAASe,IAAI,GAAGZ,iBAAiBY,IAAI,EAAE;YACvC,OAAO;QACX;QACA,IAAIZ,iBAAiBY,IAAI,KAAK,GAAG;YAC7B,OAAO;QACX;QACA,IAAIC,MAAM;QACVb,iBAAiBc,OAAO,CAAC,CAACC;YACtB,IAAI,CAAClB,SAASc,GAAG,CAACI,kBAAkB;gBAChCF,MAAM;YACV;QACJ;QACA,OAAOA;IACX,GAAG;QACCb;QACAH;QACAR;KACH;IACD,MAAMH,mBAAmBe,OAAMC,OAAO,CAAC;QACnC,IAAIL,SAASe,IAAI,IAAI,GAAG;YACpB,OAAO;QACX;QACA,IAAIC,MAAM;QACVb,iBAAiBc,OAAO,CAAC,CAACC;YACtB,IAAIlB,SAASc,GAAG,CAACI,kBAAkB;gBAC/BF,MAAM;YACV;QACJ;QACA,OAAOA;IACX,GAAG;QACCb;QACAH;KACH;IACD,MAAMV,gBAAgB6B,IAAAA,gCAAgB,EAAC,CAACC;QACpCnB,iBAAiBoB,cAAc,CAACD,GAAGzB,MAAM2B,GAAG,CAAC,CAACC,MAAMhB;YAChD,IAAIE;YACJ,OAAO,AAACA,CAAAA,YAAYb,aAAa,QAAQA,aAAa,KAAK,IAAI,KAAK,IAAIA,SAAS2B,KAAI,MAAO,QAAQd,cAAc,KAAK,IAAIA,YAAYF;QAC3I;IACJ;IACA,MAAMhB,YAAY4B,IAAAA,gCAAgB,EAAC,CAACC,GAAGI,QAAQvB,iBAAiBwB,UAAU,CAACL,GAAGI;IAC9E,MAAMxC,cAAcmC,IAAAA,gCAAgB,EAAC,CAACC,GAAGI,QAAQvB,iBAAiByB,YAAY,CAACN,GAAGI;IAClF,MAAMtC,YAAYiC,IAAAA,gCAAgB,EAAC,CAACC,GAAGI,QAAQvB,iBAAiB0B,UAAU,CAACP,GAAGI;IAC9E,MAAMvC,gBAAgB,CAACuC,QAAQvB,iBAAiB2B,UAAU,CAACJ;IAC3D,MAAMzC,YAAYoC,IAAAA,gCAAgB,EAAC,CAACC,IAAInB,iBAAiB4B,UAAU,CAACT;IACpE,OAAO;QACH,GAAG1B,UAAU;QACboC,WAAW;YACPtC;YACAH;YACAP;YACAK,cAAca;YACdT;YACAD;YACAP;YACAC;YACAE;YACAD;QACJ;IACJ;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-table",
3
- "version": "9.11.11",
3
+ "version": "9.11.13",
4
4
  "description": "React components for building web experiences",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -36,17 +36,17 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@fluentui/keyboard-keys": "^9.0.7",
39
- "@fluentui/react-aria": "^9.9.0",
40
- "@fluentui/react-avatar": "^9.6.15",
41
- "@fluentui/react-checkbox": "^9.2.13",
42
- "@fluentui/react-context-selector": "^9.1.52",
39
+ "@fluentui/react-aria": "^9.10.0",
40
+ "@fluentui/react-avatar": "^9.6.17",
41
+ "@fluentui/react-checkbox": "^9.2.15",
42
+ "@fluentui/react-context-selector": "^9.1.54",
43
43
  "@fluentui/react-icons": "^2.0.224",
44
- "@fluentui/react-radio": "^9.2.8",
45
- "@fluentui/react-shared-contexts": "^9.14.0",
46
- "@fluentui/react-tabster": "^9.19.1",
47
- "@fluentui/react-theme": "^9.1.16",
48
- "@fluentui/react-utilities": "^9.18.1",
49
- "@fluentui/react-jsx-runtime": "^9.0.30",
44
+ "@fluentui/react-radio": "^9.2.10",
45
+ "@fluentui/react-shared-contexts": "^9.15.0",
46
+ "@fluentui/react-tabster": "^9.19.3",
47
+ "@fluentui/react-theme": "^9.1.17",
48
+ "@fluentui/react-utilities": "^9.18.3",
49
+ "@fluentui/react-jsx-runtime": "^9.0.32",
50
50
  "@griffel/react": "^1.5.14",
51
51
  "@swc/helpers": "^0.5.1"
52
52
  },