Outlook_Addin_LLM/node_modules/@fluentui/react-tabster/lib-commonjs/hooks/useModalAttributes.js

47 lines
1.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "useModalAttributes", {
enumerable: true,
get: function() {
return useModalAttributes;
}
});
const _reactutilities = require("@fluentui/react-utilities");
const _useTabsterAttributes = require("./useTabsterAttributes");
const _tabster = require("tabster");
const _useTabster = require("./useTabster");
const useModalAttributes = (options = {})=>{
const { trapFocus, alwaysFocusable, legacyTrapFocus } = options;
const tabster = (0, _useTabster.useTabster)();
// Initializes the modalizer and restorer APIs
if (tabster) {
(0, _tabster.getModalizer)(tabster);
(0, _tabster.getRestorer)(tabster);
}
const id = (0, _reactutilities.useId)('modal-', options.id);
const modalAttributes = (0, _useTabsterAttributes.useTabsterAttributes)({
restorer: {
type: _tabster.RestorerTypes.Source
},
...trapFocus && {
modalizer: {
id,
isOthersAccessible: !trapFocus,
isAlwaysAccessible: alwaysFocusable,
isTrapped: legacyTrapFocus && trapFocus
}
}
});
const triggerAttributes = (0, _useTabsterAttributes.useTabsterAttributes)({
restorer: {
type: _tabster.RestorerTypes.Target
}
});
return {
modalAttributes,
triggerAttributes
};
};