UNPKG

ndla-ui

Version:

UI component library for NDLA.

82 lines (66 loc) 3.96 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _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; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _shapes = require('../shapes'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /* * Copyright (c) 2017-present, NDLA. * * This source code is licensed under the GPLv3 license found in the * LICENSE file in the root directory of this source tree. * */ var citeDetailString = function citeDetailString(description) { return description ? description + '. ' : ''; }; var FootNote = function FootNote(_ref) { var footNote = _ref.footNote; return _react2.default.createElement( 'li', { className: 'c-footnotes__item' }, _react2.default.createElement( 'cite', { className: 'c-footnotes__cite', id: 'note' + footNote.ref }, _react2.default.createElement( 'sup', null, _react2.default.createElement( 'a', { href: '#ref' + footNote.ref, target: '_self' }, footNote.ref ) ), '\xAB' + footNote.title + '\xBB. ' + footNote.authors.join(' ') + '. ' + citeDetailString(footNote.edition) + citeDetailString(footNote.publisher) + footNote.year + '. ', footNote.url ? _react2.default.createElement( 'a', { href: footNote.url }, footNote.url, '.' ) : null ) ); }; FootNote.propTypes = { footNote: _shapes.FootNoteShape.isRequired }; var ArticleFootNotes = function ArticleFootNotes(_ref2) { var footNotes = _ref2.footNotes, rest = _objectWithoutProperties(_ref2, ['footNotes']); return _react2.default.createElement( 'ol', { className: 'c-footnotes' }, footNotes.map(function (footNote) { return _react2.default.createElement(FootNote, _extends({ key: footNote.ref, footNote: footNote }, rest)); }) ); }; ArticleFootNotes.propTypes = { footNotes: _propTypes2.default.arrayOf(_shapes.FootNoteShape).isRequired }; exports.default = ArticleFootNotes;