@projectcor/maia-components 2.49.0-beta.1 → 2.49.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 (124) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.js +37 -0
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +3 -37
  3. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +117 -0
  4. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +31 -101
  5. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +91 -0
  6. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +49 -140
  7. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +257 -0
  8. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +53 -205
  9. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.js +4 -0
  10. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +2 -4
  11. package/lib/components/atoms/ClientSelector/ClientSelector.helpers.js +26 -0
  12. package/lib/components/atoms/ClientSelector/ClientSelector.js +12 -21
  13. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.js +227 -0
  14. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +15 -255
  15. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +59 -0
  16. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +12 -57
  17. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +74 -0
  18. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +184 -0
  19. package/lib/components/atoms/MAIAInput/MAIAInput.js +127 -176
  20. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +96 -0
  21. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +40 -113
  22. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.js +17 -0
  23. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +3 -15
  24. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +3 -4
  25. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +3 -11
  26. package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +6 -1
  27. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +2 -3
  28. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.js +10 -0
  29. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.js +101 -0
  30. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +21 -77
  31. package/lib/components/atoms/TextArea/TextArea.helpers.js +23 -0
  32. package/lib/components/atoms/TextArea/TextArea.js +11 -20
  33. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.js +37 -0
  34. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +6 -29
  35. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +68 -0
  36. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +17 -56
  37. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +133 -0
  38. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +31 -112
  39. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.js +17 -0
  40. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +5 -15
  41. package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.js +370 -0
  42. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +197 -233
  43. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +398 -0
  44. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +209 -235
  45. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +515 -4
  46. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +228 -344
  47. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.js +5 -0
  48. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +3 -2
  49. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +49 -0
  50. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +36 -33
  51. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.js +39 -0
  52. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +30 -33
  53. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.js +41 -0
  54. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +9 -35
  55. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.js +48 -0
  56. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +9 -44
  57. package/lib/components/molecules/Sidebar/Sidebar.helpers.js +43 -0
  58. package/lib/components/molecules/Sidebar/Sidebar.js +25 -22
  59. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +512 -0
  60. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +309 -643
  61. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.js +37 -0
  62. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +13 -25
  63. package/lib/constants/formatExtensions.js +7 -8
  64. package/lib/dev/DevReasoningTimeline.js +8 -50
  65. package/lib/hooks/useAgentModel/useCreateAgent.helpers.js +144 -0
  66. package/lib/hooks/useAgentModel/useCreateAgent.js +38 -102
  67. package/lib/hooks/useChatManager/useChatManager.helpers.js +902 -0
  68. package/lib/hooks/useChatManager/useChatManager.js +267 -741
  69. package/lib/hooks/useChatMessages/useChatMessages.helpers.js +365 -0
  70. package/lib/hooks/useChatMessages/useChatMessages.js +59 -285
  71. package/lib/hooks/useClientSearch.helpers.js +36 -0
  72. package/lib/hooks/useClientSearch.js +4 -32
  73. package/lib/hooks/useContextMentions.helpers.js +212 -0
  74. package/lib/hooks/useContextMentions.js +5 -223
  75. package/lib/hooks/useContextMentions.types.js +2 -0
  76. package/lib/hooks/useContextPinPopover.helpers.js +95 -0
  77. package/lib/hooks/useContextPinPopover.js +16 -75
  78. package/lib/hooks/useEntitySearch.helpers.js +407 -0
  79. package/lib/hooks/useEntitySearch.js +52 -436
  80. package/lib/hooks/useMentionPopover.helpers.js +41 -0
  81. package/lib/hooks/useMentionPopover.js +9 -35
  82. package/lib/hooks/useMinimizedPillBottomOffset.helpers.js +47 -0
  83. package/lib/hooks/useMinimizedPillBottomOffset.js +15 -45
  84. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.js +86 -0
  85. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +8 -82
  86. package/lib/hooks/useProjectSearch.helpers.js +61 -0
  87. package/lib/hooks/useProjectSearch.js +4 -58
  88. package/lib/hooks/useProjectSummaryConfig.helpers.js +62 -0
  89. package/lib/hooks/useProjectSummaryConfig.js +14 -52
  90. package/lib/hooks/useReasoningTrace/reasoningStore.js +8 -39
  91. package/lib/hooks/useRecentClientsSearch.helpers.js +33 -0
  92. package/lib/hooks/useRecentClientsSearch.js +4 -32
  93. package/lib/lang/br/index.js +1 -7
  94. package/lib/lang/en/index.js +1 -7
  95. package/lib/lang/es/index.js +1 -7
  96. package/lib/lang/fr/index.js +1 -7
  97. package/lib/services/maia/Agents/getAgents.helpers.js +241 -0
  98. package/lib/services/maia/Agents/getAgents.js +90 -282
  99. package/lib/services/maia/Orchestrator/orchestrator.helpers.js +130 -0
  100. package/lib/services/maia/Orchestrator/orchestrator.js +38 -121
  101. package/lib/services/utils/mapChatMessages.helpers.js +223 -0
  102. package/lib/services/utils/mapChatMessages.js +25 -254
  103. package/lib/store/sessions/sessionNotifications.helpers.js +45 -0
  104. package/lib/store/sessions/sessionNotifications.js +35 -41
  105. package/lib/store/sessions/sessionStreamManager.helpers.js +134 -0
  106. package/lib/store/sessions/sessionStreamManager.js +172 -236
  107. package/lib/test/mockSseStream.js +121 -0
  108. package/lib/test/streamdownCodeMock.js +6 -0
  109. package/lib/test/streamdownMock.js +12 -0
  110. package/lib/types/Chat.js +1 -1
  111. package/lib/types/agentModal.js +1 -1
  112. package/lib/types/reasoning.js +1 -1
  113. package/lib/utils/imagePreprocessor.helpers.js +28 -0
  114. package/lib/utils/imagePreprocessor.js +12 -37
  115. package/lib/utils/renderContextMentions.helpers.js +110 -0
  116. package/lib/utils/renderContextMentions.js +4 -110
  117. package/lib/utils/streamActivityMessages.helpers.js +222 -0
  118. package/lib/utils/streamActivityMessages.js +4 -221
  119. package/package.json +2 -2
  120. package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.js +0 -53
  121. package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.styles.js +0 -8
  122. package/lib/components/atoms/ContextCompactedNotice/index.js +0 -2
  123. package/lib/types/contextCompaction.js +0 -48
  124. package/lib/types/jest-dom.d.js +0 -2
@@ -0,0 +1,36 @@
1
+ export var mapperClientsSearch = function mapperClientsSearch(values) {
2
+ return values === null || values === void 0 ? void 0 : values.map(function (value) {
3
+ return {
4
+ id: value.id,
5
+ name: value.name
6
+ };
7
+ });
8
+ };
9
+ export var buildClientSearchFilter = function buildClientSearchFilter(value) {
10
+ var clientStatusId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
11
+ return value ? {
12
+ name: value,
13
+ clientStatusId: [clientStatusId]
14
+ } : {};
15
+ };
16
+ export var buildClientHighlightTitle = function buildClientHighlightTitle(clientName, searchValue) {
17
+ if (!searchValue || !clientName.toLocaleLowerCase().includes(searchValue.toLocaleLowerCase())) {
18
+ return clientName;
19
+ }
20
+ var textIndex = clientName.toLowerCase().indexOf(searchValue.toLowerCase());
21
+ var valueToChange = clientName.slice(textIndex, textIndex + searchValue.length);
22
+ var escapedSearchValue = searchValue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
23
+ return clientName.replace(new RegExp(escapedSearchValue, 'i'), "<span style=\"color: #0088cc; font-weight: bold;\">".concat(valueToChange, "</span>"));
24
+ };
25
+ export var mapGraphqlClientsToSetters = function mapGraphqlClientsToSetters(clients, searchValue) {
26
+ return clients.map(function (client) {
27
+ var clientName = client.name || '';
28
+ var highlightedValue = buildClientHighlightTitle(clientName, searchValue);
29
+ return {
30
+ id: client.id,
31
+ name: client.name,
32
+ title: searchValue && highlightedValue !== clientName ? highlightedValue : clientName
33
+ };
34
+ });
35
+ };
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBwZXJDbGllbnRzU2VhcmNoIiwidmFsdWVzIiwibWFwIiwidmFsdWUiLCJpZCIsIm5hbWUiLCJidWlsZENsaWVudFNlYXJjaEZpbHRlciIsImNsaWVudFN0YXR1c0lkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiYnVpbGRDbGllbnRIaWdobGlnaHRUaXRsZSIsImNsaWVudE5hbWUiLCJzZWFyY2hWYWx1ZSIsInRvTG9jYWxlTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJ0ZXh0SW5kZXgiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJ2YWx1ZVRvQ2hhbmdlIiwic2xpY2UiLCJlc2NhcGVkU2VhcmNoVmFsdWUiLCJyZXBsYWNlIiwiUmVnRXhwIiwiY29uY2F0IiwibWFwR3JhcGhxbENsaWVudHNUb1NldHRlcnMiLCJjbGllbnRzIiwiY2xpZW50IiwiaGlnaGxpZ2h0ZWRWYWx1ZSIsInRpdGxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUNsaWVudFNlYXJjaC5oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xpZW50R3JhcGhRTCwgQ2xpZW50U2V0dGVyIH0gZnJvbSAnLi91c2VDbGllbnRTZWFyY2gnXG5cbmV4cG9ydCBjb25zdCBtYXBwZXJDbGllbnRzU2VhcmNoID0gKHZhbHVlczogQ2xpZW50R3JhcGhRTFtdKTogQ2xpZW50R3JhcGhRTFtdID0+XG4gIHZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IHZhbHVlLmlkLFxuICAgIG5hbWU6IHZhbHVlLm5hbWUsXG4gIH0pKVxuXG5leHBvcnQgY29uc3QgYnVpbGRDbGllbnRTZWFyY2hGaWx0ZXIgPSAodmFsdWU6IHN0cmluZywgY2xpZW50U3RhdHVzSWQgPSAxKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT5cbiAgdmFsdWUgPyB7IG5hbWU6IHZhbHVlLCBjbGllbnRTdGF0dXNJZDogW2NsaWVudFN0YXR1c0lkXSB9IDoge31cblxuZXhwb3J0IGNvbnN0IGJ1aWxkQ2xpZW50SGlnaGxpZ2h0VGl0bGUgPSAoY2xpZW50TmFtZTogc3RyaW5nLCBzZWFyY2hWYWx1ZT86IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICghc2VhcmNoVmFsdWUgfHwgIWNsaWVudE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkge1xuICAgIHJldHVybiBjbGllbnROYW1lXG4gIH1cblxuICBjb25zdCB0ZXh0SW5kZXggPSBjbGllbnROYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICBjb25zdCB2YWx1ZVRvQ2hhbmdlID0gY2xpZW50TmFtZS5zbGljZSh0ZXh0SW5kZXgsIHRleHRJbmRleCArIHNlYXJjaFZhbHVlLmxlbmd0aClcbiAgY29uc3QgZXNjYXBlZFNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKVxuXG4gIHJldHVybiBjbGllbnROYW1lLnJlcGxhY2UoXG4gICAgbmV3IFJlZ0V4cChlc2NhcGVkU2VhcmNoVmFsdWUsICdpJyksXG4gICAgYDxzcGFuIHN0eWxlPVwiY29sb3I6ICMwMDg4Y2M7IGZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dmFsdWVUb0NoYW5nZX08L3NwYW4+YFxuICApXG59XG5cbmV4cG9ydCBjb25zdCBtYXBHcmFwaHFsQ2xpZW50c1RvU2V0dGVycyA9IChjbGllbnRzOiBDbGllbnRHcmFwaFFMW10sIHNlYXJjaFZhbHVlPzogc3RyaW5nKTogQ2xpZW50U2V0dGVyW10gPT5cbiAgY2xpZW50cy5tYXAoY2xpZW50ID0+IHtcbiAgICBjb25zdCBjbGllbnROYW1lID0gY2xpZW50Lm5hbWUgfHwgJydcbiAgICBjb25zdCBoaWdobGlnaHRlZFZhbHVlID0gYnVpbGRDbGllbnRIaWdobGlnaHRUaXRsZShjbGllbnROYW1lLCBzZWFyY2hWYWx1ZSlcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogY2xpZW50LmlkLFxuICAgICAgbmFtZTogY2xpZW50Lm5hbWUsXG4gICAgICB0aXRsZTogc2VhcmNoVmFsdWUgJiYgaGlnaGxpZ2h0ZWRWYWx1ZSAhPT0gY2xpZW50TmFtZSA/IGhpZ2hsaWdodGVkVmFsdWUgOiBjbGllbnROYW1lLFxuICAgIH1cbiAgfSlcbiJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFNQSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJQyxNQUF1QjtFQUFBLE9BQ3pEQSxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRUMsR0FBRyxDQUFDLFVBQUFDLEtBQUs7SUFBQSxPQUFLO01BQ3BCQyxFQUFFLEVBQUVELEtBQUssQ0FBQ0MsRUFBRTtNQUNaQyxJQUFJLEVBQUVGLEtBQUssQ0FBQ0U7SUFDZCxDQUFDO0VBQUEsQ0FBQyxDQUFDO0FBQUE7QUFFTCxPQUFPLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlILEtBQWE7RUFBQSxJQUFFSSxjQUFjLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUM7RUFBQSxPQUN2RUwsS0FBSyxHQUFHO0lBQUVFLElBQUksRUFBRUYsS0FBSztJQUFFSSxjQUFjLEVBQUUsQ0FBQ0EsY0FBYztFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFBQTtBQUVoRSxPQUFPLElBQU1JLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBeUJBLENBQUlDLFVBQWtCLEVBQUVDLFdBQW9CLEVBQWE7RUFDN0YsSUFBSSxDQUFDQSxXQUFXLElBQUksQ0FBQ0QsVUFBVSxDQUFDRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ0YsV0FBVyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUM3RixPQUFPRixVQUFVO0VBQ25CO0VBRUEsSUFBTUksU0FBUyxHQUFHSixVQUFVLENBQUNLLFdBQVcsQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQ0wsV0FBVyxDQUFDSSxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQzdFLElBQU1FLGFBQWEsR0FBR1AsVUFBVSxDQUFDUSxLQUFLLENBQUNKLFNBQVMsRUFBRUEsU0FBUyxHQUFHSCxXQUFXLENBQUNKLE1BQU0sQ0FBQztFQUNqRixJQUFNWSxrQkFBa0IsR0FBR1IsV0FBVyxDQUFDUyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0VBRTdFLE9BQU9WLFVBQVUsQ0FBQ1UsT0FBTyxDQUN2QixJQUFJQyxNQUFNLENBQUNGLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyx3REFBQUcsTUFBQSxDQUNpQkwsYUFBYSxZQUNuRSxDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sSUFBTU0sMEJBQTBCLEdBQUcsU0FBN0JBLDBCQUEwQkEsQ0FBSUMsT0FBd0IsRUFBRWIsV0FBb0I7RUFBQSxPQUN2RmEsT0FBTyxDQUFDeEIsR0FBRyxDQUFDLFVBQUF5QixNQUFNLEVBQUk7SUFDcEIsSUFBTWYsVUFBVSxHQUFHZSxNQUFNLENBQUN0QixJQUFJLElBQUksRUFBRTtJQUNwQyxJQUFNdUIsZ0JBQWdCLEdBQUdqQix5QkFBeUIsQ0FBQ0MsVUFBVSxFQUFFQyxXQUFXLENBQUM7SUFFM0UsT0FBTztNQUNMVCxFQUFFLEVBQUV1QixNQUFNLENBQUN2QixFQUFFO01BQ2JDLElBQUksRUFBRXNCLE1BQU0sQ0FBQ3RCLElBQUk7TUFDakJ3QixLQUFLLEVBQUVoQixXQUFXLElBQUllLGdCQUFnQixLQUFLaEIsVUFBVSxHQUFHZ0IsZ0JBQWdCLEdBQUdoQjtJQUM3RSxDQUFDO0VBQ0gsQ0FBQyxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -4,39 +4,14 @@ import { useEffect, useState } from 'react';
4
4
  import { SEARCH_CLIENTS } from '../services/query';
5
5
  import { SEARCH_QUERY_DEBOUNCE_MS } from '../constants/config';
6
6
  import { useDebounce } from './useDebounce';
7
- var mapperClientsSearch = function mapperClientsSearch(values) {
8
- return values === null || values === void 0 ? void 0 : values.map(function (value) {
9
- return {
10
- id: value.id,
11
- name: value.name
12
- };
13
- });
14
- };
7
+ import { buildClientSearchFilter, mapGraphqlClientsToSetters, mapperClientsSearch } from './useClientSearch.helpers';
15
8
  export var DataParsedToClients = function DataParsedToClients() {
16
9
  var _useState = useState([]),
17
10
  _useState2 = _slicedToArray(_useState, 2),
18
11
  clients = _useState2[0],
19
12
  setClients = _useState2[1];
20
13
  var setterData = function setterData(args, searchValue) {
21
- if (!args.length) {
22
- setClients([]);
23
- } else {
24
- setClients(args.map(function (arg) {
25
- var clientName = arg.name || '';
26
- var highlightedValue = '';
27
- if (searchValue && clientName.toLocaleLowerCase().includes(searchValue.toLocaleLowerCase())) {
28
- var textIndex = clientName.toLowerCase().indexOf(searchValue.toLowerCase());
29
- var valueToChange = clientName.slice(textIndex, textIndex + searchValue.length);
30
- var escapedSearchValue = searchValue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
31
- highlightedValue = clientName.replace(new RegExp(escapedSearchValue, 'i'), "<span style=\"color: #0088cc; font-weight: bold;\">".concat(valueToChange, "</span>"));
32
- }
33
- return {
34
- id: arg.id,
35
- name: arg.name,
36
- title: searchValue && highlightedValue ? highlightedValue : clientName
37
- };
38
- }));
39
- }
14
+ setClients(args.length ? mapGraphqlClientsToSetters(args, searchValue) : []);
40
15
  };
41
16
  return {
42
17
  clients: clients,
@@ -86,10 +61,7 @@ export var useClientSearch = function useClientSearch() {
86
61
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
87
62
  var perPage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 20;
88
63
  var clientStatusId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
89
- var filter = value ? {
90
- name: value,
91
- clientStatusId: [clientStatusId]
92
- } : {};
64
+ var filter = buildClientSearchFilter(value, clientStatusId);
93
65
  fetchClients({
94
66
  variables: {
95
67
  page: page,
@@ -160,4 +132,4 @@ export var useClientSearch = function useClientSearch() {
160
132
  loadPage: loadPage
161
133
  };
162
134
  };
163
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlNFQVJDSF9DTElFTlRTIiwiU0VBUkNIX1FVRVJZX0RFQk9VTkNFX01TIiwidXNlRGVib3VuY2UiLCJtYXBwZXJDbGllbnRzU2VhcmNoIiwidmFsdWVzIiwibWFwIiwidmFsdWUiLCJpZCIsIm5hbWUiLCJEYXRhUGFyc2VkVG9DbGllbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiY2xpZW50cyIsInNldENsaWVudHMiLCJzZXR0ZXJEYXRhIiwiYXJncyIsInNlYXJjaFZhbHVlIiwibGVuZ3RoIiwiYXJnIiwiY2xpZW50TmFtZSIsImhpZ2hsaWdodGVkVmFsdWUiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsImluY2x1ZGVzIiwidGV4dEluZGV4IiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwidmFsdWVUb0NoYW5nZSIsInNsaWNlIiwiZXNjYXBlZFNlYXJjaFZhbHVlIiwicmVwbGFjZSIsIlJlZ0V4cCIsImNvbmNhdCIsInRpdGxlIiwidXNlQ2xpZW50U2VhcmNoIiwiX0RhdGFQYXJzZWRUb0NsaWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTkiLCJwYWdlIiwicGVyUGFnZSIsInRvdGFsIiwibGFzdFBhZ2UiLCJfdXNlU3RhdGUwIiwicGFnaW5hdGlvbiIsInNldFBhZ2luYXRpb24iLCJkZWJvdW5jZWRTZWFyY2hWYWx1ZSIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJmaWx0ZXIiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoQ2xpZW50cyIsIl91c2VMYXp5UXVlcnkyJCIsImNsaWVudERhdGEiLCJkYXRhIiwibG9hZGluZ0NsaWVudHMiLCJjbGllbnRFcnJvciIsImhhbmRsZUZldGNoQ2xpZW50cyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImNsaWVudFN0YXR1c0lkIiwiX2NsaWVudERhdGEkY2xpZW50cyIsIm1hcHBlZENsaWVudHMiLCJ0cmltIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJuZXdTZWFyY2hWYWx1ZSIsImNsZWFyQ2xpZW50cyIsImxvYWRQYWdlIiwiY2xpZW50c0xvYWRpbmciLCJjbGllbnRzRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQ2xpZW50U2VhcmNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxhenlRdWVyeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeSdcbmltcG9ydCB7IFNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gJy4vdXNlRGVib3VuY2UnXG5cbmV4cG9ydCB0eXBlIENsaWVudEdyYXBoUUwgPSB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGNsaWVudFN0YXR1c0lkPzogbnVtYmVyW11cbn1cblxuZXhwb3J0IHR5cGUgQ2xpZW50U2V0dGVyID0ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG4gIGNsaWVudFN0YXR1c0lkPzogbnVtYmVyW11cbn1cblxudHlwZSBRdWVyeUNsaWVudERhdGEgPSB7XG4gIGNsaWVudHM6IHtcbiAgICB0b3RhbDogbnVtYmVyXG4gICAgcGVyUGFnZTogbnVtYmVyXG4gICAgcGFnZTogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlOiBudW1iZXJcbiAgICBkYXRhOiBDbGllbnRHcmFwaFFMW11cbiAgfVxufVxuXG5jb25zdCBtYXBwZXJDbGllbnRzU2VhcmNoID0gKHZhbHVlczogQ2xpZW50R3JhcGhRTFtdKTogQ2xpZW50R3JhcGhRTFtdID0+IHtcbiAgcmV0dXJuIHZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IHZhbHVlLmlkLFxuICAgIG5hbWU6IHZhbHVlLm5hbWUsXG4gIH0pKVxufVxuXG5leHBvcnQgY29uc3QgRGF0YVBhcnNlZFRvQ2xpZW50cyA9ICgpID0+IHtcbiAgY29uc3QgW2NsaWVudHMsIHNldENsaWVudHNdID0gdXNlU3RhdGU8Q2xpZW50U2V0dGVyW10+KFtdKVxuXG4gIGNvbnN0IHNldHRlckRhdGEgPSAoYXJnczogQ2xpZW50R3JhcGhRTFtdLCBzZWFyY2hWYWx1ZT86IHN0cmluZykgPT4ge1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHNldENsaWVudHMoW10pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENsaWVudHMoXG4gICAgICAgIGFyZ3MubWFwKGFyZyA9PiB7XG4gICAgICAgICAgY29uc3QgY2xpZW50TmFtZSA9IGFyZy5uYW1lIHx8ICcnXG4gICAgICAgICAgbGV0IGhpZ2hsaWdodGVkVmFsdWUgPSAnJ1xuICAgICAgICAgIGlmIChzZWFyY2hWYWx1ZSAmJiBjbGllbnROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRJbmRleCA9IGNsaWVudE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICBjb25zdCB2YWx1ZVRvQ2hhbmdlID0gY2xpZW50TmFtZS5zbGljZSh0ZXh0SW5kZXgsIHRleHRJbmRleCArIHNlYXJjaFZhbHVlLmxlbmd0aClcbiAgICAgICAgICAgIGNvbnN0IGVzY2FwZWRTZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJylcbiAgICAgICAgICAgIGhpZ2hsaWdodGVkVmFsdWUgPSBjbGllbnROYW1lLnJlcGxhY2UoXG4gICAgICAgICAgICAgIG5ldyBSZWdFeHAoZXNjYXBlZFNlYXJjaFZhbHVlLCAnaScpLFxuICAgICAgICAgICAgICBgPHNwYW4gc3R5bGU9XCJjb2xvcjogIzAwODhjYzsgZm9udC13ZWlnaHQ6IGJvbGQ7XCI+JHt2YWx1ZVRvQ2hhbmdlfTwvc3Bhbj5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogYXJnLmlkLFxuICAgICAgICAgICAgbmFtZTogYXJnLm5hbWUsXG4gICAgICAgICAgICB0aXRsZTogc2VhcmNoVmFsdWUgJiYgaGlnaGxpZ2h0ZWRWYWx1ZSA/IGhpZ2hsaWdodGVkVmFsdWUgOiBjbGllbnROYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgY2xpZW50cywgc2V0dGVyRGF0YSB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VDbGllbnRTZWFyY2ggPSAoKSA9PiB7XG4gIGNvbnN0IHsgY2xpZW50cywgc2V0dGVyRGF0YSB9ID0gRGF0YVBhcnNlZFRvQ2xpZW50cygpXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbcGFnaW5hdGlvbiwgc2V0UGFnaW5hdGlvbl0gPSB1c2VTdGF0ZSh7XG4gICAgcGFnZTogMSxcbiAgICBwZXJQYWdlOiAyMCxcbiAgICB0b3RhbDogMCxcbiAgICBsYXN0UGFnZTogMCxcbiAgfSlcblxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSA9IHVzZURlYm91bmNlKHNlYXJjaFZhbHVlLCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMpXG5cbiAgY29uc3QgW2ZldGNoQ2xpZW50cywgeyBkYXRhOiBjbGllbnREYXRhLCBsb2FkaW5nOiBsb2FkaW5nQ2xpZW50cywgZXJyb3I6IGNsaWVudEVycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8UXVlcnlDbGllbnREYXRhPihTRUFSQ0hfQ0xJRU5UUywge1xuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICBmaWx0ZXI6IHt9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gIGNvbnN0IGhhbmRsZUZldGNoQ2xpZW50cyA9ICh2YWx1ZTogc3RyaW5nLCBwYWdlOiBudW1iZXIgPSAxLCBwZXJQYWdlOiBudW1iZXIgPSAyMCwgY2xpZW50U3RhdHVzSWQ6IG51bWJlciA9IDEpID0+IHtcbiAgICBjb25zdCBmaWx0ZXIgPSB2YWx1ZSA/IHsgbmFtZTogdmFsdWUsIGNsaWVudFN0YXR1c0lkOiBbY2xpZW50U3RhdHVzSWRdIH0gOiB7fVxuICAgIGZldGNoQ2xpZW50cyh7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZSxcbiAgICAgICAgcGVyUGFnZSxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9hZGluZ0NsaWVudHMpIHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgICBpZiAoY2xpZW50RXJyb3IpIHtcbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NsaWVudEVycm9yLCBsb2FkaW5nQ2xpZW50c10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2xpZW50RGF0YT8uY2xpZW50cykge1xuICAgICAgY29uc3QgeyBkYXRhLCB0b3RhbCwgcGVyUGFnZSwgcGFnZSwgbGFzdFBhZ2UgfSA9IGNsaWVudERhdGEuY2xpZW50c1xuICAgICAgY29uc3QgbWFwcGVkQ2xpZW50cyA9IG1hcHBlckNsaWVudHNTZWFyY2goZGF0YSlcbiAgICAgIHNldHRlckRhdGEobWFwcGVkQ2xpZW50cywgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRQYWdpbmF0aW9uKHtcbiAgICAgICAgcGFnZTogcGFnZSB8fCAxLFxuICAgICAgICBwZXJQYWdlLFxuICAgICAgICB0b3RhbCxcbiAgICAgICAgbGFzdFBhZ2UsXG4gICAgICB9KVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NsaWVudERhdGEsIGRlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGhhbmRsZUZldGNoQ2xpZW50cyhkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0dGVyRGF0YShbXSwgJycpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICB9LCBbZGVib3VuY2VkU2VhcmNoVmFsdWVdKVxuXG4gIGNvbnN0IHVwZGF0ZVNlYXJjaFZhbHVlID0gKG5ld1NlYXJjaFZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXRTZWFyY2hWYWx1ZShuZXdTZWFyY2hWYWx1ZSlcbiAgfVxuXG4gIGNvbnN0IGNsZWFyQ2xpZW50cyA9ICgpID0+IHtcbiAgICBzZXR0ZXJEYXRhKFtdLCAnJylcbiAgICBzZXRTZWFyY2hWYWx1ZSgnJylcbiAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIHNldEVycm9yKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgbG9hZFBhZ2UgPSAocGFnZTogbnVtYmVyKSA9PiB7XG4gICAgaGFuZGxlRmV0Y2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlLCBwYWdlLCBwYWdpbmF0aW9uLnBlclBhZ2UpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoQ2xpZW50cyxcbiAgICBjbGllbnRzTG9hZGluZzogbG9hZGluZyxcbiAgICBjbGllbnRzRXJyb3I6IGVycm9yLFxuICAgIGNsaWVudHMsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgY2xlYXJDbGllbnRzLFxuICAgIHBhZ2luYXRpb24sXG4gICAgbG9hZFBhZ2UsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUMzQyxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBQ2xELFNBQVNDLHdCQUF3QixRQUFRLHFCQUFxQjtBQUM5RCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQXlCM0MsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsTUFBdUIsRUFBc0I7RUFDeEUsT0FBT0EsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVDLEdBQUcsQ0FBQyxVQUFBQyxLQUFLO0lBQUEsT0FBSztNQUMzQkMsRUFBRSxFQUFFRCxLQUFLLENBQUNDLEVBQUU7TUFDWkMsSUFBSSxFQUFFRixLQUFLLENBQUNFO0lBQ2QsQ0FBQztFQUFBLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUEsRUFBUztFQUN2QyxJQUFBQyxTQUFBLEdBQThCWCxRQUFRLENBQWlCLEVBQUUsQ0FBQztJQUFBWSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUFuREcsT0FBTyxHQUFBRixVQUFBO0lBQUVHLFVBQVUsR0FBQUgsVUFBQTtFQUUxQixJQUFNSSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSUMsSUFBcUIsRUFBRUMsV0FBb0Is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
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlNFQVJDSF9DTElFTlRTIiwiU0VBUkNIX1FVRVJZX0RFQk9VTkNFX01TIiwidXNlRGVib3VuY2UiLCJidWlsZENsaWVudFNlYXJjaEZpbHRlciIsIm1hcEdyYXBocWxDbGllbnRzVG9TZXR0ZXJzIiwibWFwcGVyQ2xpZW50c1NlYXJjaCIsIkRhdGFQYXJzZWRUb0NsaWVudHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJjbGllbnRzIiwic2V0Q2xpZW50cyIsInNldHRlckRhdGEiLCJhcmdzIiwic2VhcmNoVmFsdWUiLCJsZW5ndGgiLCJ1c2VDbGllbnRTZWFyY2giLCJfRGF0YVBhcnNlZFRvQ2xpZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNldFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlOSIsInBhZ2UiLCJwZXJQYWdlIiwidG90YWwiLCJsYXN0UGFnZSIsIl91c2VTdGF0ZTAiLCJwYWdpbmF0aW9uIiwic2V0UGFnaW5hdGlvbiIsImRlYm91bmNlZFNlYXJjaFZhbHVlIiwiX3VzZUxhenlRdWVyeSIsInZhcmlhYmxlcyIsImZpbHRlciIsIl91c2VMYXp5UXVlcnkyIiwiZmV0Y2hDbGllbnRzIiwiX3VzZUxhenlRdWVyeTIkIiwiY2xpZW50RGF0YSIsImRhdGEiLCJsb2FkaW5nQ2xpZW50cyIsImNsaWVudEVycm9yIiwiaGFuZGxlRmV0Y2hDbGllbnRzIiwidmFsdWUiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJjbGllbnRTdGF0dXNJZCIsIl9jbGllbnREYXRhJGNsaWVudHMiLCJtYXBwZWRDbGllbnRzIiwidHJpbSIsInVwZGF0ZVNlYXJjaFZhbHVlIiwibmV3U2VhcmNoVmFsdWUiLCJjbGVhckNsaWVudHMiLCJsb2FkUGFnZSIsImNsaWVudHNMb2FkaW5nIiwiY2xpZW50c0Vycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUNsaWVudFNlYXJjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VMYXp5UXVlcnkgfSBmcm9tICdAYXBvbGxvL2NsaWVudCdcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFNFQVJDSF9DTElFTlRTIH0gZnJvbSAnLi4vc2VydmljZXMvcXVlcnknXG5pbXBvcnQgeyBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuaW1wb3J0IHsgYnVpbGRDbGllbnRTZWFyY2hGaWx0ZXIsIG1hcEdyYXBocWxDbGllbnRzVG9TZXR0ZXJzLCBtYXBwZXJDbGllbnRzU2VhcmNoIH0gZnJvbSAnLi91c2VDbGllbnRTZWFyY2guaGVscGVycydcblxuZXhwb3J0IHR5cGUgQ2xpZW50R3JhcGhRTCA9IHtcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgY2xpZW50U3RhdHVzSWQ/OiBudW1iZXJbXVxufVxuXG5leHBvcnQgdHlwZSBDbGllbnRTZXR0ZXIgPSB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgY2xpZW50U3RhdHVzSWQ/OiBudW1iZXJbXVxufVxuXG50eXBlIFF1ZXJ5Q2xpZW50RGF0YSA9IHtcbiAgY2xpZW50czoge1xuICAgIHRvdGFsOiBudW1iZXJcbiAgICBwZXJQYWdlOiBudW1iZXJcbiAgICBwYWdlOiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U6IG51bWJlclxuICAgIGRhdGE6IENsaWVudEdyYXBoUUxbXVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBEYXRhUGFyc2VkVG9DbGllbnRzID0gKCkgPT4ge1xuICBjb25zdCBbY2xpZW50cywgc2V0Q2xpZW50c10gPSB1c2VTdGF0ZTxDbGllbnRTZXR0ZXJbXT4oW10pXG5cbiAgY29uc3Qgc2V0dGVyRGF0YSA9IChhcmdzOiBDbGllbnRHcmFwaFFMW10sIHNlYXJjaFZhbHVlPzogc3RyaW5nKSA9PiB7XG4gICAgc2V0Q2xpZW50cyhhcmdzLmxlbmd0aCA/IG1hcEdyYXBocWxDbGllbnRzVG9TZXR0ZXJzKGFyZ3MsIHNlYXJjaFZhbHVlKSA6IFtdKVxuICB9XG4gIHJldHVybiB7IGNsaWVudHMsIHNldHRlckRhdGEgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlQ2xpZW50U2VhcmNoID0gKCkgPT4ge1xuICBjb25zdCB7IGNsaWVudHMsIHNldHRlckRhdGEgfSA9IERhdGFQYXJzZWRUb0NsaWVudHMoKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW3BhZ2luYXRpb24sIHNldFBhZ2luYXRpb25dID0gdXNlU3RhdGUoe1xuICAgIHBhZ2U6IDEsXG4gICAgcGVyUGFnZTogMjAsXG4gICAgdG90YWw6IDAsXG4gICAgbGFzdFBhZ2U6IDAsXG4gIH0pXG5cbiAgY29uc3QgZGVib3VuY2VkU2VhcmNoVmFsdWUgPSB1c2VEZWJvdW5jZShzZWFyY2hWYWx1ZSwgU0VBUkNIX1FVRVJZX0RFQk9VTkNFX01TKVxuXG4gIGNvbnN0IFtmZXRjaENsaWVudHMsIHsgZGF0YTogY2xpZW50RGF0YSwgbG9hZGluZzogbG9hZGluZ0NsaWVudHMsIGVycm9yOiBjbGllbnRFcnJvciB9XSA9XG4gICAgdXNlTGF6eVF1ZXJ5PFF1ZXJ5Q2xpZW50RGF0YT4oU0VBUkNIX0NMSUVOVFMsIHtcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBwZXJQYWdlOiAyMCxcbiAgICAgICAgZmlsdGVyOiB7fSxcbiAgICAgIH0sXG4gICAgfSlcblxuICBjb25zdCBoYW5kbGVGZXRjaENsaWVudHMgPSAodmFsdWU6IHN0cmluZywgcGFnZTogbnVtYmVyID0gMSwgcGVyUGFnZTogbnVtYmVyID0gMjAsIGNsaWVudFN0YXR1c0lkOiBudW1iZXIgPSAxKSA9PiB7XG4gICAgY29uc3QgZmlsdGVyID0gYnVpbGRDbGllbnRTZWFyY2hGaWx0ZXIodmFsdWUsIGNsaWVudFN0YXR1c0lkKVxuICAgIGZldGNoQ2xpZW50cyh7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZSxcbiAgICAgICAgcGVyUGFnZSxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9hZGluZ0NsaWVudHMpIHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgICBpZiAoY2xpZW50RXJyb3IpIHtcbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NsaWVudEVycm9yLCBsb2FkaW5nQ2xpZW50c10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2xpZW50RGF0YT8uY2xpZW50cykge1xuICAgICAgY29uc3QgeyBkYXRhLCB0b3RhbCwgcGVyUGFnZSwgcGFnZSwgbGFzdFBhZ2UgfSA9IGNsaWVudERhdGEuY2xpZW50c1xuICAgICAgY29uc3QgbWFwcGVkQ2xpZW50cyA9IG1hcHBlckNsaWVudHNTZWFyY2goZGF0YSlcbiAgICAgIHNldHRlckRhdGEobWFwcGVkQ2xpZW50cywgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRQYWdpbmF0aW9uKHtcbiAgICAgICAgcGFnZTogcGFnZSB8fCAxLFxuICAgICAgICBwZXJQYWdlLFxuICAgICAgICB0b3RhbCxcbiAgICAgICAgbGFzdFBhZ2UsXG4gICAgICB9KVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NsaWVudERhdGEsIGRlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGhhbmRsZUZldGNoQ2xpZW50cyhkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0dGVyRGF0YShbXSwgJycpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICB9LCBbZGVib3VuY2VkU2VhcmNoVmFsdWVdKVxuXG4gIGNvbnN0IHVwZGF0ZVNlYXJjaFZhbHVlID0gKG5ld1NlYXJjaFZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXRTZWFyY2hWYWx1ZShuZXdTZWFyY2hWYWx1ZSlcbiAgfVxuXG4gIGNvbnN0IGNsZWFyQ2xpZW50cyA9ICgpID0+IHtcbiAgICBzZXR0ZXJEYXRhKFtdLCAnJylcbiAgICBzZXRTZWFyY2hWYWx1ZSgnJylcbiAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIHNldEVycm9yKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgbG9hZFBhZ2UgPSAocGFnZTogbnVtYmVyKSA9PiB7XG4gICAgaGFuZGxlRmV0Y2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlLCBwYWdlLCBwYWdpbmF0aW9uLnBlclBhZ2UpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoQ2xpZW50cyxcbiAgICBjbGllbnRzTG9hZGluZzogbG9hZGluZyxcbiAgICBjbGllbnRzRXJyb3I6IGVycm9yLFxuICAgIGNsaWVudHMsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgY2xlYXJDbGllbnRzLFxuICAgIHBhZ2luYXRpb24s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
@@ -0,0 +1,212 @@
1
+ import { serializeMention } from '../utils/renderContextMentions';
2
+ import { serializeSlashCommand } from '../utils/slashCommandMarker';
3
+ export var computeActiveTriggerQueryLength = function computeActiveTriggerQueryLength(atRunLength, queryLength) {
4
+ var currentRunLen = Math.abs(atRunLength);
5
+ var currentHasSlash = atRunLength < 0;
6
+ return currentRunLen + (currentHasSlash ? 1 : 0) + queryLength;
7
+ };
8
+ export var serializeEditorContent = function serializeEditorContent(el) {
9
+ if (!el) return {
10
+ text: '',
11
+ mentions: [],
12
+ slashCommands: []
13
+ };
14
+ var mentions = [];
15
+ var slashCommands = [];
16
+ var text = '';
17
+ var _walk = function walk(node) {
18
+ if (node.nodeType === Node.TEXT_NODE) {
19
+ text += node.data;
20
+ return;
21
+ }
22
+ if (node.nodeType === Node.ELEMENT_NODE) {
23
+ var _elNode$dataset, _elNode$dataset2;
24
+ var elNode = node;
25
+ if (((_elNode$dataset = elNode.dataset) === null || _elNode$dataset === void 0 ? void 0 : _elNode$dataset.mention) === 'true') {
26
+ var _elNode$dataset$menti, _ref, _ref2, _elNode$dataset$menti2;
27
+ var mention = {
28
+ id: (_elNode$dataset$menti = elNode.dataset.mentionId) !== null && _elNode$dataset$menti !== void 0 ? _elNode$dataset$menti : '',
29
+ type: (_ref = elNode.dataset.mentionType) !== null && _ref !== void 0 ? _ref : 'user',
30
+ label: (_ref2 = (_elNode$dataset$menti2 = elNode.dataset.mentionLabel) !== null && _elNode$dataset$menti2 !== void 0 ? _elNode$dataset$menti2 : elNode.textContent) !== null && _ref2 !== void 0 ? _ref2 : ''
31
+ };
32
+ mentions.push(mention);
33
+ text += serializeMention(mention);
34
+ return;
35
+ }
36
+ if (((_elNode$dataset2 = elNode.dataset) === null || _elNode$dataset2 === void 0 ? void 0 : _elNode$dataset2.slashCommand) === 'true') {
37
+ var _elNode$dataset$slash, _ref3, _elNode$dataset$slash2, _elNode$textContent;
38
+ var slash = {
39
+ id: (_elNode$dataset$slash = elNode.dataset.slashId) !== null && _elNode$dataset$slash !== void 0 ? _elNode$dataset$slash : '',
40
+ label: (_ref3 = (_elNode$dataset$slash2 = elNode.dataset.slashLabel) !== null && _elNode$dataset$slash2 !== void 0 ? _elNode$dataset$slash2 : (_elNode$textContent = elNode.textContent) === null || _elNode$textContent === void 0 ? void 0 : _elNode$textContent.replace(/^\//, '')) !== null && _ref3 !== void 0 ? _ref3 : ''
41
+ };
42
+ slashCommands.push(slash);
43
+ text += serializeSlashCommand(slash);
44
+ return;
45
+ }
46
+ if (elNode.tagName === 'BR') {
47
+ text += '\n';
48
+ return;
49
+ }
50
+ elNode.childNodes.forEach(_walk);
51
+ if (elNode.tagName === 'DIV' || elNode.tagName === 'P') text += '\n';
52
+ }
53
+ };
54
+ el.childNodes.forEach(_walk);
55
+ return {
56
+ text: text.replace(/\n+$/, ''),
57
+ mentions: mentions,
58
+ slashCommands: slashCommands
59
+ };
60
+ };
61
+ export var detectMentionTrigger = function detectMentionTrigger(editorEl, range) {
62
+ if (!editorEl || !editorEl.contains(range.startContainer)) {
63
+ return {
64
+ active: false,
65
+ query: '',
66
+ atRunLength: 0,
67
+ anchor: null
68
+ };
69
+ }
70
+ var node = range.startContainer;
71
+ if (node.nodeType !== Node.TEXT_NODE) {
72
+ return {
73
+ active: false,
74
+ query: '',
75
+ atRunLength: 0,
76
+ anchor: null
77
+ };
78
+ }
79
+ var text = node.data;
80
+ var caret = range.startOffset;
81
+ var i = caret - 1;
82
+ if (i < 0) {
83
+ return {
84
+ active: false,
85
+ query: '',
86
+ atRunLength: 0,
87
+ anchor: null
88
+ };
89
+ }
90
+ while (i >= 0 && text[i] !== '@') i -= 1;
91
+ if (i < 0 || text[i] !== '@') {
92
+ return {
93
+ active: false,
94
+ query: '',
95
+ atRunLength: 0,
96
+ anchor: null
97
+ };
98
+ }
99
+ var runEnd = i;
100
+ while (i >= 0 && text[i] === '@') {
101
+ i -= 1;
102
+ }
103
+ var runStart = i + 1;
104
+ var atRunLength = runEnd - runStart + 1;
105
+ var prev = runStart > 0 ? text.charAt(runStart - 1) : '';
106
+ var isBoundary = !prev || /[\s([{]/.test(prev);
107
+ if (!isBoundary) {
108
+ return {
109
+ active: false,
110
+ query: '',
111
+ atRunLength: 0,
112
+ anchor: null
113
+ };
114
+ }
115
+ var hasSlashSuffix = text[runEnd + 1] === '/';
116
+ var queryStart = hasSlashSuffix ? runEnd + 2 : runEnd + 1;
117
+ var query = text.slice(queryStart, caret);
118
+ if (/\n|\r/.test(query)) {
119
+ return {
120
+ active: false,
121
+ query: '',
122
+ atRunLength: 0,
123
+ anchor: null
124
+ };
125
+ }
126
+ if (query.includes(' ')) {
127
+ return {
128
+ active: false,
129
+ query: '',
130
+ atRunLength: 0,
131
+ anchor: null
132
+ };
133
+ }
134
+ return {
135
+ active: true,
136
+ query: query,
137
+ atRunLength: hasSlashSuffix ? -atRunLength : atRunLength,
138
+ anchor: {
139
+ node: node,
140
+ offset: runStart
141
+ }
142
+ };
143
+ };
144
+ export var detectCharTrigger = function detectCharTrigger(editorEl, range, _char) {
145
+ if (!editorEl || !editorEl.contains(range.startContainer)) {
146
+ return {
147
+ active: false,
148
+ query: '',
149
+ anchor: null
150
+ };
151
+ }
152
+ var node = range.startContainer;
153
+ if (node.nodeType !== Node.TEXT_NODE) {
154
+ return {
155
+ active: false,
156
+ query: '',
157
+ anchor: null
158
+ };
159
+ }
160
+ var text = node.data;
161
+ var caret = range.startOffset;
162
+ var i = caret - 1;
163
+ if (i < 0) {
164
+ return {
165
+ active: false,
166
+ query: '',
167
+ anchor: null
168
+ };
169
+ }
170
+ while (i >= 0 && text[i] !== _char) i -= 1;
171
+ if (i < 0 || text[i] !== _char) {
172
+ return {
173
+ active: false,
174
+ query: '',
175
+ anchor: null
176
+ };
177
+ }
178
+ var triggerIndex = i;
179
+ var prev = triggerIndex > 0 ? text.charAt(triggerIndex - 1) : '';
180
+ var isBoundary = !prev || /[\s([{]/.test(prev);
181
+ if (!isBoundary) {
182
+ return {
183
+ active: false,
184
+ query: '',
185
+ anchor: null
186
+ };
187
+ }
188
+ var query = text.slice(triggerIndex + 1, caret);
189
+ if (/\n|\r/.test(query)) {
190
+ return {
191
+ active: false,
192
+ query: '',
193
+ anchor: null
194
+ };
195
+ }
196
+ if (query.includes(' ')) {
197
+ return {
198
+ active: false,
199
+ query: '',
200
+ anchor: null
201
+ };
202
+ }
203
+ return {
204
+ active: true,
205
+ query: query,
206
+ anchor: {
207
+ node: node,
208
+ offset: triggerIndex
209
+ }
210
+ };
211
+ };
212
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZXJpYWxpemVNZW50aW9uIiwic2VyaWFsaXplU2xhc2hDb21tYW5kIiwiY29tcHV0ZUFjdGl2ZVRyaWdnZXJRdWVyeUxlbmd0aCIsImF0UnVuTGVuZ3RoIiwicXVlcnlMZW5ndGgiLCJjdXJyZW50UnVuTGVuIiwiTWF0aCIsImFicyIsImN1cnJlbnRIYXNTbGFzaCIsInNlcmlhbGl6ZUVkaXRvckNvbnRlbnQiLCJlbCIsInRleHQiLCJtZW50aW9ucyIsInNsYXNoQ29tbWFuZHMiLCJ3YWxrIiwibm9kZSIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsImRhdGEiLCJFTEVNRU5UX05PREUiLCJfZWxOb2RlJGRhdGFzZXQiLCJfZWxOb2RlJGRhdGFzZXQyIiwiZWxOb2RlIiwiZGF0YXNldCIsIm1lbnRpb24iLCJfZWxOb2RlJGRhdGFzZXQkbWVudGkiLCJfcmVmIiwiX3JlZjIiLCJfZWxOb2RlJGRhdGFzZXQkbWVudGkyIiwiaWQiLCJtZW50aW9uSWQiLCJ0eXBlIiwibWVudGlvblR5cGUiLCJsYWJlbCIsIm1lbnRpb25MYWJlbCIsInRleHRDb250ZW50IiwicHVzaCIsInNsYXNoQ29tbWFuZCIsIl9lbE5vZGUkZGF0YXNldCRzbGFzaCIsIl9yZWYzIiwiX2VsTm9kZSRkYXRhc2V0JHNsYXNoMiIsIl9lbE5vZGUkdGV4dENvbnRlbnQiLCJzbGFzaCIsInNsYXNoSWQiLCJzbGFzaExhYmVsIiwicmVwbGFjZSIsInRhZ05hbWUiLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsImRldGVjdE1lbnRpb25UcmlnZ2VyIiwiZWRpdG9yRWwiLCJyYW5nZSIsImNvbnRhaW5zIiwic3RhcnRDb250YWluZXIiLCJhY3RpdmUiLCJxdWVyeSIsImFuY2hvciIsImNhcmV0Iiwic3RhcnRPZmZzZXQiLCJpIiwicnVuRW5kIiwicnVuU3RhcnQiLCJwcmV2IiwiY2hhckF0IiwiaXNCb3VuZGFyeSIsInRlc3QiLCJoYXNTbGFzaFN1ZmZpeCIsInF1ZXJ5U3RhcnQiLCJzbGljZSIsImluY2x1ZGVzIiwib2Zmc2V0IiwiZGV0ZWN0Q2hhclRyaWdnZXIiLCJjaGFyIiwidHJpZ2dlckluZGV4Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUNvbnRleHRNZW50aW9ucy5oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2xhc2hDb21tYW5kQ2hpcERhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL1NsYXNoQ29tbWFuZENoaXAvYnVpbGRTbGFzaENoaXBFbGVtZW50J1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IHNlcmlhbGl6ZU1lbnRpb24gfSBmcm9tICcuLi91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBzZXJpYWxpemVTbGFzaENvbW1hbmQgfSBmcm9tICcuLi91dGlscy9zbGFzaENvbW1hbmRNYXJrZXInXG5pbXBvcnQgdHlwZSB7IE1lbnRpb25UcmlnZ2VyU3RhdGUsIFNsYXNoVHJpZ2dlclN0YXRlIH0gZnJvbSAnLi91c2VDb250ZXh0TWVudGlvbnMudHlwZXMnXG5cbmV4cG9ydCBjb25zdCBjb21wdXRlQWN0aXZlVHJpZ2dlclF1ZXJ5TGVuZ3RoID0gKGF0UnVuTGVuZ3RoOiBudW1iZXIsIHF1ZXJ5TGVuZ3RoOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuICBjb25zdCBjdXJyZW50UnVuTGVuID0gTWF0aC5hYnMoYXRSdW5MZW5ndGgpXG4gIGNvbnN0IGN1cnJlbnRIYXNTbGFzaCA9IGF0UnVuTGVuZ3RoIDwgMFxuICByZXR1cm4gY3VycmVudFJ1bkxlbiArIChjdXJyZW50SGFzU2xhc2ggPyAxIDogMCkgKyBxdWVyeUxlbmd0aFxufVxuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkRWRpdG9yQ29udGVudCA9IHtcbiAgdGV4dDogc3RyaW5nXG4gIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gIHNsYXNoQ29tbWFuZHM6IFNsYXNoQ29tbWFuZENoaXBEYXRhW11cbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZUVkaXRvckNvbnRlbnQgPSAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCk6IFNlcmlhbGl6ZWRFZGl0b3JDb250ZW50ID0+IHtcbiAgaWYgKCFlbCkgcmV0dXJuIHsgdGV4dDogJycsIG1lbnRpb25zOiBbXSwgc2xhc2hDb21tYW5kczogW10gfVxuICBjb25zdCBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXSA9IFtdXG4gIGNvbnN0IHNsYXNoQ29tbWFuZHM6IFNsYXNoQ29tbWFuZENoaXBEYXRhW10gPSBbXVxuICBsZXQgdGV4dCA9ICcnXG5cbiAgY29uc3Qgd2FsayA9IChub2RlOiBOb2RlKSA9PiB7XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICB0ZXh0ICs9IChub2RlIGFzIFRleHQpLmRhdGFcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgIGNvbnN0IGVsTm9kZSA9IG5vZGUgYXMgSFRNTEVsZW1lbnRcbiAgICAgIGlmIChlbE5vZGUuZGF0YXNldD8ubWVudGlvbiA9PT0gJ3RydWUnKSB7XG4gICAgICAgIGNvbnN0IG1lbnRpb246IENvbnRleHRNZW50aW9uID0ge1xuICAgICAgICAgIGlkOiBlbE5vZGUuZGF0YXNldC5tZW50aW9uSWQgPz8gJycsXG4gICAgICAgICAgdHlwZTogKGVsTm9kZS5kYXRhc2V0Lm1lbnRpb25UeXBlIGFzIENvbnRleHRNZW50aW9uWyd0eXBlJ10pID8/ICd1c2VyJyxcbiAgICAgICAgICBsYWJlbDogZWxOb2RlLmRhdGFzZXQubWVudGlvbkxhYmVsID8/IGVsTm9kZS50ZXh0Q29udGVudCA/PyAnJyxcbiAgICAgICAgfVxuICAgICAgICBtZW50aW9ucy5wdXNoKG1lbnRpb24pXG4gICAgICAgIHRleHQgKz0gc2VyaWFsaXplTWVudGlvbihtZW50aW9uKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChlbE5vZGUuZGF0YXNldD8uc2xhc2hDb21tYW5kID09PSAndHJ1ZScpIHtcbiAgICAgICAgY29uc3Qgc2xhc2g6IFNsYXNoQ29tbWFuZENoaXBEYXRhID0ge1xuICAgICAgICAgIGlkOiBlbE5vZGUuZGF0YXNldC5zbGFzaElkID8/ICcnLFxuICAgICAgICAgIGxhYmVsOiBlbE5vZGUuZGF0YXNldC5zbGFzaExhYmVsID8/IGVsTm9kZS50ZXh0Q29udGVudD8ucmVwbGFjZSgvXlxcLy8sICcnKSA/PyAnJyxcbiAgICAgICAgfVxuICAgICAgICBzbGFzaENvbW1hbmRzLnB1c2goc2xhc2gpXG4gICAgICAgIHRleHQgKz0gc2VyaWFsaXplU2xhc2hDb21tYW5kKHNsYXNoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChlbE5vZGUudGFnTmFtZSA9PT0gJ0JSJykge1xuICAgICAgICB0ZXh0ICs9ICdcXG4nXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZWxOb2RlLmNoaWxkTm9kZXMuZm9yRWFjaCh3YWxrKVxuICAgICAgaWYgKGVsTm9kZS50YWdOYW1lID09PSAnRElWJyB8fCBlbE5vZGUudGFnTmFtZSA9PT0gJ1AnKSB0ZXh0ICs9ICdcXG4nXG4gICAgfVxuICB9XG5cbiAgZWwuY2hpbGROb2Rlcy5mb3JFYWNoKHdhbGspXG4gIHJldHVybiB7IHRleHQ6IHRleHQucmVwbGFjZSgvXFxuKyQvLCAnJyksIG1lbnRpb25zLCBzbGFzaENvbW1hbmRzIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRldGVjdE1lbnRpb25UcmlnZ2VyID0gKGVkaXRvckVsOiBIVE1MRWxlbWVudCB8IG51bGwsIHJhbmdlOiBSYW5nZSk6IE1lbnRpb25UcmlnZ2VyU3RhdGUgPT4ge1xuICBpZiAoIWVkaXRvckVsIHx8ICFlZGl0b3JFbC5jb250YWlucyhyYW5nZS5zdGFydENvbnRhaW5lcikpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG4gIGNvbnN0IG5vZGUgPSByYW5nZS5zdGFydENvbnRhaW5lclxuICBpZiAobm9kZS5ub2RlVHlwZSAhPT0gTm9kZS5URVhUX05PREUpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG4gIGNvbnN0IHRleHQgPSAobm9kZSBhcyBUZXh0KS5kYXRhXG4gIGNvbnN0IGNhcmV0ID0gcmFuZ2Uuc3RhcnRPZmZzZXRcbiAgbGV0IGkgPSBjYXJldCAtIDFcbiAgaWYgKGkgPCAwKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIHdoaWxlIChpID49IDAgJiYgdGV4dFtpXSAhPT0gJ0AnKSBpIC09IDFcbiAgaWYgKGkgPCAwIHx8IHRleHRbaV0gIT09ICdAJykge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICBjb25zdCBydW5FbmQgPSBpXG4gIHdoaWxlIChpID49IDAgJiYgdGV4dFtpXSA9PT0gJ0AnKSB7XG4gICAgaSAtPSAxXG4gIH1cbiAgY29uc3QgcnVuU3RhcnQgPSBpICsgMVxuICBjb25zdCBhdFJ1bkxlbmd0aCA9IHJ1bkVuZCAtIHJ1blN0YXJ0ICsgMVxuICBjb25zdCBwcmV2ID0gcnVuU3RhcnQgPiAwID8gdGV4dC5jaGFyQXQocnVuU3RhcnQgLSAxKSA6ICcnXG4gIGNvbnN0IGlzQm91bmRhcnkgPSAhcHJldiB8fCAvW1xccyhbe10vLnRlc3QocHJldilcbiAgaWYgKCFpc0JvdW5kYXJ5KSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIGNvbnN0IGhhc1NsYXNoU3VmZml4ID0gdGV4dFtydW5FbmQgKyAxXSA9PT0gJy8nXG4gIGNvbnN0IHF1ZXJ5U3RhcnQgPSBoYXNTbGFzaFN1ZmZpeCA/IHJ1bkVuZCArIDIgOiBydW5FbmQgKyAxXG4gIGNvbnN0IHF1ZXJ5ID0gdGV4dC5zbGljZShxdWVyeVN0YXJ0LCBjYXJldClcbiAgaWYgKC9cXG58XFxyLy50ZXN0KHF1ZXJ5KSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cbiAgaWYgKHF1ZXJ5LmluY2x1ZGVzKCcgICcpKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0aXZlOiB0cnVlLFxuICAgIHF1ZXJ5LFxuICAgIGF0UnVuTGVuZ3RoOiBoYXNTbGFzaFN1ZmZpeCA/IC1hdFJ1bkxlbmd0aCA6IGF0UnVuTGVuZ3RoLFxuICAgIGFuY2hvcjogeyBub2RlLCBvZmZzZXQ6IHJ1blN0YXJ0IH0sXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRldGVjdENoYXJUcmlnZ2VyID0gKGVkaXRvckVsOiBIVE1MRWxlbWVudCB8IG51bGwsIHJhbmdlOiBSYW5nZSwgY2hhcjogc3RyaW5nKTogU2xhc2hUcmlnZ2VyU3RhdGUgPT4ge1xuICBpZiAoIWVkaXRvckVsIHx8ICFlZGl0b3JFbC5jb250YWlucyhyYW5nZS5zdGFydENvbnRhaW5lcikpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGFuY2hvcjogbnVsbCB9XG4gIH1cbiAgY29uc3Qgbm9kZSA9IHJhbmdlLnN0YXJ0Q29udGFpbmVyXG4gIGlmIChub2RlLm5vZGVUeXBlICE9PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCB0ZXh0ID0gKG5vZGUgYXMgVGV4dCkuZGF0YVxuICBjb25zdCBjYXJldCA9IHJhbmdlLnN0YXJ0T2Zmc2V0XG4gIGxldCBpID0gY2FyZXQgLSAxXG4gIGlmIChpIDwgMCkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIHdoaWxlIChpID49IDAgJiYgdGV4dFtpXSAhPT0gY2hhcikgaSAtPSAxXG4gIGlmIChpIDwgMCB8fCB0ZXh0W2ldICE9PSBjaGFyKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgY29uc3QgdHJpZ2dlckluZGV4ID0gaVxuICBjb25zdCBwcmV2ID0gdHJpZ2dlckluZGV4ID4gMCA/IHRleHQuY2hhckF0KHRyaWdnZXJJbmRleCAtIDEpIDogJydcbiAgY29uc3QgaXNCb3VuZGFyeSA9ICFwcmV2IHx8IC9bXFxzKFt7XS8udGVzdChwcmV2KVxuICBpZiAoIWlzQm91bmRhcnkpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICBjb25zdCBxdWVyeSA9IHRleHQuc2xpY2UodHJpZ2dlckluZGV4ICsgMSwgY2FyZXQpXG4gIGlmICgvXFxufFxcci8udGVzdChxdWVyeSkpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGFuY2hvcjogbnVsbCB9XG4gIH1cbiAgaWYgKHF1ZXJ5LmluY2x1ZGVzKCcgICcpKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgcmV0dXJuIHsgYWN0aXZlOiB0cnVlLCBxdWVyeSwgYW5jaG9yOiB7IG5vZGUsIG9mZnNldDogdHJpZ2dlckluZGV4IH0gfVxufVxu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