66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
'use client';
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
useDangerousNeverHidden_unstable: function() {
|
|
return useDangerousNeverHidden_unstable;
|
|
},
|
|
useModalAttributes: function() {
|
|
return useModalAttributes;
|
|
}
|
|
});
|
|
const _reactutilities = require("@fluentui/react-utilities");
|
|
const _useTabsterAttributes = require("./useTabsterAttributes");
|
|
const _tabster = require("tabster");
|
|
const _useTabster = require("./useTabster");
|
|
const DangerousNeverHiddenAttribute = 'data-tabster-never-hide';
|
|
const DangerousNeverHiddenPropObject = {
|
|
[DangerousNeverHiddenAttribute]: ''
|
|
};
|
|
function useDangerousNeverHidden_unstable() {
|
|
return DangerousNeverHiddenPropObject;
|
|
}
|
|
const tabsterAccessibleCheck = (element)=>{
|
|
return element.hasAttribute(DangerousNeverHiddenAttribute);
|
|
};
|
|
function initTabsterModules(tabster) {
|
|
(0, _tabster.getModalizer)(tabster, undefined, tabsterAccessibleCheck);
|
|
(0, _tabster.getRestorer)(tabster);
|
|
}
|
|
const useModalAttributes = (options = {})=>{
|
|
const { trapFocus, alwaysFocusable, legacyTrapFocus } = options;
|
|
// Initializes the modalizer and restorer APIs
|
|
(0, _useTabster.useTabster)(initTabsterModules);
|
|
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
|
|
};
|
|
};
|