UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

140 lines (139 loc) 4.18 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); function _export(target, all) { for (var name in all) Object.defineProperty(target, name, { enumerable: true, get: all[name], }); } _export(exports, { Footer: function () { return Footer; }, defaultFooterElements: function () { return defaultFooterElements; }, }); const _interop_require_default = require('@swc/helpers/_/_interop_require_default'); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _classnames = /*#__PURE__*/ _interop_require_default._( require('classnames'), ); const _index = require('../../utils/index.js'); const _FooterItem = require('./FooterItem.js'); const _FooterSeparator = require('./FooterSeparator.js'); const _FooterList = require('./FooterList.js'); const _Anchor = require('../Typography/Anchor.js'); const defaultTranslatedTitles = { cookies: 'Cookies', legalNotices: 'Legal notices', privacy: 'Privacy', termsOfService: 'Terms of service', termsOfUse: 'Terms of use', }; const defaultFooterElements = [ { key: 'copyright', title: ${new Date().getFullYear()} Bentley Systems, Incorporated`, }, { key: 'termsOfService', title: defaultTranslatedTitles.termsOfService, url: 'https://connect-agreementportal.bentley.com/AgreementApp/Home/Eula/view/readonly/BentleyConnect', }, { key: 'privacy', title: defaultTranslatedTitles.privacy, url: 'https://www.bentley.com/en/privacy-policy', }, { key: 'termsOfUse', title: defaultTranslatedTitles.termsOfUse, url: 'https://www.bentley.com/en/terms-of-use-and-select-online-agreement', }, { key: 'cookies', title: defaultTranslatedTitles.cookies, url: 'https://www.bentley.com/en/cookie-policy', }, { key: 'legalNotices', title: defaultTranslatedTitles.legalNotices, url: 'https://connect.bentley.com/Legal', }, ]; const Footer = Object.assign( (props) => { let { children, customElements, translatedTitles, className, ...rest } = props; let titles = { ...defaultTranslatedTitles, ...translatedTitles, }; let translatedElements = defaultFooterElements.map((element) => { if (element.key && titles.hasOwnProperty(element.key)) { let key = element.key; return { ...element, title: titles[key], }; } return element; }); let elements = translatedElements; if (customElements) elements = 'function' == typeof customElements ? customElements(translatedElements) : [...translatedElements, ...customElements]; return _react.createElement( _index.Box, { as: 'footer', className: (0, _classnames.default)('iui-legal-footer', className), ...rest, }, children ? children : _react.createElement( _FooterList.FooterList, null, elements.map((element, index) => _react.createElement( _react.Fragment, { key: element.key || `${element.title}-${index}`, }, index > 0 && _react.createElement(_FooterSeparator.FooterSeparator, null), _react.createElement( _FooterItem.FooterItem, null, element.url ? _react.createElement( _Anchor.Anchor, { href: element.url, target: '_blank', rel: 'noreferrer', }, element.title, ) : element.title, ), ), ), ), ); }, { List: _FooterList.FooterList, Item: _FooterItem.FooterItem, Separator: _FooterSeparator.FooterSeparator, }, ); if ('development' === process.env.NODE_ENV) Footer.displayName = 'Footer';