@projectcor/maia-components 2.11.67-0 → 2.11.67-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 (74) hide show
  1. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +3 -7
  2. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +2 -4
  3. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
  4. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
  5. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +6 -26
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +202 -40
  7. package/lib/components/atoms/MAIAInput/styles.js +64 -24
  8. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +4 -2
  9. package/lib/components/atoms/MAIAViz/MAIAViz.js +97 -0
  10. package/lib/components/atoms/MAIAViz/MAIAViz.parse.js +131 -0
  11. package/lib/components/atoms/MAIAViz/MAIAViz.skeleton.js +40 -0
  12. package/lib/components/atoms/MAIAViz/MAIAViz.styles.js +8 -0
  13. package/lib/components/atoms/MAIAViz/MAIAViz.types.js +49 -0
  14. package/lib/components/atoms/MAIAViz/MAIAVizBar.js +123 -0
  15. package/lib/components/atoms/MAIAViz/MAIAVizDonut.js +111 -0
  16. package/lib/components/atoms/MAIAViz/MAIAVizKpis.js +34 -0
  17. package/lib/components/atoms/MAIAViz/README.md +85 -0
  18. package/lib/components/atoms/MAIAViz/index.js +2 -0
  19. package/lib/components/atoms/icons/index.js +1 -3
  20. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +1 -14
  21. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +12 -31
  22. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +4 -34
  23. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +2 -2
  24. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  25. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
  26. package/lib/components/molecules/Sidebar/Sidebar.js +4 -16
  27. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +1 -8
  28. package/lib/constants/config.js +1 -4
  29. package/lib/constants/permissions/index.js +2 -2
  30. package/lib/constants/permissions/utils.js +1 -4
  31. package/lib/context/global-context.js +1 -1
  32. package/lib/dev/DevContextMentionInput.js +3 -1
  33. package/lib/hooks/useChatManager/useChatManager.js +20 -7
  34. package/lib/hooks/useChatMessages/useChatMessages.js +2 -4
  35. package/lib/hooks/useContextMentions.js +15 -60
  36. package/lib/hooks/useEntitySearch.js +108 -294
  37. package/lib/hooks/useMentionAllowedTypes.js +10 -45
  38. package/lib/hooks/useMentionPopover.js +48 -54
  39. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +10 -7
  40. package/lib/hooks/useProjectSummaryConfig.js +32 -17
  41. package/lib/lang/br/index.js +11 -54
  42. package/lib/lang/en/index.js +11 -54
  43. package/lib/lang/es/index.js +11 -54
  44. package/lib/lang/fr/index.js +11 -54
  45. package/lib/services/maia/Agents/getAgents.js +8 -10
  46. package/lib/services/maia/Chats/getChatMessages.js +22 -4
  47. package/lib/services/maia/Orchestrator/orchestrator.js +9 -7
  48. package/lib/types/Chat.js +1 -1
  49. package/lib/types/Hitl.js +2 -0
  50. package/lib/types/contextMention.js +1 -1
  51. package/lib/utils/contextMentionIcons.js +1 -29
  52. package/lib/utils/maiaStreamdownRenderers.js +16 -0
  53. package/lib/utils/renderContextMentions.js +4 -9
  54. package/package.json +1 -1
  55. package/lib/components/atoms/icons/SkillIcon.js +0 -30
  56. package/lib/components/atoms/icons/SkillsNavIcon.js +0 -27
  57. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +0 -357
  58. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +0 -145
  59. package/lib/components/molecules/ChatAIMySkills/index.js +0 -2
  60. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +0 -160
  61. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +0 -34
  62. package/lib/components/organisms/AbmSkillGenerateModal/index.js +0 -2
  63. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +0 -446
  64. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +0 -98
  65. package/lib/components/organisms/AbmSkillModal/index.js +0 -2
  66. package/lib/services/maia/Skills/createSkill.js +0 -39
  67. package/lib/services/maia/Skills/deleteSkill.js +0 -38
  68. package/lib/services/maia/Skills/generateSkill.js +0 -41
  69. package/lib/services/maia/Skills/getSkills.js +0 -90
  70. package/lib/services/maia/Skills/updateSkill.js +0 -39
  71. package/lib/types/skill.js +0 -2
  72. package/lib/utils/contextMentionTriggers.js +0 -53
  73. package/lib/utils/corConnectorMentionTypes.js +0 -37
  74. package/lib/utils/normalizeAgentConnectors.js +0 -32
@@ -0,0 +1,8 @@
1
+ import styled, { keyframes } from 'styled-components';
2
+ import { COR_COLORS } from './MAIAViz.types';
3
+ var blockIn = keyframes(["from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}"]);
4
+ export var StyledMAIAViz = styled.div.withConfig({
5
+ displayName: "MAIAVizstyles__StyledMAIAViz",
6
+ componentId: "sc-7b9qoj-0"
7
+ })(["display:flex;flex-direction:column;gap:20px;width:100%;font-family:'Work Sans',sans-serif;color:", ";.MAIAViz-block{animation:", " 0.35s ease-out both;}@media (prefers-reduced-motion:reduce){.MAIAViz-block{animation:none;}}.MAIAViz-header{display:flex;flex-direction:column;gap:2px;}.MAIAViz-title{&&{font-size:18px;font-weight:600;line-height:1.2;color:", ";}}.MAIAViz-subtitle{&&{display:block;font-size:13px;color:", ";}}.MAIAViz-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}.MAIAViz-kpi-card{display:flex;flex-direction:column;gap:6px;padding:16px;background:", ";border:1px solid ", ";border-radius:12px;}.MAIAViz-kpi-label{font-size:13px;color:", ";}.MAIAViz-kpi-value{font-size:26px;font-weight:600;line-height:1.1;color:", ";}.MAIAViz-kpi-delta{font-size:12px;font-weight:500;}.MAIAViz-figure{&&{display:flex;flex-direction:column;gap:10px;margin:0;}}.MAIAViz-caption{font-size:14px;font-weight:500;color:", ";}.MAIAViz-donut{display:flex;flex-wrap:wrap;align-items:center;gap:24px;}.MAIAViz-legend{&&{display:flex;flex-direction:column;gap:8px;padding:0;margin:0;list-style:none;}li{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;}}.MAIAViz-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;}.MAIAViz-legend-label{color:", ";}.MAIAViz-legend-value{font-weight:600;color:", ";}.MAIAViz-error{&&{font-size:13px;color:", ";font-style:italic;}}"], COR_COLORS.text, blockIn, COR_COLORS.navy, COR_COLORS.textMuted, COR_COLORS.surfaceMuted, COR_COLORS.border, COR_COLORS.textMuted, COR_COLORS.navy, COR_COLORS.navy, COR_COLORS.text, COR_COLORS.navy, COR_COLORS.textMuted);
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJrZXlmcmFtZXMiLCJDT1JfQ09MT1JTIiwiYmxvY2tJbiIsIlN0eWxlZE1BSUFWaXoiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInRleHQiLCJuYXZ5IiwidGV4dE11dGVkIiwic3VyZmFjZU11dGVkIiwiYm9yZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQVZpei9NQUlBVml6LnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5pbXBvcnQgeyBDT1JfQ09MT1JTIH0gZnJvbSAnLi9NQUlBVml6LnR5cGVzJ1xuXG5jb25zdCBibG9ja0luID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVZpeiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICR7Q09SX0NPTE9SUy50ZXh0fTtcblxuICAvKiBDYWRhIHdpZGdldCBhcGFyZWNlIGNvbiB1biBmYWRlIGFsIGNlcnJhciBzdSB74oCmfSBtaWVudHJhcyBzdHJlbWVhLiAqL1xuICAuTUFJQVZpei1ibG9jayB7XG4gICAgYW5pbWF0aW9uOiAke2Jsb2NrSW59IDAuMzVzIGVhc2Utb3V0IGJvdGg7XG4gIH1cblxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5NQUlBVml6LWJsb2NrIHtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuTUFJQVZpei1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgfVxuXG4gIC5NQUlBVml6LXRpdGxlIHtcbiAgICAmJiB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIGNvbG9yOiAke0NPUl9DT0xPUlMubmF2eX07XG4gICAgfVxuICB9XG5cbiAgLk1BSUFWaXotc3VidGl0bGUge1xuICAgICYmIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICR7Q09SX0NPTE9SUy50ZXh0TXV0ZWR9O1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tLSBLUEkgY2FyZHMgLS0tICovXG4gIC5NQUlBVml6LWtwaXMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTUwcHgsIDFmcikpO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gIC5NQUlBVml6LWtwaS1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAke0NPUl9DT0xPUlMuc3VyZmFjZU11dGVkfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke0NPUl9DT0xPUlMuYm9yZGVyfTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB9XG5cbiAgLk1BSUFWaXota3BpLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICR7Q09SX0NPTE9SUy50ZXh0TXV0ZWR9O1xuICB9XG5cbiAgLk1BSUFWaXota3BpLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAke0NPUl9DT0xPUlMubmF2eX07XG4gIH1cblxuICAuTUFJQVZpei1rcGktZGVsdGEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgLyogLS0tIEZpZ3VyZXMgKGNoYXJ0cykgLS0tICovXG4gIC5NQUlBVml6LWZpZ3VyZSB7XG4gICAgJiYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLk1BSUFWaXotY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICR7Q09SX0NPTE9SUy5uYXZ5fTtcbiAgfVxuXG4gIC8qIC0tLSBEb251dCAtLS0gKi9cbiAgLk1BSUFWaXotZG9udXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyNHB4O1xuICB9XG5cbiAgLk1BSUFWaXotbGVnZW5kIHtcbiAgICAmJiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG4gIH1cblxuICAuTUFJQVZpei1sZWdlbmQtZG90IHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5cbiAgLk1BSUFWaXotbGVnZW5kLWxhYmVsIHtcbiAgICBjb2xvcjogJHtDT1JfQ09MT1JTLnRleHR9O1xuICB9XG5cbiAgLk1BSUFWaXotbGVnZW5kLXZhbHVlIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAke0NPUl9DT0xPUlMubmF2eX07XG4gIH1cblxuICAuTUFJQVZpei1lcnJvciB7XG4gICAgJiYge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICR7Q09SX0NPTE9SUy50ZXh0TXV0ZWR9O1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLFNBQVMsUUFBUSxtQkFBbUI7QUFFckQsU0FBU0MsVUFBVSxRQUFRLGlCQUFpQjtBQUU1QyxJQUFNQyxPQUFPLEdBQUdGLFNBQVMsNkVBU3hCO0FBRUQsT0FBTyxJQUFNRyxhQUFhLEdBQUdKLE1BQU0sQ0FBQ0ssR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHc1Q0FNNUJOLFVBQVUsQ0FBQ08sSUFBSSxFQUlUTixPQUFPLEVBb0JURCxVQUFVLENBQUNRLElBQUksRUFRZlIsVUFBVSxDQUFDUyxTQUFTLEVBZ0JqQlQsVUFBVSxDQUFDVSxZQUFZLEVBQ2pCVixVQUFVLENBQUNXLE1BQU0sRUFNNUJYLFVBQVUsQ0FBQ1MsU0FBUyxFQU9wQlQsVUFBVSxDQUFDUSxJQUFJLEVBcUJmUixVQUFVLENBQUNRLElBQUksRUFzQ2ZSLFVBQVUsQ0FBQ08sSUFBSSxFQUtmUCxVQUFVLENBQUNRLElBQUksRUFNYlIsVUFBVSxDQUFDUyxTQUFTLENBSWxDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Contrato de datos que el modelo emite dentro de un bloque ```maia-viz.
3
+ * El modelo NO genera HTML ni SVG: solo describe los datos. El render lo hace
4
+ * el cliente con estos tipos, por eso es seguro (no pasa por la sanitización
5
+ * de HTML de Streamdown).
6
+ */
7
+
8
+ /** Una tarjeta de KPI (los recuadros grandes con número + variación). */
9
+
10
+ /** Un punto de una serie (barra, donut, etc.). */
11
+
12
+ /** Bloques que pueden ir dentro de un reporte compuesto. */
13
+
14
+ /** Cualquier spec válido dentro de un bloque ```maia-viz. */
15
+
16
+ /**
17
+ * Orden de colores de serie según el design system de COR.
18
+ * Paleta de estados de tareas de COR — los gráficos viz SOLO pueden usar estos colores.
19
+ */
20
+ export var COR_CHART_COLORS = ['#0094CA',
21
+ // azul (Nueva)
22
+ '#FFAC2C',
23
+ // naranja (En proceso)
24
+ '#9B68BB',
25
+ // morado (En revisión)
26
+ '#ED2C50',
27
+ // rojo (Ajustes)
28
+ '#00C972',
29
+ // verde (Finalizada)
30
+ '#5A5A5A' // gris (neutral)
31
+ ];
32
+ export var COR_COLORS = {
33
+ blue: '#0094CA',
34
+ orange: '#FFAC2C',
35
+ purple: '#9B68BB',
36
+ red: '#ED2C50',
37
+ green: '#00C972',
38
+ gray: '#5A5A5A',
39
+ positive: '#00C972',
40
+ negative: '#ED2C50',
41
+ neutral: '#5A5A5A',
42
+ surface: '#FFFFFF',
43
+ surfaceMuted: '#F7F8FA',
44
+ border: 'rgba(0, 0, 0, 0.08)',
45
+ text: '#5A5A5A',
46
+ textMuted: 'rgba(90, 90, 90, 0.6)',
47
+ navy: '#5A5A5A'
48
+ };
49
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ0hBUlRfQ09MT1JTIiwiQ09SX0NPTE9SUyIsImJsdWUiLCJvcmFuZ2UiLCJwdXJwbGUiLCJyZWQiLCJncmVlbiIsImdyYXkiLCJwb3NpdGl2ZSIsIm5lZ2F0aXZlIiwibmV1dHJhbCIsInN1cmZhY2UiLCJzdXJmYWNlTXV0ZWQiLCJib3JkZXIiLCJ0ZXh0IiwidGV4dE11dGVkIiwibmF2eSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFWaXovTUFJQVZpei50eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRyYXRvIGRlIGRhdG9zIHF1ZSBlbCBtb2RlbG8gZW1pdGUgZGVudHJvIGRlIHVuIGJsb3F1ZSBgYGBtYWlhLXZpei5cbiAqIEVsIG1vZGVsbyBOTyBnZW5lcmEgSFRNTCBuaSBTVkc6IHNvbG8gZGVzY3JpYmUgbG9zIGRhdG9zLiBFbCByZW5kZXIgbG8gaGFjZVxuICogZWwgY2xpZW50ZSBjb24gZXN0b3MgdGlwb3MsIHBvciBlc28gZXMgc2VndXJvIChubyBwYXNhIHBvciBsYSBzYW5pdGl6YWNpw7NuXG4gKiBkZSBIVE1MIGRlIFN0cmVhbWRvd24pLlxuICovXG5cbmV4cG9ydCB0eXBlIFRyZW5kID0gJ3VwJyB8ICdkb3duJyB8ICdmbGF0J1xuXG4vKiogVW5hIHRhcmpldGEgZGUgS1BJIChsb3MgcmVjdWFkcm9zIGdyYW5kZXMgY29uIG7Dum1lcm8gKyB2YXJpYWNpw7NuKS4gKi9cbmV4cG9ydCB0eXBlIEtwaUl0ZW0gPSB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFsdWU6IHN0cmluZ1xuICAvKiogVGV4dG8gZGUgdmFyaWFjacOzbiwgcC4gZWouIFwiKzE4LjMlIHZzIDIwMjRcIi4gT3BjaW9uYWwuICovXG4gIGRlbHRhPzogc3RyaW5nXG4gIC8qKiBEaXJlY2Npw7NuIGRlIGxhIHZhcmlhY2nDs246IHBpbnRhIGVsIGRlbHRhIGVuIHZlcmRlL3Jvam8vZ3Jpcy4gKi9cbiAgdHJlbmQ/OiBUcmVuZFxufVxuXG4vKiogVW4gcHVudG8gZGUgdW5hIHNlcmllIChiYXJyYSwgZG9udXQsIGV0Yy4pLiAqL1xuZXhwb3J0IHR5cGUgU2VyaWVzUG9pbnQgPSB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFsdWU6IG51bWJlclxuICAvKiogQ29sb3Igb3ZlcnJpZGUgZW4gSEVYLiBTaSBubyBzZSBwYXNhLCBzZSB1c2EgbGEgcGFsZXRhIENPUiBwb3Igw61uZGljZS4gKi9cbiAgY29sb3I/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgS3Bpc1NwZWMgPSB7XG4gIHR5cGU6ICdrcGlzJ1xuICB0aXRsZT86IHN0cmluZ1xuICBzdWJ0aXRsZT86IHN0cmluZ1xuICBpdGVtczogS3BpSXRlbVtdXG59XG5cbmV4cG9ydCB0eXBlIEJhclNwZWMgPSB7XG4gIHR5cGU6ICdiYXInXG4gIHRpdGxlPzogc3RyaW5nXG4gIC8qKiBTdWZpam8gZGUgdW5pZGFkIHBhcmEgZWwgZWplL3Rvb2x0aXAsIHAuIGVqLiBcIk0gVVNEXCIuICovXG4gIHVuaXQ/OiBzdHJpbmdcbiAgZGF0YTogU2VyaWVzUG9pbnRbXVxufVxuXG5leHBvcnQgdHlwZSBEb251dFNwZWMgPSB7XG4gIHR5cGU6ICdkb251dCdcbiAgdGl0bGU/OiBzdHJpbmdcbiAgZGF0YTogU2VyaWVzUG9pbnRbXVxufVxuXG4vKiogQmxvcXVlcyBxdWUgcHVlZGVuIGlyIGRlbnRybyBkZSB1biByZXBvcnRlIGNvbXB1ZXN0by4gKi9cbmV4cG9ydCB0eXBlIFJlcG9ydEJsb2NrID0gS3Bpc1NwZWMgfCBCYXJTcGVjIHwgRG9udXRTcGVjXG5cbmV4cG9ydCB0eXBlIFJlcG9ydFNwZWMgPSB7XG4gIHR5cGU6ICdyZXBvcnQnXG4gIHRpdGxlPzogc3RyaW5nXG4gIHN1YnRpdGxlPzogc3RyaW5nXG4gIGJsb2NrczogUmVwb3J0QmxvY2tbXVxufVxuXG4vKiogQ3VhbHF1aWVyIHNwZWMgdsOhbGlkbyBkZW50cm8gZGUgdW4gYmxvcXVlIGBgYG1haWEtdml6LiAqL1xuZXhwb3J0IHR5cGUgTWFpYVZpelNwZWMgPSBLcGlzU3BlYyB8IEJhclNwZWMgfCBEb251dFNwZWMgfCBSZXBvcnRTcGVjXG5cbi8qKlxuICogT3JkZW4gZGUgY29sb3JlcyBkZSBzZXJpZSBzZWfDum4gZWwgZGVzaWduIHN5c3RlbSBkZSBDT1IuXG4gKiBQYWxldGEgZGUgZXN0YWRvcyBkZSB0YXJlYXMgZGUgQ09SIOKAlCBsb3MgZ3LDoWZpY29zIHZpeiBTT0xPIHB1ZWRlbiB1c2FyIGVzdG9zIGNvbG9yZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBDT1JfQ0hBUlRfQ09MT1JTID0gW1xuICAnIzAwOTRDQScsIC8vIGF6dWwgKE51ZXZhKVxuICAnI0ZGQUMyQycsIC8vIG5hcmFuamEgKEVuIHByb2Nlc28pXG4gICcjOUI2OEJCJywgLy8gbW9yYWRvIChFbiByZXZpc2nDs24pXG4gICcjRUQyQzUwJywgLy8gcm9qbyAoQWp1c3RlcylcbiAgJyMwMEM5NzInLCAvLyB2ZXJkZSAoRmluYWxpemFkYSlcbiAgJyM1QTVBNUEnLCAvLyBncmlzIChuZXV0cmFsKVxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQ09SX0NPTE9SUyA9IHtcbiAgYmx1ZTogJyMwMDk0Q0EnLFxuICBvcmFuZ2U6ICcjRkZBQzJDJyxcbiAgcHVycGxlOiAnIzlCNjhCQicsXG4gIHJlZDogJyNFRDJDNTAnLFxuICBncmVlbjogJyMwMEM5NzInLFxuICBncmF5OiAnIzVBNUE1QScsXG4gIHBvc2l0aXZlOiAnIzAwQzk3MicsXG4gIG5lZ2F0aXZlOiAnI0VEMkM1MCcsXG4gIG5ldXRyYWw6ICcjNUE1QTVBJyxcbiAgc3VyZmFjZTogJyNGRkZGRkYnLFxuICBzdXJmYWNlTXV0ZWQ6ICcjRjdGOEZBJyxcbiAgYm9yZGVyOiAncmdiYSgwLCAwLCAwLCAwLjA4KScsXG4gIHRleHQ6ICcjNUE1QTVBJyxcbiAgdGV4dE11dGVkOiAncmdiYSg5MCwgOTAsIDkwLCAwLjYpJyxcbiAgbmF2eTogJyM1QTVBNUEnLFxufSBhcyBjb25zdFxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7O0FBVUE7O0FBNkJBOztBQVVBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQSxnQkFBZ0IsR0FBRyxDQUM5QixTQUFTO0FBQUU7QUFDWCxTQUFTO0FBQUU7QUFDWCxTQUFTO0FBQUU7QUFDWCxTQUFTO0FBQUU7QUFDWCxTQUFTO0FBQUU7QUFDWCxTQUFTLENBQUU7QUFBQSxDQUNIO0FBRVYsT0FBTyxJQUFNQyxVQUFVLEdBQUc7RUFDeEJDLElBQUksRUFBRSxTQUFTO0VBQ2ZDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCQyxNQUFNLEVBQUUsU0FBUztFQUNqQkMsR0FBRyxFQUFFLFNBQVM7RUFDZEMsS0FBSyxFQUFFLFNBQVM7RUFDaEJDLElBQUksRUFBRSxTQUFTO0VBQ2ZDLFFBQVEsRUFBRSxTQUFTO0VBQ25CQyxRQUFRLEVBQUUsU0FBUztFQUNuQkMsT0FBTyxFQUFFLFNBQVM7RUFDbEJDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxZQUFZLEVBQUUsU0FBUztFQUN2QkMsTUFBTSxFQUFFLHFCQUFxQjtFQUM3QkMsSUFBSSxFQUFFLFNBQVM7RUFDZkMsU0FBUyxFQUFFLHVCQUF1QjtFQUNsQ0MsSUFBSSxFQUFFO0FBQ1IsQ0FBVSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,123 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import { COR_COLORS, COR_CHART_COLORS } from './MAIAViz.types';
3
+ import { normalizeSeries } from './MAIAViz.parse';
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ var WIDTH = 640;
6
+ var PAD_LEFT = 48;
7
+ var PAD_RIGHT = 16;
8
+ var PAD_TOP = 16;
9
+ var PLOT_H = 210;
10
+ var TICKS = 4;
11
+ var NICE_STEPS = [1, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10];
12
+ var niceCeil = function niceCeil(value) {
13
+ var _NICE_STEPS$find;
14
+ if (value <= 0) return 1;
15
+ var pow = Math.pow(10, Math.floor(Math.log10(value)));
16
+ var norm = value / pow;
17
+ var step = (_NICE_STEPS$find = NICE_STEPS.find(function (s) {
18
+ return s >= norm;
19
+ })) !== null && _NICE_STEPS$find !== void 0 ? _NICE_STEPS$find : 10;
20
+ return step * pow;
21
+ };
22
+ var truncate = function truncate(label, maxChars) {
23
+ return label.length > maxChars ? "".concat(label.slice(0, maxChars - 1), "\u2026") : label;
24
+ };
25
+ export var MAIAVizBar = function MAIAVizBar(_ref) {
26
+ var _spec$title;
27
+ var spec = _ref.spec;
28
+ var data = normalizeSeries(spec.data);
29
+ if (!data.length) return null;
30
+ var max = niceCeil(Math.max.apply(Math, _toConsumableArray(data.map(function (d) {
31
+ return d.value;
32
+ }))));
33
+ var plotW = WIDTH - PAD_LEFT - PAD_RIGHT;
34
+ var slot = plotW / data.length;
35
+ var barW = Math.min(slot * 0.55, 64);
36
+ var unit = spec.unit ? " ".concat(spec.unit) : '';
37
+
38
+ // Con nombres largos o muchas barras, las etiquetas horizontales se pisan:
39
+ // las rotamos y reservamos más alto abajo. Con pocas y cortas (Q1, Q2…) no.
40
+ var maxLabelLen = Math.max.apply(Math, _toConsumableArray(data.map(function (d) {
41
+ return d.label.length;
42
+ })));
43
+ var rotate = data.length > 4 || maxLabelLen > 9;
44
+ var labelCap = rotate ? 20 : Math.max(5, Math.floor(slot / 7));
45
+ var padBottom = rotate ? 92 : 40;
46
+ var height = PAD_TOP + PLOT_H + padBottom;
47
+ var yFor = function yFor(value) {
48
+ return PAD_TOP + PLOT_H - value / max * PLOT_H;
49
+ };
50
+ var baseline = PAD_TOP + PLOT_H;
51
+ return /*#__PURE__*/_jsxs("figure", {
52
+ className: "MAIAViz-figure",
53
+ children: [spec.title && /*#__PURE__*/_jsx("figcaption", {
54
+ className: "MAIAViz-caption",
55
+ children: spec.title
56
+ }), /*#__PURE__*/_jsxs("svg", {
57
+ viewBox: "0 0 ".concat(WIDTH, " ").concat(height),
58
+ role: "img",
59
+ "aria-label": (_spec$title = spec.title) !== null && _spec$title !== void 0 ? _spec$title : 'Gráfico de barras',
60
+ preserveAspectRatio: "xMidYMid meet",
61
+ style: {
62
+ width: '100%',
63
+ height: 'auto',
64
+ display: 'block'
65
+ },
66
+ children: [Array.from({
67
+ length: TICKS + 1
68
+ }, function (_, i) {
69
+ var value = max / TICKS * i;
70
+ var y = yFor(value);
71
+ return /*#__PURE__*/_jsxs("g", {
72
+ children: [/*#__PURE__*/_jsx("line", {
73
+ x1: PAD_LEFT,
74
+ y1: y,
75
+ x2: WIDTH - PAD_RIGHT,
76
+ y2: y,
77
+ stroke: COR_COLORS.border,
78
+ strokeWidth: 1
79
+ }), /*#__PURE__*/_jsx("text", {
80
+ x: PAD_LEFT - 8,
81
+ y: y + 4,
82
+ textAnchor: "end",
83
+ fontSize: 11,
84
+ fill: COR_COLORS.textMuted,
85
+ children: Math.round(value)
86
+ })]
87
+ }, "tick-".concat(value));
88
+ }), data.map(function (d, i) {
89
+ var _d$color;
90
+ var x = PAD_LEFT + slot * i + (slot - barW) / 2;
91
+ var y = yFor(d.value);
92
+ var h = baseline - y;
93
+ var fill = (_d$color = d.color) !== null && _d$color !== void 0 ? _d$color : COR_CHART_COLORS[i % COR_CHART_COLORS.length];
94
+ var cx = x + barW / 2;
95
+ var ly = baseline + (rotate ? 14 : 18);
96
+ return /*#__PURE__*/_jsxs("g", {
97
+ children: [/*#__PURE__*/_jsx("rect", {
98
+ x: x,
99
+ y: y,
100
+ width: barW,
101
+ height: Math.max(h, 0),
102
+ rx: 4,
103
+ fill: fill,
104
+ children: /*#__PURE__*/_jsx("title", {
105
+ children: "".concat(d.label, ": ").concat(d.value).concat(unit)
106
+ })
107
+ }), /*#__PURE__*/_jsxs("text", {
108
+ x: cx,
109
+ y: ly,
110
+ textAnchor: rotate ? 'end' : 'middle',
111
+ transform: rotate ? "rotate(-32 ".concat(cx, " ").concat(ly, ")") : undefined,
112
+ fontSize: 11,
113
+ fill: COR_COLORS.text,
114
+ children: [truncate(d.label, labelCap), /*#__PURE__*/_jsx("title", {
115
+ children: d.label
116
+ })]
117
+ })]
118
+ }, d.label);
119
+ })]
120
+ })]
121
+ });
122
+ };
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ09MT1JTIiwiQ09SX0NIQVJUX0NPTE9SUyIsIm5vcm1hbGl6ZVNlcmllcyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJXSURUSCIsIlBBRF9MRUZUIiwiUEFEX1JJR0hUIiwiUEFEX1RPUCIsIlBMT1RfSCIsIlRJQ0tTIiwiTklDRV9TVEVQUyIsIm5pY2VDZWlsIiwidmFsdWUiLCJfTklDRV9TVEVQUyRmaW5kIiwicG93IiwiTWF0aCIsImZsb29yIiwibG9nMTAiLCJub3JtIiwic3RlcCIsImZpbmQiLCJzIiwidHJ1bmNhdGUiLCJsYWJlbCIsIm1heENoYXJzIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJNQUlBVml6QmFyIiwiX3JlZiIsIl9zcGVjJHRpdGxlIiwic3BlYyIsImRhdGEiLCJtYXgiLCJhcHBseSIsIl90b0NvbnN1bWFibGVBcnJheSIsIm1hcCIsImQiLCJwbG90VyIsInNsb3QiLCJiYXJXIiwibWluIiwidW5pdCIsIm1heExhYmVsTGVuIiwicm90YXRlIiwibGFiZWxDYXAiLCJwYWRCb3R0b20iLCJoZWlnaHQiLCJ5Rm9yIiwiYmFzZWxpbmUiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsInRpdGxlIiwidmlld0JveCIsInJvbGUiLCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwic3R5bGUiLCJ3aWR0aCIsImRpc3BsYXkiLCJBcnJheSIsImZyb20iLCJfIiwiaSIsInkiLCJ4MSIsInkxIiwieDIiLCJ5MiIsInN0cm9rZSIsImJvcmRlciIsInN0cm9rZVdpZHRoIiwieCIsInRleHRBbmNob3IiLCJmb250U2l6ZSIsImZpbGwiLCJ0ZXh0TXV0ZWQiLCJyb3VuZCIsIl9kJGNvbG9yIiwiaCIsImNvbG9yIiwiY3giLCJseSIsInJ4IiwidHJhbnNmb3JtIiwidW5kZWZpbmVkIiwidGV4dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFWaXovTUFJQVZpekJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFyU3BlYywgQ09SX0NPTE9SUywgQ09SX0NIQVJUX0NPTE9SUyB9IGZyb20gJy4vTUFJQVZpei50eXBlcydcbmltcG9ydCB7IG5vcm1hbGl6ZVNlcmllcyB9IGZyb20gJy4vTUFJQVZpei5wYXJzZSdcblxudHlwZSBNQUlBVml6QmFyUHJvcHMgPSB7XG4gIHNwZWM6IEJhclNwZWNcbn1cblxuY29uc3QgV0lEVEggPSA2NDBcbmNvbnN0IFBBRF9MRUZUID0gNDhcbmNvbnN0IFBBRF9SSUdIVCA9IDE2XG5jb25zdCBQQURfVE9QID0gMTZcbmNvbnN0IFBMT1RfSCA9IDIxMFxuY29uc3QgVElDS1MgPSA0XG5cbmNvbnN0IE5JQ0VfU1RFUFMgPSBbMSwgMS41LCAyLCAyLjUsIDMsIDQsIDUsIDYsIDgsIDEwXVxuXG5jb25zdCBuaWNlQ2VpbCA9ICh2YWx1ZTogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgaWYgKHZhbHVlIDw9IDApIHJldHVybiAxXG4gIGNvbnN0IHBvdyA9IDEwICoqIE1hdGguZmxvb3IoTWF0aC5sb2cxMCh2YWx1ZSkpXG4gIGNvbnN0IG5vcm0gPSB2YWx1ZSAvIHBvd1xuICBjb25zdCBzdGVwID0gTklDRV9TVEVQUy5maW5kKHMgPT4gcyA+PSBub3JtKSA/PyAxMFxuICByZXR1cm4gc3RlcCAqIHBvd1xufVxuXG5jb25zdCB0cnVuY2F0ZSA9IChsYWJlbDogc3RyaW5nLCBtYXhDaGFyczogbnVtYmVyKTogc3RyaW5nID0+XG4gIGxhYmVsLmxlbmd0aCA+IG1heENoYXJzID8gYCR7bGFiZWwuc2xpY2UoMCwgbWF4Q2hhcnMgLSAxKX3igKZgIDogbGFiZWxcblxuZXhwb3J0IGNvbnN0IE1BSUFWaXpCYXIgPSAoeyBzcGVjIH06IE1BSUFWaXpCYXJQcm9wcykgPT4ge1xuICBjb25zdCBkYXRhID0gbm9ybWFsaXplU2VyaWVzKHNwZWMuZGF0YSlcbiAgaWYgKCFkYXRhLmxlbmd0aCkgcmV0dXJuIG51bGxcblxuICBjb25zdCBtYXggPSBuaWNlQ2VpbChNYXRoLm1heCguLi5kYXRhLm1hcChkID0+IGQudmFsdWUpKSlcbiAgY29uc3QgcGxvdFcgPSBXSURUSCAtIFBBRF9MRUZUIC0gUEFEX1JJR0hUXG4gIGNvbnN0IHNsb3QgPSBwbG90VyAvIGRhdGEubGVuZ3RoXG4gIGNvbnN0IGJhclcgPSBNYXRoLm1pbihzbG90ICogMC41NSwgNjQpXG4gIGNvbnN0IHVuaXQgPSBzcGVjLnVuaXQgPyBgICR7c3BlYy51bml0fWAgOiAnJ1xuXG4gIC8vIENvbiBub21icmVzIGxhcmdvcyBvIG11Y2hhcyBiYXJyYXMsIGxhcyBldGlxdWV0YXMgaG9yaXpvbnRhbGVzIHNlIHBpc2FuOlxuICAvLyBsYXMgcm90YW1vcyB5IHJlc2VydmFtb3MgbcOhcyBhbHRvIGFiYWpvLiBDb24gcG9jYXMgeSBjb3J0YXMgKFExLCBRMuKApikgbm8uXG4gIGNvbnN0IG1heExhYmVsTGVuID0gTWF0aC5tYXgoLi4uZGF0YS5tYXAoZCA9PiBkLmxhYmVsLmxlbmd0aCkpXG4gIGNvbnN0IHJvdGF0ZSA9IGRhdGEubGVuZ3RoID4gNCB8fCBtYXhMYWJlbExlbiA+IDlcbiAgY29uc3QgbGFiZWxDYXAgPSByb3RhdGUgPyAyMCA6IE1hdGgubWF4KDUsIE1hdGguZmxvb3Ioc2xvdCAvIDcpKVxuICBjb25zdCBwYWRCb3R0b20gPSByb3RhdGUgPyA5MiA6IDQwXG4gIGNvbnN0IGhlaWdodCA9IFBBRF9UT1AgKyBQTE9UX0ggKyBwYWRCb3R0b21cblxuICBjb25zdCB5Rm9yID0gKHZhbHVlOiBudW1iZXIpID0+IFBBRF9UT1AgKyBQTE9UX0ggLSAodmFsdWUgLyBtYXgpICogUExPVF9IXG4gIGNvbnN0IGJhc2VsaW5lID0gUEFEX1RPUCArIFBMT1RfSFxuXG4gIHJldHVybiAoXG4gICAgPGZpZ3VyZSBjbGFzc05hbWU9XCJNQUlBVml6LWZpZ3VyZVwiPlxuICAgICAge3NwZWMudGl0bGUgJiYgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPVwiTUFJQVZpei1jYXB0aW9uXCI+e3NwZWMudGl0bGV9PC9maWdjYXB0aW9uPn1cbiAgICAgIDxzdmdcbiAgICAgICAgdmlld0JveD17YDAgMCAke1dJRFRIfSAke2hlaWdodH1gfVxuICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgYXJpYS1sYWJlbD17c3BlYy50aXRsZSA/PyAnR3LDoWZpY28gZGUgYmFycmFzJ31cbiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIlxuICAgICAgICBzdHlsZT17eyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJywgZGlzcGxheTogJ2Jsb2NrJyB9fVxuICAgICAgPlxuICAgICAgICB7QXJyYXkuZnJvbSh7IGxlbmd0aDogVElDS1MgKyAxIH0sIChfLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSAobWF4IC8gVElDS1MpICogaVxuICAgICAgICAgIGNvbnN0IHkgPSB5Rm9yKHZhbHVlKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZyBrZXk9e2B0aWNrLSR7dmFsdWV9YH0+XG4gICAgICAgICAgICAgIDxsaW5lIHgxPXtQQURfTEVGVH0geTE9e3l9IHgyPXtXSURUSCAtIFBBRF9SSUdIVH0geTI9e3l9IHN0cm9rZT17Q09SX0NPTE9SUy5ib3JkZXJ9IHN0cm9rZVdpZHRoPXsxfSAvPlxuICAgICAgICAgICAgICA8dGV4dCB4PXtQQURfTEVGVCAtIDh9IHk9e3kgKyA0fSB0ZXh0QW5jaG9yPVwiZW5kXCIgZm9udFNpemU9ezExfSBmaWxsPXtDT1JfQ09MT1JTLnRleHRNdXRlZH0+XG4gICAgICAgICAgICAgICAge01hdGgucm91bmQodmFsdWUpfVxuICAgICAgICAgICAgICA8L3RleHQ+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cblxuICAgICAgICB7ZGF0YS5tYXAoKGQsIGkpID0+IHtcbiAgICAgICAgICBjb25zdCB4ID0gUEFEX0xFRlQgKyBzbG90ICogaSArIChzbG90IC0gYmFyVykgLyAyXG4gICAgICAgICAgY29uc3QgeSA9IHlGb3IoZC52YWx1ZSlcbiAgICAgICAgICBjb25zdCBoID0gYmFzZWxpbmUgLSB5XG4gICAgICAgICAgY29uc3QgZmlsbCA9IGQuY29sb3IgPz8gQ09SX0NIQVJUX0NPTE9SU1tpICUgQ09SX0NIQVJUX0NPTE9SUy5sZW5ndGhdXG4gICAgICAgICAgY29uc3QgY3ggPSB4ICsgYmFyVyAvIDJcbiAgICAgICAgICBjb25zdCBseSA9IGJhc2VsaW5lICsgKHJvdGF0ZSA/IDE0IDogMTgpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxnIGtleT17ZC5sYWJlbH0+XG4gICAgICAgICAgICAgIDxyZWN0IHg9e3h9IHk9e3l9IHdpZHRoPXtiYXJXfSBoZWlnaHQ9e01hdGgubWF4KGgsIDApfSByeD17NH0gZmlsbD17ZmlsbH0+XG4gICAgICAgICAgICAgICAgPHRpdGxlPntgJHtkLmxhYmVsfTogJHtkLnZhbHVlfSR7dW5pdH1gfTwvdGl0bGU+XG4gICAgICAgICAgICAgIDwvcmVjdD5cbiAgICAgICAgICAgICAgPHRleHRcbiAgICAgICAgICAgICAgICB4PXtjeH1cbiAgICAgICAgICAgICAgICB5PXtseX1cbiAgICAgICAgICAgICAgICB0ZXh0QW5jaG9yPXtyb3RhdGUgPyAnZW5kJyA6ICdtaWRkbGUnfVxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybT17cm90YXRlID8gYHJvdGF0ZSgtMzIgJHtjeH0gJHtseX0pYCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICBmb250U2l6ZT17MTF9XG4gICAgICAgICAgICAgICAgZmlsbD17Q09SX0NPTE9SUy50ZXh0fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RydW5jYXRlKGQubGFiZWwsIGxhYmVsQ2FwKX1cbiAgICAgICAgICAgICAgICA8dGl0bGU+e2QubGFiZWx9PC90aXRsZT5cbiAgICAgICAgICAgICAgPC90ZXh0PlxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAg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
@@ -0,0 +1,111 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ import { COR_COLORS, COR_CHART_COLORS } from './MAIAViz.types';
6
+ import { normalizeSeries } from './MAIAViz.parse';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ var SIZE = 200;
9
+ var STROKE = 34;
10
+ var R = (SIZE - STROKE) / 2;
11
+ var CENTER = SIZE / 2;
12
+ var polar = function polar(angleDeg) {
13
+ var rad = (angleDeg - 90) * Math.PI / 180;
14
+ return [CENTER + R * Math.cos(rad), CENTER + R * Math.sin(rad)];
15
+ };
16
+ var arcPath = function arcPath(startAngle, endAngle) {
17
+ var _polar = polar(startAngle),
18
+ _polar2 = _slicedToArray(_polar, 2),
19
+ x1 = _polar2[0],
20
+ y1 = _polar2[1];
21
+ var _polar3 = polar(endAngle),
22
+ _polar4 = _slicedToArray(_polar3, 2),
23
+ x2 = _polar4[0],
24
+ y2 = _polar4[1];
25
+ var largeArc = endAngle - startAngle > 180 ? 1 : 0;
26
+ return "M ".concat(x1, " ").concat(y1, " A ").concat(R, " ").concat(R, " 0 ").concat(largeArc, " 1 ").concat(x2, " ").concat(y2);
27
+ };
28
+ export var MAIAVizDonut = function MAIAVizDonut(_ref) {
29
+ var _spec$title;
30
+ var spec = _ref.spec;
31
+ var data = normalizeSeries(spec.data);
32
+ var total = data.reduce(function (sum, d) {
33
+ return sum + d.value;
34
+ }, 0);
35
+ if (!data.length || total <= 0) return null;
36
+ var cursor = 0;
37
+ var segments = data.map(function (d, i) {
38
+ var _d$color;
39
+ var start = cursor / total * 360;
40
+ cursor += d.value;
41
+ var end = cursor / total * 360;
42
+ return _objectSpread(_objectSpread({}, d), {}, {
43
+ color: (_d$color = d.color) !== null && _d$color !== void 0 ? _d$color : COR_CHART_COLORS[i % COR_CHART_COLORS.length],
44
+ pct: Math.round(d.value / total * 100),
45
+ // Evita el arco completo de 360° (no se dibuja); lo recortamos apenas.
46
+ path: arcPath(start, end >= 360 ? 359.99 : end)
47
+ });
48
+ });
49
+ return /*#__PURE__*/_jsxs("figure", {
50
+ className: "MAIAViz-figure",
51
+ children: [spec.title && /*#__PURE__*/_jsx("figcaption", {
52
+ className: "MAIAViz-caption",
53
+ children: spec.title
54
+ }), /*#__PURE__*/_jsxs("div", {
55
+ className: "MAIAViz-donut",
56
+ children: [/*#__PURE__*/_jsxs("svg", {
57
+ viewBox: "0 0 ".concat(SIZE, " ").concat(SIZE),
58
+ width: SIZE,
59
+ height: SIZE,
60
+ role: "img",
61
+ "aria-label": (_spec$title = spec.title) !== null && _spec$title !== void 0 ? _spec$title : 'Gráfico de dona',
62
+ children: [segments.map(function (s) {
63
+ return /*#__PURE__*/_jsx("path", {
64
+ d: s.path,
65
+ fill: "none",
66
+ stroke: s.color,
67
+ strokeWidth: STROKE,
68
+ strokeLinecap: "butt",
69
+ children: /*#__PURE__*/_jsx("title", {
70
+ children: "".concat(s.label, ": ").concat(s.pct, "%")
71
+ })
72
+ }, s.label);
73
+ }), /*#__PURE__*/_jsx("text", {
74
+ x: CENTER,
75
+ y: CENTER - 4,
76
+ textAnchor: "middle",
77
+ fontSize: 22,
78
+ fontWeight: 600,
79
+ fill: COR_COLORS.text,
80
+ children: total
81
+ }), /*#__PURE__*/_jsx("text", {
82
+ x: CENTER,
83
+ y: CENTER + 16,
84
+ textAnchor: "middle",
85
+ fontSize: 11,
86
+ fill: COR_COLORS.textMuted,
87
+ children: "Total"
88
+ })]
89
+ }), /*#__PURE__*/_jsx("ul", {
90
+ className: "MAIAViz-legend",
91
+ children: segments.map(function (s) {
92
+ return /*#__PURE__*/_jsxs("li", {
93
+ children: [/*#__PURE__*/_jsx("span", {
94
+ className: "MAIAViz-legend-dot",
95
+ style: {
96
+ backgroundColor: s.color
97
+ }
98
+ }), /*#__PURE__*/_jsx("span", {
99
+ className: "MAIAViz-legend-label",
100
+ children: s.label
101
+ }), /*#__PURE__*/_jsxs("span", {
102
+ className: "MAIAViz-legend-value",
103
+ children: [s.pct, "%"]
104
+ })]
105
+ }, s.label);
106
+ })
107
+ })]
108
+ })]
109
+ });
110
+ };
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ09MT1JTIiwiQ09SX0NIQVJUX0NPTE9SUyIsIm5vcm1hbGl6ZVNlcmllcyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJTSVpFIiwiU1RST0tFIiwiUiIsIkNFTlRFUiIsInBvbGFyIiwiYW5nbGVEZWciLCJyYWQiLCJNYXRoIiwiUEkiLCJjb3MiLCJzaW4iLCJhcmNQYXRoIiwic3RhcnRBbmdsZSIsImVuZEFuZ2xlIiwiX3BvbGFyIiwiX3BvbGFyMiIsIl9zbGljZWRUb0FycmF5IiwieDEiLCJ5MSIsIl9wb2xhcjMiLCJfcG9sYXI0IiwieDIiLCJ5MiIsImxhcmdlQXJjIiwiY29uY2F0IiwiTUFJQVZpekRvbnV0IiwiX3JlZiIsIl9zcGVjJHRpdGxlIiwic3BlYyIsImRhdGEiLCJ0b3RhbCIsInJlZHVjZSIsInN1bSIsImQiLCJ2YWx1ZSIsImxlbmd0aCIsImN1cnNvciIsInNlZ21lbnRzIiwibWFwIiwiaSIsIl9kJGNvbG9yIiwic3RhcnQiLCJlbmQiLCJfb2JqZWN0U3ByZWFkIiwiY29sb3IiLCJwY3QiLCJyb3VuZCIsInBhdGgiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsInRpdGxlIiwidmlld0JveCIsIndpZHRoIiwiaGVpZ2h0Iiwicm9sZSIsInMiLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwibGFiZWwiLCJ4IiwieSIsInRleHRBbmNob3IiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJ0ZXh0IiwidGV4dE11dGVkIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBVml6L01BSUFWaXpEb251dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9udXRTcGVjLCBDT1JfQ09MT1JTLCBDT1JfQ0hBUlRfQ09MT1JTIH0gZnJvbSAnLi9NQUlBVml6LnR5cGVzJ1xuaW1wb3J0IHsgbm9ybWFsaXplU2VyaWVzIH0gZnJvbSAnLi9NQUlBVml6LnBhcnNlJ1xuXG50eXBlIE1BSUFWaXpEb251dFByb3BzID0ge1xuICBzcGVjOiBEb251dFNwZWNcbn1cblxuY29uc3QgU0laRSA9IDIwMFxuY29uc3QgU1RST0tFID0gMzRcbmNvbnN0IFIgPSAoU0laRSAtIFNUUk9LRSkgLyAyXG5jb25zdCBDRU5URVIgPSBTSVpFIC8gMlxuXG5jb25zdCBwb2xhciA9IChhbmdsZURlZzogbnVtYmVyKTogW251bWJlciwgbnVtYmVyXSA9PiB7XG4gIGNvbnN0IHJhZCA9ICgoYW5nbGVEZWcgLSA5MCkgKiBNYXRoLlBJKSAvIDE4MFxuICByZXR1cm4gW0NFTlRFUiArIFIgKiBNYXRoLmNvcyhyYWQpLCBDRU5URVIgKyBSICogTWF0aC5zaW4ocmFkKV1cbn1cblxuY29uc3QgYXJjUGF0aCA9IChzdGFydEFuZ2xlOiBudW1iZXIsIGVuZEFuZ2xlOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBbeDEsIHkxXSA9IHBvbGFyKHN0YXJ0QW5nbGUpXG4gIGNvbnN0IFt4MiwgeTJdID0gcG9sYXIoZW5kQW5nbGUpXG4gIGNvbnN0IGxhcmdlQXJjID0gZW5kQW5nbGUgLSBzdGFydEFuZ2xlID4gMTgwID8gMSA6IDBcbiAgcmV0dXJuIGBNICR7eDF9ICR7eTF9IEEgJHtSfSAke1J9IDAgJHtsYXJnZUFyY30gMSAke3gyfSAke3kyfWBcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFWaXpEb251dCA9ICh7IHNwZWMgfTogTUFJQVZpekRvbnV0UHJvcHMpID0+IHtcbiAgY29uc3QgZGF0YSA9IG5vcm1hbGl6ZVNlcmllcyhzcGVjLmRhdGEpXG4gIGNvbnN0IHRvdGFsID0gZGF0YS5yZWR1Y2UoKHN1bSwgZCkgPT4gc3VtICsgZC52YWx1ZSwgMClcbiAgaWYgKCFkYXRhLmxlbmd0aCB8fCB0b3RhbCA8PSAwKSByZXR1cm4gbnVsbFxuXG4gIGxldCBjdXJzb3IgPSAwXG4gIGNvbnN0IHNlZ21lbnRzID0gZGF0YS5tYXAoKGQsIGkpID0+IHtcbiAgICBjb25zdCBzdGFydCA9IChjdXJzb3IgLyB0b3RhbCkgKiAzNjBcbiAgICBjdXJzb3IgKz0gZC52YWx1ZVxuICAgIGNvbnN0IGVuZCA9IChjdXJzb3IgLyB0b3RhbCkgKiAzNjBcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZCxcbiAgICAgIGNvbG9yOiBkLmNvbG9yID8/IENPUl9DSEFSVF9DT0xPUlNbaSAlIENPUl9DSEFSVF9DT0xPUlMubGVuZ3RoXSxcbiAgICAgIHBjdDogTWF0aC5yb3VuZCgoZC52YWx1ZSAvIHRvdGFsKSAqIDEwMCksXG4gICAgICAvLyBFdml0YSBlbCBhcmNvIGNvbXBsZXRvIGRlIDM2MMKwIChubyBzZSBkaWJ1amEpOyBsbyByZWNvcnRhbW9zIGFwZW5hcy5cbiAgICAgIHBhdGg6IGFyY1BhdGgoc3RhcnQsIGVuZCA+PSAzNjAgPyAzNTkuOTkgOiBlbmQpLFxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gKFxuICAgIDxmaWd1cmUgY2xhc3NOYW1lPVwiTUFJQVZpei1maWd1cmVcIj5cbiAgICAgIHtzcGVjLnRpdGxlICYmIDxmaWdjYXB0aW9uIGNsYXNzTmFtZT1cIk1BSUFWaXotY2FwdGlvblwiPntzcGVjLnRpdGxlfTwvZmlnY2FwdGlvbj59XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIk1BSUFWaXotZG9udXRcIj5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIHZpZXdCb3g9e2AwIDAgJHtTSVpFfSAke1NJWkV9YH1cbiAgICAgICAgICB3aWR0aD17U0laRX1cbiAgICAgICAgICBoZWlnaHQ9e1NJWkV9XG4gICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgYXJpYS1sYWJlbD17c3BlYy50aXRsZSA/PyAnR3LDoWZpY28gZGUgZG9uYSd9XG4gICAgICAgID5cbiAgICAgICAgICB7c2VnbWVudHMubWFwKHMgPT4gKFxuICAgICAgICAgICAgPHBhdGgga2V5PXtzLmxhYmVsfSBkPXtzLnBhdGh9IGZpbGw9XCJub25lXCIgc3Ryb2tlPXtzLmNvbG9yfSBzdHJva2VXaWR0aD17U1RST0tFfSBzdHJva2VMaW5lY2FwPVwiYnV0dFwiPlxuICAgICAgICAgICAgICA8dGl0bGU+e2Ake3MubGFiZWx9OiAke3MucGN0fSVgfTwvdGl0bGU+XG4gICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAgPHRleHQgeD17Q0VOVEVSfSB5PXtDRU5URVIgLSA0fSB0ZXh0QW5jaG9yPVwibWlkZGxlXCIgZm9udFNpemU9ezIyfSBmb250V2VpZ2h0PXs2MDB9IGZpbGw9e0NPUl9DT0xPUlMudGV4dH0+XG4gICAgICAgICAgICB7dG90YWx9XG4gICAgICAgICAgPC90ZXh0PlxuICAgICAgICAgIDx0ZXh0IHg9e0NFTlRFUn0geT17Q0VOVEVSICsgMTZ9IHRleHRBbmNob3I9XCJtaWRkbGVcIiBmb250U2l6ZT17MTF9IGZpbGw9e0NPUl9DT0xPUlMudGV4dE11dGVkfT5cbiAgICAgICAgICAgIFRvdGFsXG4gICAgICAgICAgPC90ZXh0PlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHVsIGNsYXNzTmFtZT1cIk1BSUFWaXotbGVnZW5kXCI+XG4gICAgICAgICAge3NlZ21lbnRzLm1hcChzID0+IChcbiAgICAgICAgICAgIDxsaSBrZXk9e3MubGFiZWx9PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJNQUlBVml6LWxlZ2VuZC1kb3RcIiBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IHMuY29sb3IgfX0gLz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiTUFJQVZpei1sZWdlbmQtbGFiZWxcIj57cy5sYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIk1BSUFWaXotbGVnZW5kLXZhbHVlXCI+e3MucGN0fSU8L3NwYW4+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9maWd1cmU+XG4gIClcbn1cbiJdLCJtYXBw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QUFBLGVBQ25HcEQsSUFBQTtjQUFBb0QsUUFBQSxLQUFBekIsTUFBQSxDQUFXK0IsQ0FBQyxDQUFDSyxLQUFLLFFBQUFwQyxNQUFBLENBQUsrQixDQUFDLENBQUNWLEdBQUc7WUFBQSxDQUFXO1VBQUMsR0FEL0JVLENBQUMsQ0FBQ0ssS0FFUCxDQUFDO1FBQUEsQ0FDUixDQUFDLGVBQ0YvRCxJQUFBO1VBQU1nRSxDQUFDLEVBQUUxRCxNQUFPO1VBQUMyRCxDQUFDLEVBQUUzRCxNQUFNLEdBQUcsQ0FBRTtVQUFDNEQsVUFBVSxFQUFDLFFBQVE7VUFBQ0MsUUFBUSxFQUFFLEVBQUc7VUFBQ0MsVUFBVSxFQUFFLEdBQUk7VUFBQ1QsSUFBSSxFQUFFL0QsVUFBVSxDQUFDeUUsSUFBSztVQUFBakIsUUFBQSxFQUN0R25CO1FBQUssQ0FDRixDQUFDLGVBQ1BqQyxJQUFBO1VBQU1nRSxDQUFDLEVBQUUxRCxNQUFPO1VBQUMyRCxDQUFDLEVBQUUzRCxNQUFNLEdBQUcsRUFBRztVQUFDNEQsVUFBVSxFQUFDLFFBQVE7VUFBQ0MsUUFBUSxFQUFFLEVBQUc7VUFBQ1IsSUFBSSxFQUFFL0QsVUFBVSxDQUFDMEUsU0FBVTtVQUFBbEIsUUFBQSxFQUFDO1FBRS9GLENBQU0sQ0FBQztNQUFBLENBQ0osQ0FBQyxlQUNOcEQsSUFBQTtRQUFJbUQsU0FBUyxFQUFDLGdCQUFnQjtRQUFBQyxRQUFBLEVBQzNCWixRQUFRLENBQUNDLEdBQUcsQ0FBQyxVQUFBaUIsQ0FBQztVQUFBLG9CQUNieEQsS0FBQTtZQUFBa0QsUUFBQSxnQkFDRXBELElBQUE7Y0FBTW1ELFNBQVMsRUFBQyxvQkFBb0I7Y0FBQ29CLEtBQUssRUFBRTtnQkFBRUMsZUFBZSxFQUFFZCxDQUFDLENBQUNYO2NBQU07WUFBRSxDQUFFLENBQUMsZUFDNUUvQyxJQUFBO2NBQU1tRCxTQUFTLEVBQUMsc0JBQXNCO2NBQUFDLFFBQUEsRUFBRU0sQ0FBQyxDQUFDSztZQUFLLENBQU8sQ0FBQyxlQUN2RDdELEtBQUE7Y0FBTWlELFNBQVMsRUFBQyxzQkFBc0I7Y0FBQUMsUUFBQSxHQUFFTSxDQUFDLENBQUNWLEdBQUcsRUFBQyxHQUFDO1lBQUEsQ0FBTSxDQUFDO1VBQUEsR0FIL0NVLENBQUMsQ0FBQ0ssS0FJUCxDQUFDO1FBQUEsQ0FDTjtNQUFDLENBQ0EsQ0FBQztJQUFBLENBQ0YsQ0FBQztFQUFBLENBQ0EsQ0FBQztBQUViLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,34 @@
1
+ import { COR_COLORS } from './MAIAViz.types';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ var deltaColor = function deltaColor(trend) {
4
+ if (trend === 'up') return COR_COLORS.positive;
5
+ if (trend === 'down') return COR_COLORS.negative;
6
+ return COR_COLORS.neutral;
7
+ };
8
+ export var MAIAVizKpis = function MAIAVizKpis(_ref) {
9
+ var spec = _ref.spec;
10
+ var items = Array.isArray(spec.items) ? spec.items : [];
11
+ if (!items.length) return null;
12
+ return /*#__PURE__*/_jsx("div", {
13
+ className: "MAIAViz-kpis",
14
+ children: items.map(function (item) {
15
+ return /*#__PURE__*/_jsxs("div", {
16
+ className: "MAIAViz-kpi-card",
17
+ children: [/*#__PURE__*/_jsx("span", {
18
+ className: "MAIAViz-kpi-label",
19
+ children: item.label
20
+ }), /*#__PURE__*/_jsx("span", {
21
+ className: "MAIAViz-kpi-value",
22
+ children: item.value
23
+ }), item.delta && /*#__PURE__*/_jsx("span", {
24
+ className: "MAIAViz-kpi-delta",
25
+ style: {
26
+ color: deltaColor(item.trend)
27
+ },
28
+ children: item.delta
29
+ })]
30
+ }, item.label);
31
+ })
32
+ });
33
+ };
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ09MT1JTIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsImRlbHRhQ29sb3IiLCJ0cmVuZCIsInBvc2l0aXZlIiwibmVnYXRpdmUiLCJuZXV0cmFsIiwiTUFJQVZpektwaXMiLCJfcmVmIiwic3BlYyIsIml0ZW1zIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJtYXAiLCJpdGVtIiwibGFiZWwiLCJ2YWx1ZSIsImRlbHRhIiwic3R5bGUiLCJjb2xvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFWaXovTUFJQVZpektwaXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtwaXNTcGVjLCBDT1JfQ09MT1JTLCBUcmVuZCB9IGZyb20gJy4vTUFJQVZpei50eXBlcydcblxudHlwZSBNQUlBVml6S3Bpc1Byb3BzID0ge1xuICBzcGVjOiBLcGlzU3BlY1xufVxuXG5jb25zdCBkZWx0YUNvbG9yID0gKHRyZW5kPzogVHJlbmQpOiBzdHJpbmcgPT4ge1xuICBpZiAodHJlbmQgPT09ICd1cCcpIHJldHVybiBDT1JfQ09MT1JTLnBvc2l0aXZlXG4gIGlmICh0cmVuZCA9PT0gJ2Rvd24nKSByZXR1cm4gQ09SX0NPTE9SUy5uZWdhdGl2ZVxuICByZXR1cm4gQ09SX0NPTE9SUy5uZXV0cmFsXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBVml6S3BpcyA9ICh7IHNwZWMgfTogTUFJQVZpektwaXNQcm9wcykgPT4ge1xuICBjb25zdCBpdGVtcyA9IEFycmF5LmlzQXJyYXkoc3BlYy5pdGVtcykgPyBzcGVjLml0ZW1zIDogW11cbiAgaWYgKCFpdGVtcy5sZW5ndGgpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIk1BSUFWaXota3Bpc1wiPlxuICAgICAge2l0ZW1zLm1hcChpdGVtID0+IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJNQUlBVml6LWtwaS1jYXJkXCIga2V5PXtpdGVtLmxhYmVsfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJNQUlBVml6LWtwaS1sYWJlbFwiPntpdGVtLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJNQUlBVml6LWtwaS12YWx1ZVwiPntpdGVtLnZhbHVlfTwvc3Bhbj5cbiAgICAgICAgICB7aXRlbS5kZWx0YSAmJiAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJNQUlBVml6LWtwaS1kZWx0YVwiIHN0eWxlPXt7IGNvbG9yOiBkZWx0YUNvbG9yKGl0ZW0udHJlbmQpIH19PlxuICAgICAgICAgICAgICB7aXRlbS5kZWx0YX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQW1CQSxVQUFVLFFBQWUsaUJBQWlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQU03RCxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSUMsS0FBYSxFQUFhO0VBQzVDLElBQUlBLEtBQUssS0FBSyxJQUFJLEVBQUUsT0FBT04sVUFBVSxDQUFDTyxRQUFRO0VBQzlDLElBQUlELEtBQUssS0FBSyxNQUFNLEVBQUUsT0FBT04sVUFBVSxDQUFDUSxRQUFRO0VBQ2hELE9BQU9SLFVBQVUsQ0FBQ1MsT0FBTztBQUMzQixDQUFDO0FBRUQsT0FBTyxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsSUFBQSxFQUFtQztFQUFBLElBQTdCQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtFQUNoQyxJQUFNQyxLQUFLLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSCxJQUFJLENBQUNDLEtBQUssQ0FBQyxHQUFHRCxJQUFJLENBQUNDLEtBQUssR0FBRyxFQUFFO0VBQ3pELElBQUksQ0FBQ0EsS0FBSyxDQUFDRyxNQUFNLEVBQUUsT0FBTyxJQUFJO0VBRTlCLG9CQUNFZCxJQUFBO0lBQUtlLFNBQVMsRUFBQyxjQUFjO0lBQUFDLFFBQUEsRUFDMUJMLEtBQUssQ0FBQ00sR0FBRyxDQUFDLFVBQUFDLElBQUk7TUFBQSxvQkFDYmhCLEtBQUE7UUFBS2EsU0FBUyxFQUFDLGtCQUFrQjtRQUFBQyxRQUFBLGdCQUMvQmhCLElBQUE7VUFBTWUsU0FBUyxFQUFDLG1CQUFtQjtVQUFBQyxRQUFBLEVBQUVFLElBQUksQ0FBQ0M7UUFBSyxDQUFPLENBQUMsZUFDdkRuQixJQUFBO1VBQU1lLFNBQVMsRUFBQyxtQkFBbUI7VUFBQUMsUUFBQSxFQUFFRSxJQUFJLENBQUNFO1FBQUssQ0FBTyxDQUFDLEVBQ3RERixJQUFJLENBQUNHLEtBQUssaUJBQ1RyQixJQUFBO1VBQU1lLFNBQVMsRUFBQyxtQkFBbUI7VUFBQ08sS0FBSyxFQUFFO1lBQUVDLEtBQUssRUFBRXBCLFVBQVUsQ0FBQ2UsSUFBSSxDQUFDZCxLQUFLO1VBQUUsQ0FBRTtVQUFBWSxRQUFBLEVBQzFFRSxJQUFJLENBQUNHO1FBQUssQ0FDUCxDQUNQO01BQUEsR0FQb0NILElBQUksQ0FBQ0MsS0FRdkMsQ0FBQztJQUFBLENBQ1A7RUFBQyxDQUNDLENBQUM7QUFFVixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,85 @@
1
+ # MAIAViz — PoC de visualizaciones inline en el chat
2
+
3
+ Renderiza KPIs, gráficos de barras y donas dentro de los mensajes de MAIA, igual
4
+ que Claude renderiza cuadros y gráficos. **El modelo no genera HTML ni SVG**: solo
5
+ emite datos en JSON dentro de un bloque de código ` ```maia-viz `. El render lo hace
6
+ el cliente (estos componentes), por lo que es seguro y no pasa por la sanitización
7
+ de HTML de Streamdown.
8
+
9
+ ## Cómo funciona
10
+
11
+ Streamdown expone `plugins.renderers` (el mismo mecanismo con el que integra Mermaid).
12
+ Registramos un `CustomRenderer` para el lenguaje `maia-viz`:
13
+
14
+ ```tsx
15
+ // maiaStreamdownRenderers.tsx
16
+ export const MAIA_STREAMDOWN_RENDERERS = [{ language: 'maia-viz', component: MAIAViz }]
17
+
18
+ // MAIAMessage.tsx
19
+ <Streamdown plugins={{ code, renderers: MAIA_STREAMDOWN_RENDERERS }}>{message}</Streamdown>
20
+ ```
21
+
22
+ Cuando el stream contiene un fence ` ```maia-viz `, Streamdown llama a `MAIAViz`
23
+ con `{ code, isIncomplete, language, meta }`. Mientras `isIncomplete` es `true`
24
+ (JSON parcial durante el streaming) mostramos un skeleton; al cerrarse el fence,
25
+ parseamos el JSON y dibujamos la visualización.
26
+
27
+ ## Contrato de datos
28
+
29
+ Un bloque `maia-viz` contiene **un** objeto JSON. Tipos soportados:
30
+
31
+ ### `kpis` — tarjetas de indicadores
32
+ ```maia-viz
33
+ { "type": "kpis", "items": [
34
+ { "label": "Ingresos", "value": "$184.6M", "delta": "+18.3% vs 2024", "trend": "up" },
35
+ { "label": "Margen EBITDA", "value": "21.4%", "delta": "+2.1 pts", "trend": "up" }
36
+ ] }
37
+ ```
38
+
39
+ ### `bar` — gráfico de barras
40
+ ```maia-viz
41
+ { "type": "bar", "title": "Ingresos por trimestre", "unit": "M USD", "data": [
42
+ { "label": "Q1", "value": 40 }, { "label": "Q2", "value": 44 },
43
+ { "label": "Q3", "value": 47 }, { "label": "Q4", "value": 52 }
44
+ ] }
45
+ ```
46
+
47
+ ### `donut` — distribución porcentual
48
+ ```maia-viz
49
+ { "type": "donut", "title": "Mix de ingresos", "data": [
50
+ { "label": "Last-mile", "value": 52 }, { "label": "Freight", "value": 28 },
51
+ { "label": "Warehousing", "value": 13 }, { "label": "Otros", "value": 7 }
52
+ ] }
53
+ ```
54
+
55
+ ### `report` — reporte compuesto (varios bloques)
56
+ ```maia-viz
57
+ { "type": "report", "title": "Nordvik Logistics — KPIs anuales",
58
+ "subtitle": "Año fiscal 2025 · Logística",
59
+ "blocks": [
60
+ { "type": "kpis", "items": [ ... ] },
61
+ { "type": "bar", "title": "Ingresos por trimestre", "unit": "M USD", "data": [ ... ] },
62
+ { "type": "donut", "title": "Mix de ingresos", "data": [ ... ] }
63
+ ] }
64
+ ```
65
+
66
+ Campos: `delta` y `trend` (`up`/`down`/`flat`) son opcionales; `trend` colorea el
67
+ delta (verde/rojo/gris). `color` (HEX) es opcional por punto; si no, se usa la
68
+ paleta de COR por índice (navy → blue → teal → green → purple → ...).
69
+
70
+ ## Snippet para el system prompt del agente
71
+
72
+ > Cuando presentes métricas, KPIs, distribuciones o series numéricas, podés
73
+ > renderizar una visualización emitiendo un bloque de código con el lenguaje
74
+ > `maia-viz` que contenga **un único objeto JSON válido** con el contrato
75
+ > documentado (tipos: `kpis`, `bar`, `donut`, `report`). No incluyas texto
76
+ > dentro del bloque, solo JSON. Usá una visualización solo cuando aporte valor
77
+ > sobre el texto; el resto del mensaje sigue siendo Markdown normal. Si no estás
78
+ > seguro de los datos, no inventes un gráfico.
79
+
80
+ ## Extensión
81
+
82
+ Agregar un tipo nuevo (p. ej. `line`): crear `MAIAVizLine.tsx`, sumarlo al
83
+ discriminador en `MAIAViz.tsx` (`renderBlock`) y al contrato en `MAIAViz.types.ts`.
84
+ Para charts más complejos/interactivos se puede reemplazar el SVG por Recharts sin
85
+ cambiar el contrato ni el cableado de Streamdown.
@@ -0,0 +1,2 @@
1
+ export { MAIAViz } from './MAIAViz';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQUlBVml6Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQVZpei9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNQUlBVml6IH0gZnJvbSAnLi9NQUlBVml6J1xuZXhwb3J0IHR5cGUge1xuICBNYWlhVml6U3BlYyxcbiAgS3Bpc1NwZWMsXG4gIEJhclNwZWMsXG4gIERvbnV0U3BlYyxcbiAgUmVwb3J0U3BlYyxcbiAgUmVwb3J0QmxvY2ssXG4gIEtwaUl0ZW0sXG4gIFNlcmllc1BvaW50LFxufSBmcm9tICcuL01BSUFWaXoudHlwZXMnXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sUUFBUSxXQUFXIiwiaWdub3JlTGlzdCI6W119
@@ -31,7 +31,5 @@ export { MaiaChatLayoutMenuIcon } from './MaiaChatLayoutMenuIcon';
31
31
  export { MAIAIsologo } from './MAIAIsologo';
32
32
  export { MaiaStoreIcon } from './MaiaStoreIcon';
33
33
  export { MyAgentsNavIcon } from './MyAgentsNavIcon';
34
- export { SkillsNavIcon } from './SkillsNavIcon';
35
34
  export { NotionIcon } from './NotionIcon';
36
- export { SkillIcon } from './SkillIcon';
37
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBSUljb24iLCJFcnJvclN0YXRlIiwiQ29yTG9nbyIsIkhvbWVJY29uIiwiTmV3Q2hhdCIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkNzdkZpbGVJY29uIiwiVGV4dEZpbGVJY29uIiwiUGRmRmlsZUljb24iLCJJbWFnZUZpbGVJY29uIiwiWGxzeEZpbGVJY29uIiwiWGxzRmlsZUljb24iLCJNcDNGaWxlSWNvbiIsIldhdkZpbGVJY29uIiwiQWFjRmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsIkFjY2Vzc2liaWxpdHlJY29uIiwiQnJhaW5JY29uIiwiQWdlbnRNYWlhSWNvbiIsIkZhcXNJY29uIiwiRmFxQ2hldnJvbkljb24iLCJNQUlBSWNvbiIsIk1haWFDaGF0TGF5b3V0TWVudUljb24iLCJNQUlBSXNvbG9nbyIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJTa2lsbHNOYXZJY29uIiwiTm90aW9uSWNvbiIsIlNraWxsSWNvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL2ljb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFJSWNvbiB9IGZyb20gJy4vQUlJY29uJ1xuZXhwb3J0IHsgRXJyb3JTdGF0ZSB9IGZyb20gJy4vRXJyb3JTdGF0ZSdcbmV4cG9ydCB7IENvckxvZ28gfSBmcm9tICcuL0NvckxvZ28nXG5leHBvcnQgeyBIb21lSWNvbiB9IGZyb20gJy4vSG9tZUljb24nXG5leHBvcnQgeyBOZXdDaGF0IH0gZnJvbSAnLi9OZXdDaGF0J1xuZXhwb3J0IHsgRG9jRmlsZUljb24gfSBmcm9tICcuL0RvY0ZpbGUnXG5leHBvcnQgeyBEb2N4RmlsZUljb24gfSBmcm9tICcuL0RvY3hGaWxlJ1xuZXhwb3J0IHsgTURGaWxlSWNvbiB9IGZyb20gJy4vTURGaWxlJ1xuZXhwb3J0IHsgQ3N2RmlsZUljb24gfSBmcm9tICcuL0NzdkZpbGUnXG5leHBvcnQgeyBUZXh0RmlsZUljb24gfSBmcm9tICcuL1RleHRGaWxlJ1xuZXhwb3J0IHsgUGRmRmlsZUljb24gfSBmcm9tICcuL1BkZkZpbGUnXG5leHBvcnQgeyBJbWFnZUZpbGVJY29uIH0gZnJvbSAnLi9JbWFnZUZpbGUnXG5leHBvcnQgeyBYbHN4RmlsZUljb24gfSBmcm9tICcuL1hsc3hGaWxlJ1xuZXhwb3J0IHsgWGxzRmlsZUljb24gfSBmcm9tICcuL1hsc0ZpbGUnXG5leHBvcnQgeyBNcDNGaWxlSWNvbiB9IGZyb20gJy4vTXAzRmlsZSdcbmV4cG9ydCB7IFdhdkZpbGVJY29uIH0gZnJvbSAnLi9XYXZGaWxlJ1xuZXhwb3J0IHsgQWFjRmlsZUljb24gfSBmcm9tICcuL0FhY0ZpbGUnXG5leHBvcnQgeyBGbGFjRmlsZUljb24gfSBmcm9tICcuL0ZsYWNJY29uJ1xuZXhwb3J0IHsgTTRhRmlsZUljb24gfSBmcm9tICcuL000YUZpbGUnXG5leHBvcnQgeyBNcDRGaWxlSWNvbiB9IGZyb20gJy4vTXA0RmlsZSdcbmV4cG9ydCB7IE9nYUZpbGVJY29uIH0gZnJvbSAnLi9PZ2FGaWxlJ1xuZXhwb3J0IHsgT2dnRmlsZUljb24gfSBmcm9tICcuL09nZ0ZpbGUnXG5leHBvcnQgeyBXZWJtRmlsZUljb24gfSBmcm9tICcuL1dlYm1GaWxlJ1xuZXhwb3J0IHsgQWNjZXNzaWJpbGl0eUljb24gfSBmcm9tICcuL0FjY2Vzc2liaWxpdHlJY29uJ1xuZXhwb3J0IHsgQnJhaW5JY29uIH0gZnJvbSAnLi9CcmFpbidcbmV4cG9ydCB7IEFnZW50TWFpYUljb24gfSBmcm9tICcuL0FnZW50TWFpYUljb24nXG5leHBvcnQgeyBGYXFzSWNvbiB9IGZyb20gJy4vRmFxc0ljb24nXG5leHBvcnQgeyBGYXFDaGV2cm9uSWNvbiB9IGZyb20gJy4vRmFxQ2hldnJvbkljb24nXG5leHBvcnQgeyBNQUlBSWNvbiB9IGZyb20gJy4vTUFJQUljb24nXG5leHBvcnQgeyBNYWlhQ2hhdExheW91dE1lbnVJY29uIH0gZnJvbSAnLi9NYWlhQ2hhdExheW91dE1lbnVJY29uJ1xuZXhwb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuL01BSUFJc29sb2dvJ1xuZXhwb3J0IHsgTWFpYVN0b3JlSWNvbiB9IGZyb20gJy4vTWFpYVN0b3JlSWNvbidcbmV4cG9ydCB7IE15QWdlbnRzTmF2SWNvbiB9IGZyb20gJy4vTXlBZ2VudHNOYXZJY29uJ1xuZXhwb3J0IHsgU2tpbGxzTmF2SWNvbiB9IGZyb20gJy4vU2tpbGxzTmF2SWNvbidcbmV4cG9ydCB7IE5vdGlvbkljb24gfSBmcm9tICcuL05vdGlvbkljb24nXG5leHBvcnQgeyBTa2lsbEljb24gfSBmcm9tICcuL1NraWxsSWNvbidcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBTSxRQUFRLFVBQVU7QUFDakMsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsT0FBTyxRQUFRLFdBQVc7QUFDbkMsU0FBU0MsUUFBUSxRQUFRLFlBQVk7QUFDckMsU0FBU0MsT0FBTyxRQUFRLFdBQVc7QUFDbkMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsWUFBWSxRQUFRLFlBQVk7QUFDekMsU0FBU0MsVUFBVSxRQUFRLFVBQVU7QUFDckMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsWUFBWSxRQUFRLFlBQVk7QUFDekMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsYUFBYSxRQUFRLGFBQWE7QUFDM0MsU0FBU0MsWUFBWSxRQUFRLFlBQVk7QUFDekMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsWUFBWSxRQUFRLFlBQVk7QUFDekMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLFdBQVc7QUFDdkMsU0FBU0MsWUFBWSxRQUFRLFlBQVk7QUFDekMsU0FBU0MsaUJBQWlCLFFBQVEscUJBQXFCO0FBQ3ZELFNBQVNDLFNBQVMsUUFBUSxTQUFTO0FBQ25DLFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsUUFBUSxRQUFRLFlBQVk7QUFDckMsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsU0FBUyxRQUFRLGFBQWEiLCJpZ25vcmVMaXN0IjpbXX0=
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBSUljb24iLCJFcnJvclN0YXRlIiwiQ29yTG9nbyIsIkhvbWVJY29uIiwiTmV3Q2hhdCIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkNzdkZpbGVJY29uIiwiVGV4dEZpbGVJY29uIiwiUGRmRmlsZUljb24iLCJJbWFnZUZpbGVJY29uIiwiWGxzeEZpbGVJY29uIiwiWGxzRmlsZUljb24iLCJNcDNGaWxlSWNvbiIsIldhdkZpbGVJY29uIiwiQWFjRmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsIkFjY2Vzc2liaWxpdHlJY29uIiwiQnJhaW5JY29uIiwiQWdlbnRNYWlhSWNvbiIsIkZhcXNJY29uIiwiRmFxQ2hldnJvbkljb24iLCJNQUlBSWNvbiIsIk1haWFDaGF0TGF5b3V0TWVudUljb24iLCJNQUlBSXNvbG9nbyIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJOb3Rpb25JY29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQUlJY29uIH0gZnJvbSAnLi9BSUljb24nXG5leHBvcnQgeyBFcnJvclN0YXRlIH0gZnJvbSAnLi9FcnJvclN0YXRlJ1xuZXhwb3J0IHsgQ29yTG9nbyB9IGZyb20gJy4vQ29yTG9nbydcbmV4cG9ydCB7IEhvbWVJY29uIH0gZnJvbSAnLi9Ib21lSWNvbidcbmV4cG9ydCB7IE5ld0NoYXQgfSBmcm9tICcuL05ld0NoYXQnXG5leHBvcnQgeyBEb2NGaWxlSWNvbiB9IGZyb20gJy4vRG9jRmlsZSdcbmV4cG9ydCB7IERvY3hGaWxlSWNvbiB9IGZyb20gJy4vRG9jeEZpbGUnXG5leHBvcnQgeyBNREZpbGVJY29uIH0gZnJvbSAnLi9NREZpbGUnXG5leHBvcnQgeyBDc3ZGaWxlSWNvbiB9IGZyb20gJy4vQ3N2RmlsZSdcbmV4cG9ydCB7IFRleHRGaWxlSWNvbiB9IGZyb20gJy4vVGV4dEZpbGUnXG5leHBvcnQgeyBQZGZGaWxlSWNvbiB9IGZyb20gJy4vUGRmRmlsZSdcbmV4cG9ydCB7IEltYWdlRmlsZUljb24gfSBmcm9tICcuL0ltYWdlRmlsZSdcbmV4cG9ydCB7IFhsc3hGaWxlSWNvbiB9IGZyb20gJy4vWGxzeEZpbGUnXG5leHBvcnQgeyBYbHNGaWxlSWNvbiB9IGZyb20gJy4vWGxzRmlsZSdcbmV4cG9ydCB7IE1wM0ZpbGVJY29uIH0gZnJvbSAnLi9NcDNGaWxlJ1xuZXhwb3J0IHsgV2F2RmlsZUljb24gfSBmcm9tICcuL1dhdkZpbGUnXG5leHBvcnQgeyBBYWNGaWxlSWNvbiB9IGZyb20gJy4vQWFjRmlsZSdcbmV4cG9ydCB7IEZsYWNGaWxlSWNvbiB9IGZyb20gJy4vRmxhY0ljb24nXG5leHBvcnQgeyBNNGFGaWxlSWNvbiB9IGZyb20gJy4vTTRhRmlsZSdcbmV4cG9ydCB7IE1wNEZpbGVJY29uIH0gZnJvbSAnLi9NcDRGaWxlJ1xuZXhwb3J0IHsgT2dhRmlsZUljb24gfSBmcm9tICcuL09nYUZpbGUnXG5leHBvcnQgeyBPZ2dGaWxlSWNvbiB9IGZyb20gJy4vT2dnRmlsZSdcbmV4cG9ydCB7IFdlYm1GaWxlSWNvbiB9IGZyb20gJy4vV2VibUZpbGUnXG5leHBvcnQgeyBBY2Nlc3NpYmlsaXR5SWNvbiB9IGZyb20gJy4vQWNjZXNzaWJpbGl0eUljb24nXG5leHBvcnQgeyBCcmFpbkljb24gfSBmcm9tICcuL0JyYWluJ1xuZXhwb3J0IHsgQWdlbnRNYWlhSWNvbiB9IGZyb20gJy4vQWdlbnRNYWlhSWNvbidcbmV4cG9ydCB7IEZhcXNJY29uIH0gZnJvbSAnLi9GYXFzSWNvbidcbmV4cG9ydCB7IEZhcUNoZXZyb25JY29uIH0gZnJvbSAnLi9GYXFDaGV2cm9uSWNvbidcbmV4cG9ydCB7IE1BSUFJY29uIH0gZnJvbSAnLi9NQUlBSWNvbidcbmV4cG9ydCB7IE1haWFDaGF0TGF5b3V0TWVudUljb24gfSBmcm9tICcuL01haWFDaGF0TGF5b3V0TWVudUljb24nXG5leHBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4vTUFJQUlzb2xvZ28nXG5leHBvcnQgeyBNYWlhU3RvcmVJY29uIH0gZnJvbSAnLi9NYWlhU3RvcmVJY29uJ1xuZXhwb3J0IHsgTXlBZ2VudHNOYXZJY29uIH0gZnJvbSAnLi9NeUFnZW50c05hdkljb24nXG5leHBvcnQgeyBOb3Rpb25JY29uIH0gZnJvbSAnLi9Ob3Rpb25JY29uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsVUFBVTtBQUNqQyxTQUFTQyxVQUFVLFFBQVEsY0FBYztBQUN6QyxTQUFTQyxPQUFPLFFBQVEsV0FBVztBQUNuQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxPQUFPLFFBQVEsV0FBVztBQUNuQyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxVQUFVLFFBQVEsVUFBVTtBQUNyQyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxhQUFhLFFBQVEsYUFBYTtBQUMzQyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxpQkFBaUIsUUFBUSxxQkFBcUI7QUFDdkQsU0FBU0MsU0FBUyxRQUFRLFNBQVM7QUFDbkMsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxjQUFjLFFBQVEsa0JBQWtCO0FBQ2pELFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLHNCQUFzQixRQUFRLDBCQUEwQjtBQUNqRSxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxhQUFhLFFBQVEsaUJBQWlCO0FBQy9DLFNBQVNDLGVBQWUsUUFBUSxtQkFBbUI7QUFDbkQsU0FBU0MsVUFBVSxRQUFRLGNBQWMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -8,7 +8,6 @@ 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';
12
11
  import { ModalInfo } from '../../atoms/ModalInfo';
13
12
  import { ErrorState } from '../../atoms/icons';
14
13
  import { useT } from '../../../hooks/useT';
@@ -31,9 +30,6 @@ export var ChatAIContent = function ChatAIContent(_ref) {
31
30
  loadingMoreAgents = _ref.loadingMoreAgents,
32
31
  onLoadMoreAgents = _ref.onLoadMoreAgents,
33
32
  onGoToMaiaker = _ref.onGoToMaiaker,
34
- skills = _ref.skills,
35
- loadingSkills = _ref.loadingSkills,
36
- onDeleteSkill = _ref.onDeleteSkill,
37
33
  onSearchAgents = _ref.onSearchAgents,
38
34
  searchLoadingAgents = _ref.searchLoadingAgents,
39
35
  agentError = _ref.agentError;
@@ -97,15 +93,6 @@ export var ChatAIContent = function ChatAIContent(_ref) {
97
93
  floating: floating
98
94
  });
99
95
  };
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
- }
109
96
  var fadeKey = "".concat(currentOption, "-").concat(loadingAgents ? 'loading' : 'ready', "-").concat(agentError ? 'error' : 'ok');
110
97
  return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
111
98
  children: /*#__PURE__*/_jsx(Fade, {
@@ -114,4 +101,4 @@ export var ChatAIContent = function ChatAIContent(_ref) {
114
101
  }, fadeKey)
115
102
  });
116
103
  };
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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
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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