UNPKG

@fluentui/react-northstar

Version:
110 lines (107 loc) 5.41 kB
"use strict"; exports.__esModule = true; exports.breadcrumbClassName = exports.Breadcrumb = void 0; var React = _interopRequireWildcard(require("react")); var PropTypes = _interopRequireWildcard(require("prop-types")); var _reactBindings = require("@fluentui/react-bindings"); var _utils = require("../../utils"); var _accessibility = require("@fluentui/accessibility"); var _BreadcrumbItem = require("./BreadcrumbItem"); var _BreadcrumbDivider = require("./BreadcrumbDivider"); var _BreadcrumbLink = require("./BreadcrumbLink"); var _breadcrumbContext = require("./breadcrumbContext"); var _reactComponentRef = require("@fluentui/react-component-ref"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var breadcrumbClassName = 'ui-breadcrumb'; /** * Breadcrumb is a component that indicates the path of the current page * * @accessibility * Implements [ARIA Breadcrumb](https://www.w3.org/TR/wai-aria-practices-1.1/#breadcrumb) design pattern. * Refers to [this ARIA discussion](https://github.com/w3c/aria-practices/issues/635), and uses arrow key to navigate between each breadcrumb item. * * @accessibilityIssues * [Under NVDA Browse mode - Breadcrumb is not navigable](https://github.com/w3c/aria-practices/issues/635 ) */ exports.breadcrumbClassName = breadcrumbClassName; var Breadcrumb = (0, _reactBindings.compose)(function (props, ref, composeOptions) { var context = (0, _reactBindings.useFluentContext)(); var _useTelemetry = (0, _reactBindings.useTelemetry)(composeOptions.displayName, context.telemetry), setStart = _useTelemetry.setStart, setEnd = _useTelemetry.setEnd; setStart(); var accessibility = props.accessibility, children = props.children, content = props.content, className = props.className, design = props.design, styles = props.styles, variables = props.variables, size = props.size; var contextValue = React.useMemo(function () { return { size: size }; }, [size]); var getA11yProps = (0, _reactBindings.useAccessibility)(accessibility, { debugName: composeOptions.displayName, rtl: context.rtl }); var _useStyles = (0, _reactBindings.useStyles)(composeOptions.displayName, { className: composeOptions.className, composeOptions: composeOptions, mapPropsToInlineStyles: function mapPropsToInlineStyles() { return { className: className, design: design, styles: styles, variables: variables, size: size }; }, rtl: context.rtl, unstable_props: props }), classes = _useStyles.classes; var unhandledProps = (0, _reactBindings.useUnhandledProps)(composeOptions.handledProps, props); var ElementType = (0, _reactBindings.getElementType)(props); var result = getA11yProps.unstable_wrapWithFocusZone( /*#__PURE__*/React.createElement(ElementType, getA11yProps('root', Object.assign({ className: classes.root }, unhandledProps)), /*#__PURE__*/React.createElement(_breadcrumbContext.BreadcrumbContext.Provider, { value: contextValue }, /*#__PURE__*/React.createElement("div", getA11yProps('container', { className: classes.container }), (0, _reactBindings.childrenExist)(children) ? children : content)))); var wrappedElement = ref ? /*#__PURE__*/React.createElement(_reactComponentRef.Ref, { innerRef: ref }, result) : result; setEnd(); return wrappedElement; }, { className: breadcrumbClassName, displayName: 'Breadcrumb', handledProps: ['accessibility', 'as', 'children', 'className', 'content', 'design', 'styles', 'variables', 'size'], mapPropsToStylesProps: function mapPropsToStylesProps(_ref) { var size = _ref.size; return { size: size }; } }); exports.Breadcrumb = Breadcrumb; Breadcrumb.defaultProps = { as: 'nav', size: 'medium', accessibility: _accessibility.breadcrumbBehavior }; Breadcrumb.propTypes = Object.assign({}, _utils.commonPropTypes.createCommon(), { size: PropTypes.oneOf(['smaller', 'small', 'medium', 'large']) }); Breadcrumb.Item = _BreadcrumbItem.BreadcrumbItem; Breadcrumb.Divider = _BreadcrumbDivider.BreadcrumbDivider; Breadcrumb.Link = _BreadcrumbLink.BreadcrumbLink; Breadcrumb.create = (0, _utils.createShorthandFactory)({ Component: Breadcrumb }); //# sourceMappingURL=Breadcrumb.js.map