You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
10 KiB
1 line
10 KiB
{"ast":null,"code":"const _excluded = [\"as\", \"active\", \"eventKey\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport TabContext from './TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useNavItem(_ref2) {\n let {\n key,\n onClick,\n active,\n id,\n role,\n disabled\n } = _ref2;\n const parentOnSelect = useContext(SelectableContext);\n const navContext = useContext(NavContext);\n const tabContext = useContext(TabContext);\n let isActive = active;\n const props = {\n role\n };\n if (navContext) {\n if (!role && navContext.role === 'tablist') props.role = 'tab';\n const contextControllerId = navContext.getControllerId(key != null ? key : null);\n const contextControlledId = navContext.getControlledId(key != null ? key : null); // @ts-ignore\n\n props[dataAttr('event-key')] = key;\n props.id = contextControllerId || id;\n isActive = active == null && key != null ? navContext.activeKey === key : active;\n /**\n * Simplified scenario for `mountOnEnter`.\n *\n * While it would make sense to keep 'aria-controls' for tabs that have been mounted at least\n * once, it would also complicate the code quite a bit, for very little gain.\n * The following implementation is probably good enough.\n *\n * @see https://github.com/react-restart/ui/pull/40#issuecomment-1009971561\n */\n\n if (isActive || !(tabContext != null && tabContext.unmountOnExit) && !(tabContext != null && tabContext.mountOnEnter)) props['aria-controls'] = contextControlledId;\n }\n if (props.role === 'tab') {\n props['aria-selected'] = isActive;\n if (!isActive) {\n props.tabIndex = -1;\n }\n if (disabled) {\n props.tabIndex = -1;\n props['aria-disabled'] = true;\n }\n }\n props.onClick = useEventCallback(e => {\n if (disabled) return;\n onClick == null ? void 0 : onClick(e);\n if (key == null) {\n return;\n }\n if (parentOnSelect && !e.isPropagationStopped()) {\n parentOnSelect(key, e);\n }\n });\n return [props, {\n isActive\n }];\n}\nconst NavItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: Component = Button,\n active,\n eventKey\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [props, meta] = useNavItem(Object.assign({\n key: makeEventKey(eventKey, options.href),\n active\n }, options)); // @ts-ignore\n\n props[dataAttr('active')] = meta.isActive;\n return /*#__PURE__*/_jsx(Component, Object.assign({}, options, props, {\n ref: ref\n }));\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;","map":{"version":3,"names":["_excluded","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","Object","keys","key","i","length","indexOf","React","useContext","useEventCallback","NavContext","SelectableContext","makeEventKey","Button","dataAttr","TabContext","jsx","_jsx","useNavItem","onClick","active","id","role","disabled","parentOnSelect","navContext","tabContext","isActive","props","contextControllerId","getControllerId","contextControlledId","getControlledId","activeKey","unmountOnExit","mountOnEnter","tabIndex","e","isPropagationStopped","NavItem","forwardRef","_ref","ref","as","Component","eventKey","options","meta","assign","href","displayName"],"sources":["C:/Cours/SAE/SAE-3.01/Scripted/Scripted/website/node_modules/@restart/ui/esm/NavItem.js"],"sourcesContent":["const _excluded = [\"as\", \"active\", \"eventKey\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport TabContext from './TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useNavItem({\n key,\n onClick,\n active,\n id,\n role,\n disabled\n}) {\n const parentOnSelect = useContext(SelectableContext);\n const navContext = useContext(NavContext);\n const tabContext = useContext(TabContext);\n let isActive = active;\n const props = {\n role\n };\n\n if (navContext) {\n if (!role && navContext.role === 'tablist') props.role = 'tab';\n const contextControllerId = navContext.getControllerId(key != null ? key : null);\n const contextControlledId = navContext.getControlledId(key != null ? key : null); // @ts-ignore\n\n props[dataAttr('event-key')] = key;\n props.id = contextControllerId || id;\n isActive = active == null && key != null ? navContext.activeKey === key : active;\n /**\n * Simplified scenario for `mountOnEnter`.\n *\n * While it would make sense to keep 'aria-controls' for tabs that have been mounted at least\n * once, it would also complicate the code quite a bit, for very little gain.\n * The following implementation is probably good enough.\n *\n * @see https://github.com/react-restart/ui/pull/40#issuecomment-1009971561\n */\n\n if (isActive || !(tabContext != null && tabContext.unmountOnExit) && !(tabContext != null && tabContext.mountOnEnter)) props['aria-controls'] = contextControlledId;\n }\n\n if (props.role === 'tab') {\n props['aria-selected'] = isActive;\n\n if (!isActive) {\n props.tabIndex = -1;\n }\n\n if (disabled) {\n props.tabIndex = -1;\n props['aria-disabled'] = true;\n }\n }\n\n props.onClick = useEventCallback(e => {\n if (disabled) return;\n onClick == null ? void 0 : onClick(e);\n\n if (key == null) {\n return;\n }\n\n if (parentOnSelect && !e.isPropagationStopped()) {\n parentOnSelect(key, e);\n }\n });\n return [props, {\n isActive\n }];\n}\nconst NavItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: Component = Button,\n active,\n eventKey\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const [props, meta] = useNavItem(Object.assign({\n key: makeEventKey(eventKey, options.href),\n active\n }, options)); // @ts-ignore\n\n props[dataAttr('active')] = meta.isActive;\n return /*#__PURE__*/_jsx(Component, Object.assign({}, options, props, {\n ref: ref\n }));\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;"],"mappings":"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"},"metadata":{},"sourceType":"module"} |