@veracity/vui 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/button/button.d.ts +15 -1
  2. package/button/button.js +3 -3
  3. package/button/theme.d.ts +2 -0
  4. package/button/theme.js +3 -2
  5. package/buttonGroup/buttonGroup.d.ts +1 -1
  6. package/buttonGroup/buttonGroup.js +1 -1
  7. package/buttonGroup/helpers.js +3 -1
  8. package/checkbox/checkbox.d.ts +1 -1
  9. package/core/consts.d.ts +7 -0
  10. package/core/consts.js +8 -1
  11. package/core/index.d.ts +1 -0
  12. package/core/index.js +1 -0
  13. package/core/links.d.ts +20 -0
  14. package/core/links.js +173 -0
  15. package/dialog/consts.d.ts +3 -0
  16. package/dialog/consts.js +30 -0
  17. package/dialog/context.d.ts +4 -0
  18. package/dialog/context.js +23 -0
  19. package/dialog/dialog.d.ts +26 -0
  20. package/dialog/dialog.js +122 -0
  21. package/dialog/dialog.types.d.ts +47 -0
  22. package/dialog/dialog.types.js +2 -0
  23. package/dialog/dialogBody.d.ts +9 -0
  24. package/dialog/dialogBody.js +85 -0
  25. package/dialog/dialogCancelButton.d.ts +4 -0
  26. package/dialog/dialogCancelButton.js +30 -0
  27. package/dialog/dialogCloseButton.d.ts +4 -0
  28. package/dialog/dialogCloseButton.js +30 -0
  29. package/dialog/dialogFooter.d.ts +4 -0
  30. package/dialog/dialogFooter.js +45 -0
  31. package/dialog/dialogHeader.d.ts +4 -0
  32. package/dialog/dialogHeader.js +53 -0
  33. package/dialog/dialogIcon.d.ts +4 -0
  34. package/dialog/dialogIcon.js +32 -0
  35. package/dialog/dialogSubmitButton.d.ts +4 -0
  36. package/dialog/dialogSubmitButton.js +28 -0
  37. package/dialog/dialogTitle.d.ts +4 -0
  38. package/dialog/dialogTitle.js +30 -0
  39. package/dialog/index.d.ts +13 -0
  40. package/dialog/index.js +30 -0
  41. package/dialog/theme.d.ts +22 -0
  42. package/dialog/theme.js +28 -0
  43. package/footer/context.d.ts +4 -0
  44. package/footer/context.js +23 -0
  45. package/footer/footer.d.ts +2 -0
  46. package/footer/footer.js +11 -29
  47. package/footer/footer.types.d.ts +19 -16
  48. package/footer/footerColumn.d.ts +2 -218
  49. package/footer/footerColumn.js +16 -2
  50. package/footer/footerContent.d.ts +3 -0
  51. package/footer/footerContent.js +28 -0
  52. package/footer/footerHeading.js +2 -1
  53. package/footer/footerLink.js +2 -1
  54. package/footer/footerRow.js +2 -1
  55. package/footer/footerSection.js +4 -3
  56. package/footer/footerTrademark.d.ts +3 -5
  57. package/footer/footerTrademark.js +23 -6
  58. package/footer/helpers.d.ts +6 -8
  59. package/footer/helpers.js +79 -21
  60. package/footer/index.d.ts +1 -1
  61. package/footer/index.js +1 -1
  62. package/footer/theme.js +1 -1
  63. package/grid/grid.d.ts +5 -0
  64. package/grid/grid.js +47 -0
  65. package/grid/grid.types.d.ts +3 -0
  66. package/grid/grid.types.js +2 -0
  67. package/grid/index.d.ts +3 -0
  68. package/grid/index.js +20 -0
  69. package/grid/theme.d.ts +7 -0
  70. package/grid/theme.js +12 -0
  71. package/header/header.d.ts +7 -6
  72. package/header/header.js +12 -12
  73. package/header/header.types.d.ts +27 -31
  74. package/header/headerAccount.d.ts +5 -1
  75. package/header/headerAccount.js +17 -38
  76. package/header/headerAccount.types.d.ts +12 -12
  77. package/header/headerAccountUserInfo.d.ts +4 -0
  78. package/header/headerAccountUserInfo.js +46 -0
  79. package/header/headerContent.d.ts +2 -3
  80. package/header/headerContent.js +2 -2
  81. package/header/headerCreateAccount.js +4 -4
  82. package/header/headerLogo.js +6 -4
  83. package/header/headerMainLinks.d.ts +4 -0
  84. package/header/{headerLinksList.js → headerMainLinks.js} +5 -5
  85. package/header/headerNotifications.js +8 -7
  86. package/header/headerServices.d.ts +5 -1
  87. package/header/headerServices.js +18 -13
  88. package/header/headerServicesMessage.d.ts +4 -0
  89. package/header/headerServicesMessage.js +49 -0
  90. package/header/headerSignIn.js +4 -2
  91. package/header/helpers.d.ts +6 -15
  92. package/header/helpers.js +82 -33
  93. package/header/index.d.ts +3 -2
  94. package/header/index.js +3 -2
  95. package/header/loggedInHeader.js +9 -9
  96. package/header/loggedOutHeader.js +9 -9
  97. package/header/theme.d.ts +8 -6
  98. package/header/theme.js +9 -5
  99. package/index.d.ts +2 -0
  100. package/index.js +2 -0
  101. package/input/input.js +1 -1
  102. package/link/linkText.js +1 -1
  103. package/list/listHeading.js +1 -1
  104. package/list/listItem.js +1 -1
  105. package/list/theme.d.ts +2 -4
  106. package/list/theme.js +2 -4
  107. package/modal/{modalBackdrop.d.ts → ModalBackdrop.d.ts} +1 -1
  108. package/modal/{modalBackdrop.js → ModalBackdrop.js} +6 -7
  109. package/modal/ModalContent.d.ts +4 -0
  110. package/modal/ModalContent.js +38 -0
  111. package/modal/index.d.ts +2 -0
  112. package/modal/index.js +2 -0
  113. package/modal/modal.d.ts +7 -2
  114. package/modal/modal.js +30 -26
  115. package/modal/modal.types.d.ts +8 -2
  116. package/modal/theme.d.ts +1 -0
  117. package/modal/theme.js +2 -0
  118. package/notification/theme.js +1 -1
  119. package/package.json +1 -1
  120. package/popover/popoverTrigger.js +7 -2
  121. package/radio/radio.d.ts +1 -1
  122. package/radio/radioGroup.js +1 -1
  123. package/system/custom.d.ts +0 -4
  124. package/system/custom.js +1 -15
  125. package/system/effects.d.ts +4 -4
  126. package/system/grids.d.ts +5 -3
  127. package/system/system.d.ts +2 -2
  128. package/system/system.js +1 -1
  129. package/system/transitions.d.ts +1 -1
  130. package/tag/tag.js +1 -2
  131. package/tag/theme.d.ts +1 -0
  132. package/tag/theme.js +2 -1
  133. package/textarea/textarea.js +2 -2
  134. package/theme/components.d.ts +47 -10
  135. package/theme/components.js +48 -42
  136. package/theme/defaultTheme.d.ts +76 -11
  137. package/theme/foundations/gridTemplateColumns.d.ts +15 -0
  138. package/theme/foundations/gridTemplateColumns.js +16 -0
  139. package/theme/foundations/gridTemplateRows.d.ts +9 -0
  140. package/theme/foundations/gridTemplateRows.js +10 -0
  141. package/theme/foundations/index.d.ts +29 -1
  142. package/theme/foundations/index.js +6 -0
  143. package/theme/foundations/timingFunctions.d.ts +2 -0
  144. package/theme/foundations/timingFunctions.js +3 -0
  145. package/theme/foundations/zIndices.d.ts +6 -1
  146. package/theme/foundations/zIndices.js +6 -1
  147. package/theme/types.d.ts +9 -1
  148. package/utils/assertion.d.ts +2 -0
  149. package/utils/assertion.js +6 -1
  150. package/utils/function.d.ts +4 -0
  151. package/utils/function.js +19 -1
  152. package/utils/index.d.ts +1 -1
  153. package/utils/index.js +1 -1
  154. package/utils/number.d.ts +2 -0
  155. package/utils/number.js +10 -0
  156. package/utils/object.js +9 -17
  157. package/utils/react.d.ts +2 -0
  158. package/utils/react.js +6 -1
  159. package/footer/consts.d.ts +0 -169
  160. package/footer/consts.js +0 -141
  161. package/header/consts.d.ts +0 -58
  162. package/header/consts.js +0 -76
  163. package/header/headerLinksList.d.ts +0 -4
  164. package/utils/string.d.ts +0 -5
  165. package/utils/string.js +0 -19
@@ -40,48 +40,24 @@ var __rest = (this && this.__rest) || function (s, e) {
40
40
  }
41
41
  return t;
42
42
  };
43
- var __read = (this && this.__read) || function (o, n) {
44
- var m = typeof Symbol === "function" && o[Symbol.iterator];
45
- if (!m) return o;
46
- var i = m.call(o), r, ar = [], e;
47
- try {
48
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
49
- }
50
- catch (error) { e = { error: error }; }
51
- finally {
52
- try {
53
- if (r && !r.done && (m = i["return"])) m.call(i);
54
- }
55
- finally { if (e) throw e.error; }
56
- }
57
- return ar;
58
- };
59
43
  var __importDefault = (this && this.__importDefault) || function (mod) {
60
44
  return (mod && mod.__esModule) ? mod : { "default": mod };
61
45
  };
62
46
  Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.HeaderAccount = void 0;
63
48
  var react_1 = __importStar(require("react"));
64
49
  var avatar_1 = __importDefault(require("../avatar"));
65
- var box_1 = __importDefault(require("../box"));
66
50
  var core_1 = require("../core");
67
51
  var list_1 = __importDefault(require("../list"));
68
52
  var popover_1 = __importDefault(require("../popover"));
69
- var t_1 = __importDefault(require("../t"));
70
53
  var utils_1 = require("../utils");
71
54
  var context_1 = require("./context");
72
- function UserInfo(_a) {
73
- var companyName = _a.companyName, userName = _a.userName;
74
- return (react_1.default.createElement(box_1.default, { p: 2, pb: 1, spaceX: 2 },
75
- react_1.default.createElement(avatar_1.default, { colorScheme: "prussian", name: userName, size: "lg", variant: "solid" }),
76
- react_1.default.createElement(box_1.default, { column: true },
77
- userName && (react_1.default.createElement(t_1.default, { mb: 0.5, weight: "demi" }, userName)),
78
- companyName && react_1.default.createElement(t_1.default, null, companyName))));
79
- }
55
+ var headerAccountUserInfo_1 = __importDefault(require("./headerAccountUserInfo"));
80
56
  /** Disables popper's dynamic re-positioning */
81
57
  var mobilePopoverOptions = { popperOptions: { modifiers: [{ name: 'computeStyles', enabled: false }] } };
82
58
  /** Displays user account information and helpful links, like settings or logout. */
83
59
  function HeaderAccount(props) {
84
- var children = props.children, contentProps = props.contentProps, _a = props.options, options = _a === void 0 ? {} : _a, sections = props.sections, triggerProps = props.triggerProps, userInfo = props.userInfo, rest = __rest(props, ["children", "contentProps", "options", "sections", "triggerProps", "userInfo"]);
60
+ var contentProps = props.contentProps, _a = props.options, options = _a === void 0 ? {} : _a, sections = props.sections, triggerProps = props.triggerProps, userInfo = props.userInfo, rest = __rest(props, ["contentProps", "options", "sections", "triggerProps", "userInfo"]);
85
61
  var _b = (0, context_1.useHeaderContext)(), headerHeight = _b.headerHeight, isMobile = _b.isMobile;
86
62
  var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)()).account;
87
63
  // Render content in full view on mobile
@@ -93,17 +69,20 @@ function HeaderAccount(props) {
93
69
  return (react_1.default.createElement(popover_1.default, __assign({ offset: [0, 8], options: popoverOptions, placement: "bottom-end" }, rest),
94
70
  react_1.default.createElement(popover_1.default.Trigger, __assign({ as: avatar_1.default, colorScheme: "prussian", isInteractive: true, ml: 2, name: name, title: "Account", variant: "solid" }, styles.trigger, triggerProps)),
95
71
  react_1.default.createElement(popover_1.default.Content, __assign({ column: true }, styles.content, contentScreenProps, contentProps),
96
- (0, utils_1.isObject)(userInfo) ? react_1.default.createElement(UserInfo, __assign({}, userInfo)) : userInfo,
97
- (0, utils_1.isObject)(sections)
98
- ? Object.entries(sections).map(function (_a) {
99
- var _b = __read(_a, 2), key = _b[0], _c = _b[1], heading = _c.heading, links = _c.links;
100
- return (react_1.default.createElement(react_1.Fragment, { key: key },
72
+ (0, utils_1.isJsx)(userInfo) ? userInfo : userInfo && react_1.default.createElement(headerAccountUserInfo_1.default, __assign({}, userInfo)),
73
+ (0, utils_1.isJsx)(sections)
74
+ ? sections
75
+ : sections && (react_1.default.createElement(list_1.default, null, sections.map(function (_a, index) {
76
+ var heading = _a.heading, links = _a.links;
77
+ return (react_1.default.createElement(react_1.Fragment, { key: index },
101
78
  react_1.default.createElement(list_1.default.Divider, null),
102
- react_1.default.createElement(list_1.default, { heading: heading }, links === null || links === void 0 ? void 0 : links.map(function (_a, index) {
103
- var icon = _a.icon, text = _a.text, url = _a.url;
104
- return (react_1.default.createElement(list_1.default.Item, { iconLeft: icon, key: index, linkProps: { href: url }, text: text }));
105
- }))));
106
- })
107
- : sections)));
79
+ heading && react_1.default.createElement(list_1.default.Heading, { text: heading }), links === null || links === void 0 ? void 0 :
80
+ links.map(function (_a, index) {
81
+ var icon = _a.icon, url = _a.url, rest = __rest(_a, ["icon", "url"]);
82
+ return (react_1.default.createElement(list_1.default.Item, __assign({ iconLeft: icon, key: index, linkProps: { href: url } }, rest)));
83
+ })));
84
+ }))))));
108
85
  }
86
+ exports.HeaderAccount = HeaderAccount;
87
+ HeaderAccount.displayName = 'HeaderAccount';
109
88
  exports.default = HeaderAccount;
@@ -1,21 +1,24 @@
1
1
  /// <reference types="react" />
2
2
  import { AvatarProps } from '../avatar';
3
3
  import { BoxProps } from '../box';
4
- import { PopoverProps } from '../popover';
4
+ import { PopoverContentProps, PopoverProps, PopoverTriggerProps } from '../popover';
5
+ import { RightJoinProps } from '../utils';
5
6
  import { HeaderLinkData } from './header.types';
6
7
  /** Defines account link sections and user information. */
7
8
  export declare type HeaderAccountData = {
8
- sections?: HeaderAccountSectionsData;
9
+ sections?: HeaderAccountSectionData[];
9
10
  userInfo?: HeaderAccountUserInfoData;
10
11
  };
11
12
  export declare type HeaderAccountProps = PopoverProps & {
13
+ /** Children are disabled for this component. */
14
+ children?: never;
12
15
  /** Props object passed to the PopoverContent component. */
13
- contentProps?: BoxProps;
14
- /** Socket displaying a set of link sections below user information. */
16
+ contentProps?: PopoverContentProps;
17
+ /** Socket for a set of link sections below user information. */
15
18
  sections?: HeaderAccountData['sections'] | JSX.Element;
16
19
  /** Props object passed to the PopoverTrigger component. */
17
- triggerProps?: AvatarProps;
18
- /** Socket displaying user information on top of the account popover. */
20
+ triggerProps?: RightJoinProps<PopoverTriggerProps, AvatarProps>;
21
+ /** Socket for user information on top of the account popover. */
19
22
  userInfo?: HeaderAccountData['userInfo'] | JSX.Element;
20
23
  };
21
24
  /** Defines heading and an array of links within one section. */
@@ -23,13 +26,10 @@ export declare type HeaderAccountSectionData = {
23
26
  heading?: string;
24
27
  links?: HeaderLinkData[];
25
28
  };
26
- /** Defines a set of link sections within the account popover. */
27
- export declare type HeaderAccountSectionsData = {
28
- [sectionName: string]: HeaderAccountSectionData;
29
- };
30
- /** Defines user information within the Account. */
31
29
  export declare type HeaderAccountUserInfoData = {
30
+ /** Displays company name in account user info section. */
32
31
  companyName?: string;
32
+ /** Displays user name in account user info section. */
33
33
  userName?: string;
34
34
  };
35
- export declare type HeaderAccountUserInfoProps = HeaderAccountUserInfoData;
35
+ export declare type HeaderAccountUserInfoProps = BoxProps & HeaderAccountUserInfoData;
@@ -0,0 +1,4 @@
1
+ import { HeaderAccountUserInfoProps } from './headerAccount.types';
2
+ /** Displays user information, like username and company name, within HeaderAccount part. */
3
+ export declare const HeaderAccountUserInfo: import("../core").VuiComponent<"div", HeaderAccountUserInfoProps>;
4
+ export default HeaderAccountUserInfo;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.HeaderAccountUserInfo = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var avatar_1 = __importDefault(require("../avatar"));
31
+ var box_1 = __importDefault(require("../box"));
32
+ var core_1 = require("../core");
33
+ var t_1 = __importDefault(require("../t"));
34
+ var context_1 = require("./context");
35
+ /** Displays user information, like username and company name, within HeaderAccount part. */
36
+ exports.HeaderAccountUserInfo = (0, core_1.vui)(function (props, ref) {
37
+ var children = props.children, companyName = props.companyName, userName = props.userName, rest = __rest(props, ["children", "companyName", "userName"]);
38
+ var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)());
39
+ return (react_1.default.createElement(box_1.default, __assign({ className: "vui-headerAccountUserInfo", p: 2, pb: 1, ref: ref, spaceX: 2 }, styles.accountUserInfo, rest), children !== null && children !== void 0 ? children : (react_1.default.createElement(react_1.default.Fragment, null,
40
+ react_1.default.createElement(avatar_1.default, { colorScheme: "prussian", name: userName, size: "lg", variant: "solid" }),
41
+ react_1.default.createElement(box_1.default, { column: true },
42
+ userName && (react_1.default.createElement(t_1.default, { mb: 0.5, weight: "demi" }, userName)),
43
+ companyName && react_1.default.createElement(t_1.default, null, companyName))))));
44
+ });
45
+ exports.HeaderAccountUserInfo.displayName = 'HeaderAccountUserInfo';
46
+ exports.default = exports.HeaderAccountUserInfo;
@@ -1,4 +1,3 @@
1
- import { BoxProps } from '../box';
2
- /** Controls max-width of the content and centers itself vertically. */
3
- export declare const HeaderContent: import("../core").VuiComponent<"div", BoxProps>;
1
+ /** Controls max-width of the content and centers itself horizontally. */
2
+ export declare const HeaderContent: import("../core").VuiComponent<"div", import("../box").BoxProps>;
4
3
  export default HeaderContent;
@@ -19,10 +19,10 @@ var react_1 = __importDefault(require("react"));
19
19
  var box_1 = __importDefault(require("../box"));
20
20
  var core_1 = require("../core");
21
21
  var context_1 = require("./context");
22
- /** Controls max-width of the content and centers itself vertically. */
22
+ /** Controls max-width of the content and centers itself horizontally. */
23
23
  exports.HeaderContent = (0, core_1.vui)(function (props, ref) {
24
24
  var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)());
25
- return (react_1.default.createElement(box_1.default, __assign({ centerV: true, className: "vui-headerContent", h: "100%", maxW: 1440, mx: "auto", ref: ref, w: "100%" }, styles.content, props)));
25
+ return react_1.default.createElement(box_1.default, __assign({ centerV: true, className: "vui-headerContent", h: 1, mx: "auto", ref: ref, w: 1 }, styles.content, props));
26
26
  });
27
27
  exports.HeaderContent.displayName = 'HeaderContent';
28
28
  exports.default = exports.HeaderContent;
@@ -35,13 +35,13 @@ var context_1 = require("./context");
35
35
  /** Text inviting to create an account when logged out. */
36
36
  exports.HeaderCreateAccount = (0, core_1.vui)(function (props, ref) {
37
37
  var _a;
38
- var url = props.url, rest = __rest(props, ["url"]);
39
- var isMobile = ((_a = (0, context_1.useHeaderContext)()) !== null && _a !== void 0 ? _a : {}).isMobile;
38
+ var children = props.children, url = props.url, rest = __rest(props, ["children", "url"]);
39
+ var _b = (_a = (0, context_1.useHeaderContext)()) !== null && _a !== void 0 ? _a : {}, isMobile = _b.isMobile, links = _b.links;
40
40
  var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)()).createAccount;
41
41
  var screenProps = isMobile ? { borderBottom: '1px solid grey.40', p: 2 } : { ml: 3 };
42
- return (react_1.default.createElement(box_1.default, __assign({ className: "vui-headerCreateAccount", column: true, flexShrink: 0, ref: ref }, styles.container, screenProps, rest),
42
+ return (react_1.default.createElement(box_1.default, __assign({ className: "vui-headerCreateAccount", column: true, flexShrink: 0, ref: ref }, styles.container, screenProps, rest), children !== null && children !== void 0 ? children : (react_1.default.createElement(react_1.default.Fragment, null,
43
43
  react_1.default.createElement(t_1.default, __assign({ size: "sm" }, styles.text), "New to Veracity?"),
44
- react_1.default.createElement(link_1.default, __assign({ fontWeight: "medium", href: url, isUnderlined: true, size: "sm" }, styles.link), "Create account")));
44
+ react_1.default.createElement(link_1.default, __assign({ fontWeight: "medium", href: url !== null && url !== void 0 ? url : links.signUp, isUnderlined: true, size: "sm" }, styles.link), "Create account")))));
45
45
  });
46
46
  exports.HeaderCreateAccount.displayName = 'HeaderCreateAccount';
47
47
  exports.default = exports.HeaderCreateAccount;
@@ -34,11 +34,13 @@ var context_1 = require("./context");
34
34
  var defaultLogo = core_1.cdnUrl + "/common/icons/logos/veracity-logo.svg";
35
35
  /** Logo displayed in the left corner of the Header. By default Veracity logo is used. */
36
36
  exports.HeaderLogo = (0, core_1.vui)(function (props, ref) {
37
- var _a = props.src, src = _a === void 0 ? defaultLogo : _a, url = props.url, rest = __rest(props, ["src", "url"]);
37
+ var _a;
38
+ var children = props.children, _b = props.src, src = _b === void 0 ? defaultLogo : _b, url = props.url, rest = __rest(props, ["children", "src", "url"]);
39
+ var links = ((_a = (0, context_1.useHeaderContext)()) !== null && _a !== void 0 ? _a : {}).links;
38
40
  var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)()).logo;
39
- var linkProps = url ? { as: 'a', href: url, outline: 'none', focusRing: 2 } : {};
40
- return (react_1.default.createElement(box_1.default, __assign({ centerV: true, className: "vui-headerLogo", flexShrink: 0, h: 40, mr: 2, ref: ref }, styles.container, linkProps, rest),
41
- react_1.default.createElement(svg_1.default, __assign({ "aria-label": "logo", h: "100%", src: src }, styles.svg))));
41
+ var logoUrl = url !== null && url !== void 0 ? url : links.home;
42
+ var linkProps = logoUrl ? { as: 'a', href: logoUrl, outline: 'none', focusRing: 2 } : {};
43
+ return (react_1.default.createElement(box_1.default, __assign({ centerV: true, className: "vui-headerLogo", flexShrink: 0, h: 40, mr: 2, ref: ref }, styles.container, linkProps, rest), children !== null && children !== void 0 ? children : react_1.default.createElement(svg_1.default, __assign({ "aria-label": "logo", h: "100%", src: src }, styles.svg))));
42
44
  });
43
45
  exports.HeaderLogo.displayName = 'HeaderLogo';
44
46
  exports.default = exports.HeaderLogo;
@@ -0,0 +1,4 @@
1
+ import { HeaderMainLinksProps } from './header.types';
2
+ /** List of Header Links. */
3
+ export declare const HeaderMainLinks: import("../core").VuiComponent<"ul", HeaderMainLinksProps>;
4
+ export default HeaderMainLinks;
@@ -25,20 +25,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
25
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.HeaderLinksList = void 0;
28
+ exports.HeaderMainLinks = void 0;
29
29
  var react_1 = __importDefault(require("react"));
30
30
  var core_1 = require("../core");
31
31
  var list_1 = __importDefault(require("../list"));
32
32
  var context_1 = require("./context");
33
33
  var headerLinkItem_1 = __importDefault(require("./headerLinkItem"));
34
34
  /** List of Header Links. */
35
- exports.HeaderLinksList = (0, core_1.vui)(function (props, ref) {
35
+ exports.HeaderMainLinks = (0, core_1.vui)(function (props, ref) {
36
36
  var _a;
37
37
  var children = props.children, links = props.links, rest = __rest(props, ["children", "links"]);
38
38
  var isMobile = ((_a = (0, context_1.useHeaderContext)()) !== null && _a !== void 0 ? _a : {}).isMobile;
39
39
  var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)());
40
40
  var screenStyles = isMobile ? { borderBottom: '1px solid grey.40', flexDirection: 'column', mb: 1 } : { h: '100%' };
41
- return (react_1.default.createElement(list_1.default, __assign({ className: "vui-headerLinksList", display: "flex", ref: ref }, styles.linksList, screenStyles, rest), children !== null && children !== void 0 ? children : links === null || links === void 0 ? void 0 : links.map(function (link, index) { return react_1.default.createElement(headerLinkItem_1.default, __assign({ key: index }, link)); })));
41
+ return (react_1.default.createElement(list_1.default, __assign({ className: "vui-headerMainLinks", display: "flex", ref: ref }, styles.mainLinks, screenStyles, rest), children !== null && children !== void 0 ? children : links === null || links === void 0 ? void 0 : links.map(function (link, index) { return react_1.default.createElement(headerLinkItem_1.default, __assign({ key: index }, link)); })));
42
42
  });
43
- exports.HeaderLinksList.displayName = 'HeaderLinksList';
44
- exports.default = exports.HeaderLinksList;
43
+ exports.HeaderMainLinks.displayName = 'HeaderMainLinks';
44
+ exports.default = exports.HeaderMainLinks;
@@ -34,17 +34,18 @@ var react_1 = __importDefault(require("react"));
34
34
  var button_1 = __importDefault(require("../button"));
35
35
  var core_1 = require("../core");
36
36
  var context_1 = require("./context");
37
- var Badge = core_1.styled.span(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n\talign-items: center;\n\tbackground-color: red.70;\n\tborder-radius: round;\n\tcolor: white;\n\tdisplay: flex;\n\tfont-size: 8px;\n\tfont-weight: medium;\n\theight: 16px;\n\tjustify-content: center;\n\tposition: absolute;\n\tright: 1px;\n\ttop: 1px;\n\twidth: 16px;\n"], ["\n\talign-items: center;\n\tbackground-color: red.70;\n\tborder-radius: round;\n\tcolor: white;\n\tdisplay: flex;\n\tfont-size: 8px;\n\tfont-weight: medium;\n\theight: 16px;\n\tjustify-content: center;\n\tposition: absolute;\n\tright: 1px;\n\ttop: 1px;\n\twidth: 16px;\n"
37
+ var Badge = core_1.styled.spanBox(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n\talign-items: center;\n\tbackground-color: red.70;\n\tborder-radius: round;\n\tcolor: white;\n\tdisplay: flex;\n\tfont-size: 8px;\n\tfont-weight: medium;\n\theight: 16px;\n\tjustify-content: center;\n\tposition: absolute;\n\tright: 1px;\n\ttop: 1px;\n\twidth: 16px;\n"], ["\n\talign-items: center;\n\tbackground-color: red.70;\n\tborder-radius: round;\n\tcolor: white;\n\tdisplay: flex;\n\tfont-size: 8px;\n\tfont-weight: medium;\n\theight: 16px;\n\tjustify-content: center;\n\tposition: absolute;\n\tright: 1px;\n\ttop: 1px;\n\twidth: 16px;\n"
38
38
  /** Icon link to Veracity notifications engine with an optional number of new notifications. */
39
39
  ])));
40
40
  /** Icon link to Veracity notifications engine with an optional number of new notifications. */
41
41
  exports.HeaderNotifications = (0, core_1.vui)(function (props, ref) {
42
- var children = props.children, _a = props.count, count = _a === void 0 ? 0 : _a, url = props.url, rest = __rest(props, ["children", "count", "url"]);
43
- var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)());
44
- return (react_1.default.createElement(button_1.default, __assign({ as: "a", href: url, minW: 0, ml: 1, position: "relative", px: "7px", ref: ref, title: "Notifications", variant: "text" }, styles.notifications, rest),
45
- react_1.default.createElement(react_1.default.Fragment, null,
46
- react_1.default.createElement(button_1.default.Icon, { name: "falBell" }),
47
- count > 0 && react_1.default.createElement(Badge, null, count < 100 ? count : '99+'))));
42
+ var _a;
43
+ var children = props.children, _b = props.count, count = _b === void 0 ? 0 : _b, url = props.url, rest = __rest(props, ["children", "count", "url"]);
44
+ var links = ((_a = (0, context_1.useHeaderContext)()) !== null && _a !== void 0 ? _a : {}).links;
45
+ var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)()).notifications;
46
+ return (react_1.default.createElement(button_1.default, __assign({ as: "a", href: url !== null && url !== void 0 ? url : links.notifications, minW: 0, ml: 1, position: "relative", px: "7px", ref: ref, title: "Notifications", variant: "text" }, styles.container, rest), children !== null && children !== void 0 ? children : (react_1.default.createElement(react_1.default.Fragment, null,
47
+ react_1.default.createElement(button_1.default.Icon, { name: "falBell" }),
48
+ count > 0 && react_1.default.createElement(Badge, null, count < 100 ? count : '99+')))));
48
49
  });
49
50
  exports.HeaderNotifications.displayName = 'HeaderNotifications';
50
51
  exports.default = exports.HeaderNotifications;
@@ -1,4 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { HeaderServicesProps } from './header.types';
3
3
  /** Displays a list of services available to the user. */
4
- export default function HeaderServices(props: HeaderServicesProps): JSX.Element;
4
+ export declare function HeaderServices(props: HeaderServicesProps): JSX.Element;
5
+ export declare namespace HeaderServices {
6
+ var displayName: string;
7
+ }
8
+ export default HeaderServices;
@@ -25,31 +25,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
25
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.HeaderServices = void 0;
28
29
  var react_1 = __importDefault(require("react"));
29
30
  var core_1 = require("../core");
30
31
  var list_1 = __importDefault(require("../list"));
31
32
  var menu_1 = __importDefault(require("../menu"));
32
33
  var context_1 = require("./context");
34
+ var headerServicesMessage_1 = __importDefault(require("./headerServicesMessage"));
35
+ /** Supporting internal component to avoid code duplication. */
36
+ function ListContent(_a) {
37
+ var _b = _a.links, links = _b === void 0 ? [] : _b;
38
+ var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)()).services;
39
+ return (react_1.default.createElement(react_1.default.Fragment, null, links.length > 0 ? (links.map(function (_a, index) {
40
+ var text = _a.text, url = _a.url;
41
+ return (react_1.default.createElement(menu_1.default.Item, __assign({ isTruncated: true, key: index, linkProps: { href: url }, text: text }, styles.item)));
42
+ })) : (react_1.default.createElement(headerServicesMessage_1.default, null))));
43
+ }
33
44
  /** Displays a list of services available to the user. */
34
45
  function HeaderServices(props) {
35
- var buttonProps = props.buttonProps, children = props.children, listProps = props.listProps, _a = props.services, services = _a === void 0 ? [] : _a, rest = __rest(props, ["buttonProps", "children", "listProps", "services"]);
46
+ var buttonProps = props.buttonProps, _a = props.links, links = _a === void 0 ? [] : _a, rest = __rest(props, ["buttonProps", "links"]);
36
47
  var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)()).services;
37
48
  return (react_1.default.createElement(react_1.default.Fragment, null,
38
49
  react_1.default.createElement(core_1.RenderOnDesktop, null,
39
50
  react_1.default.createElement(menu_1.default, __assign({ offset: [0, 8], placement: "bottom-end", size: "lg" }, rest),
40
51
  react_1.default.createElement(menu_1.default.Button, __assign({ colorScheme: "prussian", icon: "falTh", ml: 1, title: "My services" }, styles.button, buttonProps)),
41
- react_1.default.createElement(menu_1.default.List, __assign({ maxH: 400, maxW: 320 }, styles.list, listProps),
42
- react_1.default.createElement(menu_1.default.List.Heading, null, "My Services"),
43
- services.map(function (_a, index) {
44
- var text = _a.text, url = _a.url;
45
- return (react_1.default.createElement(menu_1.default.Item, __assign({ isTruncated: true, key: index, linkProps: { href: url }, text: text }, styles.item)));
46
- })))),
52
+ react_1.default.createElement(menu_1.default.List, __assign({ heading: "My Services", maxH: 400, w: 320 }, styles.list),
53
+ react_1.default.createElement(ListContent, { links: links })))),
47
54
  react_1.default.createElement(core_1.RenderOnMobile, null,
48
- react_1.default.createElement(list_1.default, __assign({ borderBottom: "1px solid grey.40" }, styles.list, listProps),
49
- react_1.default.createElement(list_1.default.Heading, null, "My Services"),
50
- services.map(function (_a, index) {
51
- var text = _a.text, url = _a.url;
52
- return (react_1.default.createElement(menu_1.default.Item, __assign({ key: index, linkProps: { href: url }, text: text }, styles.item)));
53
- })))));
55
+ react_1.default.createElement(list_1.default, __assign({ borderBottom: "1px solid grey.40", heading: "My Services" }, styles.list),
56
+ react_1.default.createElement(ListContent, { links: links })))));
54
57
  }
58
+ exports.HeaderServices = HeaderServices;
59
+ HeaderServices.displayName = 'HeaderServices';
55
60
  exports.default = HeaderServices;
@@ -0,0 +1,4 @@
1
+ import { PProps } from '../p';
2
+ /** Displays a message with link to Marketplace if user has no services available. */
3
+ export declare const HeaderServicesMessage: import("../core").VuiComponent<"p", PProps>;
4
+ export default HeaderServicesMessage;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.HeaderServicesMessage = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var core_1 = require("../core");
31
+ var link_1 = __importDefault(require("../link"));
32
+ var p_1 = __importDefault(require("../p"));
33
+ var context_1 = require("./context");
34
+ /** Displays a message with link to Marketplace if user has no services available. */
35
+ exports.HeaderServicesMessage = (0, core_1.vui)(function (props, ref) {
36
+ var _a;
37
+ var children = props.children, rest = __rest(props, ["children"]);
38
+ var links = ((_a = (0, context_1.useHeaderContext)()) !== null && _a !== void 0 ? _a : {}).links;
39
+ var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)());
40
+ return (react_1.default.createElement(p_1.default, __assign({ mb: 2, ml: 2, ref: ref }, styles.servicesMessage, rest), children !== null && children !== void 0 ? children : (react_1.default.createElement(react_1.default.Fragment, null,
41
+ "No services available. ",
42
+ react_1.default.createElement("br", null),
43
+ "Explore more on the",
44
+ ' ',
45
+ react_1.default.createElement(link_1.default, { href: links === null || links === void 0 ? void 0 : links.marketplace, isUnderlined: true }, "marketplace"),
46
+ "."))));
47
+ });
48
+ exports.HeaderServicesMessage.displayName = 'HeaderServicesMessage';
49
+ exports.default = exports.HeaderServicesMessage;
@@ -32,9 +32,11 @@ var core_1 = require("../core");
32
32
  var context_1 = require("./context");
33
33
  /** Sign in button leading to Veracity login page. */
34
34
  exports.HeaderSignIn = (0, core_1.vui)(function (props, ref) {
35
- var url = props.url, rest = __rest(props, ["url"]);
35
+ var _a;
36
+ var children = props.children, url = props.url, rest = __rest(props, ["children", "url"]);
37
+ var links = ((_a = (0, context_1.useHeaderContext)()) !== null && _a !== void 0 ? _a : {}).links;
36
38
  var styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)());
37
- return (react_1.default.createElement(button_1.default, __assign({ as: "a", className: "vui-headerSignIn", href: url, ref: ref }, styles.signIn, rest), "Sign in"));
39
+ return (react_1.default.createElement(button_1.default, __assign({ as: "a", className: "vui-headerSignIn", href: url !== null && url !== void 0 ? url : links.signIn, ref: ref }, styles.signIn, rest), children !== null && children !== void 0 ? children : 'Sign in'));
38
40
  });
39
41
  exports.HeaderSignIn.displayName = 'HeaderSignIn';
40
42
  exports.default = exports.HeaderSignIn;
@@ -1,17 +1,8 @@
1
1
  import { Environment } from '../utils';
2
2
  import { HeaderLinkData } from './header.types';
3
- import { HeaderAccountSectionsData } from './headerAccount.types';
4
- /**
5
- * Computes Header links for the Account's sections.
6
- * Links are selected per environment and modified based on log in state.
7
- * @param environment current application environment
8
- * @param isLoggedIn is current user logged in
9
- */
10
- export declare function getHeaderAccountSections(environment: Environment, isLoggedIn?: boolean): HeaderAccountSectionsData;
11
- /**
12
- * Computes Header main links.
13
- * Links are selected per environment and modified based on log in state.
14
- * @param environment current application environment
15
- * @param isLoggedIn is current user logged in
16
- */
17
- export declare function getHeaderMainLinks(environment: Environment, isLoggedIn?: boolean): HeaderLinkData[];
3
+ import { HeaderAccountSectionData } from './headerAccount.types';
4
+ /** Loads templates for Header links and enriches them with urls from LinksContext. */
5
+ export declare function useHeaderLinks(env: Environment): {
6
+ accountSections: HeaderAccountSectionData[] | undefined;
7
+ mainLinks: HeaderLinkData[] | undefined;
8
+ };
package/header/helpers.js CHANGED
@@ -10,6 +10,42 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
13
49
  var __read = (this && this.__read) || function (o, n) {
14
50
  var m = typeof Symbol === "function" && o[Symbol.iterator];
15
51
  if (!m) return o;
@@ -27,40 +63,53 @@ var __read = (this && this.__read) || function (o, n) {
27
63
  return ar;
28
64
  };
29
65
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.getHeaderMainLinks = exports.getHeaderAccountSections = void 0;
66
+ exports.useHeaderLinks = void 0;
67
+ var react_1 = require("react");
68
+ var core_1 = require("../core");
31
69
  var utils_1 = require("../utils");
32
- var consts_1 = require("./consts");
33
- /**
34
- * Computes Header links for the Account's sections.
35
- * Links are selected per environment and modified based on log in state.
36
- * @param environment current application environment
37
- * @param isLoggedIn is current user logged in
38
- */
39
- function getHeaderAccountSections(environment, isLoggedIn) {
40
- if (isLoggedIn === void 0) { isLoggedIn = false; }
41
- // Ok to clone object with JSON here
42
- var sections = JSON.parse(JSON.stringify(consts_1.headerAccountSectionsTemplate));
43
- Object.entries(consts_1.headerAccountSectionsTemplate).forEach(function (_a) {
44
- var _b = __read(_a, 2), sectionName = _b[0], section = _b[1];
45
- sections[sectionName].links = section.links.map(function (link) {
46
- var url = consts_1.headerLinks[environment][link.url];
47
- return __assign(__assign({}, link), { url: (0, utils_1.getLoggedInLink)(url, isLoggedIn) });
48
- });
70
+ /** Loads templates for Header links and enriches them with urls from LinksContext. */
71
+ function useHeaderLinks(env) {
72
+ var _a, _b;
73
+ var _c = __read((0, react_1.useState)({}), 2), templates = _c[0], setTemplates = _c[1];
74
+ var _d = __read((0, core_1.useLinks)(), 1), links = _d[0];
75
+ (0, react_1.useEffect)(function () {
76
+ loadHeaderlinks();
77
+ function loadHeaderlinks() {
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var response, data, _a;
80
+ return __generator(this, function (_b) {
81
+ switch (_b.label) {
82
+ case 0:
83
+ _b.trys.push([0, 3, , 4]);
84
+ return [4 /*yield*/, fetch(core_1.cdnUrls[env] + "/common/data/links/header.json")];
85
+ case 1:
86
+ response = _b.sent();
87
+ if (!response.ok)
88
+ return [2 /*return*/];
89
+ return [4 /*yield*/, response.json()];
90
+ case 2:
91
+ data = _b.sent();
92
+ if ((0, utils_1.isObject)(data))
93
+ setTemplates(data);
94
+ return [3 /*break*/, 4];
95
+ case 3:
96
+ _a = _b.sent();
97
+ console.error('Failed to retrieve header data.');
98
+ return [3 /*break*/, 4];
99
+ case 4: return [2 /*return*/];
100
+ }
101
+ });
102
+ });
103
+ }
104
+ }, [env]);
105
+ var accountSections = (_a = templates.accountSections) === null || _a === void 0 ? void 0 : _a.map(function (section) {
106
+ var _a;
107
+ return __assign(__assign({}, section), { links: (_a = section.links) === null || _a === void 0 ? void 0 : _a.map(function (link) { var _a; return (__assign(__assign({}, link), { url: links[(_a = link === null || link === void 0 ? void 0 : link.id) !== null && _a !== void 0 ? _a : ''] })); }) });
49
108
  });
50
- return sections;
51
- }
52
- exports.getHeaderAccountSections = getHeaderAccountSections;
53
- /**
54
- * Computes Header main links.
55
- * Links are selected per environment and modified based on log in state.
56
- * @param environment current application environment
57
- * @param isLoggedIn is current user logged in
58
- */
59
- function getHeaderMainLinks(environment, isLoggedIn) {
60
- if (isLoggedIn === void 0) { isLoggedIn = false; }
61
- return consts_1.headerMainLinksTemplate.map(function (link) {
62
- var url = consts_1.headerLinks[environment][link.url];
63
- return __assign(__assign({}, link), { url: (0, utils_1.getLoggedInLink)(url, isLoggedIn) });
109
+ var mainLinks = (_b = templates.mainLinks) === null || _b === void 0 ? void 0 : _b.map(function (link) {
110
+ var _a;
111
+ return (__assign(__assign({}, link), { url: links[(_a = link === null || link === void 0 ? void 0 : link.id) !== null && _a !== void 0 ? _a : ''] }));
64
112
  });
113
+ return { accountSections: accountSections, mainLinks: mainLinks };
65
114
  }
66
- exports.getHeaderMainLinks = getHeaderMainLinks;
115
+ exports.useHeaderLinks = useHeaderLinks;