@itwin/itwinui-react
Version:
A react component library for iTwinUI
140 lines (139 loc) • 4.18 kB
JavaScript
;
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';