@gold.au/inpage-nav
Version:
Use inpage-nav links to help users scan and jump to content of a page.
29 lines • 16.5 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.AUinpageNavSection=exports.AUinpageNavLinks=exports.AUinpageNavLinksItem=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));require("../css/styles.css");var _excluded=["link","title","li"],_excluded2=["dark","title","sections","ariaLabel","className"],_excluded3=["title","link","children","level","headingClass","sectionLink","className"];function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _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}/**
* The section component for the AUinpageNavLinks component
*
* @param {object} link - The link of this section
* @param {object} title - The title of the section
* @param {object} li - An additional object to be spread into the wrapping element, optional
* @param {object} attributeOptions - Any other attribute options
*/var AUinpageNavLinksItem=function AUinpageNavLinksItem(_ref){var link=_ref.link,title=_ref.title,_ref$li=_ref.li,li=_ref$li===void 0?{}:_ref$li,attributeOptions=_objectWithoutProperties(_ref,_excluded);return/*#__PURE__*/_react["default"].createElement("li",li,/*#__PURE__*/_react["default"].createElement("a",_extends({href:"#".concat(link)},attributeOptions),title))};exports.AUinpageNavLinksItem=AUinpageNavLinksItem;AUinpageNavLinksItem.propTypes={link:_propTypes["default"].string.isRequired,title:_propTypes["default"].string.isRequired,li:_propTypes["default"].object};/**
* The inpage-nav component
*
* @param {boolean} dark - Add the dark variation class, optional
* @param {string} title - The title of the content link block, default: Contents
* @param {array} sections - An array of objects of all sections, sample: { link: '', title: '', onClick: () }
* @param {string} className - An additional class, optional
* @param {string} ariaLabel - The aria-label attribute, optional
* @param {object} attributeOptions - Any other attribute options
*/var AUinpageNavLinks=function AUinpageNavLinks(_ref2){var dark=_ref2.dark,title=_ref2.title,sections=_ref2.sections,ariaLabel=_ref2.ariaLabel,_ref2$className=_ref2.className,className=_ref2$className===void 0?"":_ref2$className,attributeOptions=_objectWithoutProperties(_ref2,_excluded2);return/*#__PURE__*/_react["default"].createElement("nav",_extends({className:"au-inpage-nav-links ".concat(className).concat(dark?" au-inpage-nav-links--dark":""),ariaLabel:ariaLabel},attributeOptions),/*#__PURE__*/_react["default"].createElement("h2",{className:"au-inpage-nav-links__heading au-display-sm"},title),/*#__PURE__*/_react["default"].createElement("ul",{className:"au-link-list"},sections.map(function(section,i){return/*#__PURE__*/_react["default"].createElement(AUinpageNavLinksItem,_extends({key:i},section))})))};exports.AUinpageNavLinks=AUinpageNavLinks;AUinpageNavLinks.propTypes={dark:_propTypes["default"].bool,title:_propTypes["default"].string.isRequired,sections:_propTypes["default"].arrayOf(_propTypes["default"].shape({link:_propTypes["default"].string.isRequired,title:_propTypes["default"].string.isRequired,li:_propTypes["default"].object})).isRequired,className:_propTypes["default"].string};AUinpageNavLinks.defaultProps={title:"Contents",ariaLabel:"in page navigation"};/**
* The inpage-nav component
*
* @param {string} title - The title of the section
* @param {string} link - The link to this section
* @param {DOM node} children - The content of the section, default: '2'
* @param {string} level - The heading level of the h tag
* @param {string} headingClass - Any additional heading classes eg 'au-display-sm' etc, optional
* @param {string} sectionLink - The text for the section link, default: 'Link to section', optional
* @param {string} className - An additional class, optional
* @param {object} attributeOptions - Any other attribute options
*/var AUinpageNavSection=function AUinpageNavSection(_ref3){var title=_ref3.title,link=_ref3.link,children=_ref3.children,level=_ref3.level,headingClass=_ref3.headingClass,sectionLink=_ref3.sectionLink,_ref3$className=_ref3.className,className=_ref3$className===void 0?"":_ref3$className,attributeOptions=_objectWithoutProperties(_ref3,_excluded3);var HeadingTag="h".concat(level);return/*#__PURE__*/_react["default"].createElement(Fragment,null,/*#__PURE__*/_react["default"].createElement(HeadingTag,{className:"au-inpage-nav-section ".concat(className).concat(headingClass?" "+headingClass:"")},title,/*#__PURE__*/_react["default"].createElement("a",_extends({id:link,className:"au-inpage-nav-section-link",href:"#".concat(link)},attributeOptions),sectionLink)),children)};exports.AUinpageNavSection=AUinpageNavSection;AUinpageNavSection.propTypes={title:_propTypes["default"].string.isRequired,link:_propTypes["default"].string.isRequired,children:_propTypes["default"].node.isRequired,level:_propTypes["default"].oneOf(["1","2","3","4","5","6"]).isRequired,headingClass:_propTypes["default"].string,sectionLink:_propTypes["default"].string,className:_propTypes["default"].string};AUinpageNavSection.defaultProps={level:"2",sectionLink:"Link to section"};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWN0LmVzNS5qcyJdLCJuYW1lcyI6WyJBVWlucGFnZU5hdkxpbmtzSXRlbSIsImxpbmsiLCJ0aXRsZSIsImxpIiwiYXR0cmlidXRlT3B0aW9ucyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJvYmplY3QiLCJBVWlucGFnZU5hdkxpbmtzIiwiZGFyayIsInNlY3Rpb25zIiwiYXJpYUxhYmVsIiwiY2xhc3NOYW1lIiwibWFwIiwic2VjdGlvbiIsImkiLCJib29sIiwiYXJyYXlPZiIsInNoYXBlIiwiZGVmYXVsdFByb3BzIiwiQVVpbnBhZ2VOYXZTZWN0aW9uIiwiY2hpbGRyZW4iLCJsZXZlbCIsImhlYWRpbmdDbGFzcyIsInNlY3Rpb25MaW5rIiwiSGVhZGluZ1RhZyIsIm5vZGUiLCJvbmVPZiJdLCJtYXBwaW5ncyI6IjhKQVNBLG9EQUNBLDZEQU1BLDZCLHV1Q0FHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQ08sR0FBTUEsQ0FBQUEsb0JBQW9CLENBQUcsUUFBdkJBLENBQUFBLG9CQUF1QixVQUFHQyxDQUFBQSxJQUFILE1BQUdBLElBQUgsQ0FBU0MsS0FBVCxNQUFTQSxLQUFULGNBQWdCQyxFQUFoQixDQUFnQkEsRUFBaEIsa0JBQXFCLEVBQXJCLFNBQTRCQyxnQkFBNUIsNkRBQ25DLHFDQUFTRCxFQUFULGNBQ0MsOENBQUcsSUFBSSxZQUFRRixJQUFSLENBQVAsRUFBOEJHLGdCQUE5QixFQUFtREYsS0FBbkQsQ0FERCxDQURtQyxDQUE3QixDLGtEQU1QRixvQkFBb0IsQ0FBQ0ssU0FBckIsQ0FBaUMsQ0FDaENKLElBQUksQ0FBRUssc0JBQVVDLE1BQVYsQ0FBaUJDLFVBRFMsQ0FFaENOLEtBQUssQ0FBRUksc0JBQVVDLE1BQVYsQ0FBaUJDLFVBRlEsQ0FHaENMLEVBQUUsQ0FBRUcsc0JBQVVHLE1BSGtCLENBQWpDLENBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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QU8sR0FBUCxDQUFZLEdBQVosQ0FBaUIsR0FBakIsQ0FBc0IsR0FBdEIsQ0FBMkIsR0FBM0IsQ0FBaEIsRUFBa0RyQixVQUozQixDQUs5QmlCLFlBQVksQ0FBRW5CLHNCQUFVQyxNQUxNLENBTTlCbUIsV0FBVyxDQUFFcEIsc0JBQVVDLE1BTk8sQ0FPOUJPLFNBQVMsQ0FBRVIsc0JBQVVDLE1BUFMsQ0FBL0IsQ0FVQWUsa0JBQWtCLENBQUNELFlBQW5CLENBQWtDLENBQ2pDRyxLQUFLLENBQUUsR0FEMEIsQ0FFakNFLFdBQVcsQ0FBRSxpQkFGb0IsQ0FBbEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgQGdvbGQuYXUvaW5wYWdlLW5hdiB2NC4wLjAgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXG4gKiBpbnBhZ2UtbmF2IGZ1bmN0aW9uXG4gKlxuICogVXNlIGlucGFnZS1uYXYgbGlua3MgdG8gaGVscCB1c2VycyBzY2FuIGFuZCBqdW1wIHRvIGNvbnRlbnQgb2YgYSBwYWdlLlxuICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cblxuLy8gVGhlIGZvbGxvd2luZyBsaW5lIHdpbGwgYmUgcmVwbGFjZWQgYXV0b21hdGljYWxseSB3aXRoIGdlbmVyaWMgaW1wb3J0cyBmb3IgdGhlIEVTNSBwaXBlbGluZS5cbi8vIFlvdSBjYW4gc2FmZWx5IGlnbm9yZSB0aGlzIGJpdCBpZiB5b3UgdXNlIHRoaXMgbW9kdWxlIHdpdGggcGFuY2FrZVxuLy9cbmltcG9ydCAnLi4vY3NzL3N0eWxlcy5jc3MnO1xuXG5cbi8qKlxuICogVGhlIHNlY3Rpb24gY29tcG9uZW50IGZvciB0aGUgQVVpbnBhZ2VOYXZMaW5rcyBjb21wb25lbnRcbiAqXG4gKiBAcGFyYW0gIHtvYmplY3R9IGxpbmsgICAgICAgICAgICAgLSBUaGUgbGluayBvZiB0aGlzIHNlY3Rpb25cbiAqIEBwYXJhbSAge29iamVjdH0gdGl0bGUgICAgICAgICAgICAtIFRoZSB0aXRsZSBvZiB0aGUgc2VjdGlvblxuICogQHBhcmFtICB7b2JqZWN0fSBsaSAgICAgICAgICAgICAgIC0gQW4gYWRkaXRpb25hbCBvYmplY3QgdG8gYmUgc3ByZWFkIGludG8gdGhlIHdyYXBwaW5nIGVsZW1lbnQsIG9wdGlvbmFsXG4gKiBAcGFyYW0gIHtvYmplY3R9IGF0dHJpYnV0ZU9wdGlvbnMgLSBBbnkgb3RoZXIgYXR0cmlidXRlIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IEFVaW5wYWdlTmF2TGlua3NJdGVtID0gKHsgbGluaywgdGl0bGUsIGxpID0ge30sIC4uLmF0dHJpYnV0ZU9wdGlvbnMgfSkgPT4gKFxuXHQ8bGkgeyAuLi5saSB9PlxuXHRcdDxhIGhyZWY9eyBgIyR7IGxpbmsgfWAgfSB7IC4uLmF0dHJpYnV0ZU9wdGlvbnMgfT57IHRpdGxlIH08L2E+XG5cdDwvbGk+XG4pO1xuXG5BVWlucGFnZU5hdkxpbmtzSXRlbS5wcm9wVHlwZXMgPSB7XG5cdGxpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblx0dGl0bGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblx0bGk6IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG5cbi8qKlxuICogVGhlIGlucGFnZS1uYXYgY29tcG9uZW50XG4gKlxuICogQHBhcmFtICB7Ym9vbGVhbn0gZGFyayAgICAgICAgICAgICAtIEFkZCB0aGUgZGFyayB2YXJpYXRpb24gY2xhc3MsIG9wdGlvbmFsXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICB0aXRsZSAgICAgICAgICAgIC0gVGhlIHRpdGxlIG9mIHRoZSBjb250ZW50IGxpbmsgYmxvY2ssIGRlZmF1bHQ6IENvbnRlbnRzXG4gKiBAcGFyYW0gIHthcnJheX0gICBzZWN0aW9ucyAgICAgICAgIC0gQW4gYXJyYXkgb2Ygb2JqZWN0cyBvZiBhbGwgc2VjdGlvbnMsIHNhbXBsZTogeyBsaW5rOiAnJywgdGl0bGU6ICcnLCBvbkNsaWNrOiAoKSB9XG4gKiBAcGFyYW0gIHtzdHJpbmd9ICBjbGFzc05hbWUgICAgICAgIC0gQW4gYWRkaXRpb25hbCBjbGFzcywgb3B0aW9uYWxcbiAqIEBwYXJhbSAge3N0cmluZ30gIGFyaWFMYWJlbCAgICAgICAgLSBUaGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUsIG9wdGlvbmFsXG4gKiBAcGFyYW0gIHtvYmplY3R9ICBhdHRyaWJ1dGVPcHRpb25zIC0gQW55IG90aGVyIGF0dHJpYnV0ZSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBBVWlucGFnZU5hdkxpbmtzID0gKHsgZGFyaywgdGl0bGUsIHNlY3Rpb25zLCBhcmlhTGFiZWwsIGNsYXNzTmFtZSA9ICcnLCAuLi5hdHRyaWJ1dGVPcHRpb25zIH0pID0+IChcblx0PG5hdiBjbGFzc05hbWU9eyBgYXUtaW5wYWdlLW5hdi1saW5rcyAkeyBjbGFzc05hbWUgfSR7IGRhcmsgPyAnIGF1LWlucGFnZS1uYXYtbGlua3MtLWRhcmsnIDogJycgfWAgfSBhcmlhTGFiZWw9eyBhcmlhTGFiZWwgfSB7IC4uLmF0dHJpYnV0ZU9wdGlvbnMgfT5cblx0XHQ8aDIgY2xhc3NOYW1lPVwiYXUtaW5wYWdlLW5hdi1saW5rc19faGVhZGluZyBhdS1kaXNwbGF5LXNtXCI+eyB0aXRsZSB9PC9oMj5cblxuXHRcdDx1bCBjbGFzc05hbWU9XCJhdS1saW5rLWxpc3RcIj5cblx0XHRcdHsgc2VjdGlvbnMubWFwKCAoIHNlY3Rpb24sIGkgKSA9PiA8QVVpbnBhZ2VOYXZMaW5rc0l0ZW0ga2V5PXsgaSB9IHsgLi4uc2VjdGlvbiB9IC8+ICkgfVxuXHRcdDwvdWw+XG5cdDwvbmF2PlxuKTtcblxuQVVpbnBhZ2VOYXZMaW5rcy5wcm9wVHlwZXMgPSB7XG5cdGRhcms6IFByb3BUeXBlcy5ib29sLFxuXHR0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuXHRzZWN0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoXG5cdFx0UHJvcFR5cGVzLnNoYXBlKHtcblx0XHRcdGxpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblx0XHRcdHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdFx0XHRsaTogUHJvcFR5cGVzLm9iamVjdCxcblx0XHR9KVxuXHQpLmlzUmVxdWlyZWQsXG5cdGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkFVaW5wYWdlTmF2TGlua3MuZGVmYXVsdFByb3BzID0ge1xuXHR0aXRsZTogJ0NvbnRlbnRzJyxcblx0YXJpYUxhYmVsOiAnaW4gcGFnZSBuYXZpZ2F0aW9uJyxcbn07XG5cblxuLyoqXG4gKiBUaGUgaW5wYWdlLW5hdiBjb21wb25lbnRcbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdGl0bGUgICAgICAgICAgICAtIFRoZSB0aXRsZSBvZiB0aGUgc2VjdGlvblxuICogQHBhcmFtICB7c3RyaW5nfSAgIGxpbmsgICAgICAgICAgICAgLSBUaGUgbGluayB0byB0aGlzIHNlY3Rpb25cbiAqIEBwYXJhbSAge0RPTSBub2RlfSBjaGlsZHJlbiAgICAgICAgIC0gVGhlIGNvbnRlbnQgb2YgdGhlIHNlY3Rpb24sIGRlZmF1bHQ6ICcyJ1xuICogQHBhcmFtICB7c3RyaW5nfSAgIGxldmVsICAgICAgICAgICAgLSBUaGUgaGVhZGluZyBsZXZlbCBvZiB0aGUgaCB0YWdcbiAqIEBwYXJhbSAge3N0cmluZ30gICBoZWFkaW5nQ2xhc3MgICAgIC0gQW55IGFkZGl0aW9uYWwgaGVhZGluZyBjbGFzc2VzIGVnICdhdS1kaXNwbGF5LXNtJyBldGMsIG9wdGlvbmFsXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgc2VjdGlvbkxpbmsgICAgICAtIFRoZSB0ZXh0IGZvciB0aGUgc2VjdGlvbiBsaW5rLCBkZWZhdWx0OiAnTGluayB0byBzZWN0aW9uJywgb3B0aW9uYWxcbiAqIEBwYXJhbSAge3N0cmluZ30gICBjbGFzc05hbWUgICAgICAgIC0gQW4gYWRkaXRpb25hbCBjbGFzcywgb3B0aW9uYWxcbiAqIEBwYXJhbSAge29iamVjdH0gICBhdHRyaWJ1dGVPcHRpb25zIC0gQW55IG90aGVyIGF0dHJpYnV0ZSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBBVWlucGFnZU5hdlNlY3Rpb24gPSAoeyB0aXRsZSwgbGluaywgY2hpbGRyZW4sIGxldmVsLCBoZWFkaW5nQ2xhc3MsIHNlY3Rpb25MaW5rLCBjbGFzc05hbWUgPSAnJywgLi4uYXR0cmlidXRlT3B0aW9ucyB9KSA9PiB7XG5cblx0Y29uc3QgSGVhZGluZ1RhZyA9IGBoJHsgbGV2ZWwgfWA7XG5cblx0cmV0dXJuIChcblx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHQ8SGVhZGluZ1RhZyBjbGFzc05hbWU9eyBgYXUtaW5wYWdlLW5hdi1zZWN0aW9uICR7IGNsYXNzTmFtZSB9JHsgaGVhZGluZ0NsYXNzID8gJyAnICsgaGVhZGluZ0NsYXNzIDogXCJcIiB9YCB9PlxuXHRcdFx0XHR7IHRpdGxlIH1cblxuXHRcdFx0XHQ8YSBpZD17IGxpbmsgfSBjbGFzc05hbWU9XCJhdS1pbnBhZ2UtbmF2LXNlY3Rpb24tbGlua1wiIGhyZWY9eyBgIyR7IGxpbmsgfWAgfSB7IC4uLmF0dHJpYnV0ZU9wdGlvbnMgfT57IHNlY3Rpb25MaW5rIH08L2E+XG5cdFx0XHQ8L0hlYWRpbmdUYWc+XG5cblx0XHRcdHsgY2hpbGRyZW4gfVxuXHRcdDwvRnJhZ21lbnQ+XG5cdCk7XG59O1xuXG5BVWlucGFnZU5hdlNlY3Rpb24ucHJvcFR5cGVzID0ge1xuXHR0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuXHRsaW5rOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuXHRsZXZlbDogUHJvcFR5cGVzLm9uZU9mKFsgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JyBdKS5pc1JlcXVpcmVkLFxuXHRoZWFkaW5nQ2xhc3M6IFByb3BUeXBlcy5zdHJpbmcsXG5cdHNlY3Rpb25MaW5rOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHRjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5BVWlucGFnZU5hdlNlY3Rpb24uZGVmYXVsdFByb3BzID0ge1xuXHRsZXZlbDogJzInLFxuXHRzZWN0aW9uTGluazogJ0xpbmsgdG8gc2VjdGlvbicsXG59O1xuIl19