@fluentui/react-table 9.11.8 → 9.11.9

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,29 @@
1
1
  # Change Log - @fluentui/react-table
2
2
 
3
- This log was last generated on Mon, 29 Jan 2024 13:53:39 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 30 Jan 2024 23:12:34 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.11.9](https://github.com/microsoft/fluentui/tree/@fluentui/react-table_v9.11.9)
8
+
9
+ Tue, 30 Jan 2024 23:12:34 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-table_v9.11.8..@fluentui/react-table_v9.11.9)
11
+
12
+ ### Patches
13
+
14
+ - DataGrid to use dedicated custom events instead of simulated keypresses. ([PR #30387](https://github.com/microsoft/fluentui/pull/30387) by marata@microsoft.com)
15
+ - Bump @fluentui/react-aria to v9.8.1 ([PR #30429](https://github.com/microsoft/fluentui/pull/30429) by beachball)
16
+ - Bump @fluentui/react-avatar to v9.6.13 ([PR #30429](https://github.com/microsoft/fluentui/pull/30429) by beachball)
17
+ - Bump @fluentui/react-checkbox to v9.2.11 ([PR #30429](https://github.com/microsoft/fluentui/pull/30429) by beachball)
18
+ - Bump @fluentui/react-context-selector to v9.1.51 ([PR #30429](https://github.com/microsoft/fluentui/pull/30429) by beachball)
19
+ - Bump @fluentui/react-radio to v9.2.6 ([PR #30429](https://github.com/microsoft/fluentui/pull/30429) by beachball)
20
+ - Bump @fluentui/react-tabster to v9.18.0 ([PR #30429](https://github.com/microsoft/fluentui/pull/30429) by beachball)
21
+ - Bump @fluentui/react-utilities to v9.18.0 ([PR #30429](https://github.com/microsoft/fluentui/pull/30429) by beachball)
22
+ - Bump @fluentui/react-jsx-runtime to v9.0.29 ([PR #30429](https://github.com/microsoft/fluentui/pull/30429) by beachball)
23
+
7
24
  ## [9.11.8](https://github.com/microsoft/fluentui/tree/@fluentui/react-table_v9.11.8)
8
25
 
9
- Mon, 29 Jan 2024 13:53:39 GMT
26
+ Mon, 29 Jan 2024 13:56:06 GMT
10
27
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-table_v9.11.7..@fluentui/react-table_v9.11.8)
11
28
 
12
29
  ### Patches
@@ -1,8 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';
3
- import { ArrowDown, ArrowRight, Escape, keyCodes, ArrowUp } from '@fluentui/keyboard-keys';
3
+ import { ArrowDown, ArrowRight, ArrowUp } from '@fluentui/keyboard-keys';
4
4
  import { useArrowNavigationGroup, useFocusableGroup, useMergedTabsterAttributes_unstable, useFocusFinders } from '@fluentui/react-tabster';
5
5
  import { isHTMLElement } from '@fluentui/react-utilities';
6
+ import { TabsterTypes, dispatchGroupperMoveFocusEvent, dispatchMoverMoveFocusEvent } from '@fluentui/react-tabster';
6
7
  export function useTableCompositeNavigation() {
7
8
  const horizontalAttr = useArrowNavigationGroup({
8
9
  axis: 'horizontal'
@@ -20,7 +21,7 @@ export function useTableCompositeNavigation() {
20
21
  if (!targetDocument) {
21
22
  return;
22
23
  }
23
- const activeElement = targetDocument.activeElement;
24
+ let activeElement = targetDocument.activeElement;
24
25
  if (!activeElement || !e.currentTarget.contains(activeElement)) {
25
26
  return;
26
27
  }
@@ -46,16 +47,11 @@ export function useTableCompositeNavigation() {
46
47
  })();
47
48
  // Escape groupper focus trap before arrow down
48
49
  if ((e.key === ArrowDown || e.key === ArrowUp) && isInCell) {
49
- activeElement.dispatchEvent(new KeyboardEvent('keydown', {
50
- key: Escape,
51
- keyCode: keyCodes.Escape
52
- }));
53
- // Tabster uses keycodes
54
- // eslint-disable-next-line deprecation/deprecation
55
- activeElement.dispatchEvent(new KeyboardEvent('keydown', {
56
- key: e.key,
57
- keyCode: e.keyCode
58
- }));
50
+ dispatchGroupperMoveFocusEvent(activeElement, TabsterTypes.GroupperMoveFocusActions.Escape);
51
+ activeElement = targetDocument.activeElement;
52
+ if (activeElement) {
53
+ dispatchMoverMoveFocusEvent(activeElement, TabsterTypes.MoverKeys[e.key]);
54
+ }
59
55
  }
60
56
  }, [
61
57
  targetDocument,
@@ -1 +1 @@
1
- {"version":3,"sources":["useTableCompositeNavigation.ts"],"sourcesContent":["import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowDown, ArrowRight, Escape, keyCodes, ArrowUp } from '@fluentui/keyboard-keys';\nimport {\n useArrowNavigationGroup,\n useFocusableGroup,\n useMergedTabsterAttributes_unstable,\n TabsterDOMAttribute,\n useFocusFinders,\n} from '@fluentui/react-tabster';\nimport { isHTMLElement } from '@fluentui/react-utilities';\n\nexport function useTableCompositeNavigation(): {\n onTableKeyDown: React.KeyboardEventHandler;\n tableTabsterAttribute: TabsterDOMAttribute;\n tableRowTabsterAttribute: TabsterDOMAttribute;\n} {\n const horizontalAttr = useArrowNavigationGroup({ axis: 'horizontal' });\n const gridAttr = useArrowNavigationGroup({ axis: 'grid' });\n const groupperAttr = useFocusableGroup({ tabBehavior: 'limited-trap-focus' });\n const { findFirstFocusable } = useFocusFinders();\n const { targetDocument } = useFluent();\n\n const rowAttr = useMergedTabsterAttributes_unstable(horizontalAttr, groupperAttr);\n\n const onKeyDown: React.KeyboardEventHandler = React.useCallback(\n e => {\n if (!targetDocument) {\n return;\n }\n\n const activeElement = targetDocument.activeElement;\n if (!activeElement || !e.currentTarget.contains(activeElement)) {\n return;\n }\n const activeElementRole = activeElement.getAttribute('role');\n\n // Enter groupper when in row focus mode to navigate cells\n if (e.key === ArrowRight && activeElementRole === 'row' && isHTMLElement(activeElement)) {\n findFirstFocusable(activeElement)?.focus();\n }\n\n if (activeElementRole === 'row') {\n return;\n }\n\n const isInCell = (() => {\n let cur = isHTMLElement(activeElement) ? activeElement : null;\n while (cur) {\n const curRole = cur.getAttribute('role');\n if (curRole === 'cell' || curRole === 'gridcell') {\n return true;\n }\n\n cur = cur.parentElement;\n }\n\n return false;\n })();\n\n // Escape groupper focus trap before arrow down\n if ((e.key === ArrowDown || e.key === ArrowUp) && isInCell) {\n activeElement.dispatchEvent(new KeyboardEvent('keydown', { key: Escape, keyCode: keyCodes.Escape }));\n // Tabster uses keycodes\n // eslint-disable-next-line deprecation/deprecation\n activeElement.dispatchEvent(new KeyboardEvent('keydown', { key: e.key, keyCode: e.keyCode }));\n }\n },\n [targetDocument, findFirstFocusable],\n );\n\n return {\n onTableKeyDown: onKeyDown,\n tableTabsterAttribute: gridAttr,\n tableRowTabsterAttribute: rowAttr,\n };\n}\n"],"names":["React","useFluent_unstable","useFluent","ArrowDown","ArrowRight","Escape","keyCodes","ArrowUp","useArrowNavigationGroup","useFocusableGroup","useMergedTabsterAttributes_unstable","useFocusFinders","isHTMLElement","useTableCompositeNavigation","horizontalAttr","axis","gridAttr","groupperAttr","tabBehavior","findFirstFocusable","targetDocument","rowAttr","onKeyDown","useCallback","e","activeElement","currentTarget","contains","activeElementRole","getAttribute","key","focus","isInCell","cur","curRole","parentElement","dispatchEvent","KeyboardEvent","keyCode","onTableKeyDown","tableTabsterAttribute","tableRowTabsterAttribute"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsBC,SAAS,QAAQ,kCAAkC;AAClF,SAASC,SAAS,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,0BAA0B;AAC3F,SACEC,uBAAuB,EACvBC,iBAAiB,EACjBC,mCAAmC,EAEnCC,eAAe,QACV,0BAA0B;AACjC,SAASC,aAAa,QAAQ,4BAA4B;AAE1D,OAAO,SAASC;IAKd,MAAMC,iBAAiBN,wBAAwB;QAAEO,MAAM;IAAa;IACpE,MAAMC,WAAWR,wBAAwB;QAAEO,MAAM;IAAO;IACxD,MAAME,eAAeR,kBAAkB;QAAES,aAAa;IAAqB;IAC3E,MAAM,EAAEC,kBAAkB,EAAE,GAAGR;IAC/B,MAAM,EAAES,cAAc,EAAE,GAAGlB;IAE3B,MAAMmB,UAAUX,oCAAoCI,gBAAgBG;IAEpE,MAAMK,YAAwCtB,MAAMuB,WAAW,CAC7DC,CAAAA;QACE,IAAI,CAACJ,gBAAgB;YACnB;QACF;QAEA,MAAMK,gBAAgBL,eAAeK,aAAa;QAClD,IAAI,CAACA,iBAAiB,CAACD,EAAEE,aAAa,CAACC,QAAQ,CAACF,gBAAgB;YAC9D;QACF;QACA,MAAMG,oBAAoBH,cAAcI,YAAY,CAAC;QAErD,0DAA0D;QAC1D,IAAIL,EAAEM,GAAG,KAAK1B,cAAcwB,sBAAsB,SAAShB,cAAca,gBAAgB;gBACvFN;aAAAA,sBAAAA,mBAAmBM,4BAAnBN,0CAAAA,oBAAmCY,KAAK;QAC1C;QAEA,IAAIH,sBAAsB,OAAO;YAC/B;QACF;QAEA,MAAMI,WAAW,AAAC,CAAA;YAChB,IAAIC,MAAMrB,cAAca,iBAAiBA,gBAAgB;YACzD,MAAOQ,IAAK;gBACV,MAAMC,UAAUD,IAAIJ,YAAY,CAAC;gBACjC,IAAIK,YAAY,UAAUA,YAAY,YAAY;oBAChD,OAAO;gBACT;gBAEAD,MAAMA,IAAIE,aAAa;YACzB;YAEA,OAAO;QACT,CAAA;QAEA,+CAA+C;QAC/C,IAAI,AAACX,CAAAA,EAAEM,GAAG,KAAK3B,aAAaqB,EAAEM,GAAG,KAAKvB,OAAM,KAAMyB,UAAU;YAC1DP,cAAcW,aAAa,CAAC,IAAIC,cAAc,WAAW;gBAAEP,KAAKzB;gBAAQiC,SAAShC,SAASD,MAAM;YAAC;YACjG,wBAAwB;YACxB,mDAAmD;YACnDoB,cAAcW,aAAa,CAAC,IAAIC,cAAc,WAAW;gBAAEP,KAAKN,EAAEM,GAAG;gBAAEQ,SAASd,EAAEc,OAAO;YAAC;QAC5F;IACF,GACA;QAAClB;QAAgBD;KAAmB;IAGtC,OAAO;QACLoB,gBAAgBjB;QAChBkB,uBAAuBxB;QACvByB,0BAA0BpB;IAC5B;AACF"}
1
+ {"version":3,"sources":["useTableCompositeNavigation.ts"],"sourcesContent":["import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowDown, ArrowRight, ArrowUp } from '@fluentui/keyboard-keys';\nimport {\n useArrowNavigationGroup,\n useFocusableGroup,\n useMergedTabsterAttributes_unstable,\n TabsterDOMAttribute,\n useFocusFinders,\n} from '@fluentui/react-tabster';\nimport { isHTMLElement } from '@fluentui/react-utilities';\nimport { TabsterTypes, dispatchGroupperMoveFocusEvent, dispatchMoverMoveFocusEvent } from '@fluentui/react-tabster';\n\nexport function useTableCompositeNavigation(): {\n onTableKeyDown: React.KeyboardEventHandler;\n tableTabsterAttribute: TabsterDOMAttribute;\n tableRowTabsterAttribute: TabsterDOMAttribute;\n} {\n const horizontalAttr = useArrowNavigationGroup({ axis: 'horizontal' });\n const gridAttr = useArrowNavigationGroup({ axis: 'grid' });\n const groupperAttr = useFocusableGroup({ tabBehavior: 'limited-trap-focus' });\n const { findFirstFocusable } = useFocusFinders();\n const { targetDocument } = useFluent();\n\n const rowAttr = useMergedTabsterAttributes_unstable(horizontalAttr, groupperAttr);\n\n const onKeyDown: React.KeyboardEventHandler = React.useCallback(\n e => {\n if (!targetDocument) {\n return;\n }\n\n let activeElement = targetDocument.activeElement;\n if (!activeElement || !e.currentTarget.contains(activeElement)) {\n return;\n }\n const activeElementRole = activeElement.getAttribute('role');\n\n // Enter groupper when in row focus mode to navigate cells\n if (e.key === ArrowRight && activeElementRole === 'row' && isHTMLElement(activeElement)) {\n findFirstFocusable(activeElement)?.focus();\n }\n\n if (activeElementRole === 'row') {\n return;\n }\n\n const isInCell = (() => {\n let cur = isHTMLElement(activeElement) ? activeElement : null;\n while (cur) {\n const curRole = cur.getAttribute('role');\n if (curRole === 'cell' || curRole === 'gridcell') {\n return true;\n }\n\n cur = cur.parentElement;\n }\n\n return false;\n })();\n\n // Escape groupper focus trap before arrow down\n if ((e.key === ArrowDown || e.key === ArrowUp) && isInCell) {\n dispatchGroupperMoveFocusEvent(activeElement as HTMLElement, TabsterTypes.GroupperMoveFocusActions.Escape);\n\n activeElement = targetDocument.activeElement;\n\n if (activeElement) {\n dispatchMoverMoveFocusEvent(activeElement as HTMLElement, TabsterTypes.MoverKeys[e.key]);\n }\n }\n },\n [targetDocument, findFirstFocusable],\n );\n\n return {\n onTableKeyDown: onKeyDown,\n tableTabsterAttribute: gridAttr,\n tableRowTabsterAttribute: rowAttr,\n };\n}\n"],"names":["React","useFluent_unstable","useFluent","ArrowDown","ArrowRight","ArrowUp","useArrowNavigationGroup","useFocusableGroup","useMergedTabsterAttributes_unstable","useFocusFinders","isHTMLElement","TabsterTypes","dispatchGroupperMoveFocusEvent","dispatchMoverMoveFocusEvent","useTableCompositeNavigation","horizontalAttr","axis","gridAttr","groupperAttr","tabBehavior","findFirstFocusable","targetDocument","rowAttr","onKeyDown","useCallback","e","activeElement","currentTarget","contains","activeElementRole","getAttribute","key","focus","isInCell","cur","curRole","parentElement","GroupperMoveFocusActions","Escape","MoverKeys","onTableKeyDown","tableTabsterAttribute","tableRowTabsterAttribute"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsBC,SAAS,QAAQ,kCAAkC;AAClF,SAASC,SAAS,EAAEC,UAAU,EAAEC,OAAO,QAAQ,0BAA0B;AACzE,SACEC,uBAAuB,EACvBC,iBAAiB,EACjBC,mCAAmC,EAEnCC,eAAe,QACV,0BAA0B;AACjC,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,EAAEC,8BAA8B,EAAEC,2BAA2B,QAAQ,0BAA0B;AAEpH,OAAO,SAASC;IAKd,MAAMC,iBAAiBT,wBAAwB;QAAEU,MAAM;IAAa;IACpE,MAAMC,WAAWX,wBAAwB;QAAEU,MAAM;IAAO;IACxD,MAAME,eAAeX,kBAAkB;QAAEY,aAAa;IAAqB;IAC3E,MAAM,EAAEC,kBAAkB,EAAE,GAAGX;IAC/B,MAAM,EAAEY,cAAc,EAAE,GAAGnB;IAE3B,MAAMoB,UAAUd,oCAAoCO,gBAAgBG;IAEpE,MAAMK,YAAwCvB,MAAMwB,WAAW,CAC7DC,CAAAA;QACE,IAAI,CAACJ,gBAAgB;YACnB;QACF;QAEA,IAAIK,gBAAgBL,eAAeK,aAAa;QAChD,IAAI,CAACA,iBAAiB,CAACD,EAAEE,aAAa,CAACC,QAAQ,CAACF,gBAAgB;YAC9D;QACF;QACA,MAAMG,oBAAoBH,cAAcI,YAAY,CAAC;QAErD,0DAA0D;QAC1D,IAAIL,EAAEM,GAAG,KAAK3B,cAAcyB,sBAAsB,SAASnB,cAAcgB,gBAAgB;gBACvFN;aAAAA,sBAAAA,mBAAmBM,4BAAnBN,0CAAAA,oBAAmCY,KAAK;QAC1C;QAEA,IAAIH,sBAAsB,OAAO;YAC/B;QACF;QAEA,MAAMI,WAAW,AAAC,CAAA;YAChB,IAAIC,MAAMxB,cAAcgB,iBAAiBA,gBAAgB;YACzD,MAAOQ,IAAK;gBACV,MAAMC,UAAUD,IAAIJ,YAAY,CAAC;gBACjC,IAAIK,YAAY,UAAUA,YAAY,YAAY;oBAChD,OAAO;gBACT;gBAEAD,MAAMA,IAAIE,aAAa;YACzB;YAEA,OAAO;QACT,CAAA;QAEA,+CAA+C;QAC/C,IAAI,AAACX,CAAAA,EAAEM,GAAG,KAAK5B,aAAasB,EAAEM,GAAG,KAAK1B,OAAM,KAAM4B,UAAU;YAC1DrB,+BAA+Bc,eAA8Bf,aAAa0B,wBAAwB,CAACC,MAAM;YAEzGZ,gBAAgBL,eAAeK,aAAa;YAE5C,IAAIA,eAAe;gBACjBb,4BAA4Ba,eAA8Bf,aAAa4B,SAAS,CAACd,EAAEM,GAAG,CAAC;YACzF;QACF;IACF,GACA;QAACV;QAAgBD;KAAmB;IAGtC,OAAO;QACLoB,gBAAgBjB;QAChBkB,uBAAuBxB;QACvByB,0BAA0BpB;IAC5B;AACF"}
@@ -31,7 +31,7 @@ function useTableCompositeNavigation() {
31
31
  if (!targetDocument) {
32
32
  return;
33
33
  }
34
- const activeElement = targetDocument.activeElement;
34
+ let activeElement = targetDocument.activeElement;
35
35
  if (!activeElement || !e.currentTarget.contains(activeElement)) {
36
36
  return;
37
37
  }
@@ -57,16 +57,11 @@ function useTableCompositeNavigation() {
57
57
  })();
58
58
  // Escape groupper focus trap before arrow down
59
59
  if ((e.key === _keyboardkeys.ArrowDown || e.key === _keyboardkeys.ArrowUp) && isInCell) {
60
- activeElement.dispatchEvent(new KeyboardEvent('keydown', {
61
- key: _keyboardkeys.Escape,
62
- keyCode: _keyboardkeys.keyCodes.Escape
63
- }));
64
- // Tabster uses keycodes
65
- // eslint-disable-next-line deprecation/deprecation
66
- activeElement.dispatchEvent(new KeyboardEvent('keydown', {
67
- key: e.key,
68
- keyCode: e.keyCode
69
- }));
60
+ (0, _reacttabster.dispatchGroupperMoveFocusEvent)(activeElement, _reacttabster.TabsterTypes.GroupperMoveFocusActions.Escape);
61
+ activeElement = targetDocument.activeElement;
62
+ if (activeElement) {
63
+ (0, _reacttabster.dispatchMoverMoveFocusEvent)(activeElement, _reacttabster.TabsterTypes.MoverKeys[e.key]);
64
+ }
70
65
  }
71
66
  }, [
72
67
  targetDocument,
@@ -1 +1 @@
1
- {"version":3,"sources":["useTableCompositeNavigation.js"],"sourcesContent":["import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowDown, ArrowRight, Escape, keyCodes, ArrowUp } from '@fluentui/keyboard-keys';\nimport { useArrowNavigationGroup, useFocusableGroup, useMergedTabsterAttributes_unstable, useFocusFinders } from '@fluentui/react-tabster';\nimport { isHTMLElement } from '@fluentui/react-utilities';\nexport function useTableCompositeNavigation() {\n const horizontalAttr = useArrowNavigationGroup({\n axis: 'horizontal'\n });\n const gridAttr = useArrowNavigationGroup({\n axis: 'grid'\n });\n const groupperAttr = useFocusableGroup({\n tabBehavior: 'limited-trap-focus'\n });\n const { findFirstFocusable } = useFocusFinders();\n const { targetDocument } = useFluent();\n const rowAttr = useMergedTabsterAttributes_unstable(horizontalAttr, groupperAttr);\n const onKeyDown = React.useCallback((e)=>{\n if (!targetDocument) {\n return;\n }\n const activeElement = targetDocument.activeElement;\n if (!activeElement || !e.currentTarget.contains(activeElement)) {\n return;\n }\n const activeElementRole = activeElement.getAttribute('role');\n // Enter groupper when in row focus mode to navigate cells\n if (e.key === ArrowRight && activeElementRole === 'row' && isHTMLElement(activeElement)) {\n var _findFirstFocusable;\n (_findFirstFocusable = findFirstFocusable(activeElement)) === null || _findFirstFocusable === void 0 ? void 0 : _findFirstFocusable.focus();\n }\n if (activeElementRole === 'row') {\n return;\n }\n const isInCell = (()=>{\n let cur = isHTMLElement(activeElement) ? activeElement : null;\n while(cur){\n const curRole = cur.getAttribute('role');\n if (curRole === 'cell' || curRole === 'gridcell') {\n return true;\n }\n cur = cur.parentElement;\n }\n return false;\n })();\n // Escape groupper focus trap before arrow down\n if ((e.key === ArrowDown || e.key === ArrowUp) && isInCell) {\n activeElement.dispatchEvent(new KeyboardEvent('keydown', {\n key: Escape,\n keyCode: keyCodes.Escape\n }));\n // Tabster uses keycodes\n // eslint-disable-next-line deprecation/deprecation\n activeElement.dispatchEvent(new KeyboardEvent('keydown', {\n key: e.key,\n keyCode: e.keyCode\n }));\n }\n }, [\n targetDocument,\n findFirstFocusable\n ]);\n return {\n onTableKeyDown: onKeyDown,\n tableTabsterAttribute: gridAttr,\n tableRowTabsterAttribute: rowAttr\n };\n}\n"],"names":["useTableCompositeNavigation","horizontalAttr","useArrowNavigationGroup","axis","gridAttr","groupperAttr","useFocusableGroup","tabBehavior","findFirstFocusable","useFocusFinders","targetDocument","useFluent","rowAttr","useMergedTabsterAttributes_unstable","onKeyDown","React","useCallback","e","activeElement","currentTarget","contains","activeElementRole","getAttribute","key","ArrowRight","isHTMLElement","_findFirstFocusable","focus","isInCell","cur","curRole","parentElement","ArrowDown","ArrowUp","dispatchEvent","KeyboardEvent","Escape","keyCode","keyCodes","onTableKeyDown","tableTabsterAttribute","tableRowTabsterAttribute"],"mappings":";;;;+BAKgBA;;;eAAAA;;;;iEALO;qCACyB;8BACiB;8BACgD;gCACnF;AACvB,SAASA;IACZ,MAAMC,iBAAiBC,IAAAA,qCAAuB,EAAC;QAC3CC,MAAM;IACV;IACA,MAAMC,WAAWF,IAAAA,qCAAuB,EAAC;QACrCC,MAAM;IACV;IACA,MAAME,eAAeC,IAAAA,+BAAiB,EAAC;QACnCC,aAAa;IACjB;IACA,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,IAAAA,6BAAe;IAC9C,MAAM,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAS;IACpC,MAAMC,UAAUC,IAAAA,iDAAmC,EAACZ,gBAAgBI;IACpE,MAAMS,YAAYC,OAAMC,WAAW,CAAC,CAACC;QACjC,IAAI,CAACP,gBAAgB;YACjB;QACJ;QACA,MAAMQ,gBAAgBR,eAAeQ,aAAa;QAClD,IAAI,CAACA,iBAAiB,CAACD,EAAEE,aAAa,CAACC,QAAQ,CAACF,gBAAgB;YAC5D;QACJ;QACA,MAAMG,oBAAoBH,cAAcI,YAAY,CAAC;QACrD,0DAA0D;QAC1D,IAAIL,EAAEM,GAAG,KAAKC,wBAAU,IAAIH,sBAAsB,SAASI,IAAAA,6BAAa,EAACP,gBAAgB;YACrF,IAAIQ;YACHA,CAAAA,sBAAsBlB,mBAAmBU,cAAa,MAAO,QAAQQ,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBC,KAAK;QAC7I;QACA,IAAIN,sBAAsB,OAAO;YAC7B;QACJ;QACA,MAAMO,WAAW,AAAC,CAAA;YACd,IAAIC,MAAMJ,IAAAA,6BAAa,EAACP,iBAAiBA,gBAAgB;YACzD,MAAMW,IAAI;gBACN,MAAMC,UAAUD,IAAIP,YAAY,CAAC;gBACjC,IAAIQ,YAAY,UAAUA,YAAY,YAAY;oBAC9C,OAAO;gBACX;gBACAD,MAAMA,IAAIE,aAAa;YAC3B;YACA,OAAO;QACX,CAAA;QACA,+CAA+C;QAC/C,IAAI,AAACd,CAAAA,EAAEM,GAAG,KAAKS,uBAAS,IAAIf,EAAEM,GAAG,KAAKU,qBAAO,AAAD,KAAML,UAAU;YACxDV,cAAcgB,aAAa,CAAC,IAAIC,cAAc,WAAW;gBACrDZ,KAAKa,oBAAM;gBACXC,SAASC,sBAAQ,CAACF,MAAM;YAC5B;YACA,wBAAwB;YACxB,mDAAmD;YACnDlB,cAAcgB,aAAa,CAAC,IAAIC,cAAc,WAAW;gBACrDZ,KAAKN,EAAEM,GAAG;gBACVc,SAASpB,EAAEoB,OAAO;YACtB;QACJ;IACJ,GAAG;QACC3B;QACAF;KACH;IACD,OAAO;QACH+B,gBAAgBzB;QAChB0B,uBAAuBpC;QACvBqC,0BAA0B7B;IAC9B;AACJ"}
1
+ {"version":3,"sources":["useTableCompositeNavigation.js"],"sourcesContent":["import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowDown, ArrowRight, ArrowUp } from '@fluentui/keyboard-keys';\nimport { useArrowNavigationGroup, useFocusableGroup, useMergedTabsterAttributes_unstable, useFocusFinders } from '@fluentui/react-tabster';\nimport { isHTMLElement } from '@fluentui/react-utilities';\nimport { TabsterTypes, dispatchGroupperMoveFocusEvent, dispatchMoverMoveFocusEvent } from '@fluentui/react-tabster';\nexport function useTableCompositeNavigation() {\n const horizontalAttr = useArrowNavigationGroup({\n axis: 'horizontal'\n });\n const gridAttr = useArrowNavigationGroup({\n axis: 'grid'\n });\n const groupperAttr = useFocusableGroup({\n tabBehavior: 'limited-trap-focus'\n });\n const { findFirstFocusable } = useFocusFinders();\n const { targetDocument } = useFluent();\n const rowAttr = useMergedTabsterAttributes_unstable(horizontalAttr, groupperAttr);\n const onKeyDown = React.useCallback((e)=>{\n if (!targetDocument) {\n return;\n }\n let activeElement = targetDocument.activeElement;\n if (!activeElement || !e.currentTarget.contains(activeElement)) {\n return;\n }\n const activeElementRole = activeElement.getAttribute('role');\n // Enter groupper when in row focus mode to navigate cells\n if (e.key === ArrowRight && activeElementRole === 'row' && isHTMLElement(activeElement)) {\n var _findFirstFocusable;\n (_findFirstFocusable = findFirstFocusable(activeElement)) === null || _findFirstFocusable === void 0 ? void 0 : _findFirstFocusable.focus();\n }\n if (activeElementRole === 'row') {\n return;\n }\n const isInCell = (()=>{\n let cur = isHTMLElement(activeElement) ? activeElement : null;\n while(cur){\n const curRole = cur.getAttribute('role');\n if (curRole === 'cell' || curRole === 'gridcell') {\n return true;\n }\n cur = cur.parentElement;\n }\n return false;\n })();\n // Escape groupper focus trap before arrow down\n if ((e.key === ArrowDown || e.key === ArrowUp) && isInCell) {\n dispatchGroupperMoveFocusEvent(activeElement, TabsterTypes.GroupperMoveFocusActions.Escape);\n activeElement = targetDocument.activeElement;\n if (activeElement) {\n dispatchMoverMoveFocusEvent(activeElement, TabsterTypes.MoverKeys[e.key]);\n }\n }\n }, [\n targetDocument,\n findFirstFocusable\n ]);\n return {\n onTableKeyDown: onKeyDown,\n tableTabsterAttribute: gridAttr,\n tableRowTabsterAttribute: rowAttr\n };\n}\n"],"names":["useTableCompositeNavigation","horizontalAttr","useArrowNavigationGroup","axis","gridAttr","groupperAttr","useFocusableGroup","tabBehavior","findFirstFocusable","useFocusFinders","targetDocument","useFluent","rowAttr","useMergedTabsterAttributes_unstable","onKeyDown","React","useCallback","e","activeElement","currentTarget","contains","activeElementRole","getAttribute","key","ArrowRight","isHTMLElement","_findFirstFocusable","focus","isInCell","cur","curRole","parentElement","ArrowDown","ArrowUp","dispatchGroupperMoveFocusEvent","TabsterTypes","GroupperMoveFocusActions","Escape","dispatchMoverMoveFocusEvent","MoverKeys","onTableKeyDown","tableTabsterAttribute","tableRowTabsterAttribute"],"mappings":";;;;+BAMgBA;;;eAAAA;;;;iEANO;qCACyB;8BACD;8BACkE;gCACnF;AAEvB,SAASA;IACZ,MAAMC,iBAAiBC,IAAAA,qCAAuB,EAAC;QAC3CC,MAAM;IACV;IACA,MAAMC,WAAWF,IAAAA,qCAAuB,EAAC;QACrCC,MAAM;IACV;IACA,MAAME,eAAeC,IAAAA,+BAAiB,EAAC;QACnCC,aAAa;IACjB;IACA,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,IAAAA,6BAAe;IAC9C,MAAM,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAS;IACpC,MAAMC,UAAUC,IAAAA,iDAAmC,EAACZ,gBAAgBI;IACpE,MAAMS,YAAYC,OAAMC,WAAW,CAAC,CAACC;QACjC,IAAI,CAACP,gBAAgB;YACjB;QACJ;QACA,IAAIQ,gBAAgBR,eAAeQ,aAAa;QAChD,IAAI,CAACA,iBAAiB,CAACD,EAAEE,aAAa,CAACC,QAAQ,CAACF,gBAAgB;YAC5D;QACJ;QACA,MAAMG,oBAAoBH,cAAcI,YAAY,CAAC;QACrD,0DAA0D;QAC1D,IAAIL,EAAEM,GAAG,KAAKC,wBAAU,IAAIH,sBAAsB,SAASI,IAAAA,6BAAa,EAACP,gBAAgB;YACrF,IAAIQ;YACHA,CAAAA,sBAAsBlB,mBAAmBU,cAAa,MAAO,QAAQQ,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBC,KAAK;QAC7I;QACA,IAAIN,sBAAsB,OAAO;YAC7B;QACJ;QACA,MAAMO,WAAW,AAAC,CAAA;YACd,IAAIC,MAAMJ,IAAAA,6BAAa,EAACP,iBAAiBA,gBAAgB;YACzD,MAAMW,IAAI;gBACN,MAAMC,UAAUD,IAAIP,YAAY,CAAC;gBACjC,IAAIQ,YAAY,UAAUA,YAAY,YAAY;oBAC9C,OAAO;gBACX;gBACAD,MAAMA,IAAIE,aAAa;YAC3B;YACA,OAAO;QACX,CAAA;QACA,+CAA+C;QAC/C,IAAI,AAACd,CAAAA,EAAEM,GAAG,KAAKS,uBAAS,IAAIf,EAAEM,GAAG,KAAKU,qBAAO,AAAD,KAAML,UAAU;YACxDM,IAAAA,4CAA8B,EAAChB,eAAeiB,0BAAY,CAACC,wBAAwB,CAACC,MAAM;YAC1FnB,gBAAgBR,eAAeQ,aAAa;YAC5C,IAAIA,eAAe;gBACfoB,IAAAA,yCAA2B,EAACpB,eAAeiB,0BAAY,CAACI,SAAS,CAACtB,EAAEM,GAAG,CAAC;YAC5E;QACJ;IACJ,GAAG;QACCb;QACAF;KACH;IACD,OAAO;QACHgC,gBAAgB1B;QAChB2B,uBAAuBrC;QACvBsC,0BAA0B9B;IAC9B;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-table",
3
- "version": "9.11.8",
3
+ "version": "9.11.9",
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.8.0",
40
- "@fluentui/react-avatar": "^9.6.12",
41
- "@fluentui/react-checkbox": "^9.2.10",
42
- "@fluentui/react-context-selector": "^9.1.50",
39
+ "@fluentui/react-aria": "^9.8.1",
40
+ "@fluentui/react-avatar": "^9.6.13",
41
+ "@fluentui/react-checkbox": "^9.2.11",
42
+ "@fluentui/react-context-selector": "^9.1.51",
43
43
  "@fluentui/react-icons": "^2.0.224",
44
- "@fluentui/react-radio": "^9.2.5",
44
+ "@fluentui/react-radio": "^9.2.6",
45
45
  "@fluentui/react-shared-contexts": "^9.14.0",
46
- "@fluentui/react-tabster": "^9.17.4",
46
+ "@fluentui/react-tabster": "^9.18.0",
47
47
  "@fluentui/react-theme": "^9.1.16",
48
- "@fluentui/react-utilities": "^9.17.0",
49
- "@fluentui/react-jsx-runtime": "^9.0.28",
48
+ "@fluentui/react-utilities": "^9.18.0",
49
+ "@fluentui/react-jsx-runtime": "^9.0.29",
50
50
  "@griffel/react": "^1.5.14",
51
51
  "@swc/helpers": "^0.5.1"
52
52
  },