@pie-players/pie-assessment-toolkit 0.2.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.
- package/README.md +520 -0
- package/dist/attempt/TestSession.d.ts +90 -0
- package/dist/attempt/TestSession.d.ts.map +1 -0
- package/dist/attempt/TestSession.js +174 -0
- package/dist/attempt/TestSession.js.map +1 -0
- package/dist/core/TypedEventBus.d.ts +48 -0
- package/dist/core/TypedEventBus.d.ts.map +1 -0
- package/dist/core/TypedEventBus.js +63 -0
- package/dist/core/TypedEventBus.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/item-loader.d.ts +45 -0
- package/dist/item-loader.d.ts.map +1 -0
- package/dist/item-loader.js +62 -0
- package/dist/item-loader.js.map +1 -0
- package/dist/player/AssessmentPlayer.d.ts +388 -0
- package/dist/player/AssessmentPlayer.d.ts.map +1 -0
- package/dist/player/AssessmentPlayer.js +965 -0
- package/dist/player/AssessmentPlayer.js.map +1 -0
- package/dist/player/index.d.ts +17 -0
- package/dist/player/index.d.ts.map +1 -0
- package/dist/player/index.js +15 -0
- package/dist/player/index.js.map +1 -0
- package/dist/player/navigation-types.d.ts +63 -0
- package/dist/player/navigation-types.d.ts.map +1 -0
- package/dist/player/navigation-types.js +7 -0
- package/dist/player/navigation-types.js.map +1 -0
- package/dist/player/qti-navigation.d.ts +29 -0
- package/dist/player/qti-navigation.d.ts.map +1 -0
- package/dist/player/qti-navigation.js +160 -0
- package/dist/player/qti-navigation.js.map +1 -0
- package/dist/reference-layout/index.d.ts +19 -0
- package/dist/reference-layout/index.d.ts.map +1 -0
- package/dist/reference-layout/index.js +20 -0
- package/dist/reference-layout/index.js.map +1 -0
- package/dist/services/AccessibilityCatalogResolver.d.ts +141 -0
- package/dist/services/AccessibilityCatalogResolver.d.ts.map +1 -0
- package/dist/services/AccessibilityCatalogResolver.js +249 -0
- package/dist/services/AccessibilityCatalogResolver.js.map +1 -0
- package/dist/services/AssessmentAuthoringService.d.ts +60 -0
- package/dist/services/AssessmentAuthoringService.d.ts.map +1 -0
- package/dist/services/AssessmentAuthoringService.js +183 -0
- package/dist/services/AssessmentAuthoringService.js.map +1 -0
- package/dist/services/ContextVariableStore.d.ts +114 -0
- package/dist/services/ContextVariableStore.d.ts.map +1 -0
- package/dist/services/ContextVariableStore.js +207 -0
- package/dist/services/ContextVariableStore.js.map +1 -0
- package/dist/services/ElementToolStateStore.d.ts +125 -0
- package/dist/services/ElementToolStateStore.d.ts.map +1 -0
- package/dist/services/ElementToolStateStore.js +200 -0
- package/dist/services/ElementToolStateStore.js.map +1 -0
- package/dist/services/HighlightCoordinator.d.ts +179 -0
- package/dist/services/HighlightCoordinator.d.ts.map +1 -0
- package/dist/services/HighlightCoordinator.js +446 -0
- package/dist/services/HighlightCoordinator.js.map +1 -0
- package/dist/services/I18nService.d.ts +121 -0
- package/dist/services/I18nService.d.ts.map +1 -0
- package/dist/services/I18nService.js +276 -0
- package/dist/services/I18nService.js.map +1 -0
- package/dist/services/PNPMapper.d.ts +71 -0
- package/dist/services/PNPMapper.d.ts.map +1 -0
- package/dist/services/PNPMapper.js +98 -0
- package/dist/services/PNPMapper.js.map +1 -0
- package/dist/services/PNPToolResolver.d.ts +127 -0
- package/dist/services/PNPToolResolver.d.ts.map +1 -0
- package/dist/services/PNPToolResolver.js +222 -0
- package/dist/services/PNPToolResolver.js.map +1 -0
- package/dist/services/SSMLExtractor.d.ts +61 -0
- package/dist/services/SSMLExtractor.d.ts.map +1 -0
- package/dist/services/SSMLExtractor.js +181 -0
- package/dist/services/SSMLExtractor.js.map +1 -0
- package/dist/services/TTSService.d.ts +162 -0
- package/dist/services/TTSService.d.ts.map +1 -0
- package/dist/services/TTSService.js +465 -0
- package/dist/services/TTSService.js.map +1 -0
- package/dist/services/ThemeProvider.d.ts +95 -0
- package/dist/services/ThemeProvider.d.ts.map +1 -0
- package/dist/services/ThemeProvider.js +299 -0
- package/dist/services/ThemeProvider.js.map +1 -0
- package/dist/services/ToolConfigResolver.d.ts +162 -0
- package/dist/services/ToolConfigResolver.d.ts.map +1 -0
- package/dist/services/ToolConfigResolver.js +230 -0
- package/dist/services/ToolConfigResolver.js.map +1 -0
- package/dist/services/ToolCoordinator.d.ts +137 -0
- package/dist/services/ToolCoordinator.d.ts.map +1 -0
- package/dist/services/ToolCoordinator.js +318 -0
- package/dist/services/ToolCoordinator.js.map +1 -0
- package/dist/services/ToolkitCoordinator.d.ts +188 -0
- package/dist/services/ToolkitCoordinator.d.ts.map +1 -0
- package/dist/services/ToolkitCoordinator.js +252 -0
- package/dist/services/ToolkitCoordinator.js.map +1 -0
- package/dist/services/interfaces.d.ts +391 -0
- package/dist/services/interfaces.d.ts.map +1 -0
- package/dist/services/interfaces.js +12 -0
- package/dist/services/interfaces.js.map +1 -0
- package/dist/services/tool-providers/DesmosToolProvider.d.ts +103 -0
- package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/DesmosToolProvider.js +127 -0
- package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -0
- package/dist/services/tool-providers/IToolProvider.d.ts +137 -0
- package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/IToolProvider.js +13 -0
- package/dist/services/tool-providers/IToolProvider.js.map +1 -0
- package/dist/services/tool-providers/TIToolProvider.d.ts +107 -0
- package/dist/services/tool-providers/TIToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/TIToolProvider.js +123 -0
- package/dist/services/tool-providers/TIToolProvider.js.map +1 -0
- package/dist/services/tool-providers/TTSToolProvider.d.ts +143 -0
- package/dist/services/tool-providers/TTSToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/TTSToolProvider.js +168 -0
- package/dist/services/tool-providers/TTSToolProvider.js.map +1 -0
- package/dist/services/tool-providers/ToolProviderRegistry.d.ts +165 -0
- package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +1 -0
- package/dist/services/tool-providers/ToolProviderRegistry.js +240 -0
- package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -0
- package/dist/services/tool-providers/index.d.ts +18 -0
- package/dist/services/tool-providers/index.d.ts.map +1 -0
- package/dist/services/tool-providers/index.js +15 -0
- package/dist/services/tool-providers/index.js.map +1 -0
- package/dist/services/tts/browser-provider.d.ts +24 -0
- package/dist/services/tts/browser-provider.d.ts.map +1 -0
- package/dist/services/tts/browser-provider.js +177 -0
- package/dist/services/tts/browser-provider.js.map +1 -0
- package/dist/services/tts/provider-interface.d.ts +131 -0
- package/dist/services/tts/provider-interface.d.ts.map +1 -0
- package/dist/services/tts/provider-interface.js +10 -0
- package/dist/services/tts/provider-interface.js.map +1 -0
- package/dist/tools/calculators/desmos-provider.d.ts +54 -0
- package/dist/tools/calculators/desmos-provider.d.ts.map +1 -0
- package/dist/tools/calculators/desmos-provider.js +384 -0
- package/dist/tools/calculators/desmos-provider.js.map +1 -0
- package/dist/tools/calculators/mathjs-provider.d.ts +50 -0
- package/dist/tools/calculators/mathjs-provider.d.ts.map +1 -0
- package/dist/tools/calculators/mathjs-provider.js +660 -0
- package/dist/tools/calculators/mathjs-provider.js.map +1 -0
- package/dist/tools/calculators/ti-provider.d.ts +122 -0
- package/dist/tools/calculators/ti-provider.d.ts.map +1 -0
- package/dist/tools/calculators/ti-provider.js +587 -0
- package/dist/tools/calculators/ti-provider.js.map +1 -0
- package/dist/tools/client.d.ts +17 -0
- package/dist/tools/client.d.ts.map +1 -0
- package/dist/tools/client.js +26 -0
- package/dist/tools/client.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +10 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/library-loader.d.ts +63 -0
- package/dist/tools/library-loader.d.ts.map +1 -0
- package/dist/tools/library-loader.js +292 -0
- package/dist/tools/library-loader.js.map +1 -0
- package/dist/tools/response-discovery.d.ts +72 -0
- package/dist/tools/response-discovery.d.ts.map +1 -0
- package/dist/tools/response-discovery.js +183 -0
- package/dist/tools/response-discovery.js.map +1 -0
- package/dist/tools/tool-coordinator.d.ts +76 -0
- package/dist/tools/tool-coordinator.d.ts.map +1 -0
- package/dist/tools/tool-coordinator.js +197 -0
- package/dist/tools/tool-coordinator.js.map +1 -0
- package/dist/tools/types.d.ts +427 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +13 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/variant-resolver.d.ts +48 -0
- package/dist/tools/variant-resolver.d.ts.map +1 -0
- package/dist/tools/variant-resolver.js +214 -0
- package/dist/tools/variant-resolver.js.map +1 -0
- package/dist/types/events.d.ts +157 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +11 -0
- package/dist/types/events.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +11 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +71 -0
- package/src/README.md +626 -0
- package/src/components/QuestionToolBar.svelte +406 -0
- package/src/player/AssessmentLayout.svelte +68 -0
- package/src/player/README.md +154 -0
- package/src/reference-layout/README.md +135 -0
- package/src/reference-layout/ReferenceLayout.svelte +209 -0
- package/src/reference-layout/components/AssessmentContent.svelte +259 -0
- package/src/reference-layout/components/AssessmentFooter.svelte +89 -0
- package/src/reference-layout/components/AssessmentHeader.svelte +250 -0
- package/src/reference-layout/components/AssessmentNavigation.svelte +134 -0
- package/src/reference-layout/components/AssessmentToolsBar.svelte +176 -0
- package/src/reference-layout/components/ItemPanel.svelte +200 -0
- package/src/reference-layout/components/NotesPanel.svelte +179 -0
- package/src/reference-layout/components/PassagePanel.svelte +76 -0
- package/src/tools/README.md +616 -0
- package/src/tools/calculators/README.md +395 -0
|
@@ -0,0 +1,587 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TI Calculator Provider
|
|
3
|
+
* Implementation of CalculatorProvider for TI calculator emulators
|
|
4
|
+
*
|
|
5
|
+
* Supports: TI-84, TI-108, TI-34 MV
|
|
6
|
+
* Based on production TI calculator implementation patterns
|
|
7
|
+
*
|
|
8
|
+
* NOTE: Requires licensed TI emulator libraries from Texas Instruments
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* TI Calculator library version
|
|
12
|
+
* Matches version embedded in TI emulator libraries: 2.8.0.50
|
|
13
|
+
* Update this when upgrading to a new version of TI emulator libraries
|
|
14
|
+
*/
|
|
15
|
+
const TI_VERSION = "v2.8.0";
|
|
16
|
+
/**
|
|
17
|
+
* TI Calculator Provider Implementation
|
|
18
|
+
*/
|
|
19
|
+
export class TICalculatorProvider {
|
|
20
|
+
providerId = "ti";
|
|
21
|
+
providerName = "Texas Instruments";
|
|
22
|
+
supportedTypes = ["ti-84", "ti-108", "ti-34-mv"];
|
|
23
|
+
version = "1.0.0";
|
|
24
|
+
initialized = false;
|
|
25
|
+
loadedEmulators = new Set();
|
|
26
|
+
/**
|
|
27
|
+
* Initialize TI emulator libraries
|
|
28
|
+
* Loads the shared ELG library that all TI calculators depend on
|
|
29
|
+
*/
|
|
30
|
+
async initialize() {
|
|
31
|
+
if (this.initialized)
|
|
32
|
+
return;
|
|
33
|
+
// SSR guard: TI calculators should NEVER run on the server
|
|
34
|
+
if (typeof window === "undefined") {
|
|
35
|
+
throw new Error("TI calculators can only be initialized in the browser");
|
|
36
|
+
}
|
|
37
|
+
console.log("[TIProvider] Initializing TI calculator emulators...");
|
|
38
|
+
// Load ELG library first (shared library for all TI calculators)
|
|
39
|
+
if (!window.TI_ELG_Ready) {
|
|
40
|
+
await this._loadELGLibrary();
|
|
41
|
+
}
|
|
42
|
+
this.initialized = true;
|
|
43
|
+
console.log("[TIProvider] Initialized");
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Load the ELG (TI Emulator Library) shared library
|
|
47
|
+
*/
|
|
48
|
+
async _loadELGLibrary() {
|
|
49
|
+
if (window.TI_ELG_Ready)
|
|
50
|
+
return;
|
|
51
|
+
return new Promise((resolve, reject) => {
|
|
52
|
+
// Check if script is already loaded
|
|
53
|
+
const existingScript = document.querySelector('script[src*="ELG"]');
|
|
54
|
+
if (existingScript) {
|
|
55
|
+
window.TI_ELG_Ready = true;
|
|
56
|
+
resolve();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const script = document.createElement("script");
|
|
60
|
+
script.src = `/lib/ti/${TI_VERSION}/ELG-min.js`; // Versioned path for better cache control
|
|
61
|
+
script.onload = () => {
|
|
62
|
+
window.TI_ELG_Ready = true;
|
|
63
|
+
console.log("[TIProvider] ELG library loaded successfully");
|
|
64
|
+
resolve();
|
|
65
|
+
};
|
|
66
|
+
script.onerror = () => {
|
|
67
|
+
console.error("[TIProvider] Failed to load ELG library");
|
|
68
|
+
reject(new Error("Failed to load required TI calculator library (ELG)"));
|
|
69
|
+
};
|
|
70
|
+
document.head.appendChild(script);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a calculator instance
|
|
75
|
+
*/
|
|
76
|
+
async createCalculator(type, container, config) {
|
|
77
|
+
if (!this.initialized) {
|
|
78
|
+
await this.initialize();
|
|
79
|
+
}
|
|
80
|
+
if (!this.supportsType(type)) {
|
|
81
|
+
throw new Error(`TI Provider does not support calculator type: ${type}`);
|
|
82
|
+
}
|
|
83
|
+
// Load specific emulator library if not already loaded
|
|
84
|
+
if (!this.loadedEmulators.has(type)) {
|
|
85
|
+
await this._loadEmulator(type);
|
|
86
|
+
this.loadedEmulators.add(type);
|
|
87
|
+
}
|
|
88
|
+
return new TICalculator(this, type, container, config);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Load specific TI emulator library
|
|
92
|
+
*/
|
|
93
|
+
async _loadEmulator(type) {
|
|
94
|
+
console.log(`[TIProvider] Loading ${type} emulator...`);
|
|
95
|
+
// Determine library files based on calculator type
|
|
96
|
+
const libraryConfig = this._getLibraryConfig(type);
|
|
97
|
+
// Load CSS and JS in parallel
|
|
98
|
+
await Promise.all([
|
|
99
|
+
this._loadScript(libraryConfig.js),
|
|
100
|
+
this._loadCSS(libraryConfig.css),
|
|
101
|
+
]);
|
|
102
|
+
// Add a small delay to ensure everything is initialized
|
|
103
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
104
|
+
console.log(`[TIProvider] ${type} emulator loaded successfully`);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get library configuration for calculator type
|
|
108
|
+
* Uses versioned paths similar to Desmos implementation
|
|
109
|
+
*/
|
|
110
|
+
_getLibraryConfig(type) {
|
|
111
|
+
const basePath = `/lib/ti/${TI_VERSION}`;
|
|
112
|
+
switch (type) {
|
|
113
|
+
case "ti-84":
|
|
114
|
+
return {
|
|
115
|
+
js: `${basePath}/ti84p-min.js`,
|
|
116
|
+
css: `${basePath}/css/ti84pce-min.css`,
|
|
117
|
+
};
|
|
118
|
+
case "ti-108":
|
|
119
|
+
return {
|
|
120
|
+
js: `${basePath}/ti108-min.js`,
|
|
121
|
+
css: `${basePath}/css/ti108-min.css`,
|
|
122
|
+
};
|
|
123
|
+
case "ti-34-mv":
|
|
124
|
+
return {
|
|
125
|
+
js: `${basePath}/ti34mv-min.js`,
|
|
126
|
+
css: `${basePath}/css/ti34mv-min.css`,
|
|
127
|
+
};
|
|
128
|
+
default:
|
|
129
|
+
throw new Error(`Unknown TI calculator type: ${type}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Load a JavaScript script
|
|
134
|
+
*/
|
|
135
|
+
_loadScript(src) {
|
|
136
|
+
return new Promise((resolve, reject) => {
|
|
137
|
+
// Check if script is already loaded
|
|
138
|
+
if (document.querySelector(`script[src="${src}"]`)) {
|
|
139
|
+
resolve();
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const script = document.createElement("script");
|
|
143
|
+
script.src = src;
|
|
144
|
+
script.onload = () => resolve();
|
|
145
|
+
script.onerror = () => reject(new Error(`Failed to load script: ${src}`));
|
|
146
|
+
document.head.appendChild(script);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Load a CSS stylesheet
|
|
151
|
+
*/
|
|
152
|
+
_loadCSS(href) {
|
|
153
|
+
return new Promise((resolve, reject) => {
|
|
154
|
+
// Check if CSS is already loaded
|
|
155
|
+
if (document.querySelector(`link[href="${href}"]`)) {
|
|
156
|
+
resolve();
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const link = document.createElement("link");
|
|
160
|
+
link.rel = "stylesheet";
|
|
161
|
+
link.type = "text/css";
|
|
162
|
+
link.href = href;
|
|
163
|
+
link.onload = () => resolve();
|
|
164
|
+
link.onerror = () => reject(new Error(`Failed to load CSS: ${href}`));
|
|
165
|
+
document.head.appendChild(link);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Check if type is supported
|
|
170
|
+
*/
|
|
171
|
+
supportsType(type) {
|
|
172
|
+
return this.supportedTypes.includes(type);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Cleanup
|
|
176
|
+
*/
|
|
177
|
+
destroy() {
|
|
178
|
+
this.initialized = false;
|
|
179
|
+
this.loadedEmulators.clear();
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get provider capabilities
|
|
183
|
+
*/
|
|
184
|
+
getCapabilities() {
|
|
185
|
+
return {
|
|
186
|
+
supportsHistory: true,
|
|
187
|
+
supportsGraphing: true, // TI-84 supports graphing
|
|
188
|
+
supportsExpressions: true,
|
|
189
|
+
canExport: true,
|
|
190
|
+
maxPrecision: 14, // TI calculator precision
|
|
191
|
+
inputMethods: ["keyboard", "mouse", "touch"],
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* TI Calculator Instance Implementation
|
|
197
|
+
* Based on production implementation patterns
|
|
198
|
+
*/
|
|
199
|
+
class TICalculator {
|
|
200
|
+
provider;
|
|
201
|
+
type;
|
|
202
|
+
container;
|
|
203
|
+
config;
|
|
204
|
+
tiInstance = null;
|
|
205
|
+
containerId;
|
|
206
|
+
currentValue = "";
|
|
207
|
+
history = [];
|
|
208
|
+
constructor(provider, type, container, config) {
|
|
209
|
+
this.provider = provider;
|
|
210
|
+
this.type = type;
|
|
211
|
+
this.container = container;
|
|
212
|
+
this.config = config;
|
|
213
|
+
// Generate unique container ID for the calculator
|
|
214
|
+
this.containerId = `ti-calculator-${type.replace("-", "")}-${Date.now()}`;
|
|
215
|
+
// Initialize asynchronously
|
|
216
|
+
this._initializeCalculator();
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Initialize TI calculator instance
|
|
220
|
+
* Based on production implementation patterns with settings
|
|
221
|
+
*/
|
|
222
|
+
async _initializeCalculator() {
|
|
223
|
+
console.log(`[TICalculator] Creating ${this.type} calculator`);
|
|
224
|
+
// Clean up any existing container content first
|
|
225
|
+
this.container.innerHTML = "";
|
|
226
|
+
// Create calculator div (TI calculators require a specific div ID)
|
|
227
|
+
const calculatorDiv = document.createElement("div");
|
|
228
|
+
calculatorDiv.id = this.containerId;
|
|
229
|
+
this.container.appendChild(calculatorDiv);
|
|
230
|
+
// Verify the element is in the DOM before initializing
|
|
231
|
+
// Some TI libraries (especially TI-34) querySelector immediately on initialization
|
|
232
|
+
const element = document.getElementById(this.containerId);
|
|
233
|
+
if (!element || !element.isConnected) {
|
|
234
|
+
throw new Error(`Calculator container element ${this.containerId} not found in DOM`);
|
|
235
|
+
}
|
|
236
|
+
// Get TI configuration (merge defaults with provided config)
|
|
237
|
+
const tiConfig = this._getTIConfig();
|
|
238
|
+
// Add a small delay to ensure DOM is ready and previous instances are cleaned up
|
|
239
|
+
// Double check element still exists after delay
|
|
240
|
+
await new Promise((resolve) => setTimeout(resolve, 150));
|
|
241
|
+
const elementAfterDelay = document.getElementById(this.containerId);
|
|
242
|
+
if (!elementAfterDelay || !elementAfterDelay.isConnected) {
|
|
243
|
+
throw new Error(`Calculator container element ${this.containerId} was removed before initialization`);
|
|
244
|
+
}
|
|
245
|
+
// Initialize calculator based on type
|
|
246
|
+
try {
|
|
247
|
+
switch (this.type) {
|
|
248
|
+
case "ti-84":
|
|
249
|
+
if (!window.TI84PCE) {
|
|
250
|
+
throw new Error("TI84PCE constructor not available. Ensure ti84p-min.js is loaded.");
|
|
251
|
+
}
|
|
252
|
+
this.tiInstance = new window.TI84PCE(tiConfig, 60000);
|
|
253
|
+
console.log("[TICalculator] TI-84 calculator instance created successfully");
|
|
254
|
+
break;
|
|
255
|
+
case "ti-108":
|
|
256
|
+
if (!window.TI108) {
|
|
257
|
+
throw new Error("TI108 constructor not available. Ensure ti108-min.js is loaded.");
|
|
258
|
+
}
|
|
259
|
+
this.tiInstance = new window.TI108(tiConfig, 60000);
|
|
260
|
+
console.log("[TICalculator] TI-108 calculator instance created successfully");
|
|
261
|
+
break;
|
|
262
|
+
case "ti-34-mv":
|
|
263
|
+
if (!window.TI34) {
|
|
264
|
+
throw new Error("TI34 constructor not available. Ensure ti34mv-min.js is loaded.");
|
|
265
|
+
}
|
|
266
|
+
this.tiInstance = new window.TI34(tiConfig, 60000);
|
|
267
|
+
console.log("[TICalculator] TI-34MV calculator instance created successfully");
|
|
268
|
+
break;
|
|
269
|
+
default:
|
|
270
|
+
throw new Error(`Unsupported TI calculator type: ${this.type}`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
console.error(`[TICalculator] Failed to initialize ${this.type} calculator:`, error);
|
|
275
|
+
// Render error message instead of crashing
|
|
276
|
+
this.container.innerHTML = `
|
|
277
|
+
<div style="padding: 20px; border: 2px solid #d32f2f; border-radius: 8px; background: #ffebee; text-align: center;">
|
|
278
|
+
<h3 style="margin: 0 0 10px 0; color: #d32f2f;">${this._getCalculatorName()}</h3>
|
|
279
|
+
<p style="margin: 0; color: #666;">
|
|
280
|
+
Failed to initialize calculator.<br>
|
|
281
|
+
Error: ${error instanceof Error ? error.message : "Unknown error"}
|
|
282
|
+
</p>
|
|
283
|
+
</div>
|
|
284
|
+
`;
|
|
285
|
+
throw error;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Get TI configuration with defaults based on production implementation patterns
|
|
290
|
+
*/
|
|
291
|
+
_getTIConfig() {
|
|
292
|
+
const tiConfig = this.config?.ti || {};
|
|
293
|
+
const defaults = this._getDefaultConfig(this.type);
|
|
294
|
+
// Merge defaults with provided config
|
|
295
|
+
return {
|
|
296
|
+
...defaults,
|
|
297
|
+
...tiConfig,
|
|
298
|
+
// Ensure elementId is always set
|
|
299
|
+
elementId: this.containerId,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Get default configuration for calculator type
|
|
304
|
+
* Based on production settings with versioned paths
|
|
305
|
+
*/
|
|
306
|
+
_getDefaultConfig(type) {
|
|
307
|
+
const basePath = `/lib/ti/${TI_VERSION}`;
|
|
308
|
+
switch (type) {
|
|
309
|
+
case "ti-84":
|
|
310
|
+
return {
|
|
311
|
+
elementId: this.containerId,
|
|
312
|
+
ROMLocation: `${basePath}/roms/No_AppsCE.h84statej`,
|
|
313
|
+
FaceplateLocation: `${basePath}/faceplates/TI84CE_touch.svg`,
|
|
314
|
+
KeyMappingFile: "",
|
|
315
|
+
KeyHistBufferLength: "10",
|
|
316
|
+
DisplayMode: "CLASSIC",
|
|
317
|
+
AngleMode: "RAD",
|
|
318
|
+
setTabOrder: 0,
|
|
319
|
+
setScreenReaderAria: true,
|
|
320
|
+
setAccessibleDisplay: true,
|
|
321
|
+
setupAPIs: {
|
|
322
|
+
resetEmulator: true,
|
|
323
|
+
},
|
|
324
|
+
};
|
|
325
|
+
case "ti-108":
|
|
326
|
+
return {
|
|
327
|
+
elementId: this.containerId,
|
|
328
|
+
ROMLocation: `${basePath}/roms/ti108.h84state`,
|
|
329
|
+
FaceplateLocation: `${basePath}/faceplates/TI108_touch.svg`,
|
|
330
|
+
KeyHistBufferLength: "10",
|
|
331
|
+
};
|
|
332
|
+
case "ti-34-mv":
|
|
333
|
+
return {
|
|
334
|
+
elementId: this.containerId,
|
|
335
|
+
ROMLocation: `${basePath}/roms/ti34mv.h84state`,
|
|
336
|
+
FaceplateLocation: `${basePath}/faceplates/TI34MV.svg`,
|
|
337
|
+
KeyMappingFile: "",
|
|
338
|
+
KeyHistBufferLength: "10",
|
|
339
|
+
DisplayMode: "CLASSIC",
|
|
340
|
+
AngleMode: "DEG",
|
|
341
|
+
};
|
|
342
|
+
default:
|
|
343
|
+
return {
|
|
344
|
+
elementId: this.containerId,
|
|
345
|
+
KeyHistBufferLength: "10",
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Get human-readable calculator name
|
|
351
|
+
*/
|
|
352
|
+
_getCalculatorName() {
|
|
353
|
+
switch (this.type) {
|
|
354
|
+
case "ti-84":
|
|
355
|
+
return "TI-84 Plus CE";
|
|
356
|
+
case "ti-108":
|
|
357
|
+
return "TI-108 Elementary";
|
|
358
|
+
case "ti-34-mv":
|
|
359
|
+
return "TI-34 MultiView";
|
|
360
|
+
default:
|
|
361
|
+
return "TI Calculator";
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Get current value
|
|
366
|
+
*/
|
|
367
|
+
getValue() {
|
|
368
|
+
return this.currentValue;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Set value
|
|
372
|
+
*/
|
|
373
|
+
setValue(value) {
|
|
374
|
+
this.currentValue = value;
|
|
375
|
+
console.log(`[TICalculator] setValue: ${value}`);
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Clear calculator
|
|
379
|
+
*/
|
|
380
|
+
clear() {
|
|
381
|
+
this.currentValue = "";
|
|
382
|
+
console.log("[TICalculator] clear");
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Get calculation history
|
|
386
|
+
*/
|
|
387
|
+
getHistory() {
|
|
388
|
+
return [...this.history];
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Clear history
|
|
392
|
+
*/
|
|
393
|
+
clearHistory() {
|
|
394
|
+
this.history = [];
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Evaluate expression
|
|
398
|
+
*/
|
|
399
|
+
async evaluate(expression) {
|
|
400
|
+
console.log(`[TICalculator] evaluate: ${expression}`);
|
|
401
|
+
// Stub: Simple evaluation using JavaScript
|
|
402
|
+
try {
|
|
403
|
+
// WARNING: This is unsafe for production - only for stub
|
|
404
|
+
// eslint-disable-next-line no-eval
|
|
405
|
+
const result = eval(expression.replace(/×/g, "*").replace(/÷/g, "/"));
|
|
406
|
+
const resultStr = String(result);
|
|
407
|
+
this.history.push({
|
|
408
|
+
expression,
|
|
409
|
+
result: resultStr,
|
|
410
|
+
timestamp: Date.now(),
|
|
411
|
+
});
|
|
412
|
+
return resultStr;
|
|
413
|
+
}
|
|
414
|
+
catch (error) {
|
|
415
|
+
throw new Error(`Evaluation error: ${error}`);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Resize calculator when container dimensions change
|
|
420
|
+
*/
|
|
421
|
+
resize() {
|
|
422
|
+
// Check if the container element still exists in the DOM
|
|
423
|
+
const element = document.getElementById(this.containerId);
|
|
424
|
+
if (!element || !element.isConnected) {
|
|
425
|
+
console.warn("[TICalculator] Cannot resize - element no longer in DOM");
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
try {
|
|
429
|
+
if (this.tiInstance?.resize) {
|
|
430
|
+
this.tiInstance.resize();
|
|
431
|
+
}
|
|
432
|
+
console.log("[TICalculator] resize");
|
|
433
|
+
}
|
|
434
|
+
catch (error) {
|
|
435
|
+
console.warn("[TICalculator] Error during resize:", error);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Export state
|
|
440
|
+
*/
|
|
441
|
+
exportState() {
|
|
442
|
+
return {
|
|
443
|
+
type: this.type,
|
|
444
|
+
provider: "ti",
|
|
445
|
+
value: this.currentValue,
|
|
446
|
+
history: this.history,
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Import state
|
|
451
|
+
*/
|
|
452
|
+
importState(state) {
|
|
453
|
+
if (state.provider !== "ti") {
|
|
454
|
+
throw new Error(`Cannot import state from provider: ${state.provider}`);
|
|
455
|
+
}
|
|
456
|
+
this.currentValue = state.value;
|
|
457
|
+
if (state.history) {
|
|
458
|
+
this.history = [...state.history];
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Destroy calculator
|
|
463
|
+
* Properly cleans up TI calculator instance
|
|
464
|
+
*/
|
|
465
|
+
destroy() {
|
|
466
|
+
// Check if the calculator element still exists in DOM before destroying
|
|
467
|
+
// The TI library's killInstance needs the element to exist and be connected
|
|
468
|
+
const calculatorDiv = document.getElementById(this.containerId);
|
|
469
|
+
const elementExists = calculatorDiv && calculatorDiv.isConnected;
|
|
470
|
+
if (this.tiInstance?.killInstance && elementExists) {
|
|
471
|
+
try {
|
|
472
|
+
// Only call killInstance if element is still in DOM
|
|
473
|
+
// This must be called BEFORE clearing DOM to allow library cleanup
|
|
474
|
+
// For TI-34, the library may querySelector during killInstance, so element must exist
|
|
475
|
+
const result = this.tiInstance.killInstance();
|
|
476
|
+
console.log(`[TICalculator] ${this.type} calculator destroyed:`, result);
|
|
477
|
+
// Give the library time to complete cleanup operations before removing elements
|
|
478
|
+
// The TI library (especially TI-34) may need to access DOM elements during cleanup
|
|
479
|
+
// Use multiple requestAnimationFrame calls to ensure all async cleanup completes
|
|
480
|
+
requestAnimationFrame(() => {
|
|
481
|
+
// Wait one more frame to ensure all cleanup is complete
|
|
482
|
+
requestAnimationFrame(() => {
|
|
483
|
+
// Verify element still exists before cleaning up (library might have removed it)
|
|
484
|
+
const stillExists = document.getElementById(this.containerId);
|
|
485
|
+
if (stillExists || this.container.isConnected) {
|
|
486
|
+
this._cleanupDOM();
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
catch (error) {
|
|
492
|
+
// If killInstance fails, log but don't throw - cleanup should continue
|
|
493
|
+
console.warn(`[TICalculator] Error destroying ${this.type} calculator (element may already be removed):`, error);
|
|
494
|
+
// Still clean up DOM even if killInstance failed, but with a delay
|
|
495
|
+
requestAnimationFrame(() => {
|
|
496
|
+
// Only cleanup if container still exists
|
|
497
|
+
if (this.container && this.container.isConnected) {
|
|
498
|
+
this._cleanupDOM();
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
else if (this.tiInstance?.killInstance && !elementExists) {
|
|
504
|
+
console.log(`[TICalculator] Skipping killInstance - element no longer in DOM for ${this.type}`);
|
|
505
|
+
// Element already removed, just clean up references
|
|
506
|
+
this._cleanupDOM();
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
// No instance to destroy, just clean up DOM
|
|
510
|
+
this._cleanupDOM();
|
|
511
|
+
}
|
|
512
|
+
this.tiInstance = null;
|
|
513
|
+
console.log("[TICalculator] destroyed");
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Internal method to clean up DOM elements
|
|
517
|
+
* Called after killInstance completes to prevent library accessing removed elements
|
|
518
|
+
* Note: Only clears the specific calculator div, not the entire container
|
|
519
|
+
* The container persists and can be reused when switching between TI calculators
|
|
520
|
+
*/
|
|
521
|
+
_cleanupDOM() {
|
|
522
|
+
// Get reference to calculator div before cleaning up
|
|
523
|
+
// Only clear the specific calculator div with our containerId, not the entire container
|
|
524
|
+
// This allows the container to be reused when switching calculator types
|
|
525
|
+
const calculatorDiv = document.getElementById(this.containerId);
|
|
526
|
+
// Clean up only the calculator div with our specific ID
|
|
527
|
+
// Don't clear the entire container - it may be reused for a new calculator
|
|
528
|
+
if (calculatorDiv) {
|
|
529
|
+
try {
|
|
530
|
+
// Check if still connected and matches our containerId before clearing
|
|
531
|
+
if (calculatorDiv.isConnected &&
|
|
532
|
+
calculatorDiv.id === this.containerId) {
|
|
533
|
+
// Clear only this calculator div's children
|
|
534
|
+
calculatorDiv.replaceChildren();
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
catch (error) {
|
|
538
|
+
console.warn("[TICalculator] Error clearing calculator div:", error);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
// Note: We intentionally don't clear this.container here
|
|
542
|
+
// The container is managed by the tool-calculator component and may be reused
|
|
543
|
+
// for a new calculator instance. Only clear the specific calculator div above.
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Singleton provider instance (deprecated)
|
|
548
|
+
* @deprecated Instantiate TICalculatorProvider directly instead:
|
|
549
|
+
* const provider = new TICalculatorProvider();
|
|
550
|
+
* await provider.initialize();
|
|
551
|
+
*/
|
|
552
|
+
export const tiProvider = new TICalculatorProvider();
|
|
553
|
+
/**
|
|
554
|
+
* NOTE: TI Calculator Emulator Integration
|
|
555
|
+
*
|
|
556
|
+
* To complete this implementation, you need:
|
|
557
|
+
*
|
|
558
|
+
* 1. Licensed TI Emulator Libraries:
|
|
559
|
+
* - TI-84 Plus CE Emulator SDK
|
|
560
|
+
* - TI-108 Emulator SDK
|
|
561
|
+
* - TI-34 MultiView Emulator SDK
|
|
562
|
+
*
|
|
563
|
+
* 2. API Documentation:
|
|
564
|
+
* - Initialize emulator in iframe or container
|
|
565
|
+
* - Send keypress events
|
|
566
|
+
* - Read display state
|
|
567
|
+
* - Export/import calculator memory
|
|
568
|
+
*
|
|
569
|
+
* 3. Licensing:
|
|
570
|
+
* - Obtain appropriate licenses from Texas Instruments
|
|
571
|
+
* - Comply with TI's terms of service
|
|
572
|
+
* - May require per-student or site licenses
|
|
573
|
+
*
|
|
574
|
+
* 4. References:
|
|
575
|
+
* - Various assessment platforms use TI emulators via Learnosity
|
|
576
|
+
* - Production implementations exist with TI emulator support
|
|
577
|
+
* - Some platforms use only Desmos calculators
|
|
578
|
+
*
|
|
579
|
+
* 5. Alternative Approach:
|
|
580
|
+
* - Embed TI emulator iframes from TI Education
|
|
581
|
+
* - Use postMessage API for communication
|
|
582
|
+
* - Handle cross-origin restrictions
|
|
583
|
+
*
|
|
584
|
+
* For now, this stub allows the architecture to support TI calculators
|
|
585
|
+
* without blocking development of other features.
|
|
586
|
+
*/
|
|
587
|
+
//# sourceMappingURL=ti-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ti-provider.js","sourceRoot":"","sources":["../../../src/tools/calculators/ti-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-only tool system exports
|
|
3
|
+
*
|
|
4
|
+
* This entry point exports only browser-safe code for use in custom elements.
|
|
5
|
+
* It excludes server-side services like accommodationResolver, variantResolver, etc.
|
|
6
|
+
*
|
|
7
|
+
* Tools should import from '$lib/assessment-toolkit/tools/client' instead of '$lib/assessment-toolkit/tools' to ensure
|
|
8
|
+
* they don't accidentally pull in server-side dependencies.
|
|
9
|
+
*/
|
|
10
|
+
export { DesmosCalculatorProvider, desmosProvider, } from "./calculators/desmos-provider";
|
|
11
|
+
export { MathJsCalculatorProvider, mathjsProvider, } from "./calculators/mathjs-provider";
|
|
12
|
+
export { TICalculatorProvider, tiProvider } from "./calculators/ti-provider";
|
|
13
|
+
export { COMMON_LIBRARIES, LibraryLoaderImpl, libraryLoader, } from "./library-loader";
|
|
14
|
+
export { ResponseDiscoveryServiceImpl, responseDiscovery, } from "./response-discovery";
|
|
15
|
+
export * from "./tool-coordinator";
|
|
16
|
+
export * from "./types";
|
|
17
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tools/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EACN,wBAAwB,EACxB,cAAc,GACd,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACN,wBAAwB,EACxB,cAAc,GACd,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,4BAA4B,EAC5B,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,cAAc,oBAAoB,CAAC;AAEnC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-only tool system exports
|
|
3
|
+
*
|
|
4
|
+
* This entry point exports only browser-safe code for use in custom elements.
|
|
5
|
+
* It excludes server-side services like accommodationResolver, variantResolver, etc.
|
|
6
|
+
*
|
|
7
|
+
* Tools should import from '$lib/assessment-toolkit/tools/client' instead of '$lib/assessment-toolkit/tools' to ensure
|
|
8
|
+
* they don't accidentally pull in server-side dependencies.
|
|
9
|
+
*/
|
|
10
|
+
// Calculator providers (client-safe, have SSR guards)
|
|
11
|
+
// Deprecated singleton exports (kept for backward compatibility)
|
|
12
|
+
// @deprecated Instantiate providers directly instead
|
|
13
|
+
export { DesmosCalculatorProvider, desmosProvider, } from "./calculators/desmos-provider";
|
|
14
|
+
// @deprecated Instantiate providers directly instead
|
|
15
|
+
export { MathJsCalculatorProvider, mathjsProvider, } from "./calculators/mathjs-provider";
|
|
16
|
+
// @deprecated Instantiate providers directly instead
|
|
17
|
+
export { TICalculatorProvider, tiProvider } from "./calculators/ti-provider";
|
|
18
|
+
// Library loader (client-safe, has SSR guards)
|
|
19
|
+
export { COMMON_LIBRARIES, LibraryLoaderImpl, libraryLoader, } from "./library-loader";
|
|
20
|
+
// Response discovery (client-safe, browser-only)
|
|
21
|
+
export { ResponseDiscoveryServiceImpl, responseDiscovery, } from "./response-discovery";
|
|
22
|
+
// Tool coordinator (client-safe, uses Svelte stores)
|
|
23
|
+
export * from "./tool-coordinator";
|
|
24
|
+
// Core types (client-safe)
|
|
25
|
+
export * from "./types";
|
|
26
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tools/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sDAAsD;AACtD,iEAAiE;AACjE,qDAAqD;AACrD,OAAO,EACN,wBAAwB,EACxB,cAAc,GACd,MAAM,+BAA+B,CAAC;AACvC,qDAAqD;AACrD,OAAO,EACN,wBAAwB,EACxB,cAAc,GACd,MAAM,+BAA+B,CAAC;AACvC,qDAAqD;AACrD,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC7E,+CAA+C;AAC/C,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,GACb,MAAM,kBAAkB,CAAC;AAC1B,iDAAiD;AACjD,OAAO,EACN,4BAA4B,EAC5B,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,qDAAqD;AACrD,cAAc,oBAAoB,CAAC;AACnC,2BAA2B;AAC3B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool system exports
|
|
3
|
+
*
|
|
4
|
+
* For custom elements and client-side code, use '$lib/assessment-toolkit/tools/client' instead.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./client";
|
|
7
|
+
export { VariantResolverImpl, variantResolver } from "./variant-resolver";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|