@fluentui/react-northstar
Version:
A themable React component library.
110 lines (107 loc) • 5.41 kB
JavaScript
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
;