@bigbinary/neeto-molecules 4.2.0 → 4.3.1

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 (166) hide show
  1. package/dist/{Columns-DpeV3Jzz.js → Columns-gR00LMKF.js} +2 -2
  2. package/dist/Columns-gR00LMKF.js.map +1 -0
  3. package/dist/{ConfigureView-B0UvLoJe.js → ConfigureView-CG1M2-3b.js} +4 -15
  4. package/dist/ConfigureView-CG1M2-3b.js.map +1 -0
  5. package/dist/check-DvxzqR83.js +15 -0
  6. package/dist/check-DvxzqR83.js.map +1 -0
  7. package/dist/chevron-down-BMerqYpK.js +15 -0
  8. package/dist/chevron-down-BMerqYpK.js.map +1 -0
  9. package/dist/chevron-left-BTVCxPw8.js +15 -0
  10. package/dist/chevron-left-BTVCxPw8.js.map +1 -0
  11. package/dist/cjs/{Columns-C2ke8N58.js → Columns-Brpr2a_M.js} +2 -2
  12. package/dist/cjs/Columns-Brpr2a_M.js.map +1 -0
  13. package/dist/cjs/{ConfigureView-Coy1ViRc.js → ConfigureView-BVRHqVpb.js} +5 -16
  14. package/dist/cjs/ConfigureView-BVRHqVpb.js.map +1 -0
  15. package/dist/cjs/check-VgZf0qTr.js +17 -0
  16. package/dist/cjs/check-VgZf0qTr.js.map +1 -0
  17. package/dist/cjs/chevron-down-DwiliwN1.js +17 -0
  18. package/dist/cjs/chevron-down-DwiliwN1.js.map +1 -0
  19. package/dist/cjs/chevron-left-DWN80ILn.js +17 -0
  20. package/dist/cjs/chevron-left-DWN80ILn.js.map +1 -0
  21. package/dist/cjs/{useKeyboardShortcutsPaneState-BG_xVteC.js → useKeyboardShortcutsPaneState-DZUnpw9v.js} +2 -2
  22. package/dist/cjs/useKeyboardShortcutsPaneState-DZUnpw9v.js.map +1 -0
  23. package/dist/cjs/v2/AuditLogs.js +8 -8
  24. package/dist/cjs/v2/AuditLogs.js.map +1 -1
  25. package/dist/cjs/v2/BoardView.js +427 -0
  26. package/dist/cjs/v2/BoardView.js.map +1 -0
  27. package/dist/cjs/v2/Breadcrumbs.js +2 -2
  28. package/dist/cjs/v2/Breadcrumbs.js.map +1 -1
  29. package/dist/cjs/v2/CalendarView.js +429 -0
  30. package/dist/cjs/v2/CalendarView.js.map +1 -0
  31. package/dist/cjs/v2/Columns.js +2 -2
  32. package/dist/cjs/v2/ConfigurePageSidebar.js +4 -3
  33. package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
  34. package/dist/cjs/v2/CopyToClipboardButton.js +3 -13
  35. package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
  36. package/dist/cjs/v2/DateFormat.js +42 -0
  37. package/dist/cjs/v2/DateFormat.js.map +1 -0
  38. package/dist/cjs/v2/DocumentEditor.js +329 -0
  39. package/dist/cjs/v2/DocumentEditor.js.map +1 -0
  40. package/dist/cjs/v2/EmojiPicker.js +125 -0
  41. package/dist/cjs/v2/EmojiPicker.js.map +1 -0
  42. package/dist/cjs/v2/Engagements.js +283 -0
  43. package/dist/cjs/v2/Engagements.js.map +1 -0
  44. package/dist/cjs/v2/ErrorPage.js +1 -1
  45. package/dist/cjs/v2/ErrorPage.js.map +1 -1
  46. package/dist/cjs/v2/FileUpload.js +644 -0
  47. package/dist/cjs/v2/FileUpload.js.map +1 -0
  48. package/dist/cjs/v2/FinderModal.js +253 -0
  49. package/dist/cjs/v2/FinderModal.js.map +1 -0
  50. package/dist/cjs/v2/FloatingActionMenu.js +11 -9
  51. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  52. package/dist/cjs/v2/Header.js +6 -6
  53. package/dist/cjs/v2/InlineInput.js +293 -0
  54. package/dist/cjs/v2/InlineInput.js.map +1 -0
  55. package/dist/cjs/v2/KeyboardShortcuts.js +3 -3
  56. package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
  57. package/dist/cjs/v2/LoginPage.js +1 -1
  58. package/dist/cjs/v2/LoginPage.js.map +1 -1
  59. package/dist/cjs/v2/MenuBar.js +2 -2
  60. package/dist/cjs/v2/MenuBar.js.map +1 -1
  61. package/dist/cjs/v2/MoreDropdown.js +1 -1
  62. package/dist/cjs/v2/MoreDropdown.js.map +1 -1
  63. package/dist/cjs/v2/NavigationHeader.js +328 -0
  64. package/dist/cjs/v2/NavigationHeader.js.map +1 -0
  65. package/dist/cjs/v2/PublishBlock.js +414 -0
  66. package/dist/cjs/v2/PublishBlock.js.map +1 -0
  67. package/dist/cjs/v2/Rename.js +350 -0
  68. package/dist/cjs/v2/Rename.js.map +1 -0
  69. package/dist/cjs/v2/Scrollable.js +37 -0
  70. package/dist/cjs/v2/Scrollable.js.map +1 -0
  71. package/dist/cjs/v2/Search.js +5 -5
  72. package/dist/cjs/v2/Search.js.map +1 -1
  73. package/dist/cjs/v2/Settings.js +6 -6
  74. package/dist/cjs/v2/Settings.js.map +1 -1
  75. package/dist/cjs/v2/Sidebar.js +8 -7
  76. package/dist/cjs/v2/Sidebar.js.map +1 -1
  77. package/dist/cjs/v2/StickyRibbonsContainer.js +4 -4
  78. package/dist/cjs/v2/StickyRibbonsContainer.js.map +1 -1
  79. package/dist/cjs/v2/SubHeader.js +3 -3
  80. package/dist/cjs/v2/SubHeader.js.map +1 -1
  81. package/dist/cjs/v2/TimeFormat.js +15 -0
  82. package/dist/cjs/v2/TimeFormat.js.map +1 -0
  83. package/dist/{useKeyboardShortcutsPaneState-dNIbb_PI.js → useKeyboardShortcutsPaneState-BlyFMEtW.js} +2 -2
  84. package/dist/useKeyboardShortcutsPaneState-BlyFMEtW.js.map +1 -0
  85. package/dist/v2/AuditLogs.js +8 -8
  86. package/dist/v2/AuditLogs.js.map +1 -1
  87. package/dist/v2/BoardView.js +425 -0
  88. package/dist/v2/BoardView.js.map +1 -0
  89. package/dist/v2/Breadcrumbs.js +2 -2
  90. package/dist/v2/Breadcrumbs.js.map +1 -1
  91. package/dist/v2/CalendarView.js +427 -0
  92. package/dist/v2/CalendarView.js.map +1 -0
  93. package/dist/v2/Columns.js +2 -2
  94. package/dist/v2/ConfigurePageSidebar.js +4 -3
  95. package/dist/v2/ConfigurePageSidebar.js.map +1 -1
  96. package/dist/v2/CopyToClipboardButton.js +2 -12
  97. package/dist/v2/CopyToClipboardButton.js.map +1 -1
  98. package/dist/v2/DateFormat.js +40 -0
  99. package/dist/v2/DateFormat.js.map +1 -0
  100. package/dist/v2/DocumentEditor.js +327 -0
  101. package/dist/v2/DocumentEditor.js.map +1 -0
  102. package/dist/v2/EmojiPicker.js +123 -0
  103. package/dist/v2/EmojiPicker.js.map +1 -0
  104. package/dist/v2/Engagements.js +281 -0
  105. package/dist/v2/Engagements.js.map +1 -0
  106. package/dist/v2/ErrorPage.js +1 -1
  107. package/dist/v2/ErrorPage.js.map +1 -1
  108. package/dist/v2/FileUpload.js +641 -0
  109. package/dist/v2/FileUpload.js.map +1 -0
  110. package/dist/v2/FinderModal.js +251 -0
  111. package/dist/v2/FinderModal.js.map +1 -0
  112. package/dist/v2/FloatingActionMenu.js +11 -9
  113. package/dist/v2/FloatingActionMenu.js.map +1 -1
  114. package/dist/v2/Header.js +6 -6
  115. package/dist/v2/InlineInput.js +290 -0
  116. package/dist/v2/InlineInput.js.map +1 -0
  117. package/dist/v2/KeyboardShortcuts.js +3 -3
  118. package/dist/v2/KeyboardShortcuts.js.map +1 -1
  119. package/dist/v2/LoginPage.js +1 -1
  120. package/dist/v2/LoginPage.js.map +1 -1
  121. package/dist/v2/MenuBar.js +2 -2
  122. package/dist/v2/MenuBar.js.map +1 -1
  123. package/dist/v2/MoreDropdown.js +1 -1
  124. package/dist/v2/MoreDropdown.js.map +1 -1
  125. package/dist/v2/NavigationHeader.js +326 -0
  126. package/dist/v2/NavigationHeader.js.map +1 -0
  127. package/dist/v2/PublishBlock.js +412 -0
  128. package/dist/v2/PublishBlock.js.map +1 -0
  129. package/dist/v2/Rename.js +348 -0
  130. package/dist/v2/Rename.js.map +1 -0
  131. package/dist/v2/Scrollable.js +35 -0
  132. package/dist/v2/Scrollable.js.map +1 -0
  133. package/dist/v2/Search.js +5 -5
  134. package/dist/v2/Search.js.map +1 -1
  135. package/dist/v2/Settings.js +6 -6
  136. package/dist/v2/Settings.js.map +1 -1
  137. package/dist/v2/Sidebar.js +8 -7
  138. package/dist/v2/Sidebar.js.map +1 -1
  139. package/dist/v2/StickyRibbonsContainer.js +4 -4
  140. package/dist/v2/StickyRibbonsContainer.js.map +1 -1
  141. package/dist/v2/SubHeader.js +3 -3
  142. package/dist/v2/SubHeader.js.map +1 -1
  143. package/dist/v2/TimeFormat.js +13 -0
  144. package/dist/v2/TimeFormat.js.map +1 -0
  145. package/package.json +5 -5
  146. package/src/translations/en.json +4 -2
  147. package/types/v2/BoardView.d.ts +27 -0
  148. package/types/v2/CalendarView.d.ts +40 -0
  149. package/types/v2/DateFormat.d.ts +19 -0
  150. package/types/v2/DocumentEditor.d.ts +20 -0
  151. package/types/v2/EmojiPicker.d.ts +14 -0
  152. package/types/v2/Engagements.d.ts +50 -0
  153. package/types/v2/FileUpload.d.ts +30 -0
  154. package/types/v2/FinderModal.d.ts +24 -0
  155. package/types/v2/InlineInput.d.ts +28 -0
  156. package/types/v2/NavigationHeader.d.ts +80 -0
  157. package/types/v2/PublishBlock.d.ts +39 -0
  158. package/types/v2/Rename.d.ts +33 -0
  159. package/types/v2/Scrollable.d.ts +15 -0
  160. package/types/v2/TimeFormat.d.ts +17 -0
  161. package/dist/Columns-DpeV3Jzz.js.map +0 -1
  162. package/dist/ConfigureView-B0UvLoJe.js.map +0 -1
  163. package/dist/cjs/Columns-C2ke8N58.js.map +0 -1
  164. package/dist/cjs/ConfigureView-Coy1ViRc.js.map +0 -1
  165. package/dist/cjs/useKeyboardShortcutsPaneState-BG_xVteC.js.map +0 -1
  166. package/dist/useKeyboardShortcutsPaneState-dNIbb_PI.js.map +0 -1
@@ -0,0 +1,281 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import React__default, { memo, forwardRef } from 'react';
3
+ import { isPresent, findIndexBy, noop } from '@bigbinary/neeto-cist';
4
+ import { Avatar, Typography, Tooltip, Button } from '@bigbinary/neeto-atoms';
5
+ import classnames from 'classnames';
6
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
+ import { P as PropTypes } from '../index-DAYCJu79.js';
8
+ import DateFormat from './DateFormat.js';
9
+ import MoreDropdown from './MoreDropdown.js';
10
+ import { globalProps } from '@bigbinary/neeto-commons-frontend/v2/initializers';
11
+ import { collectBy, prop, eqProps, pathEq } from 'ramda';
12
+ import { useTranslation } from 'react-i18next';
13
+ import EmojiPicker from './EmojiPicker.js';
14
+ import '../_commonjsHelpers-BFTU3MAI.js';
15
+ import '@bigbinary/neeto-commons-frontend/v2/react-utils/useTimer';
16
+ import '@bigbinary/neeto-commons-frontend/v2/utils/datetime';
17
+ import '@babel/runtime/helpers/objectWithoutProperties';
18
+ import '@bigbinary/neeto-commons-frontend/v2/react-utils';
19
+ import '../createLucideIcon-mNMhCCpf.js';
20
+ import '../ellipsis-DpI9xqUK.js';
21
+ import '@babel/runtime/helpers/slicedToArray';
22
+ import '@bigbinary/neeto-atoms/primitives';
23
+ import 'emoji-mart';
24
+ import '@tanstack/react-query';
25
+ import 'axios';
26
+
27
+ var ActivityIcon = function ActivityIcon(_ref) {
28
+ var icon = _ref.icon,
29
+ unread = _ref.unread;
30
+ return /*#__PURE__*/jsx("div", {
31
+ className: "bg-card relative z-10 mx-0.5 flex-shrink-0 rounded-full",
32
+ children: /*#__PURE__*/jsxs("span", {
33
+ className: classnames("nm-activity-node-icon bg-muted text-muted-foreground relative flex h-7 w-7 items-center justify-center rounded-full p-1 [&>svg]:size-4", {
34
+ "text-primary bg-primary/10": unread
35
+ }),
36
+ children: [icon, unread && /*#__PURE__*/jsx("span", {
37
+ className: "bg-primary absolute -end-0.5 -top-0.5 h-2 w-2 rounded-full"
38
+ })]
39
+ })
40
+ });
41
+ };
42
+
43
+ var Activity = function Activity(_ref) {
44
+ var user = _ref.user,
45
+ icon = _ref.icon,
46
+ _ref$unread = _ref.unread,
47
+ unread = _ref$unread === void 0 ? false : _ref$unread,
48
+ className = _ref.className,
49
+ children = _ref.children,
50
+ userIcon = _ref.userIcon;
51
+ return /*#__PURE__*/jsxs("div", {
52
+ className: classnames("nm-engagements-node relative -mt-4 flex items-center gap-2 px-4 py-4", "before:bg-border before:absolute before:start-[31px] before:top-0 before:h-full before:w-0.5 before:content-['']", className),
53
+ children: [/*#__PURE__*/jsx(ActivityIcon, {
54
+ icon: icon,
55
+ unread: unread
56
+ }), userIcon || /*#__PURE__*/jsx(Avatar, {
57
+ className: "!size-[18px] [&_[data-slot=avatar-fallback]]:text-[10px]",
58
+ size: "sm",
59
+ user: {
60
+ name: user.name,
61
+ imageUrl: user.profileImageUrl
62
+ }
63
+ }), /*#__PURE__*/jsx("div", {
64
+ className: "nm-engagements-node__children",
65
+ children: children
66
+ })]
67
+ });
68
+ };
69
+
70
+ var CommentHeader = function CommentHeader(_ref) {
71
+ var user = _ref.user,
72
+ comment = _ref.comment,
73
+ info = _ref.info,
74
+ actions = _ref.actions;
75
+ var avatar = {
76
+ name: user.name,
77
+ imageUrl: user.profileImageUrl
78
+ };
79
+ return /*#__PURE__*/jsxs("div", {
80
+ className: "bg-muted/40 border-border flex items-center justify-between rounded-t-md border-b py-1 ps-4 pe-1",
81
+ children: [/*#__PURE__*/jsxs("div", {
82
+ className: "flex min-w-0 flex-grow flex-wrap items-center gap-2",
83
+ children: [/*#__PURE__*/jsx(Avatar, {
84
+ size: "sm",
85
+ user: avatar
86
+ }), /*#__PURE__*/jsx(Typography, {
87
+ as: "span",
88
+ variant: "body3",
89
+ weight: "semibold",
90
+ children: user.name
91
+ }), /*#__PURE__*/jsx(Typography, {
92
+ as: "span",
93
+ color: "muted",
94
+ variant: "body3",
95
+ children: "\u2022"
96
+ }), info && /*#__PURE__*/jsxs(Fragment, {
97
+ children: [/*#__PURE__*/jsx(Typography, {
98
+ as: "span",
99
+ className: "lowercase",
100
+ color: "muted",
101
+ variant: "body3",
102
+ children: info
103
+ }), /*#__PURE__*/jsx(Typography, {
104
+ as: "span",
105
+ color: "muted",
106
+ variant: "body3",
107
+ children: "\u2022"
108
+ })]
109
+ }), comment.createdAt && /*#__PURE__*/jsx(DateFormat.FromNow, {
110
+ date: comment.createdAt,
111
+ typographyProps: {
112
+ color: "muted",
113
+ variant: "body3"
114
+ }
115
+ })]
116
+ }), isPresent(actions) && /*#__PURE__*/jsx(MoreDropdown, {
117
+ dropdownButtonProps: {
118
+ className: "self-start flex-shrink-0"
119
+ },
120
+ dropdownProps: {
121
+ position: "bottom-start"
122
+ },
123
+ menuItems: actions
124
+ })]
125
+ });
126
+ };
127
+
128
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
129
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
130
+ var findOwnIndex = findIndexBy({
131
+ userId: globalProps.user.id
132
+ });
133
+ var groupReactions = collectBy(prop("unified"));
134
+ var Reactions = function Reactions(_ref) {
135
+ var reactions = _ref.reactions,
136
+ onAdd = _ref.onAdd,
137
+ onRemove = _ref.onRemove;
138
+ var _useTranslation = useTranslation(),
139
+ t = _useTranslation.t;
140
+ var groups = groupReactions(reactions);
141
+ var onSelect = function onSelect(emoji) {
142
+ var group = groups.find(pathEq(emoji.unified, [0, "unified"]));
143
+ if (group && findOwnIndex(group) >= 0) return;
144
+ onAdd(_objectSpread(_objectSpread({}, emoji), {}, {
145
+ emoji: emoji["native"]
146
+ }));
147
+ };
148
+ return /*#__PURE__*/jsxs("div", {
149
+ className: "mt-3 flex flex-wrap items-center gap-1",
150
+ children: [/*#__PURE__*/jsx("div", {
151
+ className: "bg-muted rounded-full",
152
+ children: /*#__PURE__*/jsx(EmojiPicker, {
153
+ onSelect: onSelect
154
+ })
155
+ }), groups.map(function (reactionsGroup) {
156
+ var ownIndex = findOwnIndex(reactionsGroup);
157
+ var selected = ownIndex >= 0;
158
+ var reaction = selected ? reactionsGroup[ownIndex] : reactionsGroup[0];
159
+ var names = reactionsGroup.map(function (_ref2) {
160
+ var reactor = _ref2.reactor;
161
+ return typeof reactor === "string" ? reactor : reactor === null || reactor === void 0 ? void 0 : reactor.name;
162
+ }).filter(Boolean).join(", ");
163
+ return /*#__PURE__*/jsx(Tooltip, {
164
+ content: t("neetoMolecules.engagements.namesReacted", {
165
+ names: names
166
+ }),
167
+ position: "top",
168
+ children: /*#__PURE__*/jsxs(Button, {
169
+ "aria-pressed": selected,
170
+ size: "xs",
171
+ variant: "ghost",
172
+ className: classnames("h-7 rounded-full px-2 text-sm font-normal", {
173
+ "!bg-muted !hover:bg-muted/80": selected,
174
+ "!bg-muted/50": !selected
175
+ }),
176
+ onClick: function onClick() {
177
+ return (selected ? onRemove : onAdd)(reaction);
178
+ },
179
+ children: [/*#__PURE__*/jsx("span", {
180
+ children: reaction.emoji
181
+ }), /*#__PURE__*/jsx("span", {
182
+ children: reactionsGroup.length
183
+ })]
184
+ })
185
+ }, reaction.unified);
186
+ })]
187
+ });
188
+ };
189
+ var Reactions$1 = /*#__PURE__*/memo(Reactions, eqProps("reactions"));
190
+
191
+ var ENGAGEMENT_TYPES = {
192
+ COMMENT: "comment",
193
+ ACTIVITY: "activity"
194
+ };
195
+
196
+ var createCommentElementId = function createCommentElementId(comment) {
197
+ return "nm-engagement-comment--".concat(comment.id);
198
+ };
199
+ var defaultMatchType = function defaultMatchType(engagement) {
200
+ if (engagement.commenter) return ENGAGEMENT_TYPES.COMMENT;else if (engagement.creator) return ENGAGEMENT_TYPES.ACTIVITY;
201
+ return null;
202
+ };
203
+
204
+ var Comment = /*#__PURE__*/forwardRef(function (_ref, ref) {
205
+ var user = _ref.user,
206
+ comment = _ref.comment,
207
+ reactions = _ref.reactions,
208
+ info = _ref.info,
209
+ actions = _ref.actions,
210
+ className = _ref.className,
211
+ children = _ref.children,
212
+ onAddReaction = _ref.onAddReaction,
213
+ onRemoveReaction = _ref.onRemoveReaction;
214
+ return /*#__PURE__*/jsxs("div", {
215
+ ref: ref,
216
+ id: createCommentElementId(comment),
217
+ className: classnames("nm-comments-node bg-card border-border relative mb-4 w-full rounded-md border", "before:bg-border before:absolute before:start-[30px] before:top-[calc(100%+1px)] before:h-4 before:w-0.5 before:content-['']", className),
218
+ children: [/*#__PURE__*/jsx(CommentHeader, {
219
+ actions: actions,
220
+ comment: comment,
221
+ info: info,
222
+ user: user
223
+ }), /*#__PURE__*/jsxs("div", {
224
+ className: "nm-comments-node__inner p-4",
225
+ children: [children, reactions !== false && /*#__PURE__*/jsx(Reactions$1, {
226
+ reactions: reactions,
227
+ onAdd: onAddReaction,
228
+ onRemove: onRemoveReaction
229
+ })]
230
+ })]
231
+ });
232
+ });
233
+ Comment.displayName = "Comment";
234
+ Comment.propTypes = {
235
+ user: PropTypes.shape({
236
+ name: PropTypes.string.isRequired
237
+ }).isRequired,
238
+ comment: PropTypes.shape({
239
+ id: PropTypes.string.isRequired,
240
+ createdAt: PropTypes.string
241
+ }).isRequired,
242
+ reactions: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),
243
+ info: PropTypes.string,
244
+ actions: PropTypes.arrayOf(PropTypes.shape({
245
+ isVisible: PropTypes.bool,
246
+ key: PropTypes.string.isRequired,
247
+ label: PropTypes.string.isRequired,
248
+ onClick: PropTypes.func.isRequired
249
+ })),
250
+ className: PropTypes.string,
251
+ onAddReaction: PropTypes.func,
252
+ onRemoveReaction: PropTypes.func
253
+ };
254
+
255
+ var Engagements = function Engagements(_ref) {
256
+ var data = _ref.data,
257
+ _ref$isActivitiesEnab = _ref.isActivitiesEnabled,
258
+ isActivitiesEnabled = _ref$isActivitiesEnab === void 0 ? false : _ref$isActivitiesEnab,
259
+ _ref$matchType = _ref.matchType,
260
+ matchType = _ref$matchType === void 0 ? defaultMatchType : _ref$matchType,
261
+ renderComment = _ref.renderComment,
262
+ renderActivity = _ref.renderActivity;
263
+ var rendererHashmap = _defineProperty(_defineProperty({}, ENGAGEMENT_TYPES.COMMENT, renderComment), ENGAGEMENT_TYPES.ACTIVITY, isActivitiesEnabled ? renderActivity : noop);
264
+ return /*#__PURE__*/jsx(Fragment, {
265
+ children: data.map(function (engagement, index) {
266
+ var type = matchType(engagement);
267
+ var renderer = rendererHashmap[type];
268
+ if (!renderer) return null;
269
+ return /*#__PURE__*/jsx(React__default.Fragment, {
270
+ children: renderer(engagement, index)
271
+ }, engagement.id);
272
+ })
273
+ });
274
+ };
275
+ Engagements.displayName = "Engagements";
276
+ Engagements.Comment = Comment;
277
+ Engagements.Activity = Activity;
278
+ Engagements.TYPES = ENGAGEMENT_TYPES;
279
+
280
+ export { Engagements as default };
281
+ //# sourceMappingURL=Engagements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Engagements.js","sources":["../../src/v2/components/Engagements/Activity/Icon.jsx","../../src/v2/components/Engagements/Activity/index.jsx","../../src/v2/components/Engagements/Comment/Header.jsx","../../src/v2/components/Engagements/Comment/Reactions.jsx","../../src/v2/components/Engagements/constants.js","../../src/v2/components/Engagements/utils.js","../../src/v2/components/Engagements/Comment/index.jsx","../../src/v2/components/Engagements/index.jsx"],"sourcesContent":["import classNames from \"classnames\";\n\nconst ActivityIcon = ({ icon, unread }) => (\n <div className=\"bg-card relative z-10 mx-0.5 flex-shrink-0 rounded-full\">\n <span\n className={classNames(\n \"nm-activity-node-icon bg-muted text-muted-foreground relative flex h-7 w-7 items-center justify-center rounded-full p-1 [&>svg]:size-4\",\n { \"text-primary bg-primary/10\": unread }\n )}\n >\n {icon}\n {unread && (\n <span className=\"bg-primary absolute -end-0.5 -top-0.5 h-2 w-2 rounded-full\" />\n )}\n </span>\n </div>\n);\n\nexport default ActivityIcon;\n","import { Avatar } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport ActivityIcon from \"./Icon\";\n\nconst Activity = ({\n user,\n icon,\n unread = false,\n className,\n children,\n userIcon,\n}) => (\n <div\n className={classNames(\n \"nm-engagements-node relative -mt-4 flex items-center gap-2 px-4 py-4\",\n \"before:bg-border before:absolute before:start-[31px] before:top-0 before:h-full before:w-0.5 before:content-['']\",\n className\n )}\n >\n <ActivityIcon {...{ icon, unread }} />\n {userIcon || (\n <Avatar\n className=\"!size-[18px] [&_[data-slot=avatar-fallback]]:text-[10px]\"\n size=\"sm\"\n user={{ name: user.name, imageUrl: user.profileImageUrl }}\n />\n )}\n <div className=\"nm-engagements-node__children\">{children}</div>\n </div>\n);\n\nActivity.propTypes = {\n user: PropTypes.shape({ name: PropTypes.string.isRequired }).isRequired,\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n unread: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default Activity;\n","import { Avatar, Typography } from \"@bigbinary/neeto-atoms\";\nimport { isPresent } from \"neetocist\";\n\nimport DateFormat from \"../../DateFormat\";\nimport MoreDropdown from \"../../MoreDropdown\";\n\nconst CommentHeader = ({ user, comment, info, actions }) => {\n const avatar = { name: user.name, imageUrl: user.profileImageUrl };\n\n return (\n <div className=\"bg-muted/40 border-border flex items-center justify-between rounded-t-md border-b py-1 ps-4 pe-1\">\n <div className=\"flex min-w-0 flex-grow flex-wrap items-center gap-2\">\n <Avatar size=\"sm\" user={avatar} />\n <Typography as=\"span\" variant=\"body3\" weight=\"semibold\">\n {user.name}\n </Typography>\n <Typography as=\"span\" color=\"muted\" variant=\"body3\">\n •\n </Typography>\n {info && (\n <>\n <Typography\n as=\"span\"\n className=\"lowercase\"\n color=\"muted\"\n variant=\"body3\"\n >\n {info}\n </Typography>\n <Typography as=\"span\" color=\"muted\" variant=\"body3\">\n •\n </Typography>\n </>\n )}\n {comment.createdAt && (\n <DateFormat.FromNow\n date={comment.createdAt}\n typographyProps={{ color: \"muted\", variant: \"body3\" }}\n />\n )}\n </div>\n {isPresent(actions) && (\n <MoreDropdown\n dropdownButtonProps={{ className: \"self-start flex-shrink-0\" }}\n dropdownProps={{ position: \"bottom-start\" }}\n menuItems={actions}\n />\n )}\n </div>\n );\n};\n\nexport default CommentHeader;\n","import { memo } from \"react\";\n\nimport { Button, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { findIndexBy } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { collectBy, eqProps, pathEq, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmojiPicker from \"../../EmojiPicker\";\n\nconst findOwnIndex = findIndexBy({ userId: globalProps.user.id });\nconst groupReactions = collectBy(prop(\"unified\"));\n\nconst Reactions = ({ reactions, onAdd, onRemove }) => {\n const { t } = useTranslation();\n const groups = groupReactions(reactions);\n\n const onSelect = emoji => {\n const group = groups.find(pathEq(emoji.unified, [0, \"unified\"]));\n if (group && findOwnIndex(group) >= 0) return;\n onAdd({ ...emoji, emoji: emoji.native });\n };\n\n return (\n <div className=\"mt-3 flex flex-wrap items-center gap-1\">\n <div className=\"bg-muted rounded-full\">\n <EmojiPicker {...{ onSelect }} />\n </div>\n {groups.map(reactionsGroup => {\n const ownIndex = findOwnIndex(reactionsGroup);\n const selected = ownIndex >= 0;\n const reaction = selected\n ? reactionsGroup[ownIndex]\n : reactionsGroup[0];\n\n const names = reactionsGroup\n .map(({ reactor }) =>\n typeof reactor === \"string\" ? reactor : reactor?.name\n )\n .filter(Boolean)\n .join(\", \");\n\n return (\n <Tooltip\n content={t(\"neetoMolecules.engagements.namesReacted\", { names })}\n key={reaction.unified}\n position=\"top\"\n >\n <Button\n aria-pressed={selected}\n size=\"xs\"\n variant=\"ghost\"\n className={classNames(\n \"h-7 rounded-full px-2 text-sm font-normal\",\n {\n \"!bg-muted !hover:bg-muted/80\": selected,\n \"!bg-muted/50\": !selected,\n }\n )}\n onClick={() => (selected ? onRemove : onAdd)(reaction)}\n >\n <span>{reaction.emoji}</span>\n <span>{reactionsGroup.length}</span>\n </Button>\n </Tooltip>\n );\n })}\n </div>\n );\n};\n\nexport default memo(Reactions, eqProps(\"reactions\"));\n","export const ACTIVITY_TYPES = {\n TIMELINE: \"Timeline\",\n FIELD_VALUE: \"FieldValue\",\n TASK: \"Task\",\n ASSIGNEE: \"Assignee\",\n CHECKLIST: \"Checklist\",\n FIELD: \"Field\",\n PROJECT: \"Project\",\n COMMENT: \"Comment\",\n DOCUMENT: \"Document\",\n CHAT_MESSAGE: \"ChatMessage\",\n MESSAGE: \"Message\",\n SECTION: \"Section\",\n PROJECT_MEMBER: \"ProjectMember\",\n PULL_REQUEST: \"NeetoGithubEngine::PullRequest\",\n};\n\nexport const ENGAGEMENT_TYPES = {\n COMMENT: \"comment\",\n ACTIVITY: \"activity\",\n};\n","import { ENGAGEMENT_TYPES } from \"./constants\";\n\nexport const createCommentElementId = comment =>\n `nm-engagement-comment--${comment.id}`;\n\nexport const defaultMatchType = engagement => {\n if (engagement.commenter) return ENGAGEMENT_TYPES.COMMENT;\n else if (engagement.creator) return ENGAGEMENT_TYPES.ACTIVITY;\n\n return null;\n};\n","import { forwardRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport CommentHeader from \"./Header\";\nimport Reactions from \"./Reactions\";\n\nimport { createCommentElementId } from \"../utils\";\n\nconst Comment = forwardRef(\n (\n {\n user,\n comment,\n reactions,\n info,\n actions,\n className,\n children,\n onAddReaction,\n onRemoveReaction,\n },\n ref\n ) => (\n <div\n {...{ ref }}\n id={createCommentElementId(comment)}\n className={classNames(\n \"nm-comments-node bg-card border-border relative mb-4 w-full rounded-md border\",\n \"before:bg-border before:absolute before:start-[30px] before:top-[calc(100%+1px)] before:h-4 before:w-0.5 before:content-['']\",\n className\n )}\n >\n <CommentHeader {...{ actions, comment, info, user }} />\n <div className=\"nm-comments-node__inner p-4\">\n {children}\n {reactions !== false && (\n <Reactions\n {...{ reactions }}\n onAdd={onAddReaction}\n onRemove={onRemoveReaction}\n />\n )}\n </div>\n </div>\n )\n);\n\nComment.displayName = \"Comment\";\nComment.propTypes = {\n user: PropTypes.shape({ name: PropTypes.string.isRequired }).isRequired,\n comment: PropTypes.shape({\n id: PropTypes.string.isRequired,\n createdAt: PropTypes.string,\n }).isRequired,\n reactions: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),\n info: PropTypes.string,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n isVisible: PropTypes.bool,\n key: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n })\n ),\n className: PropTypes.string,\n onAddReaction: PropTypes.func,\n onRemoveReaction: PropTypes.func,\n};\n\nexport default Comment;\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport Activity from \"./Activity\";\nimport Comment from \"./Comment\";\nimport { ENGAGEMENT_TYPES } from \"./constants\";\nimport { defaultMatchType } from \"./utils\";\n\nconst Engagements = ({\n data,\n isActivitiesEnabled = false,\n matchType = defaultMatchType,\n renderComment,\n renderActivity,\n}) => {\n const rendererHashmap = {\n [ENGAGEMENT_TYPES.COMMENT]: renderComment,\n [ENGAGEMENT_TYPES.ACTIVITY]: isActivitiesEnabled ? renderActivity : noop,\n };\n\n return (\n <>\n {data.map((engagement, index) => {\n const type = matchType(engagement);\n const renderer = rendererHashmap[type];\n if (!renderer) return null;\n\n return (\n <React.Fragment key={engagement.id}>\n {renderer(engagement, index)}\n </React.Fragment>\n );\n })}\n </>\n );\n};\n\nEngagements.displayName = \"Engagements\";\nEngagements.Comment = Comment;\nEngagements.Activity = Activity;\nEngagements.TYPES = ENGAGEMENT_TYPES;\n\nEngagements.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired }))\n .isRequired,\n isActivitiesEnabled: PropTypes.bool,\n matchType: PropTypes.func,\n renderComment: PropTypes.func.isRequired,\n renderActivity: PropTypes.func.isRequired,\n};\n\nexport default Engagements;\n"],"names":["ActivityIcon","_ref","icon","unread","_jsx","className","children","_jsxs","classNames","Activity","user","_ref$unread","userIcon","Avatar","size","name","imageUrl","profileImageUrl","CommentHeader","comment","info","actions","avatar","Typography","as","variant","weight","color","_Fragment","createdAt","DateFormat","FromNow","date","typographyProps","isPresent","MoreDropdown","dropdownButtonProps","dropdownProps","position","menuItems","findOwnIndex","findIndexBy","userId","globalProps","id","groupReactions","collectBy","prop","Reactions","reactions","onAdd","onRemove","_useTranslation","useTranslation","t","groups","onSelect","emoji","group","find","pathEq","unified","_objectSpread","EmojiPicker","map","reactionsGroup","ownIndex","selected","reaction","names","_ref2","reactor","filter","Boolean","join","Tooltip","content","Button","onClick","length","memo","eqProps","ENGAGEMENT_TYPES","COMMENT","ACTIVITY","createCommentElementId","concat","defaultMatchType","engagement","commenter","creator","Comment","forwardRef","ref","onAddReaction","onRemoveReaction","displayName","propTypes","PropTypes","shape","string","isRequired","oneOfType","array","bool","arrayOf","isVisible","key","label","func","Engagements","data","_ref$isActivitiesEnab","isActivitiesEnabled","_ref$matchType","matchType","renderComment","renderActivity","rendererHashmap","_defineProperty","noop","index","type","renderer","React","Fragment","TYPES"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useShallow } from 'zustand/shallow';
3
3
  import { useEffect } from 'react';
4
4
  import { Typography, Button } from '@bigbinary/neeto-atoms';
5
5
  import { S as SvgInternalServerError, a as SvgUnauthorized, b as SvgPageNotFound, p as purify } from '../unauthorized-DLPyUaeK.js';
6
- import { useErrorDisplayStore } from '@bigbinary/neeto-commons-frontend/react-utils/useDisplayErrorPage';
6
+ import { useErrorDisplayStore } from '@bigbinary/neeto-commons-frontend/v2/react-utils/useDisplayErrorPage';
7
7
  import { Helmet } from 'react-helmet';
8
8
  import { useTranslation, Trans } from 'react-i18next';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorPage.js","sources":["../../src/v2/components/ErrorPage/constants.js","../../src/v2/components/ErrorPage/index.jsx"],"sourcesContent":["import InternalServerErrorImage from \"assets/images/internal-server-error\";\nimport PageNotFoundImage from \"assets/images/page-not-found\";\nimport UnauthorizedImage from \"assets/images/unauthorized\";\n\nexport const ERRORS = {\n 404: {\n Image: PageNotFoundImage,\n errorKey: \"neetoMolecules.errorPage.cantBeFound\",\n titleKey: \"neetoMolecules.errorPage.title.cantBeFound\",\n },\n 403: {\n Image: UnauthorizedImage,\n errorKey: \"neetoMolecules.errorPage.unauthorized\",\n titleKey: \"neetoMolecules.errorPage.title.unauthorized\",\n },\n 500: {\n Image: InternalServerErrorImage,\n errorKey: \"neetoMolecules.errorPage.internalServerError\",\n titleKey: \"neetoMolecules.errorPage.title.internalServerError\",\n },\n};\n","import { useEffect } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport DOMPurify from \"dompurify\";\nimport { useErrorDisplayStore } from \"neetocommons/react-utils/useDisplayErrorPage\";\nimport PropTypes from \"prop-types\";\nimport { Helmet } from \"react-helmet\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ERRORS } from \"./constants\";\n\nconst sanitize = DOMPurify.sanitize;\n\nconst ErrorPage = ({\n homeUrl = \"/\",\n status,\n backToHomeButtonProps,\n children,\n showNeetoChatWidget = true,\n description,\n title,\n hideBackToHomeButton = false,\n}) => {\n const { t } = useTranslation();\n const { statusCode: storeStatusCode, showErrorPage } =\n useErrorDisplayStore.pick();\n\n status = status || storeStatusCode;\n const { Image, errorKey, titleKey } = ERRORS[status] || ERRORS[404];\n\n useEffect(() => {\n const pageLoader = document.getElementById(\"neeto-page-loader\");\n if (pageLoader) pageLoader.remove();\n\n const onBackButtonPress = () => {\n if (!showErrorPage) return;\n useErrorDisplayStore.setState({ showErrorPage: false });\n };\n\n window.addEventListener(\"popstate\", onBackButtonPress);\n\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonPress);\n };\n }, []);\n\n const openChatWidget = () => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n };\n\n return (\n <div\n className=\"@container/error-page flex min-h-dvh w-full flex-col items-center justify-center\"\n data-testid=\"error-page-container\"\n >\n <div className=\"flex w-[768px] max-w-full flex-col gap-8 p-4 @[768px]/error-page:flex-row @[768px]/error-page:gap-12 @[768px]/error-page:p-6\">\n <Image\n className=\"dark:[&_path]:fill-foreground w-full max-w-[180px] shrink-0 @[768px]/error-page:max-w-[240px]\"\n data-testid=\"error-image\"\n />\n <div className=\"flex flex-col justify-center md:min-w-0 md:flex-grow\">\n <Helmet>\n <title>{t(titleKey)}</title>\n </Helmet>\n <Typography\n className=\"mb-4\"\n data-testid=\"title\"\n variant=\"h3\"\n weight=\"semibold\"\n >\n {title || <Trans i18nKey={errorKey} />}\n </Typography>\n {!!description && (\n <Typography\n className=\"mb-4\"\n dangerouslySetInnerHTML={{ __html: sanitize(description) }}\n data-testid=\"description\"\n variant=\"body1\"\n />\n )}\n {showNeetoChatWidget && (\n <Typography className=\"mb-6\" data-testid=\"title\" variant=\"body1\">\n <Trans\n i18nKey=\"neetoMolecules.errorPage.contactUs\"\n components={{\n button: (\n <Button\n className=\"h-auto p-0 text-[inherit]\"\n variant=\"link\"\n onClick={openChatWidget}\n />\n ),\n }}\n />\n </Typography>\n )}\n <div className=\"flex flex-col items-start gap-3 [&_a]:no-underline\">\n {!hideBackToHomeButton && (\n <Button\n asChild\n size=\"lg\"\n variant=\"default\"\n {...backToHomeButtonProps}\n >\n <a href={homeUrl}>{t(\"neetoMolecules.errorPage.backToHome\")}</a>\n </Button>\n )}\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nErrorPage.propTypes = {\n /**\n * The URL to which the user will be taken to when user clicks on back to home button.\n */\n homeUrl: PropTypes.string,\n /**\n * The status code of the error.\n */\n status: PropTypes.oneOf([403, 404, 500]),\n /**\n * Decides whether 'contact us' link should be displayed or not.\n */\n showNeetoChatWidget: PropTypes.bool,\n /**\n * Description about the error.\n */\n description: PropTypes.string,\n /**\n * Decides whether 'back to home' button should be displayed or not.\n */\n hideBackToHomeButton: PropTypes.bool,\n /**\n * The title of the error page.\n */\n title: PropTypes.string,\n};\n\nexport default ErrorPage;\n"],"names":["ERRORS","Image","PageNotFoundImage","errorKey","titleKey","UnauthorizedImage","InternalServerErrorImage","sanitize","DOMPurify","ErrorPage","_ref","_ref$homeUrl","homeUrl","status","backToHomeButtonProps","children","_ref$showNeetoChatWid","showNeetoChatWidget","description","title","_ref$hideBackToHomeBu","hideBackToHomeButton","_useTranslation","useTranslation","t","_useErrorDisplayStore","useErrorDisplayStore","useShallow","store","statusCode","showErrorPage","storeStatusCode","_ref2","useEffect","pageLoader","document","getElementById","remove","onBackButtonPress","setState","window","addEventListener","removeEventListener","openChatWidget","_window$NeetoChat","_window$NeetoChat2","NeetoChat","contextualHelp","maximizeWidget","openWidget","_jsx","className","_jsxs","Helmet","Typography","variant","weight","Trans","i18nKey","dangerouslySetInnerHTML","__html","components","button","Button","onClick","_objectSpread","asChild","size","href"],"mappings":"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"}
1
+ {"version":3,"file":"ErrorPage.js","sources":["../../src/v2/components/ErrorPage/constants.js","../../src/v2/components/ErrorPage/index.jsx"],"sourcesContent":["import InternalServerErrorImage from \"assets/images/internal-server-error\";\nimport PageNotFoundImage from \"assets/images/page-not-found\";\nimport UnauthorizedImage from \"assets/images/unauthorized\";\n\nexport const ERRORS = {\n 404: {\n Image: PageNotFoundImage,\n errorKey: \"neetoMolecules.errorPage.cantBeFound\",\n titleKey: \"neetoMolecules.errorPage.title.cantBeFound\",\n },\n 403: {\n Image: UnauthorizedImage,\n errorKey: \"neetoMolecules.errorPage.unauthorized\",\n titleKey: \"neetoMolecules.errorPage.title.unauthorized\",\n },\n 500: {\n Image: InternalServerErrorImage,\n errorKey: \"neetoMolecules.errorPage.internalServerError\",\n titleKey: \"neetoMolecules.errorPage.title.internalServerError\",\n },\n};\n","import { useEffect } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport DOMPurify from \"dompurify\";\nimport { useErrorDisplayStore } from \"neetocommons/v2/react-utils/useDisplayErrorPage\";\nimport PropTypes from \"prop-types\";\nimport { Helmet } from \"react-helmet\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ERRORS } from \"./constants\";\n\nconst sanitize = DOMPurify.sanitize;\n\nconst ErrorPage = ({\n homeUrl = \"/\",\n status,\n backToHomeButtonProps,\n children,\n showNeetoChatWidget = true,\n description,\n title,\n hideBackToHomeButton = false,\n}) => {\n const { t } = useTranslation();\n const { statusCode: storeStatusCode, showErrorPage } =\n useErrorDisplayStore.pick();\n\n status = status || storeStatusCode;\n const { Image, errorKey, titleKey } = ERRORS[status] || ERRORS[404];\n\n useEffect(() => {\n const pageLoader = document.getElementById(\"neeto-page-loader\");\n if (pageLoader) pageLoader.remove();\n\n const onBackButtonPress = () => {\n if (!showErrorPage) return;\n useErrorDisplayStore.setState({ showErrorPage: false });\n };\n\n window.addEventListener(\"popstate\", onBackButtonPress);\n\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonPress);\n };\n }, []);\n\n const openChatWidget = () => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n };\n\n return (\n <div\n className=\"@container/error-page flex min-h-dvh w-full flex-col items-center justify-center\"\n data-testid=\"error-page-container\"\n >\n <div className=\"flex w-[768px] max-w-full flex-col gap-8 p-4 @[768px]/error-page:flex-row @[768px]/error-page:gap-12 @[768px]/error-page:p-6\">\n <Image\n className=\"dark:[&_path]:fill-foreground w-full max-w-[180px] shrink-0 @[768px]/error-page:max-w-[240px]\"\n data-testid=\"error-image\"\n />\n <div className=\"flex flex-col justify-center md:min-w-0 md:flex-grow\">\n <Helmet>\n <title>{t(titleKey)}</title>\n </Helmet>\n <Typography\n className=\"mb-4\"\n data-testid=\"title\"\n variant=\"h3\"\n weight=\"semibold\"\n >\n {title || <Trans i18nKey={errorKey} />}\n </Typography>\n {!!description && (\n <Typography\n className=\"mb-4\"\n dangerouslySetInnerHTML={{ __html: sanitize(description) }}\n data-testid=\"description\"\n variant=\"body1\"\n />\n )}\n {showNeetoChatWidget && (\n <Typography className=\"mb-6\" data-testid=\"title\" variant=\"body1\">\n <Trans\n i18nKey=\"neetoMolecules.errorPage.contactUs\"\n components={{\n button: (\n <Button\n className=\"h-auto p-0 text-[inherit]\"\n variant=\"link\"\n onClick={openChatWidget}\n />\n ),\n }}\n />\n </Typography>\n )}\n <div className=\"flex flex-col items-start gap-3 [&_a]:no-underline\">\n {!hideBackToHomeButton && (\n <Button\n asChild\n size=\"lg\"\n variant=\"default\"\n {...backToHomeButtonProps}\n >\n <a href={homeUrl}>{t(\"neetoMolecules.errorPage.backToHome\")}</a>\n </Button>\n )}\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nErrorPage.propTypes = {\n /**\n * The URL to which the user will be taken to when user clicks on back to home button.\n */\n homeUrl: PropTypes.string,\n /**\n * The status code of the error.\n */\n status: PropTypes.oneOf([403, 404, 500]),\n /**\n * Decides whether 'contact us' link should be displayed or not.\n */\n showNeetoChatWidget: PropTypes.bool,\n /**\n * Description about the error.\n */\n description: PropTypes.string,\n /**\n * Decides whether 'back to home' button should be displayed or not.\n */\n hideBackToHomeButton: PropTypes.bool,\n /**\n * The title of the error page.\n */\n title: PropTypes.string,\n};\n\nexport default ErrorPage;\n"],"names":["ERRORS","Image","PageNotFoundImage","errorKey","titleKey","UnauthorizedImage","InternalServerErrorImage","sanitize","DOMPurify","ErrorPage","_ref","_ref$homeUrl","homeUrl","status","backToHomeButtonProps","children","_ref$showNeetoChatWid","showNeetoChatWidget","description","title","_ref$hideBackToHomeBu","hideBackToHomeButton","_useTranslation","useTranslation","t","_useErrorDisplayStore","useErrorDisplayStore","useShallow","store","statusCode","showErrorPage","storeStatusCode","_ref2","useEffect","pageLoader","document","getElementById","remove","onBackButtonPress","setState","window","addEventListener","removeEventListener","openChatWidget","_window$NeetoChat","_window$NeetoChat2","NeetoChat","contextualHelp","maximizeWidget","openWidget","_jsx","className","_jsxs","Helmet","Typography","variant","weight","Trans","i18nKey","dangerouslySetInnerHTML","__html","components","button","Button","onClick","_objectSpread","asChild","size","href"],"mappings":"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"}