@mongodb-js/compass-components 1.10.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/lib/components/bson-value.d.ts +0 -22
  2. package/lib/components/bson-value.d.ts.map +1 -1
  3. package/lib/components/bson-value.js +33 -36
  4. package/lib/components/bson-value.js.map +1 -1
  5. package/lib/components/collapsible-field-set.js +1 -1
  6. package/lib/components/collapsible-field-set.js.map +1 -1
  7. package/lib/components/combobox/Chip.js +2 -4
  8. package/lib/components/combobox/Chip.js.map +1 -1
  9. package/lib/components/combobox/Combobox.d.ts +1 -1
  10. package/lib/components/combobox/Combobox.d.ts.map +1 -1
  11. package/lib/components/combobox/Combobox.js +42 -55
  12. package/lib/components/combobox/Combobox.js.map +1 -1
  13. package/lib/components/combobox/Combobox.styles.js +1 -2
  14. package/lib/components/combobox/Combobox.styles.js.map +1 -1
  15. package/lib/components/combobox/Combobox.types.d.ts +2 -2
  16. package/lib/components/combobox/Combobox.types.d.ts.map +1 -1
  17. package/lib/components/combobox/Combobox.types.js.map +1 -1
  18. package/lib/components/combobox/ComboboxOption.d.ts +1 -1
  19. package/lib/components/combobox/ComboboxOption.d.ts.map +1 -1
  20. package/lib/components/combobox/ComboboxOption.js.map +1 -1
  21. package/lib/components/combobox/utils/OptionObjectUtils.js +3 -4
  22. package/lib/components/combobox/utils/OptionObjectUtils.js.map +1 -1
  23. package/lib/components/combobox/utils/getNameAndValue.js +2 -3
  24. package/lib/components/combobox/utils/getNameAndValue.js.map +1 -1
  25. package/lib/components/combobox/utils/wrapJSX.js +1 -2
  26. package/lib/components/combobox/utils/wrapJSX.js.map +1 -1
  27. package/lib/components/combobox-with-custom-option.d.ts.map +1 -1
  28. package/lib/components/combobox-with-custom-option.js +23 -20
  29. package/lib/components/combobox-with-custom-option.js.map +1 -1
  30. package/lib/components/document-list/document-actions-group.d.ts +2 -0
  31. package/lib/components/document-list/document-actions-group.d.ts.map +1 -1
  32. package/lib/components/document-list/document-actions-group.js +32 -15
  33. package/lib/components/document-list/document-actions-group.js.map +1 -1
  34. package/lib/components/document-list/document-edit-actions-footer.js +2 -2
  35. package/lib/components/document-list/document-edit-actions-footer.js.map +1 -1
  36. package/lib/components/document-list/document.js +2 -3
  37. package/lib/components/document-list/document.js.map +1 -1
  38. package/lib/components/document-list/element-actions.js +1 -1
  39. package/lib/components/document-list/element-actions.js.map +1 -1
  40. package/lib/components/document-list/element.d.ts.map +1 -1
  41. package/lib/components/document-list/element.js +15 -14
  42. package/lib/components/document-list/element.js.map +1 -1
  43. package/lib/components/error-boundary.js +1 -2
  44. package/lib/components/error-boundary.js.map +1 -1
  45. package/lib/components/feedback-popover.d.ts +11 -0
  46. package/lib/components/feedback-popover.d.ts.map +1 -0
  47. package/lib/components/feedback-popover.js +73 -0
  48. package/lib/components/feedback-popover.js.map +1 -0
  49. package/lib/components/file-input.js +7 -10
  50. package/lib/components/file-input.js.map +1 -1
  51. package/lib/components/generative-ai/ai-experience-entry.d.ts +12 -0
  52. package/lib/components/generative-ai/ai-experience-entry.d.ts.map +1 -0
  53. package/lib/components/generative-ai/ai-experience-entry.js +84 -0
  54. package/lib/components/generative-ai/ai-experience-entry.js.map +1 -0
  55. package/lib/components/generative-ai/ai-feedback.d.ts +7 -0
  56. package/lib/components/generative-ai/ai-feedback.d.ts.map +1 -0
  57. package/lib/components/generative-ai/ai-feedback.js +124 -0
  58. package/lib/components/generative-ai/ai-feedback.js.map +1 -0
  59. package/lib/components/generative-ai/generative-ai-input.d.ts +17 -0
  60. package/lib/components/generative-ai/generative-ai-input.d.ts.map +1 -0
  61. package/lib/components/generative-ai/generative-ai-input.js +191 -0
  62. package/lib/components/generative-ai/generative-ai-input.js.map +1 -0
  63. package/lib/components/generative-ai/index.d.ts +3 -0
  64. package/lib/components/generative-ai/index.d.ts.map +1 -0
  65. package/lib/components/generative-ai/index.js +9 -0
  66. package/lib/components/generative-ai/index.js.map +1 -0
  67. package/lib/components/generative-ai/robot-svg.d.ts +12 -0
  68. package/lib/components/generative-ai/robot-svg.d.ts.map +1 -0
  69. package/lib/components/generative-ai/robot-svg.js +55 -0
  70. package/lib/components/generative-ai/robot-svg.js.map +1 -0
  71. package/lib/components/guide-cue/guide-cue-exceptions.d.ts +18 -0
  72. package/lib/components/guide-cue/guide-cue-exceptions.d.ts.map +1 -0
  73. package/lib/components/guide-cue/guide-cue-exceptions.js +32 -0
  74. package/lib/components/guide-cue/guide-cue-exceptions.js.map +1 -0
  75. package/lib/components/guide-cue/guide-cue-groups.d.ts +8 -0
  76. package/lib/components/guide-cue/guide-cue-groups.d.ts.map +1 -0
  77. package/lib/components/guide-cue/guide-cue-groups.js +6 -0
  78. package/lib/components/guide-cue/guide-cue-groups.js.map +1 -0
  79. package/lib/components/guide-cue/guide-cue-service.d.ts +46 -0
  80. package/lib/components/guide-cue/guide-cue-service.d.ts.map +1 -0
  81. package/lib/components/guide-cue/guide-cue-service.js +174 -0
  82. package/lib/components/guide-cue/guide-cue-service.js.map +1 -0
  83. package/lib/components/guide-cue/guide-cue-storage.d.ts +19 -0
  84. package/lib/components/guide-cue/guide-cue-storage.d.ts.map +1 -0
  85. package/lib/components/guide-cue/guide-cue-storage.js +33 -0
  86. package/lib/components/guide-cue/guide-cue-storage.js.map +1 -0
  87. package/lib/components/guide-cue/guide-cue.d.ts +36 -0
  88. package/lib/components/guide-cue/guide-cue.d.ts.map +1 -0
  89. package/lib/components/guide-cue/guide-cue.js +167 -0
  90. package/lib/components/guide-cue/guide-cue.js.map +1 -0
  91. package/lib/components/index-keys-badge.d.ts.map +1 -1
  92. package/lib/components/index-keys-badge.js +1 -0
  93. package/lib/components/index-keys-badge.js.map +1 -1
  94. package/lib/components/interactive-popover.d.ts +9 -6
  95. package/lib/components/interactive-popover.d.ts.map +1 -1
  96. package/lib/components/interactive-popover.js +19 -16
  97. package/lib/components/interactive-popover.js.map +1 -1
  98. package/lib/components/item-action-controls.d.ts +11 -6
  99. package/lib/components/item-action-controls.d.ts.map +1 -1
  100. package/lib/components/item-action-controls.js +24 -10
  101. package/lib/components/item-action-controls.js.map +1 -1
  102. package/lib/components/list-editor.js +7 -10
  103. package/lib/components/list-editor.js.map +1 -1
  104. package/lib/components/loader.js +1 -2
  105. package/lib/components/loader.js.map +1 -1
  106. package/lib/components/more-options-toggle.js +1 -2
  107. package/lib/components/more-options-toggle.js.map +1 -1
  108. package/lib/components/placeholder.js +1 -2
  109. package/lib/components/placeholder.js.map +1 -1
  110. package/lib/components/signal-popover.d.ts +30 -0
  111. package/lib/components/signal-popover.d.ts.map +1 -0
  112. package/lib/components/signal-popover.js +356 -0
  113. package/lib/components/signal-popover.js.map +1 -0
  114. package/lib/components/signals.d.ts +87 -0
  115. package/lib/components/signals.d.ts.map +1 -0
  116. package/lib/components/signals.js +117 -0
  117. package/lib/components/signals.js.map +1 -0
  118. package/lib/components/store-connector.js +1 -2
  119. package/lib/components/store-connector.js.map +1 -1
  120. package/lib/components/tab-nav-bar.d.ts +1 -2
  121. package/lib/components/tab-nav-bar.d.ts.map +1 -1
  122. package/lib/components/tab-nav-bar.js +2 -2
  123. package/lib/components/tab-nav-bar.js.map +1 -1
  124. package/lib/components/tooltip.d.ts +4 -3
  125. package/lib/components/tooltip.d.ts.map +1 -1
  126. package/lib/components/tooltip.js.map +1 -1
  127. package/lib/components/virtual-grid.js +10 -12
  128. package/lib/components/virtual-grid.js.map +1 -1
  129. package/lib/components/workspace-tabs/workspace-tabs.js +1 -2
  130. package/lib/components/workspace-tabs/workspace-tabs.js.map +1 -1
  131. package/lib/hooks/use-confirmation.d.ts +1 -1
  132. package/lib/hooks/use-confirmation.d.ts.map +1 -1
  133. package/lib/hooks/use-confirmation.js +3 -6
  134. package/lib/hooks/use-confirmation.js.map +1 -1
  135. package/lib/hooks/use-dom-rect.js +2 -4
  136. package/lib/hooks/use-dom-rect.js.map +1 -1
  137. package/lib/hooks/use-focus-hover.d.ts +5 -1
  138. package/lib/hooks/use-focus-hover.d.ts.map +1 -1
  139. package/lib/hooks/use-focus-hover.js +1 -1
  140. package/lib/hooks/use-focus-hover.js.map +1 -1
  141. package/lib/hooks/use-hotkeys.d.ts.map +1 -1
  142. package/lib/hooks/use-hotkeys.js +5 -2
  143. package/lib/hooks/use-hotkeys.js.map +1 -1
  144. package/lib/hooks/use-sort.js +6 -8
  145. package/lib/hooks/use-sort.js.map +1 -1
  146. package/lib/hooks/use-toast.d.ts.map +1 -1
  147. package/lib/hooks/use-toast.js +6 -5
  148. package/lib/hooks/use-toast.js.map +1 -1
  149. package/lib/hooks/use-virtual-grid.js +5 -6
  150. package/lib/hooks/use-virtual-grid.js.map +1 -1
  151. package/lib/index.d.ts +9 -3
  152. package/lib/index.d.ts.map +1 -1
  153. package/lib/index.js +17 -5
  154. package/lib/index.js.map +1 -1
  155. package/package.json +8 -8
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.GenerativeAIInput = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const emotion_1 = require("@leafygreen-ui/emotion");
29
+ const palette_1 = require("@leafygreen-ui/palette");
30
+ const tokens_1 = require("@leafygreen-ui/tokens");
31
+ const leafygreen_1 = require("../leafygreen");
32
+ const use_theme_1 = require("../../hooks/use-theme");
33
+ const error_warning_summary_1 = require("../error-warning-summary");
34
+ const loader_1 = require("../loader");
35
+ const robot_svg_1 = require("./robot-svg");
36
+ const ai_feedback_1 = require("./ai-feedback");
37
+ const use_focus_ring_1 = require("../../hooks/use-focus-ring");
38
+ const containerStyles = (0, emotion_1.css)({
39
+ display: 'flex',
40
+ flexDirection: 'column',
41
+ gap: tokens_1.spacing[1],
42
+ });
43
+ const inputBarContainerStyles = (0, emotion_1.css)({
44
+ paddingTop: tokens_1.spacing[2],
45
+ gap: tokens_1.spacing[2],
46
+ flexGrow: 1,
47
+ display: 'flex',
48
+ });
49
+ const inputContainerStyles = (0, emotion_1.css)({
50
+ display: 'flex',
51
+ flexGrow: 1,
52
+ position: 'relative',
53
+ });
54
+ const textInputStyles = (0, emotion_1.css)({
55
+ flexGrow: 1,
56
+ input: {
57
+ paddingLeft: tokens_1.spacing[5],
58
+ paddingRight: tokens_1.spacing[6] * 2 + tokens_1.spacing[2],
59
+ },
60
+ });
61
+ const errorSummaryContainer = (0, emotion_1.css)({
62
+ marginTop: tokens_1.spacing[1],
63
+ });
64
+ const floatingButtonsContainerStyles = (0, emotion_1.css)({
65
+ position: 'absolute',
66
+ right: tokens_1.spacing[1],
67
+ display: 'flex',
68
+ gap: tokens_1.spacing[2],
69
+ alignItems: 'center',
70
+ height: tokens_1.spacing[4] + tokens_1.spacing[1],
71
+ });
72
+ const successIndicatorDarkModeStyles = (0, emotion_1.css)({
73
+ color: palette_1.palette.gray.dark3,
74
+ backgroundColor: palette_1.palette.green.base,
75
+ borderRadius: '50%',
76
+ });
77
+ const successIndicatorLightModeStyles = (0, emotion_1.css)({
78
+ color: palette_1.palette.white,
79
+ backgroundColor: palette_1.palette.green.dark1,
80
+ borderRadius: '50%',
81
+ });
82
+ const generateButtonStyles = (0, emotion_1.css)({
83
+ border: 'none',
84
+ height: tokens_1.spacing[4] - tokens_1.spacing[1],
85
+ display: 'flex',
86
+ fontSize: '12px',
87
+ borderRadius: tokens_1.spacing[1],
88
+ });
89
+ const generateButtonLightModeStyles = (0, emotion_1.css)({
90
+ backgroundColor: palette_1.palette.gray.light2,
91
+ });
92
+ const highlightSize = 14;
93
+ const buttonHighlightStyles = (0, emotion_1.css)({
94
+ height: `${highlightSize}px`,
95
+ lineHeight: `${highlightSize}px`,
96
+ padding: `0px ${tokens_1.spacing[1]}px`,
97
+ borderRadius: '2px',
98
+ });
99
+ const buttonHighlightDarkModeStyles = (0, emotion_1.css)({
100
+ backgroundColor: palette_1.palette.gray.dark1,
101
+ color: palette_1.palette.gray.light1,
102
+ });
103
+ const buttonHighlightLightModeStyles = (0, emotion_1.css)({
104
+ backgroundColor: palette_1.palette.gray.light1,
105
+ color: palette_1.palette.gray.dark1,
106
+ });
107
+ const loaderContainerStyles = (0, emotion_1.css)({
108
+ padding: tokens_1.spacing[1],
109
+ display: 'inline-flex',
110
+ width: robot_svg_1.DEFAULT_ROBOT_SIZE + tokens_1.spacing[2],
111
+ justifyContent: 'space-around',
112
+ });
113
+ const buttonResetStyles = (0, emotion_1.css)({
114
+ margin: 0,
115
+ padding: 0,
116
+ border: 'none',
117
+ background: 'none',
118
+ cursor: 'pointer',
119
+ });
120
+ const closeAIButtonStyles = (0, emotion_1.css)(buttonResetStyles, use_focus_ring_1.focusRing, {
121
+ padding: tokens_1.spacing[1],
122
+ position: 'absolute',
123
+ });
124
+ const closeText = 'Close AI Helper';
125
+ const SubmitArrowSVG = ({ darkMode }) => (react_1.default.createElement("svg", { width: highlightSize, height: highlightSize, viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
126
+ react_1.default.createElement("rect", { width: "14", height: "14", rx: "2", fill: darkMode ? palette_1.palette.gray.dark1 : palette_1.palette.gray.light1 }),
127
+ react_1.default.createElement("path", { d: "M5.24984 6.41668L2.9165 8.75001M2.9165 8.75001L5.24984 11.0833M2.9165 8.75001H9.33317C9.95201 8.75001 10.5455 8.50418 10.9831 8.06659C11.4207 7.62901 11.6665 7.03552 11.6665 6.41668C11.6665 5.79784 11.4207 5.20435 10.9831 4.76676C10.5455 4.32918 9.95201 4.08334 9.33317 4.08334H8.74984", stroke: darkMode ? palette_1.palette.gray.light1 : palette_1.palette.gray.dark1, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })));
128
+ function GenerativeAIInput({ aiPromptText, didSucceed, errorMessage, isFetching, placeholder = 'Tell Compass what documents to find (e.g. which movies were released in 2000)', show, onCancelRequest, onClose, onChangeAIPromptText, onSubmitFeedback, onSubmitText, }) {
129
+ const promptTextInputRef = (0, react_1.useRef)(null);
130
+ const [showSuccess, setShowSuccess] = (0, react_1.useState)(false);
131
+ const darkMode = (0, use_theme_1.useDarkMode)();
132
+ const onTextInputKeyDown = (0, react_1.useCallback)((evt) => {
133
+ if (evt.key === 'Enter') {
134
+ evt.preventDefault();
135
+ if (!aiPromptText) {
136
+ return;
137
+ }
138
+ onSubmitText(aiPromptText);
139
+ }
140
+ else if (evt.key === 'Escape') {
141
+ isFetching ? onCancelRequest() : onClose();
142
+ }
143
+ }, [aiPromptText, onClose, onSubmitText, isFetching, onCancelRequest]);
144
+ (0, react_1.useEffect)(() => {
145
+ if (didSucceed) {
146
+ setShowSuccess(true);
147
+ const timeoutId = setTimeout(() => {
148
+ setShowSuccess(false);
149
+ }, 1500);
150
+ return () => clearTimeout(timeoutId);
151
+ }
152
+ }, [didSucceed]);
153
+ (0, react_1.useEffect)(() => {
154
+ if (show) {
155
+ promptTextInputRef.current?.focus();
156
+ }
157
+ }, [show]);
158
+ const onCancelRequestRef = (0, react_1.useRef)(onCancelRequest);
159
+ onCancelRequestRef.current = onCancelRequest;
160
+ (0, react_1.useEffect)(() => {
161
+ return () => onCancelRequestRef.current?.();
162
+ }, []);
163
+ if (!show) {
164
+ return null;
165
+ }
166
+ return (react_1.default.createElement("div", { className: containerStyles },
167
+ react_1.default.createElement("div", { className: inputBarContainerStyles },
168
+ react_1.default.createElement("div", { className: inputContainerStyles },
169
+ react_1.default.createElement(leafygreen_1.TextInput, { className: textInputStyles, ref: promptTextInputRef, sizeVariant: "small", "data-testid": "ai-user-text-input", "aria-label": "Enter a plain text query that the AI will translate into MongoDB query language.", placeholder: placeholder, value: aiPromptText, onChange: (evt) => onChangeAIPromptText(evt.currentTarget.value), onKeyDown: onTextInputKeyDown }),
170
+ react_1.default.createElement("button", { className: closeAIButtonStyles, "data-testid": "close-ai-button", "aria-label": closeText, title: closeText, onClick: () => onClose() },
171
+ react_1.default.createElement(robot_svg_1.RobotSVG, null)),
172
+ react_1.default.createElement("div", { className: floatingButtonsContainerStyles },
173
+ isFetching ? (react_1.default.createElement("div", { className: loaderContainerStyles },
174
+ react_1.default.createElement(loader_1.SpinLoader, null))) : showSuccess ? (react_1.default.createElement("div", { className: loaderContainerStyles },
175
+ react_1.default.createElement(leafygreen_1.Icon, { className: darkMode
176
+ ? successIndicatorDarkModeStyles
177
+ : successIndicatorLightModeStyles, glyph: "CheckmarkWithCircle" }))) : (react_1.default.createElement(react_1.default.Fragment, null, aiPromptText && (react_1.default.createElement(leafygreen_1.IconButton, { "aria-label": "Clear prompt", onClick: () => onChangeAIPromptText(''), "data-testid": "ai-text-clear-prompt" },
178
+ react_1.default.createElement(leafygreen_1.Icon, { glyph: "X" }))))),
179
+ react_1.default.createElement(leafygreen_1.Button, { size: "small", className: (0, emotion_1.cx)(generateButtonStyles, !darkMode && generateButtonLightModeStyles), disabled: !aiPromptText, "data-testid": "ai-generate-button", onClick: () => isFetching ? onCancelRequest() : onSubmitText(aiPromptText) }, isFetching ? (react_1.default.createElement(react_1.default.Fragment, null,
180
+ react_1.default.createElement("div", null, "Cancel"),
181
+ react_1.default.createElement("span", { className: (0, emotion_1.cx)(buttonHighlightStyles, darkMode
182
+ ? buttonHighlightDarkModeStyles
183
+ : buttonHighlightLightModeStyles) }, "esc"))) : (react_1.default.createElement(react_1.default.Fragment, null,
184
+ react_1.default.createElement("div", null, "Generate"),
185
+ react_1.default.createElement(SubmitArrowSVG, { darkMode: darkMode })))))),
186
+ didSucceed && onSubmitFeedback && (react_1.default.createElement(ai_feedback_1.AIFeedback, { onSubmitFeedback: onSubmitFeedback }))),
187
+ errorMessage && (react_1.default.createElement("div", { className: errorSummaryContainer },
188
+ react_1.default.createElement(error_warning_summary_1.ErrorSummary, { "data-testid": "ai-error-msg", errors: errorMessage }, errorMessage)))));
189
+ }
190
+ exports.GenerativeAIInput = GenerativeAIInput;
191
+ //# sourceMappingURL=generative-ai-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generative-ai-input.js","sourceRoot":"","sources":["../../../src/components/generative-ai/generative-ai-input.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { GenerativeAIInput } from './generative-ai-input';
2
+ export { AIExperienceEntry, createAIPlaceholderHTMLPlaceholder, } from './ai-experience-entry';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/generative-ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,kCAAkC,GACnC,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAIPlaceholderHTMLPlaceholder = exports.AIExperienceEntry = exports.GenerativeAIInput = void 0;
4
+ var generative_ai_input_1 = require("./generative-ai-input");
5
+ Object.defineProperty(exports, "GenerativeAIInput", { enumerable: true, get: function () { return generative_ai_input_1.GenerativeAIInput; } });
6
+ var ai_experience_entry_1 = require("./ai-experience-entry");
7
+ Object.defineProperty(exports, "AIExperienceEntry", { enumerable: true, get: function () { return ai_experience_entry_1.AIExperienceEntry; } });
8
+ Object.defineProperty(exports, "createAIPlaceholderHTMLPlaceholder", { enumerable: true, get: function () { return ai_experience_entry_1.createAIPlaceholderHTMLPlaceholder; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/generative-ai/index.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAC1B,6DAG+B;AAF7B,wHAAA,iBAAiB,OAAA;AACjB,yIAAA,kCAAkC,OAAA"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ export declare const robotSVGStyles: string;
3
+ export declare const robotSVGDarkModeStyles: string;
4
+ export declare const robotSVGLightModeStyles: string;
5
+ export declare const DEFAULT_ROBOT_SIZE = 20;
6
+ declare const RobotSVG: ({ darkMode, size, }: {
7
+ darkMode?: boolean | undefined;
8
+ size?: number | undefined;
9
+ }) => JSX.Element;
10
+ declare const getRobotSVGString: () => string;
11
+ export { getRobotSVGString, RobotSVG };
12
+ //# sourceMappingURL=robot-svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robot-svg.d.ts","sourceRoot":"","sources":["../../../src/components/generative-ai/robot-svg.tsx"],"names":[],"mappings":";AAIA,eAAO,MAAM,cAAc,QAIzB,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAUjC,CAAC;AAEH,eAAO,MAAM,uBAAuB,QASlC,CAAC;AAEH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAGrC,QAAA,MAAM,QAAQ;;;iBAkDb,CAAC;AAGF,QAAA,MAAM,iBAAiB,cAShB,CAAC;AAER,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RobotSVG = exports.getRobotSVGString = exports.DEFAULT_ROBOT_SIZE = exports.robotSVGLightModeStyles = exports.robotSVGDarkModeStyles = exports.robotSVGStyles = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const emotion_1 = require("@leafygreen-ui/emotion");
9
+ const palette_1 = require("@leafygreen-ui/palette");
10
+ exports.robotSVGStyles = (0, emotion_1.css)({
11
+ rect: {
12
+ transition: 'fill 0.16s ease-in',
13
+ },
14
+ });
15
+ exports.robotSVGDarkModeStyles = (0, emotion_1.css)({
16
+ rect: {
17
+ fill: palette_1.palette.green.dark1,
18
+ },
19
+ '&:hover': {
20
+ rect: {
21
+ fill: palette_1.palette.green.base,
22
+ },
23
+ },
24
+ });
25
+ exports.robotSVGLightModeStyles = (0, emotion_1.css)({
26
+ rect: {
27
+ fill: palette_1.palette.green.dark2,
28
+ },
29
+ '&:hover': {
30
+ rect: {
31
+ fill: palette_1.palette.green.dark1,
32
+ },
33
+ },
34
+ });
35
+ exports.DEFAULT_ROBOT_SIZE = 20;
36
+ const RobotSVG = ({ darkMode, size = exports.DEFAULT_ROBOT_SIZE, }) => (react_1.default.createElement("svg", { width: size, height: size, viewBox: "0 0 20 20", className: (0, emotion_1.cx)(exports.robotSVGStyles, darkMode ? exports.robotSVGDarkModeStyles : exports.robotSVGLightModeStyles), fill: "none", xmlns: "http://www.w3.org/2000/svg" },
37
+ react_1.default.createElement("rect", { width: "20", height: "20", rx: "4" }),
38
+ react_1.default.createElement("path", { d: "M6.66675 6.66669H13.3334C13.687 6.66669 14.0262 6.80716 14.2762 7.05721C14.5263 7.30726 14.6667 7.6464 14.6667 8.00002V8.66669L15.3334 9.33335V11.3334L14.6667 12V14C14.6667 14.3536 14.5263 14.6928 14.2762 14.9428C14.0262 15.1929 13.687 15.3334 13.3334 15.3334H6.66675C6.31313 15.3334 5.97399 15.1929 5.72394 14.9428C5.47389 14.6928 5.33341 14.3536 5.33341 14V12L4.66675 11.3334V9.33335L5.33341 8.66669V8.00002C5.33341 7.6464 5.47389 7.30726 5.72394 7.05721C5.97399 6.80716 6.31313 6.66669 6.66675 6.66669Z", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
39
+ react_1.default.createElement("path", { d: "M8.66675 12.6667H11.3334", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
40
+ react_1.default.createElement("path", { d: "M7.99992 6.66667L7.33325 4", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
41
+ react_1.default.createElement("path", { d: "M12 6.66667L12.6667 4", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
42
+ react_1.default.createElement("circle", { cx: "7.75", cy: "9.75", r: "0.75", fill: "white" }),
43
+ react_1.default.createElement("circle", { cx: "12.25", cy: "9.75", r: "0.75", fill: "white" })));
44
+ exports.RobotSVG = RobotSVG;
45
+ const getRobotSVGString = () => `<svg width="20" height="20" viewBox="0 0 20 20" fill="none" style="display: inline-block; margin-top: -2px; margin-bottom: -10px" xmlns="http://www.w3.org/2000/svg">
46
+ <rect width="20" height="20" rx="4" />
47
+ <path d="M6.66675 6.66669H13.3334C13.687 6.66669 14.0262 6.80716 14.2762 7.05721C14.5263 7.30726 14.6667 7.6464 14.6667 8.00002V8.66669L15.3334 9.33335V11.3334L14.6667 12V14C14.6667 14.3536 14.5263 14.6928 14.2762 14.9428C14.0262 15.1929 13.687 15.3334 13.3334 15.3334H6.66675C6.31313 15.3334 5.97399 15.1929 5.72394 14.9428C5.47389 14.6928 5.33341 14.3536 5.33341 14V12L4.66675 11.3334V9.33335L5.33341 8.66669V8.00002C5.33341 7.6464 5.47389 7.30726 5.72394 7.05721C5.97399 6.80716 6.31313 6.66669 6.66675 6.66669Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
48
+ <path d="M8.66675 12.6667H11.3334" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
49
+ <path d="M7.99992 6.66667L7.33325 4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
50
+ <path d="M12 6.66667L12.6667 4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
51
+ <circle cx="7.75" cy="9.75" r="0.75" fill="white"/>
52
+ <circle cx="12.25" cy="9.75" r="0.75" fill="white"/>
53
+ </svg>`;
54
+ exports.getRobotSVGString = getRobotSVGString;
55
+ //# sourceMappingURL=robot-svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robot-svg.js","sourceRoot":"","sources":["../../../src/components/generative-ai/robot-svg.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,oDAAiD;AACjD,oDAAiD;AAEpC,QAAA,cAAc,GAAG,IAAA,aAAG,EAAC;IAChC,IAAI,EAAE;QACJ,UAAU,EAAE,oBAAoB;KACjC;CACF,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,IAAA,aAAG,EAAC;IACxC,IAAI,EAAE;QACJ,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,KAAK;KAC1B;IAED,SAAS,EAAE;QACT,IAAI,EAAE;YACJ,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,IAAI;SACzB;KACF;CACF,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,IAAA,aAAG,EAAC;IACzC,IAAI,EAAE;QACJ,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,KAAK;KAC1B;IACD,SAAS,EAAE;QACT,IAAI,EAAE;YACJ,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,KAAK;SAC1B;KACF;CACF,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAGrC,MAAM,QAAQ,GAAG,CAAC,EAChB,QAAQ,EACR,IAAI,GAAG,0BAAkB,GAI1B,EAAE,EAAE,CAAC,CACJ,uCACE,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,SAAS,EAAE,IAAA,YAAE,EACX,sBAAc,EACd,QAAQ,CAAC,CAAC,CAAC,8BAAsB,CAAC,CAAC,CAAC,+BAAuB,CAC5D,EACD,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B;IAElC,wCAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAG;IACtC,wCACE,CAAC,EAAC,2fAA2f,EAC7f,MAAM,EAAC,OAAO,EACd,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB;IACF,wCACE,CAAC,EAAC,0BAA0B,EAC5B,MAAM,EAAC,OAAO,EACd,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB;IACF,wCACE,CAAC,EAAC,4BAA4B,EAC9B,MAAM,EAAC,OAAO,EACd,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB;IACF,wCACE,CAAC,EAAC,uBAAuB,EACzB,MAAM,EAAC,OAAO,EACd,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB;IACF,0CAAQ,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,GAAG;IACpD,0CAAQ,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,GAAG,CACjD,CACP,CAAC;AAc0B,4BAAQ;AAXpC,MAAM,iBAAiB,GACrB,GAAG,EAAE,CAAC;;;;;;;;OAQD,CAAC;AAEC,8CAAiB"}
@@ -0,0 +1,18 @@
1
+ import { type GroupName } from './guide-cue-groups';
2
+ export declare class UnregisteredGroupError extends Error {
3
+ name: string;
4
+ constructor(groupId: GroupName);
5
+ }
6
+ export declare class GroupStepsCompleteError extends Error {
7
+ name: string;
8
+ constructor(groupId: GroupName, steps: number);
9
+ }
10
+ export declare class InvalidCueStepError extends Error {
11
+ name: string;
12
+ constructor(groupId: GroupName, steps: number, step: number);
13
+ }
14
+ export declare class DuplicateCueStepError extends Error {
15
+ name: string;
16
+ constructor(groupId: GroupName, step: number);
17
+ }
18
+ //# sourceMappingURL=guide-cue-exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide-cue-exceptions.d.ts","sourceRoot":"","sources":["../../../src/components/guide-cue/guide-cue-exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,IAAI,SAAuB;gBACf,OAAO,EAAE,SAAS;CAG/B;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,IAAI,SAAwB;gBAChB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;CAK9C;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,IAAI,SAAoB;gBACZ,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK5D;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,IAAI,SAAsB;gBACd,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM;CAG7C"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DuplicateCueStepError = exports.InvalidCueStepError = exports.GroupStepsCompleteError = exports.UnregisteredGroupError = void 0;
4
+ class UnregisteredGroupError extends Error {
5
+ constructor(groupId) {
6
+ super(`Group ${groupId} not registered.`);
7
+ this.name = 'UnregisteredGroup';
8
+ }
9
+ }
10
+ exports.UnregisteredGroupError = UnregisteredGroupError;
11
+ class GroupStepsCompleteError extends Error {
12
+ constructor(groupId, steps) {
13
+ super(`Group ${groupId} has already ${steps} step(s). Can not add another one.`);
14
+ this.name = 'GroupStepsComplete';
15
+ }
16
+ }
17
+ exports.GroupStepsCompleteError = GroupStepsCompleteError;
18
+ class InvalidCueStepError extends Error {
19
+ constructor(groupId, steps, step) {
20
+ super(`Group ${groupId} has only ${steps} steps. Can not add another with step:${step}.`);
21
+ this.name = 'InvalidCueStep';
22
+ }
23
+ }
24
+ exports.InvalidCueStepError = InvalidCueStepError;
25
+ class DuplicateCueStepError extends Error {
26
+ constructor(groupId, step) {
27
+ super(`Group ${groupId} already has Cue with step ${step} registered.`);
28
+ this.name = 'DuplicateCueStep';
29
+ }
30
+ }
31
+ exports.DuplicateCueStepError = DuplicateCueStepError;
32
+ //# sourceMappingURL=guide-cue-exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide-cue-exceptions.js","sourceRoot":"","sources":["../../../src/components/guide-cue/guide-cue-exceptions.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAuB,SAAQ,KAAK;IAE/C,YAAY,OAAkB;QAC5B,KAAK,CAAC,SAAS,OAAO,kBAAkB,CAAC,CAAC;QAF5C,SAAI,GAAG,mBAAmB,CAAC;IAG3B,CAAC;CACF;AALD,wDAKC;AAED,MAAa,uBAAwB,SAAQ,KAAK;IAEhD,YAAY,OAAkB,EAAE,KAAa;QAC3C,KAAK,CACH,SAAS,OAAO,gBAAgB,KAAK,oCAAoC,CAC1E,CAAC;QAJJ,SAAI,GAAG,oBAAoB,CAAC;IAK5B,CAAC;CACF;AAPD,0DAOC;AAED,MAAa,mBAAoB,SAAQ,KAAK;IAE5C,YAAY,OAAkB,EAAE,KAAa,EAAE,IAAY;QACzD,KAAK,CACH,SAAS,OAAO,aAAa,KAAK,yCAAyC,IAAI,GAAG,CACnF,CAAC;QAJJ,SAAI,GAAG,gBAAgB,CAAC;IAKxB,CAAC;CACF;AAPD,kDAOC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAE9C,YAAY,OAAkB,EAAE,IAAY;QAC1C,KAAK,CAAC,SAAS,OAAO,8BAA8B,IAAI,cAAc,CAAC,CAAC;QAF1E,SAAI,GAAG,kBAAkB,CAAC;IAG1B,CAAC;CACF;AALD,sDAKC"}
@@ -0,0 +1,8 @@
1
+ declare const GROUPS: Array<{
2
+ id: string;
3
+ steps: number;
4
+ }>;
5
+ export declare const GROUP_STEPS_MAP: Map<string, number>;
6
+ export type GroupName = typeof GROUPS[number]['id'];
7
+ export {};
8
+ //# sourceMappingURL=guide-cue-groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide-cue-groups.d.ts","sourceRoot":"","sources":["../../../src/components/guide-cue/guide-cue-groups.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAM,CAAC;AAExD,eAAO,MAAM,eAAe,qBAE3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GROUP_STEPS_MAP = void 0;
4
+ const GROUPS = [];
5
+ exports.GROUP_STEPS_MAP = new Map(GROUPS.map(({ id, steps }) => [id, steps]));
6
+ //# sourceMappingURL=guide-cue-groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide-cue-groups.js","sourceRoot":"","sources":["../../../src/components/guide-cue/guide-cue-groups.ts"],"names":[],"mappings":";;;AAGA,MAAM,MAAM,GAAyC,EAAE,CAAC;AAE3C,QAAA,eAAe,GAAG,IAAI,GAAG,CACpC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAC3C,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { type GroupName } from './guide-cue-groups';
2
+ import { type GuideCueStorage } from './guide-cue-storage';
3
+ export type ShowCueEventDetail = CustomEvent<{
4
+ cueId: string;
5
+ groupId?: GroupName;
6
+ }>;
7
+ interface GuideCueEventMap {
8
+ 'show-cue': ShowCueEventDetail;
9
+ }
10
+ export interface GuideCueService extends EventTarget {
11
+ addEventListener<K extends keyof GuideCueEventMap>(type: K, listener: (this: GuideCueEventMap, ev: GuideCueEventMap[K]) => void): void;
12
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
13
+ removeEventListener<K extends keyof GuideCueEventMap>(type: K, listener: (this: GuideCueEventMap, ev: GuideCueEventMap[K]) => void): void;
14
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
15
+ }
16
+ export type Cue = {
17
+ groupId?: GroupName;
18
+ step: number;
19
+ cueId: string;
20
+ isIntersecting: boolean;
21
+ isVisited: boolean;
22
+ };
23
+ export declare class GuideCueService extends EventTarget {
24
+ private readonly _storage;
25
+ private _cues;
26
+ private _activeGroupId;
27
+ private _activeCue;
28
+ constructor(_storage: GuideCueStorage);
29
+ addCue(cue: Omit<Cue, 'isVisited'>): boolean | undefined;
30
+ private dispatchShowCueEvent;
31
+ private validateCueData;
32
+ removeCue(cueId: string, groupId?: GroupName): void;
33
+ onNext(): boolean | undefined;
34
+ getCountOfSteps(groupId?: GroupName): number;
35
+ private findNextCue;
36
+ private getNextCueFromGroup;
37
+ private getNextCueFromNextGroup;
38
+ private getCueIndex;
39
+ markCueAsVisited(cueId: string, groupId?: GroupName): void;
40
+ markGroupAsVisited(groupId: GroupName): void;
41
+ markAllCuesAsVisited(): void;
42
+ onCueIntersectionChange(isIntersecting: boolean, cueId: string, groupId?: GroupName): boolean | undefined;
43
+ }
44
+ export declare const guideCueService: GuideCueService;
45
+ export {};
46
+ //# sourceMappingURL=guide-cue-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide-cue-service.d.ts","sourceRoot":"","sources":["../../../src/components/guide-cue/guide-cue-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC,CAAC;AAEH,UAAU,gBAAgB;IACxB,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,gBAAgB,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC/C,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,GAClE,IAAI,CAAC;IACR,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAC3C,IAAI,CAAC;IACR,mBAAmB,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAClD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,GAClE,IAAI,CAAC;IACR,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAC3C,IAAI,CAAC;CACT;AAED,MAAM,MAAM,GAAG,GAAG;IAChB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,eAAgB,SAAQ,WAAW;IAMlC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IALrC,OAAO,CAAC,KAAK,CAAa;IAE1B,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,UAAU,CAAoB;gBAET,QAAQ,EAAE,eAAe;IAItD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;IA2BlC,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,eAAe;IAqBvB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;IAiB5C,MAAM;IAKN,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS;IAMnC,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,WAAW;IAMnB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;IAUnD,kBAAkB,CAAC,OAAO,EAAE,SAAS;IAarC,oBAAoB;IAepB,uBAAuB,CACrB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,SAAS;CAkBtB;AAED,eAAO,MAAM,eAAe,iBAE3B,CAAC"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.guideCueService = exports.GuideCueService = void 0;
4
+ const guide_cue_exceptions_1 = require("./guide-cue-exceptions");
5
+ const guide_cue_groups_1 = require("./guide-cue-groups");
6
+ const guide_cue_storage_1 = require("./guide-cue-storage");
7
+ const lodash_1 = require("lodash");
8
+ class GuideCueService extends EventTarget {
9
+ constructor(_storage) {
10
+ super();
11
+ this._storage = _storage;
12
+ this._cues = [];
13
+ this._activeGroupId = null;
14
+ this._activeCue = null;
15
+ }
16
+ addCue(cue) {
17
+ if (process.env.DISABLE_GUIDE_CUES === 'true') {
18
+ return;
19
+ }
20
+ const cueIndex = this.getCueIndex(cue.cueId, cue.groupId);
21
+ if (cueIndex !== -1) {
22
+ console.warn(`The Cue ${cue.cueId} is already added.`);
23
+ return;
24
+ }
25
+ if (cue.groupId) {
26
+ this.validateCueData(cue.groupId, cue.step);
27
+ }
28
+ this._cues.push({
29
+ ...cue,
30
+ isVisited: this._storage.isCueVisited(cue.cueId, cue.groupId),
31
+ });
32
+ if (!this._activeCue) {
33
+ return this.onNext();
34
+ }
35
+ return this.dispatchShowCueEvent();
36
+ }
37
+ dispatchShowCueEvent() {
38
+ if (!this._activeCue) {
39
+ return;
40
+ }
41
+ return this.dispatchEvent(new CustomEvent('show-cue', {
42
+ detail: {
43
+ cueId: this._activeCue.cueId,
44
+ groupId: this._activeCue.groupId,
45
+ },
46
+ }));
47
+ }
48
+ validateCueData(groupId, step) {
49
+ if (!guide_cue_groups_1.GROUP_STEPS_MAP.has(groupId)) {
50
+ throw new guide_cue_exceptions_1.UnregisteredGroupError(groupId);
51
+ }
52
+ const groupCues = this._cues.filter((x) => x.groupId === groupId);
53
+ const groupSteps = guide_cue_groups_1.GROUP_STEPS_MAP.get(groupId);
54
+ if (groupCues.length >= groupSteps) {
55
+ throw new guide_cue_exceptions_1.GroupStepsCompleteError(groupId, groupSteps);
56
+ }
57
+ if (step > groupSteps) {
58
+ throw new guide_cue_exceptions_1.InvalidCueStepError(groupId, groupSteps, step);
59
+ }
60
+ if (groupCues.find((x) => x.step === step)) {
61
+ throw new guide_cue_exceptions_1.DuplicateCueStepError(groupId, step);
62
+ }
63
+ }
64
+ removeCue(cueId, groupId) {
65
+ const cueIndex = this._cues.findIndex((cue) => cue.cueId === cueId && cue.groupId === groupId);
66
+ if (cueIndex === -1) {
67
+ return;
68
+ }
69
+ this._cues.splice(cueIndex, 1);
70
+ if (this._activeCue?.cueId === cueId &&
71
+ this._activeCue.groupId === groupId) {
72
+ this._activeCue = null;
73
+ }
74
+ }
75
+ onNext() {
76
+ this._activeCue = this.findNextCue();
77
+ return this.dispatchShowCueEvent();
78
+ }
79
+ getCountOfSteps(groupId) {
80
+ return !groupId
81
+ ? 1
82
+ : this._cues.filter((x) => x.groupId === groupId).length || 1;
83
+ }
84
+ findNextCue() {
85
+ if (this._activeGroupId) {
86
+ const nextCue = this.getNextCueFromGroup(this._activeGroupId);
87
+ if (nextCue) {
88
+ return nextCue;
89
+ }
90
+ }
91
+ const nextCue = this.getNextCueFromNextGroup();
92
+ this._activeGroupId = nextCue?.groupId || null;
93
+ return nextCue;
94
+ }
95
+ getNextCueFromGroup(groupId) {
96
+ const groupCues = this._cues.filter((x) => x.groupId === groupId);
97
+ if (groupCues.length !== guide_cue_groups_1.GROUP_STEPS_MAP.get(groupId)) {
98
+ return null;
99
+ }
100
+ const unseenCues = groupCues.filter((x) => !x.isVisited && x.isIntersecting);
101
+ if (unseenCues.length === 0) {
102
+ return null;
103
+ }
104
+ unseenCues.sort((a, b) => a.step - b.step);
105
+ return unseenCues[0];
106
+ }
107
+ getNextCueFromNextGroup() {
108
+ let nextPossibleIndex = 0;
109
+ while (nextPossibleIndex < this._cues.length) {
110
+ const cue = this._cues[nextPossibleIndex];
111
+ if (!cue.groupId) {
112
+ if (!cue.isVisited && cue.isIntersecting) {
113
+ return cue;
114
+ }
115
+ }
116
+ else {
117
+ const nextCue = this.getNextCueFromGroup(cue.groupId);
118
+ if (nextCue) {
119
+ return nextCue;
120
+ }
121
+ }
122
+ nextPossibleIndex++;
123
+ }
124
+ return null;
125
+ }
126
+ getCueIndex(cueId, groupId) {
127
+ return this._cues.findIndex((cue) => cue.cueId === cueId && cue.groupId === groupId);
128
+ }
129
+ markCueAsVisited(cueId, groupId) {
130
+ const cueIndex = this.getCueIndex(cueId, groupId);
131
+ if (cueIndex === -1) {
132
+ return;
133
+ }
134
+ this._cues[cueIndex].isVisited = true;
135
+ this._storage.markCueAsVisited(cueId, groupId);
136
+ this._activeCue = null;
137
+ }
138
+ markGroupAsVisited(groupId) {
139
+ const groupCues = this._cues.filter((x) => x.groupId === groupId);
140
+ if (groupCues.length === guide_cue_groups_1.GROUP_STEPS_MAP.get(groupId)) {
141
+ groupCues.forEach(({ cueId }) => {
142
+ this.markCueAsVisited(cueId, groupId);
143
+ });
144
+ }
145
+ this._activeGroupId = null;
146
+ this._activeCue = null;
147
+ }
148
+ markAllCuesAsVisited() {
149
+ this._cues
150
+ .filter((x) => !x.groupId)
151
+ .forEach(({ cueId, groupId }) => {
152
+ this.markCueAsVisited(cueId, groupId);
153
+ });
154
+ const groupIds = (0, lodash_1.uniq)(this._cues.map((x) => x.groupId)).filter(Boolean);
155
+ groupIds.forEach((groupId) => this.markGroupAsVisited(groupId));
156
+ }
157
+ onCueIntersectionChange(isIntersecting, cueId, groupId) {
158
+ const cueIndex = this.getCueIndex(cueId, groupId);
159
+ if (cueIndex === -1) {
160
+ return;
161
+ }
162
+ this._cues[cueIndex].isIntersecting = isIntersecting;
163
+ const isNewCueShowable = !this._activeCue && isIntersecting;
164
+ const isActiveCueNotShowable = this._activeCue?.cueId === cueId &&
165
+ this._activeCue.groupId === groupId &&
166
+ !isIntersecting;
167
+ if (isActiveCueNotShowable || isNewCueShowable) {
168
+ return this.onNext();
169
+ }
170
+ }
171
+ }
172
+ exports.GuideCueService = GuideCueService;
173
+ exports.guideCueService = new GuideCueService(new guide_cue_storage_1.CompassGuideCueStorage());
174
+ //# sourceMappingURL=guide-cue-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide-cue-service.js","sourceRoot":"","sources":["../../../src/components/guide-cue/guide-cue-service.ts"],"names":[],"mappings":"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"}