@projectcor/maia-components 2.41.0 → 2.41.1-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 (173) hide show
  1. package/CHANGELOG.md +840 -0
  2. package/lib/App.js +44 -19
  3. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
  4. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  5. package/lib/components/atoms/Chip/Chip.spec.js +82 -0
  6. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  7. package/lib/components/atoms/Fade/Fade.spec.js +31 -0
  8. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
  9. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
  10. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  11. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +300 -0
  12. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
  13. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
  14. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +10 -14
  15. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +1 -1
  16. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
  17. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +57 -37
  18. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +58 -0
  19. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +18 -12
  20. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +68 -0
  21. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
  22. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
  23. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  24. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
  25. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  26. package/lib/components/index.js +2 -1
  27. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
  28. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
  29. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +21 -6
  30. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +246 -0
  31. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  32. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +9 -3
  33. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
  34. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  35. package/lib/components/molecules/ChatAIMessages/newStyles.js +29 -26
  36. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +8 -1
  37. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +148 -0
  38. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +25 -8
  39. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +65 -61
  40. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
  41. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
  42. package/lib/components/molecules/ChatFooter/ChatFooter.js +5 -3
  43. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +112 -0
  44. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  45. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  46. package/lib/components/molecules/Sidebar/Sidebar.js +28 -23
  47. package/lib/components/molecules/Sidebar/Sidebar.spec.js +234 -0
  48. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
  49. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
  50. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +405 -0
  51. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  52. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +486 -0
  53. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +231 -0
  54. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  55. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
  56. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
  57. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
  58. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +250 -0
  59. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +224 -0
  60. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +144 -0
  61. package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
  62. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
  63. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  64. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  65. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  66. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  67. package/lib/constants/permissions/index.js +2 -2
  68. package/lib/constants/permissions/utils.js +4 -1
  69. package/lib/constants/permissions/utils.spec.js +34 -0
  70. package/lib/dev/DevMaiaPage.js +30 -0
  71. package/lib/dev/DevReasoningTimeline.js +11 -17
  72. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
  73. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
  74. package/lib/hooks/useCaretPosition.spec.js +58 -0
  75. package/lib/hooks/useChatManager/useChatManager.js +7 -7
  76. package/lib/hooks/useChatMessages/useChatMessages.spec.js +279 -0
  77. package/lib/hooks/useDebounce.spec.js +42 -0
  78. package/lib/hooks/useEvent.spec.js +40 -0
  79. package/lib/hooks/useFrequentlyUsedActions.js +31 -12
  80. package/lib/hooks/useIsMaiaPageRoute.js +26 -0
  81. package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
  82. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  83. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
  84. package/lib/hooks/useModal/useModal.spec.js +73 -0
  85. package/lib/hooks/useResize.spec.js +37 -0
  86. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  87. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  88. package/lib/hooks/useT.spec.js +20 -0
  89. package/lib/hooks/useToggle.spec.js +33 -0
  90. package/lib/index.js +5 -2
  91. package/lib/lang/br/index.js +26 -1
  92. package/lib/lang/en/index.js +26 -1
  93. package/lib/lang/es/index.js +26 -1
  94. package/lib/lang/fr/index.js +26 -1
  95. package/lib/lib/utils.js +9 -0
  96. package/lib/services/maia/Access/updateAccess.spec.js +108 -0
  97. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  98. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +69 -0
  99. package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
  100. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  101. package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
  102. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  103. package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
  104. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
  105. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  106. package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
  107. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  108. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  109. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  110. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  111. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  112. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  113. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  114. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  115. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  116. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  117. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  118. package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
  119. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  120. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
  121. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  122. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  123. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  124. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  125. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  126. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  127. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  128. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  129. package/lib/services/maia/client.spec.js +56 -0
  130. package/lib/services/utils/fetchCOR.spec.js +211 -0
  131. package/lib/services/utils/getCookie.spec.js +20 -0
  132. package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
  133. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  134. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  135. package/lib/store/sessions/sessionStreamManager.js +40 -52
  136. package/lib/store/sessions/sessions.types.spec.js +16 -0
  137. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  138. package/lib/store/useChatsStore.spec.js +619 -0
  139. package/lib/store/useFaqsStore.spec.js +57 -0
  140. package/lib/styles/cascade.js +29 -3
  141. package/lib/styles/transitions.js +3 -1
  142. package/lib/types/global.d.js +1 -1
  143. package/lib/utils/agentDisplayName.spec.js +44 -0
  144. package/lib/utils/autoApproveStorage.spec.js +25 -0
  145. package/lib/utils/chatInputFiles.spec.js +39 -0
  146. package/lib/utils/contextMentionLabel.spec.js +13 -0
  147. package/lib/utils/contextMentionTriggers.spec.js +38 -0
  148. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  149. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  150. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  151. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  152. package/lib/utils/formatUnreadCount.spec.js +12 -0
  153. package/lib/utils/getUnitFileSize.spec.js +18 -0
  154. package/lib/utils/hitlAnalytics.spec.js +100 -0
  155. package/lib/utils/hoursPlannerQuickActionType.js +74 -1
  156. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  157. package/lib/utils/maiaPageRoute.js +24 -0
  158. package/lib/utils/maiaPageRoute.spec.js +23 -0
  159. package/lib/utils/mapBackendLang.spec.js +19 -0
  160. package/lib/utils/navigateContextEntity.spec.js +50 -0
  161. package/lib/utils/normalizeAgentConnectors.spec.js +89 -0
  162. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  163. package/lib/utils/reasoningMappers.spec.js +103 -0
  164. package/lib/utils/retryCompletion.spec.js +99 -0
  165. package/lib/utils/skillContentSize.spec.js +13 -0
  166. package/lib/utils/slashCommandMarker.spec.js +43 -0
  167. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  168. package/lib/utils/sseStreamContent.spec.js +31 -0
  169. package/lib/utils/streamActivityMessages.js +32 -19
  170. package/lib/utils/streamActivityMessages.spec.js +131 -0
  171. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  172. package/package.json +1 -1
  173. package/README.md +0 -2
@@ -0,0 +1,279 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ import { act, renderHook, waitFor } from '@testing-library/react';
5
+ import maia from '../../services/maia';
6
+ import { useSessionsStore } from '../../store/sessions/useSessionsStore';
7
+ import { useChatMessages } from './useChatMessages';
8
+ jest.mock('../../services/maia', function () {
9
+ return {
10
+ __esModule: true,
11
+ "default": {
12
+ Chats: {
13
+ getChatMessages: jest.fn()
14
+ }
15
+ }
16
+ };
17
+ });
18
+ jest.mock('../useProjects', function () {
19
+ return {
20
+ useProjects: function useProjects() {
21
+ return {
22
+ fetchProjects: function () {
23
+ var _fetchProjects = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
24
+ return _regeneratorRuntime.wrap(function (_context) {
25
+ while (1) switch (_context.prev = _context.next) {
26
+ case 0:
27
+ return _context.abrupt("return", []);
28
+ case 1:
29
+ case "end":
30
+ return _context.stop();
31
+ }
32
+ }, _callee);
33
+ }));
34
+ function fetchProjects() {
35
+ return _fetchProjects.apply(this, arguments);
36
+ }
37
+ return fetchProjects;
38
+ }()
39
+ };
40
+ }
41
+ };
42
+ });
43
+ jest.mock('../../context/global-context', function () {
44
+ return {
45
+ useGlobalContext: function useGlobalContext() {
46
+ return {
47
+ selectAgent: jest.fn(),
48
+ setChipsProject: jest.fn(),
49
+ setProject: jest.fn(),
50
+ setClient: jest.fn(),
51
+ setTask: jest.fn()
52
+ };
53
+ }
54
+ };
55
+ });
56
+ jest.mock('../useT', function () {
57
+ return {
58
+ useT: function useT() {
59
+ return {
60
+ t: function t(key) {
61
+ return key;
62
+ },
63
+ i18n: {
64
+ language: 'es'
65
+ }
66
+ };
67
+ }
68
+ };
69
+ });
70
+ jest.mock('../../lang/utils', function () {
71
+ return {
72
+ mapCORLang: function mapCORLang(language) {
73
+ return language;
74
+ }
75
+ };
76
+ });
77
+ jest.mock('../../context/cor-user', function () {
78
+ return {
79
+ useUser: function useUser() {
80
+ return {};
81
+ }
82
+ };
83
+ });
84
+ jest.mock('../useTabTaskDefault', function () {
85
+ return {
86
+ useTabTaskDefault: function useTabTaskDefault() {
87
+ return {
88
+ getTabTaskDefault: jest.fn(),
89
+ refetchTabTaskDefault: jest.fn()
90
+ };
91
+ }
92
+ };
93
+ });
94
+ jest.mock('../../store/useChatsStore', function () {
95
+ return {
96
+ getChatsStoreState: function getChatsStoreState() {
97
+ return {
98
+ isChatViewVisible: false
99
+ };
100
+ }
101
+ };
102
+ });
103
+ var currentUser = {
104
+ id: 'user',
105
+ name: 'User'
106
+ };
107
+ var message = function message(id) {
108
+ return {
109
+ id: id,
110
+ message: id,
111
+ date: new Date(),
112
+ user: currentUser
113
+ };
114
+ };
115
+ var getChatMessages = maia.Chats.getChatMessages;
116
+ beforeEach(function () {
117
+ useSessionsStore.getState().resetAll();
118
+ getChatMessages.mockReset();
119
+ });
120
+ it('keeps question/answer pairs together across three oldest-first pages and caches that order', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
121
+ var pages, _renderHook, result, container, expected;
122
+ return _regeneratorRuntime.wrap(function (_context5) {
123
+ while (1) switch (_context5.prev = _context5.next) {
124
+ case 0:
125
+ pages = [[message('initial-question'), message('initial-answer')], [message('followup-question'), message('followup-answer')], [message('final-answer')]];
126
+ pages.forEach(function (items, index) {
127
+ return getChatMessages.mockResolvedValueOnce({
128
+ items: items,
129
+ nextItem: index < 2 ? (index + 1) * 20 : null
130
+ });
131
+ });
132
+ _renderHook = renderHook(function () {
133
+ return useChatMessages({
134
+ chatId: 'chat',
135
+ currentUser: currentUser
136
+ });
137
+ }), result = _renderHook.result;
138
+ _context5.next = 1;
139
+ return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
140
+ return _regeneratorRuntime.wrap(function (_context2) {
141
+ while (1) switch (_context2.prev = _context2.next) {
142
+ case 0:
143
+ _context2.next = 1;
144
+ return result.current.loadMessages();
145
+ case 1:
146
+ case "end":
147
+ return _context2.stop();
148
+ }
149
+ }, _callee2);
150
+ })));
151
+ case 1:
152
+ container = document.createElement('div');
153
+ container.scrollTop = 400;
154
+ _context5.next = 2;
155
+ return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
156
+ return _regeneratorRuntime.wrap(function (_context3) {
157
+ while (1) switch (_context3.prev = _context3.next) {
158
+ case 0:
159
+ _context3.next = 1;
160
+ return result.current.loadMoreMessages(container);
161
+ case 1:
162
+ case "end":
163
+ return _context3.stop();
164
+ }
165
+ }, _callee3);
166
+ })));
167
+ case 2:
168
+ _context5.next = 3;
169
+ return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
170
+ return _regeneratorRuntime.wrap(function (_context4) {
171
+ while (1) switch (_context4.prev = _context4.next) {
172
+ case 0:
173
+ _context4.next = 1;
174
+ return result.current.loadMoreMessages(container);
175
+ case 1:
176
+ case "end":
177
+ return _context4.stop();
178
+ }
179
+ }, _callee4);
180
+ })));
181
+ case 3:
182
+ expected = pages.flat().map(function (item) {
183
+ return item.id;
184
+ });
185
+ expect(result.current.messages.map(function (item) {
186
+ return item.id;
187
+ })).toEqual(expected);
188
+ expect(useSessionsStore.getState().getMessages('chat').map(function (item) {
189
+ return item.id;
190
+ })).toEqual(expected);
191
+ expect(getChatMessages.mock.calls.map(function (_ref5) {
192
+ var _ref6 = _slicedToArray(_ref5, 1),
193
+ params = _ref6[0];
194
+ return params.offset;
195
+ })).toEqual([0, 20, 40]);
196
+ expect(result.current.hasMoreMessages).toBe(false);
197
+ _context5.next = 4;
198
+ return waitFor(function () {
199
+ return expect(container.scrollTop).toBe(400);
200
+ });
201
+ case 4:
202
+ case "end":
203
+ return _context5.stop();
204
+ }
205
+ }, _callee5);
206
+ })));
207
+ it('loads newer pages at the bottom rather than at the top', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {
208
+ var _renderHook2, result, container;
209
+ return _regeneratorRuntime.wrap(function (_context8) {
210
+ while (1) switch (_context8.prev = _context8.next) {
211
+ case 0:
212
+ getChatMessages.mockResolvedValueOnce({
213
+ items: [message('first')],
214
+ nextItem: 20
215
+ });
216
+ getChatMessages.mockResolvedValueOnce({
217
+ items: [message('last')],
218
+ nextItem: null
219
+ });
220
+ _renderHook2 = renderHook(function () {
221
+ return useChatMessages({
222
+ chatId: 'chat',
223
+ currentUser: currentUser
224
+ });
225
+ }), result = _renderHook2.result;
226
+ _context8.next = 1;
227
+ return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
228
+ return _regeneratorRuntime.wrap(function (_context6) {
229
+ while (1) switch (_context6.prev = _context6.next) {
230
+ case 0:
231
+ _context6.next = 1;
232
+ return result.current.loadMessages();
233
+ case 1:
234
+ case "end":
235
+ return _context6.stop();
236
+ }
237
+ }, _callee6);
238
+ })));
239
+ case 1:
240
+ container = document.createElement('div');
241
+ Object.defineProperties(container, {
242
+ scrollHeight: {
243
+ value: 1000
244
+ },
245
+ clientHeight: {
246
+ value: 200
247
+ }
248
+ });
249
+ act(function () {
250
+ return result.current.handleScroll(container);
251
+ });
252
+ expect(getChatMessages).toHaveBeenCalledTimes(1);
253
+ container.scrollTop = 790;
254
+ _context8.next = 2;
255
+ return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {
256
+ return _regeneratorRuntime.wrap(function (_context7) {
257
+ while (1) switch (_context7.prev = _context7.next) {
258
+ case 0:
259
+ return _context7.abrupt("return", result.current.handleScroll(container));
260
+ case 1:
261
+ case "end":
262
+ return _context7.stop();
263
+ }
264
+ }, _callee7);
265
+ })));
266
+ case 2:
267
+ _context8.next = 3;
268
+ return waitFor(function () {
269
+ return expect(result.current.messages.map(function (item) {
270
+ return item.id;
271
+ })).toEqual(['first', 'last']);
272
+ });
273
+ case 3:
274
+ case "end":
275
+ return _context8.stop();
276
+ }
277
+ }, _callee8);
278
+ })));
279
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhY3QiLCJyZW5kZXJIb29rIiwid2FpdEZvciIsIm1haWEiLCJ1c2VTZXNzaW9uc1N0b3JlIiwidXNlQ2hhdE1lc3NhZ2VzIiwiamVzdCIsIm1vY2siLCJfX2VzTW9kdWxlIiwiQ2hhdHMiLCJnZXRDaGF0TWVzc2FnZXMiLCJmbiIsInVzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl9mZXRjaFByb2plY3RzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsInVzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldENoaXBzUHJvamVjdCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwidXNlVCIsInQiLCJrZXkiLCJpMThuIiwibGFuZ3VhZ2UiLCJtYXBDT1JMYW5nIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiZ2V0VGFiVGFza0RlZmF1bHQiLCJyZWZldGNoVGFiVGFza0RlZmF1bHQiLCJnZXRDaGF0c1N0b3JlU3RhdGUiLCJpc0NoYXRWaWV3VmlzaWJsZSIsImN1cnJlbnRVc2VyIiwiaWQiLCJuYW1lIiwibWVzc2FnZSIsImRhdGUiLCJEYXRlIiwidXNlciIsImJlZm9yZUVhY2giLCJnZXRTdGF0ZSIsInJlc2V0QWxsIiwibW9ja1Jlc2V0IiwiaXQiLCJfY2FsbGVlNSIsInBhZ2VzIiwiX3JlbmRlckhvb2siLCJyZXN1bHQiLCJjb250YWluZXIiLCJleHBlY3RlZCIsIl9jb250ZXh0NSIsImZvckVhY2giLCJpdGVtcyIsImluZGV4IiwibW9ja1Jlc29sdmVkVmFsdWVPbmNlIiwibmV4dEl0ZW0iLCJjaGF0SWQiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsImN1cnJlbnQiLCJsb2FkTWVzc2FnZXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzY3JvbGxUb3AiLCJfY2FsbGVlMyIsIl9jb250ZXh0MyIsImxvYWRNb3JlTWVzc2FnZXMiLCJfY2FsbGVlNCIsIl9jb250ZXh0NCIsImZsYXQiLCJtYXAiLCJpdGVtIiwiZXhwZWN0IiwibWVzc2FnZXMiLCJ0b0VxdWFsIiwiZ2V0TWVzc2FnZXMiLCJjYWxscyIsIl9yZWY1IiwiX3JlZjYiLCJfc2xpY2VkVG9BcnJheSIsInBhcmFtcyIsIm9mZnNldCIsImhhc01vcmVNZXNzYWdlcyIsInRvQmUiLCJfY2FsbGVlOCIsIl9yZW5kZXJIb29rMiIsIl9jb250ZXh0OCIsIl9jYWxsZWU2IiwiX2NvbnRleHQ2IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllcyIsInNjcm9sbEhlaWdodCIsInZhbHVlIiwiY2xpZW50SGVpZ2h0IiwiaGFuZGxlU2Nyb2xsIiwidG9IYXZlQmVlbkNhbGxlZFRpbWVzIiwiX2NhbGxlZTciLCJfY29udGV4dDciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlQ2hhdE1lc3NhZ2VzL3VzZUNoYXRNZXNzYWdlcy5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFjdCwgcmVuZGVySG9vaywgd2FpdEZvciB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnXG5pbXBvcnQgbWFpYSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhJ1xuaW1wb3J0IHsgdXNlU2Vzc2lvbnNTdG9yZSB9IGZyb20gJy4uLy4uL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25zU3RvcmUnXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyB1c2VDaGF0TWVzc2FnZXMgfSBmcm9tICcuL3VzZUNoYXRNZXNzYWdlcydcblxuamVzdC5tb2NrKCcuLi8uLi9zZXJ2aWNlcy9tYWlhJywgKCkgPT4gKHsgX19lc01vZHVsZTogdHJ1ZSwgZGVmYXVsdDogeyBDaGF0czogeyBnZXRDaGF0TWVzc2FnZXM6IGplc3QuZm4oKSB9IH0gfSkpXG5qZXN0Lm1vY2soJy4uL3VzZVByb2plY3RzJywgKCkgPT4gKHsgdXNlUHJvamVjdHM6ICgpID0+ICh7IGZldGNoUHJvamVjdHM6IGFzeW5jICgpID0+IFtdIH0pIH0pKVxuamVzdC5tb2NrKCcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0JywgKCkgPT4gKHtcbiAgdXNlR2xvYmFsQ29udGV4dDogKCkgPT4gKHtcbiAgICBzZWxlY3RBZ2VudDogamVzdC5mbigpLFxuICAgIHNldENoaXBzUHJvamVjdDogamVzdC5mbigpLFxuICAgIHNldFByb2plY3Q6IGplc3QuZm4oKSxcbiAgICBzZXRDbGllbnQ6IGplc3QuZm4oKSxcbiAgICBzZXRUYXNrOiBqZXN0LmZuKCksXG4gIH0pLFxufSkpXG5qZXN0Lm1vY2soJy4uL3VzZVQnLCAoKSA9PiAoeyB1c2VUOiAoKSA9PiAoeyB0OiAoa2V5OiBzdHJpbmcpID0+IGtleSwgaTE4bjogeyBsYW5ndWFnZTogJ2VzJyB9IH0pIH0pKVxuamVzdC5tb2NrKCcuLi8uLi9sYW5nL3V0aWxzJywgKCkgPT4gKHsgbWFwQ09STGFuZzogKGxhbmd1YWdlOiBzdHJpbmcpID0+IGxhbmd1YWdlIH0pKVxuamVzdC5tb2NrKCcuLi8uLi9jb250ZXh0L2Nvci11c2VyJywgKCkgPT4gKHsgdXNlVXNlcjogKCkgPT4gKHt9KSB9KSlcbmplc3QubW9jaygnLi4vdXNlVGFiVGFza0RlZmF1bHQnLCAoKSA9PiAoe1xuICB1c2VUYWJUYXNrRGVmYXVsdDogKCkgPT4gKHsgZ2V0VGFiVGFza0RlZmF1bHQ6IGplc3QuZm4oKSwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0OiBqZXN0LmZuKCkgfSksXG59KSlcbmplc3QubW9jaygnLi4vLi4vc3RvcmUvdXNlQ2hhdHNTdG9yZScsICgpID0+ICh7IGdldENoYXRzU3RvcmVTdGF0ZTogKCkgPT4gKHsgaXNDaGF0Vmlld1Zpc2libGU6IGZhbHNlIH0pIH0pKVxuXG5jb25zdCBjdXJyZW50VXNlciA9IHsgaWQ6ICd1c2VyJywgbmFtZTogJ1VzZXInIH1cbmNvbnN0IG1lc3NhZ2UgPSAoaWQ6IHN0cmluZyk6IENoYXRNZXNzYWdlID0+ICh7IGlkLCBtZXNzYWdlOiBpZCwgZGF0ZTogbmV3IERhdGUoKSwgdXNlcjogY3VycmVudFVzZXIgfSlcbmNvbnN0IGdldENoYXRNZXNzYWdlcyA9IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzIGFzIGplc3QuTW9ja1xuXG5iZWZvcmVFYWNoKCgpID0+IHtcbiAgdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLnJlc2V0QWxsKClcbiAgZ2V0Q2hhdE1lc3NhZ2VzLm1vY2tSZXNldCgpXG59KVxuXG5pdCgna2VlcHMgcXVlc3Rpb24vYW5zd2VyIHBhaXJzIHRvZ2V0aGVyIGFjcm9zcyB0aHJlZSBvbGRlc3QtZmlyc3QgcGFnZXMgYW5kIGNhY2hlcyB0aGF0IG9yZGVyJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBwYWdlcyA9IFtcbiAgICBbbWVzc2FnZSgnaW5pdGlhbC1xdWVzdGlvbicpLCBtZXNzYWdlKCdpbml0aWFsLWFuc3dlcicpXSxcbiAgICBbbWVzc2FnZSgnZm9sbG93dXAtcXVlc3Rpb24nKSwgbWVzc2FnZSgnZm9sbG93dXAtYW5zd2VyJyldLFxuICAgIFttZXNzYWdlKCdmaW5hbC1hbnN3ZXInKV0sXG4gIF1cbiAgcGFnZXMuZm9yRWFjaCgoaXRlbXMsIGluZGV4KSA9PlxuICAgIGdldENoYXRNZXNzYWdlcy5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2Uoe1xuICAgICAgaXRlbXMsXG4gICAgICBuZXh0SXRlbTogaW5kZXggPCAyID8gKGluZGV4ICsgMSkgKiAyMCA6IG51bGwsXG4gICAgfSlcbiAgKVxuICBjb25zdCB7IHJlc3VsdCB9ID0gcmVuZGVySG9vaygoKSA9PiB1c2VDaGF0TWVzc2FnZXMoeyBjaGF0SWQ6ICdjaGF0JywgY3VycmVudFVzZXIgfSkpXG4gIGF3YWl0IGFjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVzdWx0LmN1cnJlbnQubG9hZE1lc3NhZ2VzKClcbiAgfSlcblxuICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBjb250YWluZXIuc2Nyb2xsVG9wID0gNDAwXG4gIGF3YWl0IGFjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVzdWx0LmN1cnJlbnQubG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gIH0pXG4gIGF3YWl0IGFjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVzdWx0LmN1cnJlbnQubG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gIH0pXG5cbiAgY29uc3QgZXhwZWN0ZWQgPSBwYWdlcy5mbGF0KCkubWFwKGl0ZW0gPT4gaXRlbS5pZClcbiAgZXhwZWN0KHJlc3VsdC5jdXJyZW50Lm1lc3NhZ2VzLm1hcChpdGVtID0+IGl0ZW0uaWQpKS50b0VxdWFsKGV4cGVjdGVkKVxuICBleHBlY3QoXG4gICAgdXNlU2Vzc2lvbnNTdG9yZVxuICAgICAgLmdldFN0YXRlKClcbiAgICAgIC5nZXRNZXNzYWdlcygnY2hhdCcpXG4gICAgICAubWFwKGl0ZW0gPT4gaXRlbS5pZClcbiAgKS50b0VxdWFsKGV4cGVjdGVkKVxuICBleHBlY3QoZ2V0Q2hhdE1lc3NhZ2VzLm1vY2suY2FsbHMubWFwKChbcGFyYW1zXSkgPT4gcGFyYW1zLm9mZnNldCkpLnRvRXF1YWwoWzAsIDIwLCA0MF0pXG4gIGV4cGVjdChyZXN1bHQuY3VycmVudC5oYXNNb3JlTWVzc2FnZXMpLnRvQmUoZmFsc2UpXG4gIGF3YWl0IHdhaXRGb3IoKCkgPT4gZXhwZWN0KGNvbnRhaW5lci5zY3JvbGxUb3ApLnRvQmUoNDAwKSlcbn0pXG5cbml0KCdsb2FkcyBuZXdlciBwYWdlcyBhdCB0aGUgYm90dG9tIHJhdGhlciB0aGFuIGF0IHRoZSB0b3AnLCBhc3luYyAoKSA9PiB7XG4gIGdldENoYXRNZXNzYWdlcy5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2UoeyBpdGVtczogW21lc3NhZ2UoJ2ZpcnN0JyldLCBuZXh0SXRlbTogMjAgfSlcbiAgZ2V0Q2hhdE1lc3NhZ2VzLm1vY2tSZXNvbHZlZFZhbHVlT25jZSh7IGl0ZW1zOiBbbWVzc2FnZSgnbGFzdCcpXSwgbmV4dEl0ZW06IG51bGwgfSlcbiAgY29uc3QgeyByZXN1bHQgfSA9IHJlbmRlckhvb2soKCkgPT4gdXNlQ2hhdE1lc3NhZ2VzKHsgY2hhdElkOiAnY2hhdCcsIGN1cnJlbnRVc2VyIH0pKVxuICBhd2FpdCBhY3QoYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHJlc3VsdC5jdXJyZW50LmxvYWRNZXNzYWdlcygpXG4gIH0pXG4gIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnRhaW5lciwgeyBzY3JvbGxIZWlnaHQ6IHsgdmFsdWU6IDEwMDAgfSwgY2xpZW50SGVpZ2h0OiB7IHZhbHVlOiAyMDAgfSB9KVxuXG4gIGFjdCgoKSA9PiByZXN1bHQuY3VycmVudC5oYW5kbGVTY3JvbGwoY29udGFpbmVyKSlcbiAgZXhwZWN0KGdldENoYXRNZXNzYWdlcykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpXG4gIGNvbnRhaW5lci5zY3JvbGxUb3AgPSA3OTBcbiAgYXdhaXQgYWN0KGFzeW5jICgpID0+IHJlc3VsdC5jdXJyZW50LmhhbmRsZVNjcm9sbChjb250YWluZXIpKVxuICBhd2FpdCB3YWl0Rm9yKCgpID0+IGV4cGVjdChyZXN1bHQuY3VycmVudC5tZXNzYWdlcy5tYXAoaXRlbSA9PiBpdGVtLmlkKSkudG9FcXVhbChbJ2ZpcnN0JywgJ2xhc3QnXSkpXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxHQUFHLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUNqRSxPQUFPQyxJQUFJLE1BQU0scUJBQXFCO0FBQ3RDLFNBQVNDLGdCQUFnQixRQUFRLHVDQUF1QztBQUV4RSxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBRW5EQyxJQUFJLENBQUNDLElBQUksQ0FBQyxx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
@@ -0,0 +1,42 @@
1
+ import { act, renderHook } from '@testing-library/react';
2
+ import { useDebounce } from './useDebounce';
3
+ describe('useDebounce', function () {
4
+ beforeEach(function () {
5
+ jest.useFakeTimers();
6
+ });
7
+ afterEach(function () {
8
+ jest.useRealTimers();
9
+ });
10
+ it('returns the initial value immediately', function () {
11
+ var _renderHook = renderHook(function () {
12
+ return useDebounce('hola', 300);
13
+ }),
14
+ result = _renderHook.result;
15
+ expect(result.current).toBe('hola');
16
+ });
17
+ it('updates the value only after the delay', function () {
18
+ var _renderHook2 = renderHook(function (_ref) {
19
+ var value = _ref.value;
20
+ return useDebounce(value, 300);
21
+ }, {
22
+ initialProps: {
23
+ value: 'hola'
24
+ }
25
+ }),
26
+ result = _renderHook2.result,
27
+ rerender = _renderHook2.rerender;
28
+ rerender({
29
+ value: 'chau'
30
+ });
31
+ expect(result.current).toBe('hola');
32
+ act(function () {
33
+ jest.advanceTimersByTime(299);
34
+ });
35
+ expect(result.current).toBe('hola');
36
+ act(function () {
37
+ jest.advanceTimersByTime(1);
38
+ });
39
+ expect(result.current).toBe('chau');
40
+ });
41
+ });
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhY3QiLCJyZW5kZXJIb29rIiwidXNlRGVib3VuY2UiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJqZXN0IiwidXNlRmFrZVRpbWVycyIsImFmdGVyRWFjaCIsInVzZVJlYWxUaW1lcnMiLCJpdCIsIl9yZW5kZXJIb29rIiwicmVzdWx0IiwiZXhwZWN0IiwiY3VycmVudCIsInRvQmUiLCJfcmVuZGVySG9vazIiLCJfcmVmIiwidmFsdWUiLCJpbml0aWFsUHJvcHMiLCJyZXJlbmRlciIsImFkdmFuY2VUaW1lcnNCeVRpbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRGVib3VuY2Uuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhY3QsIHJlbmRlckhvb2sgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0J1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuXG5kZXNjcmliZSgndXNlRGVib3VuY2UnLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QudXNlRmFrZVRpbWVycygpXG4gIH0pXG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBqZXN0LnVzZVJlYWxUaW1lcnMoKVxuICB9KVxuXG4gIGl0KCdyZXR1cm5zIHRoZSBpbml0aWFsIHZhbHVlIGltbWVkaWF0ZWx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSByZW5kZXJIb29rKCgpID0+IHVzZURlYm91bmNlKCdob2xhJywgMzAwKSlcbiAgICBleHBlY3QocmVzdWx0LmN1cnJlbnQpLnRvQmUoJ2hvbGEnKVxuICB9KVxuXG4gIGl0KCd1cGRhdGVzIHRoZSB2YWx1ZSBvbmx5IGFmdGVyIHRoZSBkZWxheScsICgpID0+IHtcbiAgICBjb25zdCB7IHJlc3VsdCwgcmVyZW5kZXIgfSA9IHJlbmRlckhvb2soKHsgdmFsdWUgfSkgPT4gdXNlRGVib3VuY2UodmFsdWUsIDMwMCksIHtcbiAgICAgIGluaXRpYWxQcm9wczogeyB2YWx1ZTogJ2hvbGEnIH0sXG4gICAgfSlcblxuICAgIHJlcmVuZGVyKHsgdmFsdWU6ICdjaGF1JyB9KVxuICAgIGV4cGVjdChyZXN1bHQuY3VycmVudCkudG9CZSgnaG9sYScpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgamVzdC5hZHZhbmNlVGltZXJzQnlUaW1lKDI5OSlcbiAgICB9KVxuICAgIGV4cGVjdChyZXN1bHQuY3VycmVudCkudG9CZSgnaG9sYScpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgamVzdC5hZHZhbmNlVGltZXJzQnlUaW1lKDEpXG4gICAgfSlcbiAgICBleHBlY3QocmVzdWx0LmN1cnJlbnQpLnRvQmUoJ2NoYXUnKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsR0FBRyxFQUFFQyxVQUFVLFFBQVEsd0JBQXdCO0FBQ3hELFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBRTNDQyxRQUFRLENBQUMsYUFBYSxFQUFFLFlBQU07RUFDNUJDLFVBQVUsQ0FBQyxZQUFNO0lBQ2ZDLElBQUksQ0FBQ0MsYUFBYSxDQUFDLENBQUM7RUFDdEIsQ0FBQyxDQUFDO0VBRUZDLFNBQVMsQ0FBQyxZQUFNO0lBQ2RGLElBQUksQ0FBQ0csYUFBYSxDQUFDLENBQUM7RUFDdEIsQ0FBQyxDQUFDO0VBRUZDLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxZQUFNO0lBQ2hELElBQUFDLFdBQUEsR0FBbUJULFVBQVUsQ0FBQztRQUFBLE9BQU1DLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO01BQUEsRUFBQztNQUFyRFMsTUFBTSxHQUFBRCxXQUFBLENBQU5DLE1BQU07SUFDZEMsTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0VBQ3JDLENBQUMsQ0FBQztFQUVGTCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsWUFBTTtJQUNqRCxJQUFBTSxZQUFBLEdBQTZCZCxVQUFVLENBQUMsVUFBQWUsSUFBQTtRQUFBLElBQUdDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO1FBQUEsT0FBT2YsV0FBVyxDQUFDZSxLQUFLLEVBQUUsR0FBRyxDQUFDO01BQUEsR0FBRTtRQUM5RUMsWUFBWSxFQUFFO1VBQUVELEtBQUssRUFBRTtRQUFPO01BQ2hDLENBQUMsQ0FBQztNQUZNTixNQUFNLEdBQUFJLFlBQUEsQ0FBTkosTUFBTTtNQUFFUSxRQUFRLEdBQUFKLFlBQUEsQ0FBUkksUUFBUTtJQUl4QkEsUUFBUSxDQUFDO01BQUVGLEtBQUssRUFBRTtJQUFPLENBQUMsQ0FBQztJQUMzQkwsTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBRW5DZCxHQUFHLENBQUMsWUFBTTtNQUNSSyxJQUFJLENBQUNlLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztJQUMvQixDQUFDLENBQUM7SUFDRlIsTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBRW5DZCxHQUFHLENBQUMsWUFBTTtNQUNSSyxJQUFJLENBQUNlLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFDRlIsTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0VBQ3JDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,40 @@
1
+ import { renderHook } from '@testing-library/react';
2
+ import dispatchAmplitude from '@projectcor/cor-commons/lib/utils/dispatchAmplitude';
3
+ import { EVENTS, useEvent } from './useEvent';
4
+ jest.mock('@projectcor/cor-commons/lib/utils/dispatchAmplitude', function () {
5
+ return jest.fn();
6
+ }, {
7
+ virtual: true
8
+ });
9
+ jest.mock('../context/cor-user', function () {
10
+ return {
11
+ useUser: function useUser() {
12
+ return {
13
+ company_id: 10,
14
+ id: 99
15
+ };
16
+ }
17
+ };
18
+ });
19
+ describe('useEvent', function () {
20
+ it('dispatches Amplitude with company and user ids', function () {
21
+ var _renderHook = renderHook(function () {
22
+ return useEvent();
23
+ }),
24
+ result = _renderHook.result;
25
+ result.current('AI_CHAT_SEND', {
26
+ extra: true
27
+ });
28
+ expect(dispatchAmplitude).toHaveBeenCalledWith('AI_CHAT_SEND', 10, {
29
+ companyId: 10,
30
+ userId: 99,
31
+ extra: true
32
+ });
33
+ });
34
+ it('exposes skill analytics event names', function () {
35
+ expect(EVENTS.aiSidebarMySkills).toBe('AI_SIDEBAR_MY_SKILLS');
36
+ expect(EVENTS.aiChatSkillSelect).toBe('AI_CHAT_SKILL_SELECT');
37
+ expect(EVENTS.aiChatSkillUse).toBe('AI_CHAT_SKILL_USE');
38
+ });
39
+ });
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJIb29rIiwiZGlzcGF0Y2hBbXBsaXR1ZGUiLCJFVkVOVFMiLCJ1c2VFdmVudCIsImplc3QiLCJtb2NrIiwiZm4iLCJ2aXJ0dWFsIiwidXNlVXNlciIsImNvbXBhbnlfaWQiLCJpZCIsImRlc2NyaWJlIiwiaXQiLCJfcmVuZGVySG9vayIsInJlc3VsdCIsImN1cnJlbnQiLCJleHRyYSIsImV4cGVjdCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiY29tcGFueUlkIiwidXNlcklkIiwiYWlTaWRlYmFyTXlTa2lsbHMiLCJ0b0JlIiwiYWlDaGF0U2tpbGxTZWxlY3QiLCJhaUNoYXRTa2lsbFVzZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VFdmVudC5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlckhvb2sgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0J1xuaW1wb3J0IGRpc3BhdGNoQW1wbGl0dWRlIGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi91dGlscy9kaXNwYXRjaEFtcGxpdHVkZSdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuL3VzZUV2ZW50J1xuXG5qZXN0Lm1vY2soJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi91dGlscy9kaXNwYXRjaEFtcGxpdHVkZScsICgpID0+IGplc3QuZm4oKSwgeyB2aXJ0dWFsOiB0cnVlIH0pXG5qZXN0Lm1vY2soJy4uL2NvbnRleHQvY29yLXVzZXInLCAoKSA9PiAoe1xuICB1c2VVc2VyOiAoKSA9PiAoeyBjb21wYW55X2lkOiAxMCwgaWQ6IDk5IH0pLFxufSkpXG5cbmRlc2NyaWJlKCd1c2VFdmVudCcsICgpID0+IHtcbiAgaXQoJ2Rpc3BhdGNoZXMgQW1wbGl0dWRlIHdpdGggY29tcGFueSBhbmQgdXNlciBpZHMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyByZXN1bHQgfSA9IHJlbmRlckhvb2soKCkgPT4gdXNlRXZlbnQoKSlcblxuICAgIHJlc3VsdC5jdXJyZW50KCdBSV9DSEFUX1NFTkQnLCB7IGV4dHJhOiB0cnVlIH0pXG5cbiAgICBleHBlY3QoZGlzcGF0Y2hBbXBsaXR1ZGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdBSV9DSEFUX1NFTkQnLCAxMCwge1xuICAgICAgY29tcGFueUlkOiAxMCxcbiAgICAgIHVzZXJJZDogOTksXG4gICAgICBleHRyYTogdHJ1ZSxcbiAgICB9KVxuICB9KVxuXG4gIGl0KCdleHBvc2VzIHNraWxsIGFuYWx5dGljcyBldmVudCBuYW1lcycsICgpID0+IHtcbiAgICBleHBlY3QoRVZFTlRTLmFpU2lkZWJhck15U2tpbGxzKS50b0JlKCdBSV9TSURFQkFSX01ZX1NLSUxMUycpXG4gICAgZXhwZWN0KEVWRU5UUy5haUNoYXRTa2lsbFNlbGVjdCkudG9CZSgnQUlfQ0hBVF9TS0lMTF9TRUxFQ1QnKVxuICAgIGV4cGVjdChFVkVOVFMuYWlDaGF0U2tpbGxVc2UpLnRvQmUoJ0FJX0NIQVRfU0tJTExfVVNFJylcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsT0FBT0MsaUJBQWlCLE1BQU0scURBQXFEO0FBQ25GLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFlBQVk7QUFFN0NDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLHFEQUFxRCxFQUFFO0VBQUEsT0FBTUQsSUFBSSxDQUFDRSxFQUFFLENBQUMsQ0FBQztBQUFBLEdBQUU7RUFBRUMsT0FBTyxFQUFFO0FBQUssQ0FBQyxDQUFDO0FBQ3BHSCxJQUFJLENBQUNDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtFQUFBLE9BQU87SUFDdENHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUztRQUFFQyxVQUFVLEVBQUUsRUFBRTtRQUFFQyxFQUFFLEVBQUU7TUFBRyxDQUFDO0lBQUE7RUFDNUMsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVIQyxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQU07RUFDekJDLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxZQUFNO0lBQ3pELElBQUFDLFdBQUEsR0FBbUJiLFVBQVUsQ0FBQztRQUFBLE9BQU1HLFFBQVEsQ0FBQyxDQUFDO01BQUEsRUFBQztNQUF2Q1csTUFBTSxHQUFBRCxXQUFBLENBQU5DLE1BQU07SUFFZEEsTUFBTSxDQUFDQyxPQUFPLENBQUMsY0FBYyxFQUFFO01BQUVDLEtBQUssRUFBRTtJQUFLLENBQUMsQ0FBQztJQUUvQ0MsTUFBTSxDQUFDaEIsaUJBQWlCLENBQUMsQ0FBQ2lCLG9CQUFvQixDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUU7TUFDakVDLFNBQVMsRUFBRSxFQUFFO01BQ2JDLE1BQU0sRUFBRSxFQUFFO01BQ1ZKLEtBQUssRUFBRTtJQUNULENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGSixFQUFFLENBQUMscUNBQXFDLEVBQUUsWUFBTTtJQUM5Q0ssTUFBTSxDQUFDZixNQUFNLENBQUNtQixpQkFBaUIsQ0FBQyxDQUFDQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDN0RMLE1BQU0sQ0FBQ2YsTUFBTSxDQUFDcUIsaUJBQWlCLENBQUMsQ0FBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQzdETCxNQUFNLENBQUNmLE1BQU0sQ0FBQ3NCLGNBQWMsQ0FBQyxDQUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUM7RUFDekQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,12 +1,13 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _regeneratorRuntime from "@babel/runtime/regenerator";
4
- import { useCallback, useEffect, useMemo, useState } from 'react';
4
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
5
  import { getFrequentlyUsedActions } from '../services/maia/Actions/getFrequentlyUsedActions';
6
6
  import { useT } from './useT';
7
7
  import { mapBackendLang } from '../utils/mapBackendLang';
8
8
  export var mapMaiaSectionToFuasApiSection = function mapMaiaSectionToFuasApiSection(section) {
9
9
  if (section === 'home_with_hours') return 'home_with_hours';
10
+ if (section === 'home_collaborator') return 'home_collaborator';
10
11
  if (section === 'task') return 'tasks';
11
12
  if (section === 'planner') return 'planner';
12
13
  return 'home';
@@ -18,6 +19,7 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
18
19
  var apiSection = useMemo(function () {
19
20
  return mapMaiaSectionToFuasApiSection(maiaSection !== null && maiaSection !== void 0 ? maiaSection : 'header');
20
21
  }, [maiaSection]);
22
+ var requestIdRef = useRef(0);
21
23
  var _useState = useState([]),
22
24
  _useState2 = _slicedToArray(_useState, 2),
23
25
  actions = _useState2[0],
@@ -32,10 +34,11 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
32
34
  setError = _useState6[1];
33
35
  var handleGetFrequentlyUsedActions = useCallback(/*#__PURE__*/function () {
34
36
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(aid) {
35
- var response, message, _t;
37
+ var requestId, response, message, _t;
36
38
  return _regeneratorRuntime.wrap(function (_context) {
37
39
  while (1) switch (_context.prev = _context.next) {
38
40
  case 0:
41
+ requestId = ++requestIdRef.current;
39
42
  setLoading(true);
40
43
  setError(null);
41
44
  _context.prev = 1;
@@ -54,24 +57,36 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
54
57
  }
55
58
  throw new Error('Invalid response format from server');
56
59
  case 3:
60
+ if (!(requestId !== requestIdRef.current)) {
61
+ _context.next = 4;
62
+ break;
63
+ }
64
+ return _context.abrupt("return");
65
+ case 4:
57
66
  setActions(response.data);
58
- _context.next = 5;
67
+ _context.next = 7;
59
68
  break;
60
- case 4:
61
- _context.prev = 4;
69
+ case 5:
70
+ _context.prev = 5;
62
71
  _t = _context["catch"](1);
72
+ if (!(requestId !== requestIdRef.current)) {
73
+ _context.next = 6;
74
+ break;
75
+ }
76
+ return _context.abrupt("return");
77
+ case 6:
63
78
  message = _t instanceof Error ? _t.message : 'An unknown error occurred';
64
79
  setError(message);
65
80
  console.error('Error fetching frequently used actions:', _t);
66
- case 5:
67
- _context.prev = 5;
68
- setLoading(false);
69
- return _context.finish(5);
70
- case 6:
81
+ case 7:
82
+ _context.prev = 7;
83
+ if (requestId === requestIdRef.current) setLoading(false);
84
+ return _context.finish(7);
85
+ case 8:
71
86
  case "end":
72
87
  return _context.stop();
73
88
  }
74
- }, _callee, null, [[1, 4, 5, 6]]);
89
+ }, _callee, null, [[1, 5, 7, 8]]);
75
90
  }));
76
91
  return function (_x) {
77
92
  return _ref.apply(this, arguments);
@@ -79,10 +94,14 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
79
94
  }(), [lang, apiSection, entityType]);
80
95
  useEffect(function () {
81
96
  setActions([]);
97
+ setLoading(false);
82
98
  setError(null);
83
99
  if (agentId) {
84
100
  handleGetFrequentlyUsedActions(agentId);
85
101
  }
102
+ return function () {
103
+ requestIdRef.current += 1;
104
+ };
86
105
  }, [agentId, handleGetFrequentlyUsedActions]);
87
106
  return {
88
107
  actions: actions,
@@ -91,4 +110,4 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
91
110
  handleGetFrequentlyUsedActions: handleGetFrequentlyUsedActions
92
111
  };
93
112
  };
94
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZVQiLCJtYXBCYWNrZW5kTGFuZyIsIm1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbiIsInNlY3Rpb24iLCJ1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJhZ2VudElkIiwibWFpYVNlY3Rpb24iLCJlbnRpdHlUeXBlIiwiX3VzZVQiLCJpMThuIiwibGFuZyIsImxhbmd1YWdlIiwiYXBpU2VjdGlvbiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbnMiLCJzZXRBY3Rpb25zIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZXJyb3IiLCJzZXRFcnJvciIsImhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFpZCIsInJlc3BvbnNlIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzZW50IiwiQXJyYXkiLCJpc0FycmF5IiwiZGF0YSIsIkVycm9yIiwiY29uc29sZSIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQge1xuICBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMsXG4gIHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zQXBpU2VjdGlvbixcbn0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB0eXBlIHsgU2VjdGlvbiB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi91c2VUJ1xuaW1wb3J0IHsgbWFwQmFja2VuZExhbmcgfSBmcm9tICcuLi91dGlscy9tYXBCYWNrZW5kTGFuZydcblxuZXhwb3J0IHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zTWFpYVNlY3Rpb24gPSBTZWN0aW9uIHwgJ2hvbWVfd2l0aF9ob3VycydcblxuZXhwb3J0IGNvbnN0IG1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbiA9IChcbiAgc2VjdGlvbjogRnJlcXVlbnRseVVzZWRBY3Rpb25zTWFpYVNlY3Rpb25cbik6IEZyZXF1ZW50bHlVc2VkQWN0aW9uc0FwaVNlY3Rpb24gPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ2hvbWVfd2l0aF9ob3VycycpIHJldHVybiAnaG9tZV93aXRoX2hvdXJzJ1xuICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSByZXR1cm4gJ3Rhc2tzJ1xuICBpZiAoc2VjdGlvbiA9PT0gJ3BsYW5uZXInKSByZXR1cm4gJ3BsYW5uZXInXG4gIHJldHVybiAnaG9tZSdcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyA9IChcbiAgYWdlbnRJZD86IHN0cmluZyxcbiAgbWFpYVNlY3Rpb24/OiBGcmVxdWVudGx5VXNlZEFjdGlvbnNNYWlhU2VjdGlvbixcbiAgZW50aXR5VHlwZT86IHN0cmluZ1xuKSA9PiB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IGxhbmcgPSBtYXBCYWNrZW5kTGFuZyhpMThuLmxhbmd1YWdlKVxuICBjb25zdCBhcGlTZWN0aW9uID0gdXNlTWVtbygoKSA9PiBtYXBNYWlhU2VjdGlvblRvRnVhc0FwaVNlY3Rpb24obWFpYVNlY3Rpb24gPz8gJ2hlYWRlcicpLCBbbWFpYVNlY3Rpb25dKVxuICBjb25zdCBbYWN0aW9ucywgc2V0QWN0aW9uc10gPSB1c2VTdGF0ZTxBY3Rpb25bXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGFpZDogc3RyaW5nKSA9PiB7XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMoeyBhZ2VudElkOiBhaWQsIGxhbmcsIHNlY3Rpb246IGFwaVNlY3Rpb24sIGVudGl0eVR5cGUgfSlcbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByZXNwb25zZSBmb3JtYXQgZnJvbSBzZXJ2ZXInKVxuICAgICAgICB9XG4gICAgICAgIHNldEFjdGlvbnMocmVzcG9uc2UuZGF0YSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJ1xuICAgICAgICBzZXRFcnJvcihtZXNzYWdlKVxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBmcmVxdWVudGx5IHVzZWQgYWN0aW9uczonLCBlcnIpXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xhbmcsIGFwaVNlY3Rpb24sIGVudGl0eVR5cGVdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEFjdGlvbnMoW10pXG4gICAgc2V0RXJyb3IobnVsbClcbiAgICBpZiAoYWdlbnRJZCkge1xuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zKGFnZW50SWQpXG4gICAgfVxuICB9LCBbYWdlbnRJZCwgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zXSlcblxuICByZXR1cm4ge1xuICAgIGFjdGlvbnMsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBoYW5kbGVHZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFFakUsU0FDRUMsd0JBQXdCLFFBRW5CLG1EQUFtRDtBQUUxRCxTQUFTQyxJQUFJLFFBQVEsUUFBUTtBQUM3QixTQUFTQyxjQUFjLFFBQVEseUJBQXlCO0FBSXhELE9BQU8sSUFBTUMsOEJBQThCLEdBQUcsU0FBakNBLDhCQUE4QkEsQ0FDekNDLE9BQXlDLEVBQ0w7RUFDcEMsSUFBSUEsT0FBTyxLQUFLLGlCQUFpQixFQUFFLE9BQU8saUJBQWlCO0VBQzNELElBQUlBLE9BQU8sS0FBSyxNQUFNLEVBQUUsT0FBTyxPQUFPO0VBQ3RDLElBQUlBLE9BQU8sS0FBSyxTQUFTLEVBQUUsT0FBTyxTQUFTO0VBQzNDLE9BQU8sTUFBTTtBQUNmLENBQUM7QUFFRCxPQUFPLElBQU1DLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQ25DQyxPQUFnQixFQUNoQkMsV0FBOEMsRUFDOUNDLFVBQW1CLEVBQ2hCO0VBQ0gsSUFBQUMsS0FBQSxHQUFpQlIsSUFBSSxDQUFDLENBQUM7SUFBZlMsSUFBSSxHQUFB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
113
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZVQiLCJtYXBCYWNrZW5kTGFuZyIsIm1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbiIsInNlY3Rpb24iLCJ1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJhZ2VudElkIiwibWFpYVNlY3Rpb24iLCJlbnRpdHlUeXBlIiwiX3VzZVQiLCJpMThuIiwibGFuZyIsImxhbmd1YWdlIiwiYXBpU2VjdGlvbiIsInJlcXVlc3RJZFJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbnMiLCJzZXRBY3Rpb25zIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZXJyb3IiLCJzZXRFcnJvciIsImhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFpZCIsInJlcXVlc3RJZCIsInJlc3BvbnNlIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJjdXJyZW50Iiwic2VudCIsIkFycmF5IiwiaXNBcnJheSIsImRhdGEiLCJFcnJvciIsImFicnVwdCIsImNvbnNvbGUiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQge1xuICBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMsXG4gIHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zQXBpU2VjdGlvbixcbn0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB0eXBlIHsgU2VjdGlvbiB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi91c2VUJ1xuaW1wb3J0IHsgbWFwQmFja2VuZExhbmcgfSBmcm9tICcuLi91dGlscy9tYXBCYWNrZW5kTGFuZydcblxuZXhwb3J0IHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zTWFpYVNlY3Rpb24gPSBTZWN0aW9uIHwgJ2hvbWVfd2l0aF9ob3VycycgfCAnaG9tZV9jb2xsYWJvcmF0b3InXG5cbmV4cG9ydCBjb25zdCBtYXBNYWlhU2VjdGlvblRvRnVhc0FwaVNlY3Rpb24gPSAoXG4gIHNlY3Rpb246IEZyZXF1ZW50bHlVc2VkQWN0aW9uc01haWFTZWN0aW9uXG4pOiBGcmVxdWVudGx5VXNlZEFjdGlvbnNBcGlTZWN0aW9uID0+IHtcbiAgaWYgKHNlY3Rpb24gPT09ICdob21lX3dpdGhfaG91cnMnKSByZXR1cm4gJ2hvbWVfd2l0aF9ob3VycydcbiAgaWYgKHNlY3Rpb24gPT09ICdob21lX2NvbGxhYm9yYXRvcicpIHJldHVybiAnaG9tZV9jb2xsYWJvcmF0b3InXG4gIGlmIChzZWN0aW9uID09PSAndGFzaycpIHJldHVybiAndGFza3MnXG4gIGlmIChzZWN0aW9uID09PSAncGxhbm5lcicpIHJldHVybiAncGxhbm5lcidcbiAgcmV0dXJuICdob21lJ1xufVxuXG5leHBvcnQgY29uc3QgdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zID0gKFxuICBhZ2VudElkPzogc3RyaW5nLFxuICBtYWlhU2VjdGlvbj86IEZyZXF1ZW50bHlVc2VkQWN0aW9uc01haWFTZWN0aW9uLFxuICBlbnRpdHlUeXBlPzogc3RyaW5nXG4pID0+IHtcbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgbGFuZyA9IG1hcEJhY2tlbmRMYW5nKGkxOG4ubGFuZ3VhZ2UpXG4gIGNvbnN0IGFwaVNlY3Rpb24gPSB1c2VNZW1vKCgpID0+IG1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbihtYWlhU2VjdGlvbiA/PyAnaGVhZGVyJyksIFttYWlhU2VjdGlvbl0pXG4gIGNvbnN0IHJlcXVlc3RJZFJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBbYWN0aW9ucywgc2V0QWN0aW9uc10gPSB1c2VTdGF0ZTxBY3Rpb25bXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGFpZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0SWQgPSArK3JlcXVlc3RJZFJlZi5jdXJyZW50XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMoeyBhZ2VudElkOiBhaWQsIGxhbmcsIHNlY3Rpb246IGFwaVNlY3Rpb24sIGVudGl0eVR5cGUgfSlcbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByZXNwb25zZSBmb3JtYXQgZnJvbSBzZXJ2ZXInKVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0SWQgIT09IHJlcXVlc3RJZFJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgc2V0QWN0aW9ucyhyZXNwb25zZS5kYXRhKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChyZXF1ZXN0SWQgIT09IHJlcXVlc3RJZFJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCdcbiAgICAgICAgc2V0RXJyb3IobWVzc2FnZSlcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZnJlcXVlbnRseSB1c2VkIGFjdGlvbnM6JywgZXJyKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKHJlcXVlc3RJZCA9PT0gcmVxdWVzdElkUmVmLmN1cnJlbnQpIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9XG4gICAgfSxcbiAgICBbbGFuZywgYXBpU2VjdGlvbiwgZW50aXR5VHlwZV1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0QWN0aW9ucyhbXSlcbiAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIHNldEVycm9yKG51bGwpXG4gICAgaWYgKGFnZW50SWQpIHtcbiAgICAgIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyhhZ2VudElkKVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4geyByZXF1ZXN0SWRSZWYuY3VycmVudCArPSAxIH1cbiAgfSwgW2FnZW50SWQsIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9uc10pXG5cbiAgcmV0dXJuIHtcbiAgICBhY3Rpb25zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0s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
@@ -0,0 +1,26 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { useEffect, useState } from 'react';
3
+ import { isMaiaPageActive, MAIA_PAGE_PRESENCE_EVENT } from '../utils/maiaPageRoute';
4
+ export var useIsMaiaPageRoute = function useIsMaiaPageRoute() {
5
+ var _useState = useState(isMaiaPageActive),
6
+ _useState2 = _slicedToArray(_useState, 2),
7
+ isMaiaPage = _useState2[0],
8
+ setIsMaiaPage = _useState2[1];
9
+ useEffect(function () {
10
+ var sync = function sync() {
11
+ var next = isMaiaPageActive();
12
+ setIsMaiaPage(function (prev) {
13
+ return prev === next ? prev : next;
14
+ });
15
+ };
16
+ document.addEventListener(MAIA_PAGE_PRESENCE_EVENT, sync);
17
+ window.addEventListener('popstate', sync);
18
+ sync();
19
+ return function () {
20
+ document.removeEventListener(MAIA_PAGE_PRESENCE_EVENT, sync);
21
+ window.removeEventListener('popstate', sync);
22
+ };
23
+ }, []);
24
+ return isMaiaPage;
25
+ };
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsImlzTWFpYVBhZ2VBY3RpdmUiLCJNQUlBX1BBR0VfUFJFU0VOQ0VfRVZFTlQiLCJ1c2VJc01haWFQYWdlUm91dGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc01haWFQYWdlIiwic2V0SXNNYWlhUGFnZSIsInN5bmMiLCJuZXh0IiwicHJldiIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlSXNNYWlhUGFnZVJvdXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGlzTWFpYVBhZ2VBY3RpdmUsIE1BSUFfUEFHRV9QUkVTRU5DRV9FVkVOVCB9IGZyb20gJy4uL3V0aWxzL21haWFQYWdlUm91dGUnXG5cbmV4cG9ydCBjb25zdCB1c2VJc01haWFQYWdlUm91dGUgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IFtpc01haWFQYWdlLCBzZXRJc01haWFQYWdlXSA9IHVzZVN0YXRlKGlzTWFpYVBhZ2VBY3RpdmUpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzeW5jID0gKCkgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IGlzTWFpYVBhZ2VBY3RpdmUoKVxuICAgICAgc2V0SXNNYWlhUGFnZShwcmV2ID0+IChwcmV2ID09PSBuZXh0ID8gcHJldiA6IG5leHQpKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoTUFJQV9QQUdFX1BSRVNFTkNFX0VWRU5ULCBzeW5jKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHN5bmMpXG4gICAgc3luYygpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihNQUlBX1BBR0VfUFJFU0VOQ0VfRVZFTlQsIHN5bmMpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBzeW5jKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgcmV0dXJuIGlzTWFpYVBhZ2Vcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0MsU0FBU0MsZ0JBQWdCLEVBQUVDLHdCQUF3QixRQUFRLHdCQUF3QjtBQUVuRixPQUFPLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUEsRUFBa0I7RUFDL0MsSUFBQUMsU0FBQSxHQUFvQ0osUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQztJQUFBSSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUF2REcsVUFBVSxHQUFBRixVQUFBO0lBQUVHLGFBQWEsR0FBQUgsVUFBQTtFQUVoQ04sU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNVSxJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FBQSxFQUFTO01BQ2pCLElBQU1DLElBQUksR0FBR1QsZ0JBQWdCLENBQUMsQ0FBQztNQUMvQk8sYUFBYSxDQUFDLFVBQUFHLElBQUk7UUFBQSxPQUFLQSxJQUFJLEtBQUtELElBQUksR0FBR0MsSUFBSSxHQUFHRCxJQUFJO01BQUEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFREUsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ1gsd0JBQXdCLEVBQUVPLElBQUksQ0FBQztJQUN6REssTUFBTSxDQUFDRCxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUVKLElBQUksQ0FBQztJQUN6Q0EsSUFBSSxDQUFDLENBQUM7SUFFTixPQUFPLFlBQU07TUFDWEcsUUFBUSxDQUFDRyxtQkFBbUIsQ0FBQ2Isd0JBQXdCLEVBQUVPLElBQUksQ0FBQztNQUM1REssTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUVOLElBQUksQ0FBQztJQUM5QyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE9BQU9GLFVBQVU7QUFDbkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,26 @@
1
+ import { act, renderHook } from '@testing-library/react';
2
+ import { useIsMaiaPageRoute } from './useIsMaiaPageRoute';
3
+ import { MAIA_PAGE_ROOT_ATTR, setMaiaPagePresence } from '../utils/maiaPageRoute';
4
+ describe('useIsMaiaPageRoute', function () {
5
+ afterEach(function () {
6
+ document.documentElement.removeAttribute(MAIA_PAGE_ROOT_ATTR);
7
+ window.history.replaceState({}, '', '/');
8
+ });
9
+ it('follows the maia page presence without changing other state', function () {
10
+ window.history.replaceState({}, '', '/tasks');
11
+ var _renderHook = renderHook(function () {
12
+ return useIsMaiaPageRoute();
13
+ }),
14
+ result = _renderHook.result;
15
+ expect(result.current).toBe(false);
16
+ act(function () {
17
+ setMaiaPagePresence(true);
18
+ });
19
+ expect(result.current).toBe(true);
20
+ act(function () {
21
+ setMaiaPagePresence(false);
22
+ });
23
+ expect(result.current).toBe(false);
24
+ });
25
+ });
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhY3QiLCJyZW5kZXJIb29rIiwidXNlSXNNYWlhUGFnZVJvdXRlIiwiTUFJQV9QQUdFX1JPT1RfQVRUUiIsInNldE1haWFQYWdlUHJlc2VuY2UiLCJkZXNjcmliZSIsImFmdGVyRWFjaCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwicmVtb3ZlQXR0cmlidXRlIiwid2luZG93IiwiaGlzdG9yeSIsInJlcGxhY2VTdGF0ZSIsIml0IiwiX3JlbmRlckhvb2siLCJyZXN1bHQiLCJleHBlY3QiLCJjdXJyZW50IiwidG9CZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VJc01haWFQYWdlUm91dGUuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhY3QsIHJlbmRlckhvb2sgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0J1xuaW1wb3J0IHsgdXNlSXNNYWlhUGFnZVJvdXRlIH0gZnJvbSAnLi91c2VJc01haWFQYWdlUm91dGUnXG5pbXBvcnQgeyBNQUlBX1BBR0VfUk9PVF9BVFRSLCBzZXRNYWlhUGFnZVByZXNlbmNlIH0gZnJvbSAnLi4vdXRpbHMvbWFpYVBhZ2VSb3V0ZSdcblxuZGVzY3JpYmUoJ3VzZUlzTWFpYVBhZ2VSb3V0ZScsICgpID0+IHtcbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKE1BSUFfUEFHRV9ST09UX0FUVFIpXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAnJywgJy8nKVxuICB9KVxuXG4gIGl0KCdmb2xsb3dzIHRoZSBtYWlhIHBhZ2UgcHJlc2VuY2Ugd2l0aG91dCBjaGFuZ2luZyBvdGhlciBzdGF0ZScsICgpID0+IHtcbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCAnL3Rhc2tzJylcbiAgICBjb25zdCB7IHJlc3VsdCB9ID0gcmVuZGVySG9vaygoKSA9PiB1c2VJc01haWFQYWdlUm91dGUoKSlcbiAgICBleHBlY3QocmVzdWx0LmN1cnJlbnQpLnRvQmUoZmFsc2UpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgc2V0TWFpYVBhZ2VQcmVzZW5jZSh0cnVlKVxuICAgIH0pXG4gICAgZXhwZWN0KHJlc3VsdC5jdXJyZW50KS50b0JlKHRydWUpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgc2V0TWFpYVBhZ2VQcmVzZW5jZShmYWxzZSlcbiAgICB9KVxuICAgIGV4cGVjdChyZXN1bHQuY3VycmVudCkudG9CZShmYWxzZSlcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsRUFBRUMsVUFBVSxRQUFRLHdCQUF3QjtBQUN4RCxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDekQsU0FBU0MsbUJBQW1CLEVBQUVDLG1CQUFtQixRQUFRLHdCQUF3QjtBQUVqRkMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLFlBQU07RUFDbkNDLFNBQVMsQ0FBQyxZQUFNO0lBQ2RDLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDQyxlQUFlLENBQUNOLG1CQUFtQixDQUFDO0lBQzdETyxNQUFNLENBQUNDLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7RUFDMUMsQ0FBQyxDQUFDO0VBRUZDLEVBQUUsQ0FBQyw2REFBNkQsRUFBRSxZQUFNO0lBQ3RFSCxNQUFNLENBQUNDLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUM7SUFDN0MsSUFBQUUsV0FBQSxHQUFtQmIsVUFBVSxDQUFDO1FBQUEsT0FBTUMsa0JBQWtCLENBQUMsQ0FBQztNQUFBLEVBQUM7TUFBakRhLE1BQU0sR0FBQUQsV0FBQSxDQUFOQyxNQUFNO0lBQ2RDLE1BQU0sQ0FBQ0QsTUFBTSxDQUFDRSxPQUFPLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUVsQ2xCLEdBQUcsQ0FBQyxZQUFNO01BQ1JJLG1CQUFtQixDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDLENBQUM7SUFDRlksTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBRWpDbEIsR0FBRyxDQUFDLFlBQU07TUFDUkksbUJBQW1CLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUMsQ0FBQztJQUNGWSxNQUFNLENBQUNELE1BQU0sQ0FBQ0UsT0FBTyxDQUFDLENBQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7RUFDcEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119