@projectcor/maia-components 2.11.90-0 → 2.11.90-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +28 -41
  2. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  3. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -3
  4. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +4 -2
  5. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  6. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  7. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +23 -4
  8. package/lib/components/atoms/MAIAInput/MAIAInput.js +11 -4
  9. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  10. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  11. package/lib/components/atoms/icons/index.js +3 -1
  12. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +14 -1
  13. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +34 -2
  14. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -3
  15. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  16. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  17. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  18. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  19. package/lib/components/molecules/ChatFooter/ChatFooter.js +18 -5
  20. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  21. package/lib/components/molecules/Sidebar/Sidebar.js +25 -4
  22. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +160 -0
  23. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  24. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  25. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +446 -0
  26. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  27. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  28. package/lib/components/organisms/ChatAI/ChatAI.js +7 -3
  29. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +8 -1
  30. package/lib/constants/config.js +4 -1
  31. package/lib/constants/permissions/index.js +2 -2
  32. package/lib/constants/permissions/utils.js +4 -1
  33. package/lib/context/global-context.js +1 -1
  34. package/lib/hooks/useContextMentions.js +47 -9
  35. package/lib/hooks/useEntitySearch.js +277 -91
  36. package/lib/hooks/useMentionAllowedTypes.js +26 -8
  37. package/lib/hooks/useMentionPopover.js +42 -13
  38. package/lib/lang/br/index.js +58 -3
  39. package/lib/lang/en/index.js +58 -3
  40. package/lib/lang/es/index.js +58 -3
  41. package/lib/lang/fr/index.js +54 -3
  42. package/lib/services/maia/Skills/createSkill.js +39 -0
  43. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  44. package/lib/services/maia/Skills/generateSkill.js +41 -0
  45. package/lib/services/maia/Skills/getSkills.js +90 -0
  46. package/lib/services/maia/Skills/updateSkill.js +39 -0
  47. package/lib/types/contextMention.js +1 -1
  48. package/lib/types/skill.js +2 -0
  49. package/lib/utils/contextMentionIcons.js +29 -1
  50. package/lib/utils/contextMentionTriggers.js +3 -1
  51. package/lib/utils/renderContextMentions.js +9 -4
  52. package/package.json +2 -3
@@ -8,6 +8,7 @@ import { ChatAIClientSelector } from '../ChatAIClientSelector';
8
8
  import { SCCAIContentWrapper } from './ChatAIContent.styles';
9
9
  import { ChatAIMessages } from '../ChatAIMessages';
10
10
  import { ChatAIMyAgents } from '../ChatAIMyAgents/ChatAIMyAgents';
11
+ import { ChatAIMySkills } from '../ChatAIMySkills/ChatAIMySkills';
11
12
  import { ModalInfo } from '../../atoms/ModalInfo';
12
13
  import { ErrorState } from '../../atoms/icons';
13
14
  import { useT } from '../../../hooks/useT';
@@ -30,6 +31,9 @@ export var ChatAIContent = function ChatAIContent(_ref) {
30
31
  loadingMoreAgents = _ref.loadingMoreAgents,
31
32
  onLoadMoreAgents = _ref.onLoadMoreAgents,
32
33
  onGoToMaiaker = _ref.onGoToMaiaker,
34
+ skills = _ref.skills,
35
+ loadingSkills = _ref.loadingSkills,
36
+ onDeleteSkill = _ref.onDeleteSkill,
33
37
  onSearchAgents = _ref.onSearchAgents,
34
38
  searchLoadingAgents = _ref.searchLoadingAgents,
35
39
  agentError = _ref.agentError;
@@ -93,6 +97,15 @@ export var ChatAIContent = function ChatAIContent(_ref) {
93
97
  floating: floating
94
98
  });
95
99
  };
100
+ if (currentOption === options.mySkills) {
101
+ return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
102
+ children: /*#__PURE__*/_jsx(ChatAIMySkills, {
103
+ skills: skills || [],
104
+ loading: loadingSkills,
105
+ onDeleteSkill: onDeleteSkill
106
+ })
107
+ });
108
+ }
96
109
  var fadeKey = "".concat(currentOption, "-").concat(loadingAgents ? 'loading' : 'ready', "-").concat(agentError ? 'error' : 'ok');
97
110
  return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
98
111
  children: /*#__PURE__*/_jsx(Fade, {
@@ -101,4 +114,4 @@ export var ChatAIContent = function ChatAIContent(_ref) {
101
114
  }, fadeKey)
102
115
  });
103
116
  };
104
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGF0QUlIb21lIiwiUHJvamVjdFN1bW1hcnlDb250ZW50Iiwib3B0aW9ucyIsIkNoYXRBSVByb2plY3RTZWxlY3RvciIsIkNoYXRBSUNsaWVudFNlbGVjdG9yIiwiU0NDQUlDb250ZW50V3JhcHBlciIsIkNoYXRBSU1lc3NhZ2VzIiwiQ2hhdEFJTXlBZ2VudHMiLCJNb2RhbEluZm8iLCJFcnJvclN0YXRlIiwidXNlVCIsIkZhZGUiLCJDaGF0QUlIb21lU2tlbGV0b24iLCJqc3giLCJfanN4IiwiQ2hhdEFJQ29udGVudCIsIl9yZWYiLCJjdXJyZW50T3B0aW9uIiwiaGFuZGxlcnMiLCJvbkVycm9yIiwicmVmcyIsIm9uU2VuZE1lc3NhZ2VSZWFkeSIsImV4cGFuZGVkIiwiZmxvYXRpbmciLCJhZ2VudHMiLCJsb2FkaW5nQWdlbnRzIiwib25EZWxldGVBZ2VudCIsIm9uRmF2b3JpdGVBZ2VudFVwZGF0ZSIsImhhc01vcmVBZ2VudHMiLCJsb2FkaW5nTW9yZUFnZW50cyIsIm9uTG9hZE1vcmVBZ2VudHMiLCJvbkdvVG9NYWlha2VyIiwib25TZWFyY2hBZ2VudHMiLCJzZWFyY2hMb2FkaW5nQWdlbnRzIiwiYWdlbnRFcnJvciIsIl91c2VUIiwidCIsInJlbmRlckNvbnRlbnQiLCJob21lIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImNoaWxkcmVuIiwiY2hhdCIsInVzZXJJbml0aWFsTWVzc2FnZSIsImluaXRpYWxDaGF0SWQiLCJhdHRhY2htZW50cyIsInByb2plY3RTdW1tYXJ5Iiwib25SZXN0YXJ0U3VtbWFyeSIsInByb2plY3RTZWxlY3RvciIsImhhbmRsZUdvSG9tZSIsImNsaWVudFNlbGVjdG9yIiwibXlBZ2VudHMiLCJvbkJhY2siLCJvblN0YXJ0Q2hhdCIsImZhZGVLZXkiLCJjb25jYXQiLCJmaWxsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUNvbnRlbnQvQ2hhdEFJQ29udGVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbmltcG9ydCB7IENoYXRBSUhvbWUgfSBmcm9tICcuLi9DaGF0QUlIb21lJ1xuaW1wb3J0IHsgUHJvamVjdFN1bW1hcnlDb250ZW50IH0gZnJvbSAnLi4vUHJvamVjdFN1bW1hcnlDb250ZW50J1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSAnLi4vQ2hhdEFJTW9kYWwvY29uc3RhbnRzJ1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDaGF0QUlQcm9qZWN0U2VsZWN0b3IgfSBmcm9tICcuLi9DaGF0QUlQcm9qZWN0U2VsZWN0b3InXG5pbXBvcnQgeyBDaGF0QUlDbGllbnRTZWxlY3RvciB9IGZyb20gJy4uL0NoYXRBSUNsaWVudFNlbGVjdG9yJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IFNDQ0FJQ29udGVudFdyYXBwZXIgfSBmcm9tICcuL0NoYXRBSUNvbnRlbnQuc3R5bGVzJ1xuaW1wb3J0IHsgQ2hhdEFJTWVzc2FnZXMgfSBmcm9tICcuLi9DaGF0QUlNZXNzYWdlcydcbmltcG9ydCB7IENoYXRBSU15QWdlbnRzIH0gZnJvbSAnLi4vQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgTW9kYWxJbmZvIH0gZnJvbSAnLi4vLi4vYXRvbXMvTW9kYWxJbmZvJ1xuaW1wb3J0IHsgRXJyb3JTdGF0ZSB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBGYWRlIH0gZnJvbSAnLi4vLi4vYXRvbXMvRmFkZSdcbmltcG9ydCB7IENoYXRBSUhvbWVTa2VsZXRvbiB9IGZyb20gJy4vQ2hhdEFJQ29udGVudC5za2VsZXRvbidcblxudHlwZSBDaGF0QUlDb250ZW50UHJvcHMgPSB7XG4gIGN1cnJlbnRPcHRpb246IG9wdGlvbnNcbiAgaGFuZGxlcnM6IFJlY29yZDxvcHRpb25zLCAodmFsdWU/OiBhbnkpID0+IHZvaWQ+ICYge1xuICAgIGNoYXQ6IChcbiAgICAgIG1lc3NhZ2U/OiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgICBzY0lkPzogc3RyaW5nXG4gICAgKSA9PiB2b2lkXG4gICAgc3RhcnRDaGF0PzogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZFxuICAgIGhhbmRsZUdvSG9tZTogKCkgPT4gdm9pZFxuICB9XG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgcmVmczoge1xuICAgIHVzZXJJbml0aWFsTWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogc3RyaW5nXG4gICAgICBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXVxuICAgICAgZmFxSWQ/OiBzdHJpbmdcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICAgICBmdWFJZD86IHN0cmluZ1xuICAgICAgc2NJZD86IHN0cmluZ1xuICAgIH1cbiAgICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAoXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgICBzY0lkPzogc3RyaW5nXG4gICAgKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgZXhwYW5kZWQ/OiBib29sZWFuXG4gIC8qKiBQYW5lbCBmbG90YW50ZSBkZWwgY2hhdCAobGF5b3V0IE1BSUEpOyBhZmVjdGEgY2VudHJhZG8gZW4gaG9tZSBwYXJhIGFnZW50ZXMgY3VzdG9tICovXG4gIGZsb2F0aW5nPzogYm9vbGVhblxuICBhZ2VudHM/OiBBZ2VudFtdXG4gIGxvYWRpbmdBZ2VudHM/OiBib29sZWFuXG4gIG9uRGVsZXRlQWdlbnQ/OiAoYWdlbnRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT86IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgaGFzTW9yZUFnZW50cz86IGJvb2xlYW5cbiAgbG9hZGluZ01vcmVBZ2VudHM/OiBib29sZWFuXG4gIG9uTG9hZE1vcmVBZ2VudHM/OiAoKSA9PiB2b2lkXG4gIG9uR29Ub01haWFrZXI/OiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPlxuICBvblNlYXJjaEFnZW50cz86IChxdWVyeTogc3RyaW5nKSA9PiB2b2lkXG4gIHNlYXJjaExvYWRpbmdBZ2VudHM/OiBib29sZWFuXG4gIGFnZW50RXJyb3I/OiBzdHJpbmcgfCBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlDb250ZW50ID0gKHtcbiAgY3VycmVudE9wdGlvbixcbiAgaGFuZGxlcnMsXG4gIG9uRXJyb3IsXG4gIHJlZnMsXG4gIG9uU2VuZE1lc3NhZ2VSZWFkeSxcbiAgZXhwYW5kZWQsXG4gIGZsb2F0aW5nLFxuICBhZ2VudHMsXG4gIGxvYWRpbmdBZ2VudHMsXG4gIG9uRGVsZXRlQWdlbnQsXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZSxcbiAgaGFzTW9yZUFnZW50cyxcbiAgbG9hZGluZ01vcmVBZ2VudHMsXG4gIG9uTG9hZE1vcmVBZ2VudHMsXG4gIG9uR29Ub01haWFrZXIsXG4gIG9uU2VhcmNoQWdlbnRzLFxuICBzZWFyY2hMb2FkaW5nQWdlbnRzLFxuICBhZ2VudEVycm9yLFxufTogQ2hhdEFJQ29udGVudFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG5cbiAgY29uc3QgcmVuZGVyQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAobG9hZGluZ0FnZW50cyAmJiBjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUpIHtcbiAgICAgIHJldHVybiA8Q2hhdEFJSG9tZVNrZWxldG9uIC8+XG4gICAgfVxuXG4gICAgaWYgKGFnZW50RXJyb3IgJiYgY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TW9kYWxJbmZvIHRpdGxlPXt0KCdlcnJvci50aXRsZScpfSBkZXNjcmlwdGlvbj17dCgnZXJyb3IuZGVzY3JpcHRpb24nKX0+XG4gICAgICAgICAgPEVycm9yU3RhdGUgLz5cbiAgICAgICAgPC9Nb2RhbEluZm8+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENoYXRBSU1lc3NhZ2VzXG4gICAgICAgICAgdXNlckluaXRpYWxNZXNzYWdlPXtyZWZzLnVzZXJJbml0aWFsTWVzc2FnZX1cbiAgICAgICAgICBpbml0aWFsQ2hhdElkPXtyZWZzLmluaXRpYWxDaGF0SWR9XG4gICAgICAgICAgb25FcnJvcj17b25FcnJvcn1cbiAgICAgICAgICBvblNlbmRNZXNzYWdlUmVhZHk9e29uU2VuZE1lc3NhZ2VSZWFkeX1cbiAgICAgICAgICBhdHRhY2htZW50cz17cmVmcy51c2VySW5pdGlhbE1lc3NhZ2UuYXR0YWNobWVudHN9XG4gICAgICAgICAgYWdlbnRzPXthZ2VudHN9XG4gICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLnByb2plY3RTdW1tYXJ5KSB7XG4gICAgICByZXR1cm4gPFByb2plY3RTdW1tYXJ5Q29udGVudCBvblJlc3RhcnRTdW1tYXJ5PXtoYW5kbGVycy5ob21lfSAvPlxuICAgIH1cblxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLnByb2plY3RTZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIDxDaGF0QUlQcm9qZWN0U2VsZWN0b3IgaGFuZGxlcnM9e2hhbmRsZXJzLmhhbmRsZUdvSG9tZX0gLz5cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jbGllbnRTZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIDxDaGF0QUlDbGllbnRTZWxlY3RvciBoYW5kbGVycz17aGFuZGxlcnMuaGFuZGxlR29Ib21lfSAvPlxuICAgIH1cblxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Q2hhdEFJTXlBZ2VudHNcbiAgICAgICAgICBvbkJhY2s9e2hhbmRsZXJzLmhvbWV9XG4gICAgICAgICAgYWdlbnRzPXthZ2VudHMgfHwgW119XG4gICAgICAgICAgb25EZWxldGVBZ2VudD17b25EZWxldGVBZ2VudH1cbiAgICAgICAgICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU9e29uRmF2b3JpdGVBZ2VudFVwZGF0ZX1cbiAgICAgICAgICBoYXNNb3JlQWdlbnRzPXtoYXNNb3JlQWdlbnRzfVxuICAgICAgICAgIGxvYWRpbmdNb3JlQWdlbnRzPXtsb2FkaW5nTW9yZUFnZW50c31cbiAgICAgICAgICBvbkxvYWRNb3JlQWdlbnRzPXtvbkxvYWRNb3JlQWdlbnRzfVxuICAgICAgICAgIG9uR29Ub01haWFrZXI9e29uR29Ub01haWFrZXJ9XG4gICAgICAgICAgb25TZWFyY2hBZ2VudHM9e29uU2VhcmNoQWdlbnRzfVxuICAgICAgICAgIHNlYXJjaExvYWRpbmdBZ2VudHM9e3NlYXJjaExvYWRpbmdBZ2VudHN9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIDxDaGF0QUlIb21lIGhhbmRsZXJzPXtoYW5kbGVyc30gb25TdGFydENoYXQ9e2hhbmRsZXJzLmNoYXR9IGV4cGFuZGVkPXtleHBhbmRlZH0gZmxvYXRpbmc9e2Zsb2F0aW5nfSAvPlxuICB9XG5cbiAgY29uc3QgZmFkZUtleSA9IGAke2N1cnJlbnRPcHRpb259LSR7bG9hZGluZ0FnZW50cyA/ICdsb2FkaW5nJyA6ICdyZWFkeSd9LSR7YWdlbnRFcnJvciA/ICdlcnJvcicgOiAnb2snfWBcblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgPEZhZGUga2V5PXtmYWRlS2V5fSBmaWxsPlxuICAgICAgICB7cmVuZGVyQ29udGVudCgpfVxuICAgICAgPC9GYWRlPlxuICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsU0FBU0EsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBRWhFLFNBQVNDLE9BQU8sUUFBUSwwQkFBMEI7QUFFbEQsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBQ2hFLFNBQVNDLG9CQUFvQixRQUFRLHlCQUF5QjtBQUU5RCxTQUFTQyxtQkFBbUIsUUFBUSx3QkFBd0I7QUFDNUQsU0FBU0MsY0FBYyxRQUFRLG1CQUFtQjtBQUNsRCxTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBRWpFLFNBQVNDLFNBQVMsUUFB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
117
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGF0QUlIb21lIiwiUHJvamVjdFN1bW1hcnlDb250ZW50Iiwib3B0aW9ucyIsIkNoYXRBSVByb2plY3RTZWxlY3RvciIsIkNoYXRBSUNsaWVudFNlbGVjdG9yIiwiU0NDQUlDb250ZW50V3JhcHBlciIsIkNoYXRBSU1lc3NhZ2VzIiwiQ2hhdEFJTXlBZ2VudHMiLCJDaGF0QUlNeVNraWxscyIsIk1vZGFsSW5mbyIsIkVycm9yU3RhdGUiLCJ1c2VUIiwiRmFkZSIsIkNoYXRBSUhvbWVTa2VsZXRvbiIsImpzeCIsIl9qc3giLCJDaGF0QUlDb250ZW50IiwiX3JlZiIsImN1cnJlbnRPcHRpb24iLCJoYW5kbGVycyIsIm9uRXJyb3IiLCJyZWZzIiwib25TZW5kTWVzc2FnZVJlYWR5IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsImFnZW50cyIsImxvYWRpbmdBZ2VudHMiLCJvbkRlbGV0ZUFnZW50Iiwib25GYXZvcml0ZUFnZW50VXBkYXRlIiwiaGFzTW9yZUFnZW50cyIsImxvYWRpbmdNb3JlQWdlbnRzIiwib25Mb2FkTW9yZUFnZW50cyIsIm9uR29Ub01haWFrZXIiLCJza2lsbHMiLCJsb2FkaW5nU2tpbGxzIiwib25EZWxldGVTa2lsbCIsIm9uU2VhcmNoQWdlbnRzIiwic2VhcmNoTG9hZGluZ0FnZW50cyIsImFnZW50RXJyb3IiLCJfdXNlVCIsInQiLCJyZW5kZXJDb250ZW50IiwiaG9tZSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJjaGlsZHJlbiIsImNoYXQiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJpbml0aWFsQ2hhdElkIiwiYXR0YWNobWVudHMiLCJwcm9qZWN0U3VtbWFyeSIsIm9uUmVzdGFydFN1bW1hcnkiLCJwcm9qZWN0U2VsZWN0b3IiLCJoYW5kbGVHb0hvbWUiLCJjbGllbnRTZWxlY3RvciIsIm15QWdlbnRzIiwib25CYWNrIiwib25TdGFydENoYXQiLCJteVNraWxscyIsImxvYWRpbmciLCJmYWRlS2V5IiwiY29uY2F0IiwiZmlsbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlDb250ZW50L0NoYXRBSUNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgeyBDaGF0QUlIb21lIH0gZnJvbSAnLi4vQ2hhdEFJSG9tZSdcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29udGVudCB9IGZyb20gJy4uL1Byb2plY3RTdW1tYXJ5Q29udGVudCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ2hhdEFJUHJvamVjdFNlbGVjdG9yIH0gZnJvbSAnLi4vQ2hhdEFJUHJvamVjdFNlbGVjdG9yJ1xuaW1wb3J0IHsgQ2hhdEFJQ2xpZW50U2VsZWN0b3IgfSBmcm9tICcuLi9DaGF0QUlDbGllbnRTZWxlY3RvcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBTQ0NBSUNvbnRlbnRXcmFwcGVyIH0gZnJvbSAnLi9DaGF0QUlDb250ZW50LnN0eWxlcydcbmltcG9ydCB7IENoYXRBSU1lc3NhZ2VzIH0gZnJvbSAnLi4vQ2hhdEFJTWVzc2FnZXMnXG5pbXBvcnQgeyBDaGF0QUlNeUFnZW50cyB9IGZyb20gJy4uL0NoYXRBSU15QWdlbnRzL0NoYXRBSU15QWdlbnRzJ1xuaW1wb3J0IHsgQ2hhdEFJTXlTa2lsbHMgfSBmcm9tICcuLi9DaGF0QUlNeVNraWxscy9DaGF0QUlNeVNraWxscydcbmltcG9ydCB7IFNraWxsIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvc2tpbGwnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgTW9kYWxJbmZvIH0gZnJvbSAnLi4vLi4vYXRvbXMvTW9kYWxJbmZvJ1xuaW1wb3J0IHsgRXJyb3JTdGF0ZSB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBGYWRlIH0gZnJvbSAnLi4vLi4vYXRvbXMvRmFkZSdcbmltcG9ydCB7IENoYXRBSUhvbWVTa2VsZXRvbiB9IGZyb20gJy4vQ2hhdEFJQ29udGVudC5za2VsZXRvbidcblxudHlwZSBDaGF0QUlDb250ZW50UHJvcHMgPSB7XG4gIGN1cnJlbnRPcHRpb246IG9wdGlvbnNcbiAgaGFuZGxlcnM6IFJlY29yZDxvcHRpb25zLCAodmFsdWU/OiBhbnkpID0+IHZvaWQ+ICYge1xuICAgIGNoYXQ6IChcbiAgICAgIG1lc3NhZ2U/OiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgICBzY0lkPzogc3RyaW5nXG4gICAgKSA9PiB2b2lkXG4gICAgc3RhcnRDaGF0PzogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZFxuICAgIGhhbmRsZUdvSG9tZTogKCkgPT4gdm9pZFxuICB9XG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgcmVmczoge1xuICAgIHVzZXJJbml0aWFsTWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogc3RyaW5nXG4gICAgICBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXVxuICAgICAgZmFxSWQ/OiBzdHJpbmdcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICAgICBmdWFJZD86IHN0cmluZ1xuICAgICAgc2NJZD86IHN0cmluZ1xuICAgIH1cbiAgICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAoXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgICBzY0lkPzogc3RyaW5nXG4gICAgKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgZXhwYW5kZWQ/OiBib29sZWFuXG4gIC8qKiBQYW5lbCBmbG90YW50ZSBkZWwgY2hhdCAobGF5b3V0IE1BSUEpOyBhZmVjdGEgY2VudHJhZG8gZW4gaG9tZSBwYXJhIGFnZW50ZXMgY3VzdG9tICovXG4gIGZsb2F0aW5nPzogYm9vbGVhblxuICBhZ2VudHM/OiBBZ2VudFtdXG4gIGxvYWRpbmdBZ2VudHM/OiBib29sZWFuXG4gIG9uRGVsZXRlQWdlbnQ/OiAoYWdlbnRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT86IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgaGFzTW9yZUFnZW50cz86IGJvb2xlYW5cbiAgbG9hZGluZ01vcmVBZ2VudHM/OiBib29sZWFuXG4gIG9uTG9hZE1vcmVBZ2VudHM/OiAoKSA9PiB2b2lkXG4gIG9uR29Ub01haWFrZXI/OiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPlxuICBza2lsbHM/OiBTa2lsbFtdXG4gIGxvYWRpbmdTa2lsbHM/OiBib29sZWFuXG4gIG9uRGVsZXRlU2tpbGw/OiAoc2tpbGxJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uU2VhcmNoQWdlbnRzPzogKHF1ZXJ5OiBzdHJpbmcpID0+IHZvaWRcbiAgc2VhcmNoTG9hZGluZ0FnZW50cz86IGJvb2xlYW5cbiAgYWdlbnRFcnJvcj86IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUNvbnRlbnQgPSAoe1xuICBjdXJyZW50T3B0aW9uLFxuICBoYW5kbGVycyxcbiAgb25FcnJvcixcbiAgcmVmcyxcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBleHBhbmRlZCxcbiAgZmxvYXRpbmcsXG4gIGFnZW50cyxcbiAgbG9hZGluZ0FnZW50cyxcbiAgb25EZWxldGVBZ2VudCxcbiAgb25GYXZvcml0ZUFnZW50VXBkYXRlLFxuICBoYXNNb3JlQWdlbnRzLFxuICBsb2FkaW5nTW9yZUFnZW50cyxcbiAgb25Mb2FkTW9yZUFnZW50cyxcbiAgb25Hb1RvTWFpYWtlcixcbiAgc2tpbGxzLFxuICBsb2FkaW5nU2tpbGxzLFxuICBvbkRlbGV0ZVNraWxsLFxuICBvblNlYXJjaEFnZW50cyxcbiAgc2VhcmNoTG9hZGluZ0FnZW50cyxcbiAgYWdlbnRFcnJvcixcbn06IENoYXRBSUNvbnRlbnRQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuXG4gIGNvbnN0IHJlbmRlckNvbnRlbnQgPSAoKSA9PiB7XG4gICAgaWYgKGxvYWRpbmdBZ2VudHMgJiYgY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lKSB7XG4gICAgICByZXR1cm4gPENoYXRBSUhvbWVTa2VsZXRvbiAvPlxuICAgIH1cblxuICAgIGlmIChhZ2VudEVycm9yICYmIGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1vZGFsSW5mbyB0aXRsZT17dCgnZXJyb3IudGl0bGUnKX0gZGVzY3JpcHRpb249e3QoJ2Vycm9yLmRlc2NyaXB0aW9uJyl9PlxuICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgIDwvTW9kYWxJbmZvPlxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDaGF0QUlNZXNzYWdlc1xuICAgICAgICAgIHVzZXJJbml0aWFsTWVzc2FnZT17cmVmcy51c2VySW5pdGlhbE1lc3NhZ2V9XG4gICAgICAgICAgaW5pdGlhbENoYXRJZD17cmVmcy5pbml0aWFsQ2hhdElkfVxuICAgICAgICAgIG9uRXJyb3I9e29uRXJyb3J9XG4gICAgICAgICAgb25TZW5kTWVzc2FnZVJlYWR5PXtvblNlbmRNZXNzYWdlUmVhZHl9XG4gICAgICAgICAgYXR0YWNobWVudHM9e3JlZnMudXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzfVxuICAgICAgICAgIGFnZW50cz17YWdlbnRzfVxuICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5wcm9qZWN0U3VtbWFyeSkge1xuICAgICAgcmV0dXJuIDxQcm9qZWN0U3VtbWFyeUNvbnRlbnQgb25SZXN0YXJ0U3VtbWFyeT17aGFuZGxlcnMuaG9tZX0gLz5cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5wcm9qZWN0U2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiA8Q2hhdEFJUHJvamVjdFNlbGVjdG9yIGhhbmRsZXJzPXtoYW5kbGVycy5oYW5kbGVHb0hvbWV9IC8+XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2xpZW50U2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiA8Q2hhdEFJQ2xpZW50U2VsZWN0b3IgaGFuZGxlcnM9e2hhbmRsZXJzLmhhbmRsZUdvSG9tZX0gLz5cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5teUFnZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENoYXRBSU15QWdlbnRzXG4gICAgICAgICAgb25CYWNrPXtoYW5kbGVycy5ob21lfVxuICAgICAgICAgIGFnZW50cz17YWdlbnRzIHx8IFtdfVxuICAgICAgICAgIG9uRGVsZXRlQWdlbnQ9e29uRGVsZXRlQWdlbnR9XG4gICAgICAgICAgb25GYXZvcml0ZUFnZW50VXBkYXRlPXtvbkZhdm9yaXRlQWdlbnRVcGRhdGV9XG4gICAgICAgICAgaGFzTW9yZUFnZW50cz17aGFzTW9yZUFnZW50c31cbiAgICAgICAgICBsb2FkaW5nTW9yZUFnZW50cz17bG9hZGluZ01vcmVBZ2VudHN9XG4gICAgICAgICAgb25Mb2FkTW9yZUFnZW50cz17b25Mb2FkTW9yZUFnZW50c31cbiAgICAgICAgICBvbkdvVG9NYWlha2VyPXtvbkdvVG9NYWlha2VyfVxuICAgICAgICAgIG9uU2VhcmNoQWdlbnRzPXtvblNlYXJjaEFnZW50c31cbiAgICAgICAgICBzZWFyY2hMb2FkaW5nQWdlbnRzPXtzZWFyY2hMb2FkaW5nQWdlbnRzfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiA8Q2hhdEFJSG9tZSBoYW5kbGVycz17aGFuZGxlcnN9IG9uU3RhcnRDaGF0PXtoYW5kbGVycy5jaGF0fSBleHBhbmRlZD17ZXhwYW5kZWR9IGZsb2F0aW5nPXtmbG9hdGluZ30gLz5cbiAgfVxuXG4gIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15U2tpbGxzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8Q2hhdEFJTXlTa2lsbHMgc2tpbGxzPXtza2lsbHMgfHwgW119IGxvYWRpbmc9e2xvYWRpbmdTa2lsbHN9IG9uRGVsZXRlU2tpbGw9e29uRGVsZXRlU2tpbGx9IC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgZmFkZUtleSA9IGAke2N1cnJlbnRPcHRpb259LSR7bG9hZGluZ0FnZW50cyA/ICdsb2FkaW5nJyA6ICdyZWFkeSd9LSR7YWdlbnRFcnJvciA/ICdlcnJvcicgOiAnb2snfWBcblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgPEZhZGUga2V5PXtmYWRlS2V5fSBmaWxsPlxuICAgICAgICB7cmVuZGVyQ29udGVudCgpfVxuICAgICAgPC9GYWRlPlxuICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsU0FBU0EsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBRWhFLFNBQVNDLE9BQU8sUUFBUSwwQkFBMEI7QUFFbEQsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBQ2hFLFNBQVNDLG9CQUFvQixRQUFRLHlCQUF5QjtBQUU5RCxTQUFTQyxtQkFBbUIsUUFBUSx3QkFBd0I7QUFDNUQsU0FBU0MsY0FBYyxRQUFRLG1CQUFtQjtBQUNsRCxTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBQ2pFLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7QUFHakUsU0FBU0MsU0FBUyxRQUFRLHVCQUF1QjtBQUNqRCxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsSUFBSSxRQUFRLGtCQUFrQjtBQUN2QyxTQUFTQyxrQkFBa0IsUUFBUSwwQkFBMEI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUE4RDdELE9BQU8sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBQyxJQUFBLEVBc0JBO0VBQUEsSUFyQnhCQyxhQUFhLEdBQUFELElBQUEsQ0FBYkMsYUFBYTtJQUNiQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtJQUNSQyxPQUFPLEdBQUFILElB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