intelligent-system-design-language 0.3.21 → 0.3.22
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/out/_isdlStyles.scss +63 -0
- package/out/cli/components/_isdlStyles.scss +63 -0
- package/out/cli/components/chat-card-generator.js +13 -10
- package/out/cli/components/chat-card-generator.js.map +1 -1
- package/out/cli/components/datamodel-generator.js +7 -0
- package/out/cli/components/datamodel-generator.js.map +1 -1
- package/out/cli/components/language-generator.js +1 -1
- package/out/cli/components/language-generator.js.map +1 -1
- package/out/cli/components/method-generator.js +513 -421
- package/out/cli/components/method-generator.js.map +1 -1
- package/out/cli/components/vue/base-components/vue-roll-visualizer.js +262 -85
- package/out/cli/components/vue/base-components/vue-roll-visualizer.js.map +1 -1
- package/out/cli/components/vue/vue-prompt-generator.js +22 -7
- package/out/cli/components/vue/vue-prompt-generator.js.map +1 -1
- package/out/cli/components/vue/vue-sheet-application-generator.js +17 -7
- package/out/cli/components/vue/vue-sheet-application-generator.js.map +1 -1
- package/out/cli/generator.js +32 -27
- package/out/cli/generator.js.map +1 -1
- package/out/extension/github/githubAuthProvider.js +71 -29
- package/out/extension/github/githubAuthProvider.js.map +1 -1
- package/out/extension/github/githubGistManager.js +4 -3
- package/out/extension/github/githubGistManager.js.map +1 -1
- package/out/extension/github/githubManager.js +5 -3
- package/out/extension/github/githubManager.js.map +1 -1
- package/out/extension/main.cjs +909 -532
- package/out/extension/main.cjs.map +3 -3
- package/out/extension/package.json +1 -1
- package/out/language/generated/ast.js +51 -2
- package/out/language/generated/ast.js.map +1 -1
- package/out/language/generated/grammar.js +742 -493
- package/out/language/generated/grammar.js.map +1 -1
- package/out/language/intelligent-system-design-language-validator.js +32 -2
- package/out/language/intelligent-system-design-language-validator.js.map +1 -1
- package/out/language/isdl-scope-provider.js +14 -1
- package/out/language/isdl-scope-provider.js.map +1 -1
- package/out/language/main.cjs +913 -569
- package/out/language/main.cjs.map +3 -3
- package/out/package.json +1 -1
- package/out/styles.scss +30 -15
- package/out/test/validating/diagnostics.test.js +40 -0
- package/out/test/validating/diagnostics.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,114 +8,291 @@ export default function generateRollVisualizerComponent(destination) {
|
|
|
8
8
|
fs.mkdirSync(generatedFileDir, { recursive: true });
|
|
9
9
|
}
|
|
10
10
|
const fileNode = expandToNode `
|
|
11
|
+
<script>
|
|
12
|
+
// Module-scoped cache (shared across all roll-visualizer instances for the page
|
|
13
|
+
// session, and surviving sheet re-renders/re-opens). Keyed by the RESOLVED formula
|
|
14
|
+
// (after @refs are substituted), so the same dice math -- especially the expensive
|
|
15
|
+
// simulation path -- is only computed once. Cleared on page reload.
|
|
16
|
+
const __rollVisualizerCache = new Map();
|
|
17
|
+
</script>
|
|
11
18
|
<script setup>
|
|
12
|
-
import { ref, computed,
|
|
13
|
-
|
|
14
|
-
const props = defineProps({});
|
|
15
|
-
|
|
16
|
-
const resultText = ref("Not Evaluated");
|
|
17
|
-
const roll = ref("2d20 + d6 + 5");
|
|
19
|
+
import { ref, watch, computed, inject } from "vue";
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
acc[num] = (acc[num] || 0) + 1;
|
|
31
|
-
return acc;
|
|
32
|
-
}, {});
|
|
21
|
+
const props = defineProps({
|
|
22
|
+
label: String,
|
|
23
|
+
icon: String,
|
|
24
|
+
color: String,
|
|
25
|
+
systemPath: String,
|
|
26
|
+
context: Object,
|
|
27
|
+
// The Foundry roll formula (may contain @refs), compiled from the field's value: expression.
|
|
28
|
+
formula: { type: String, default: "" },
|
|
29
|
+
// Data object resolving the @refs, bound from the live (reactive) document/prompt data.
|
|
30
|
+
rollData: { type: Object, default: () => ({}) }
|
|
31
|
+
});
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
// ----- Distribution engine ---------------------------------------------------
|
|
34
|
+
// For purely additive dice formulas (dice + constants, +/- only, no dice
|
|
35
|
+
// modifiers) we compute the EXACT probability distribution by convolution.
|
|
36
|
+
// Anything more exotic (keep-highest/lowest, exploding, rerolls, multiplied
|
|
37
|
+
// dice, fate dice, pools, functions) falls back to Monte Carlo simulation.
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
// A distribution is a Map<outcomeValue, probability>.
|
|
40
|
+
const dieDist = (faces) => {
|
|
41
|
+
const m = new Map();
|
|
42
|
+
for (let f = 1; f <= faces; f++) m.set(f, 1 / faces);
|
|
43
|
+
return m;
|
|
44
|
+
};
|
|
45
|
+
const convolve = (a, b) => {
|
|
46
|
+
const out = new Map();
|
|
47
|
+
for (const [va, pa] of a) {
|
|
48
|
+
for (const [vb, pb] of b) {
|
|
49
|
+
const v = va + vb;
|
|
50
|
+
out.set(v, (out.get(v) || 0) + pa * pb);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return out;
|
|
54
|
+
};
|
|
55
|
+
const negate = (a) => {
|
|
56
|
+
const m = new Map();
|
|
57
|
+
for (const [v, p] of a) m.set(-v, p);
|
|
58
|
+
return m;
|
|
59
|
+
};
|
|
60
|
+
const shift = (a, k) => {
|
|
61
|
+
const m = new Map();
|
|
62
|
+
for (const [v, p] of a) m.set(v + k, p);
|
|
63
|
+
return m;
|
|
64
|
+
};
|
|
41
65
|
|
|
42
|
-
|
|
66
|
+
// Classify a Foundry roll term. Foundry does not minify these class names in
|
|
67
|
+
// either v12 or v13, so constructor.name is a reliable signal.
|
|
68
|
+
const classify = (term) => {
|
|
69
|
+
const n = term?.constructor?.name;
|
|
70
|
+
if (n === "Die") return "die";
|
|
71
|
+
if (n === "NumericTerm") return "num";
|
|
72
|
+
if (n === "OperatorTerm") return "op";
|
|
73
|
+
return "other";
|
|
74
|
+
};
|
|
43
75
|
|
|
44
|
-
|
|
45
|
-
|
|
76
|
+
// Decide whether a parsed roll can be solved exactly. Guard the convolution
|
|
77
|
+
// against pathological sizes (huge dice pools) by falling back to simulation.
|
|
78
|
+
const MAX_BUCKETS = 5000;
|
|
79
|
+
const canConvolve = (terms) => {
|
|
80
|
+
let minTotal = 0, maxTotal = 0;
|
|
81
|
+
for (const term of terms) {
|
|
82
|
+
const kind = classify(term);
|
|
83
|
+
if (kind === "op") {
|
|
84
|
+
if (term.operator !== "+" && term.operator !== "-") return false;
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (kind === "die") {
|
|
88
|
+
if (Array.isArray(term.modifiers) && term.modifiers.length > 0) return false;
|
|
89
|
+
const number = Number(term.number);
|
|
90
|
+
const faces = Number(term.faces);
|
|
91
|
+
if (!Number.isInteger(number) || !Number.isInteger(faces) || faces < 1 || number < 0) return false;
|
|
92
|
+
minTotal += number;
|
|
93
|
+
maxTotal += number * faces;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (kind === "num") {
|
|
97
|
+
if (!Number.isFinite(Number(term.number))) return false;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
return false; // unknown term type
|
|
46
101
|
}
|
|
102
|
+
return (maxTotal - minTotal) <= MAX_BUCKETS;
|
|
103
|
+
};
|
|
47
104
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
let
|
|
51
|
-
|
|
105
|
+
// Build the exact PMF for an additive term list.
|
|
106
|
+
const convolveTerms = (terms) => {
|
|
107
|
+
let acc = new Map([[0, 1]]);
|
|
108
|
+
let sign = 1;
|
|
109
|
+
for (const term of terms) {
|
|
110
|
+
const kind = classify(term);
|
|
111
|
+
if (kind === "op") {
|
|
112
|
+
sign = term.operator === "-" ? -1 : 1;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (kind === "die") {
|
|
116
|
+
let dist = new Map([[0, 1]]);
|
|
117
|
+
for (let i = 0; i < Number(term.number); i++) dist = convolve(dist, dieDist(Number(term.faces)));
|
|
118
|
+
if (sign < 0) dist = negate(dist);
|
|
119
|
+
acc = convolve(acc, dist);
|
|
120
|
+
}
|
|
121
|
+
else if (kind === "num") {
|
|
122
|
+
acc = shift(acc, sign * Number(term.number));
|
|
123
|
+
}
|
|
124
|
+
sign = 1;
|
|
125
|
+
}
|
|
126
|
+
return acc;
|
|
127
|
+
};
|
|
52
128
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
129
|
+
// Derive the display payload (average, min, max, chart series) from a PMF.
|
|
130
|
+
const summarize = (dist, approximate) => {
|
|
131
|
+
const entries = [...dist.entries()].sort((a, b) => a[0] - b[0]);
|
|
132
|
+
let average = 0, min = Infinity, max = -Infinity;
|
|
133
|
+
for (const [v, p] of entries) {
|
|
134
|
+
average += v * p;
|
|
135
|
+
if (v < min) min = v;
|
|
136
|
+
if (v > max) max = v;
|
|
57
137
|
}
|
|
138
|
+
const outcomeValues = entries.map(([v]) => v);
|
|
139
|
+
const values = entries.map(([, p]) => +(p * 100).toFixed(2));
|
|
140
|
+
// Thin the x-axis labels so they don't cluster/overlap: pick a "nice" step
|
|
141
|
+
// (1, 2, 5, 10, ...) targeting ~8 labels, and only label outcomes that land on
|
|
142
|
+
// a multiple of it -- so the axis reads in round numbers (5, 10, 15, 20 ...).
|
|
143
|
+
const lo = outcomeValues.length ? outcomeValues[0] : 0;
|
|
144
|
+
const hi = outcomeValues.length ? outcomeValues[outcomeValues.length - 1] : 0;
|
|
145
|
+
const span = Math.max(1, hi - lo);
|
|
146
|
+
const rawStep = span / 8;
|
|
147
|
+
const pow = Math.pow(10, Math.floor(Math.log10(rawStep)));
|
|
148
|
+
const norm = rawStep / pow;
|
|
149
|
+
const niceStep = (norm <= 1 ? 1 : norm <= 2 ? 2 : norm <= 5 ? 5 : 10) * pow;
|
|
150
|
+
const step = Math.max(1, Math.round(niceStep));
|
|
151
|
+
return {
|
|
152
|
+
average: +average.toFixed(2),
|
|
153
|
+
min: entries.length ? min : 0,
|
|
154
|
+
max: entries.length ? max : 0,
|
|
155
|
+
labels: outcomeValues,
|
|
156
|
+
values,
|
|
157
|
+
step,
|
|
158
|
+
approximate,
|
|
159
|
+
hasData: entries.length > 0
|
|
160
|
+
};
|
|
161
|
+
};
|
|
58
162
|
|
|
59
|
-
|
|
60
|
-
values.value = counted.values;
|
|
61
|
-
min.value = Math.min(...counted.labels);
|
|
62
|
-
max.value = Math.max(...counted.labels);
|
|
163
|
+
// ----- Reactive computation --------------------------------------------------
|
|
63
164
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
iterations.value = 10000;
|
|
165
|
+
const result = ref({ average: 0, min: 0, max: 0, labels: [], values: [], step: 1, approximate: false, hasData: false });
|
|
166
|
+
const iterations = ref(0);
|
|
167
|
+
let runToken = 0;
|
|
68
168
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
169
|
+
// Monte Carlo fallback. Roll.simulate builds a full Roll per sample (~0.2ms each),
|
|
170
|
+
// so a large batch blocks the main thread for seconds and freezes the sheet on
|
|
171
|
+
// render. Instead, sample a modest target in small chunks and yield to the event
|
|
172
|
+
// loop between each, refining the curve in place. The sheet stays responsive and
|
|
173
|
+
// the chart fills in progressively.
|
|
174
|
+
const SIM_TARGET = 2000;
|
|
175
|
+
const SIM_CHUNK = 200;
|
|
176
|
+
const runSimulation = async (formula, token, cacheKey) => {
|
|
177
|
+
const counts = new Map();
|
|
178
|
+
let done = 0;
|
|
179
|
+
while (done < SIM_TARGET) {
|
|
180
|
+
if (token !== runToken) return; // a newer run superseded us
|
|
181
|
+
const n = Math.min(SIM_CHUNK, SIM_TARGET - done);
|
|
182
|
+
const batch = await Roll.simulate(formula, n);
|
|
183
|
+
if (token !== runToken) return;
|
|
184
|
+
for (const v of batch) counts.set(v, (counts.get(v) || 0) + 1);
|
|
185
|
+
done += n;
|
|
186
|
+
const dist = new Map();
|
|
187
|
+
for (const [v, c] of counts) dist.set(v, c / done);
|
|
188
|
+
result.value = summarize(dist, true);
|
|
189
|
+
iterations.value = done;
|
|
190
|
+
// Yield so the browser can paint and handle input between chunks.
|
|
191
|
+
await new Promise(r => setTimeout(r, 0));
|
|
192
|
+
}
|
|
193
|
+
// Cache the completed estimate so this formula isn't re-simulated later.
|
|
194
|
+
__rollVisualizerCache.set(cacheKey, result.value);
|
|
195
|
+
};
|
|
74
196
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
197
|
+
const recompute = () => {
|
|
198
|
+
const token = ++runToken;
|
|
199
|
+
const raw = (props.formula || "").trim();
|
|
200
|
+
if (!raw) {
|
|
201
|
+
result.value = { average: 0, min: 0, max: 0, labels: [], values: [], step: 1, approximate: false, hasData: false };
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
let roll;
|
|
205
|
+
try {
|
|
206
|
+
roll = new Roll(raw, props.rollData || {});
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
result.value = { average: 0, min: 0, max: 0, labels: [], values: [], step: 1, approximate: false, hasData: false };
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
// Cache hit on the resolved formula -> reuse the result, no recompute.
|
|
213
|
+
const cacheKey = roll.formula;
|
|
214
|
+
const cached = __rollVisualizerCache.get(cacheKey);
|
|
215
|
+
if (cached) {
|
|
216
|
+
result.value = cached;
|
|
217
|
+
iterations.value = cached.approximate ? SIM_TARGET : 0;
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
// After construction Foundry has substituted @refs into the terms.
|
|
221
|
+
const terms = roll.terms || [];
|
|
222
|
+
if (canConvolve(terms)) {
|
|
223
|
+
iterations.value = 0;
|
|
224
|
+
const summary = summarize(convolveTerms(terms), false);
|
|
225
|
+
__rollVisualizerCache.set(cacheKey, summary);
|
|
226
|
+
result.value = summary;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
// Simulate against the resolved formula (no @refs remain in roll.formula).
|
|
230
|
+
runSimulation(roll.formula, token, cacheKey);
|
|
231
|
+
}
|
|
232
|
+
};
|
|
80
233
|
|
|
234
|
+
// Debounce so rapid field edits don't kick off redundant simulations.
|
|
235
|
+
let debounceHandle = null;
|
|
236
|
+
watch(
|
|
237
|
+
() => [props.formula, JSON.stringify(props.rollData || {})],
|
|
238
|
+
() => {
|
|
239
|
+
if (debounceHandle) clearTimeout(debounceHandle);
|
|
240
|
+
debounceHandle = setTimeout(recompute, 200);
|
|
241
|
+
},
|
|
242
|
+
{ immediate: true }
|
|
243
|
+
);
|
|
81
244
|
|
|
245
|
+
const getLabel = computed(() => {
|
|
246
|
+
const localized = game.i18n.localize(props.label);
|
|
247
|
+
if (props.icon) return \`<i class="fa-solid \${props.icon}"></i> \${localized}\`;
|
|
248
|
+
return localized;
|
|
249
|
+
});
|
|
250
|
+
const accentColor = computed(() => props.color || "#92aed9");
|
|
251
|
+
const averageText = computed(() => (result.value.approximate ? "≈ " : "") + result.value.average);
|
|
82
252
|
</script>
|
|
83
253
|
|
|
84
254
|
<template>
|
|
85
|
-
<v-card class="
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
255
|
+
<v-card class="isdl-roll-visualizer" :name="systemPath" variant="tonal" density="compact">
|
|
256
|
+
<div class="isdl-roll-visualizer__header">
|
|
257
|
+
<span class="isdl-roll-visualizer__label" v-html="getLabel"></span>
|
|
258
|
+
<span class="isdl-roll-visualizer__avg" :style="{ color: accentColor }">{{ averageText }}</span>
|
|
259
|
+
</div>
|
|
260
|
+
<v-sparkline
|
|
261
|
+
v-if="result.hasData"
|
|
262
|
+
:labels="result.labels"
|
|
263
|
+
:model-value="result.values"
|
|
264
|
+
:color="accentColor"
|
|
265
|
+
line-width="2"
|
|
266
|
+
padding="8"
|
|
267
|
+
smooth="6"
|
|
268
|
+
:label-size="10"
|
|
269
|
+
auto-draw
|
|
270
|
+
preserveAspectRatio="none"
|
|
92
271
|
>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
<span class="text-caption text-grey font-weight-light">
|
|
113
|
-
Approximate results based on {{iterations}} simulations
|
|
272
|
+
<!-- Render a label only on "nice" round outcomes; blank elsewhere so the
|
|
273
|
+
axis doesn't cluster and never falls back to showing the raw value. -->
|
|
274
|
+
<template #label="item">
|
|
275
|
+
{{ Number(item.value) % result.step === 0 ? item.value : "" }}
|
|
276
|
+
</template>
|
|
277
|
+
</v-sparkline>
|
|
278
|
+
<div v-else class="isdl-roll-visualizer__empty text-caption">
|
|
279
|
+
{{ game.i18n.localize("ROLLVISUALIZER.NoFormula") }}
|
|
280
|
+
</div>
|
|
281
|
+
<div class="isdl-roll-visualizer__footer text-caption">
|
|
282
|
+
<span v-if="result.hasData">
|
|
283
|
+
{{ game.i18n.localize("ROLLVISUALIZER.Min") }}: {{ result.min }}
|
|
284
|
+
·
|
|
285
|
+
{{ game.i18n.localize("ROLLVISUALIZER.Max") }}: {{ result.max }}
|
|
286
|
+
·
|
|
287
|
+
{{ game.i18n.localize("ROLLVISUALIZER.Average") }}: {{ averageText }}
|
|
288
|
+
</span>
|
|
289
|
+
<span v-if="result.approximate && iterations > 0" class="isdl-roll-visualizer__approx">
|
|
290
|
+
({{ iterations }} {{ game.i18n.localize("ROLLVISUALIZER.Simulations") }})
|
|
114
291
|
</span>
|
|
115
|
-
</
|
|
292
|
+
</div>
|
|
116
293
|
</v-card>
|
|
117
294
|
</template>
|
|
118
|
-
|
|
295
|
+
`.appendNewLine();
|
|
119
296
|
fs.writeFileSync(generatedFilePath, toString(fileNode));
|
|
120
297
|
}
|
|
121
298
|
//# sourceMappingURL=vue-roll-visualizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue-roll-visualizer.js","sourceRoot":"","sources":["../../../../../src/cli/components/vue/base-components/vue-roll-visualizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,WAAmB;IACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5F,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;IAE7E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QAClC,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;KACrD;IAED,MAAM,QAAQ,GAAG,YAAY,CAAA
|
|
1
|
+
{"version":3,"file":"vue-roll-visualizer.js","sourceRoot":"","sources":["../../../../../src/cli/components/vue/base-components/vue-roll-visualizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,WAAmB;IACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5F,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;IAE7E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QAClC,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;KACrD;IAED,MAAM,QAAQ,GAAG,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6R5B,CAAC,aAAa,EAAE,CAAC;IAElB,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as path from 'node:path';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import { expandToNode, joinToNode, toString } from 'langium/generate';
|
|
4
|
-
import { isAction, isActor, isAttributeExp, isBooleanExp, isDateExp, isDateTimeExp, isDocumentChoiceExp, isDocumentChoicesExp, isHookHandler, isNumberExp, isNumberParamValue, isParentPropertyRefChoiceParam, isParentPropertyRefExp, isProperty, isResourceExp, isSingleDocumentExp, isStringChoiceField, isStringExp, isStringExtendedChoice, isStringParamChoices, isStringParamValue, isChoiceStringValue, isLabelParam, isTimeExp, isVariableExpression, isStringChoicesField, isDamageTypeChoiceField, isDieField, isDiceField, isDieChoicesParam, isDieNoneParam, isSelfPropertyRefExp } from "../../../language/generated/ast.js";
|
|
4
|
+
import { isAction, isActor, isAttributeExp, isBooleanExp, isDateExp, isDateTimeExp, isDocumentChoiceExp, isDocumentChoicesExp, isHookHandler, isNumberExp, isNumberParamValue, isParentPropertyRefChoiceParam, isParentPropertyRefExp, isProperty, isResourceExp, isSingleDocumentExp, isStringChoiceField, isStringExp, isStringExtendedChoice, isStringParamChoices, isStringParamValue, isChoiceStringValue, isLabelParam, isTimeExp, isVariableExpression, isStringChoicesField, isDamageTypeChoiceField, isDieField, isDiceField, isDieChoicesParam, isDieNoneParam, isSelfPropertyRefExp, isRollVisualizerField, isIconParam, isColorParam } from "../../../language/generated/ast.js";
|
|
5
5
|
import { getDocument, globalGetAllOfType, toMachineIdentifier } from '../utils.js';
|
|
6
|
+
import { compileVisualizerFormula } from '../method-generator.js';
|
|
6
7
|
import { AstUtils } from 'langium';
|
|
7
8
|
export function generatePromptApp(name, entry, id, document, prompt, destination) {
|
|
8
9
|
const type = isActor(document) ? 'actor' : 'item';
|
|
@@ -30,7 +31,7 @@ export function generatePromptApp(name, entry, id, document, prompt, destination
|
|
|
30
31
|
<div style="flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 0.5rem;">
|
|
31
32
|
${joinToNode(prompt.body, element => generateElement(element), { appendNewLineIfNotEmpty: true })}
|
|
32
33
|
</div>
|
|
33
|
-
<v-row class="flexrow" style="flex: 0 0 auto; margin: 0;">
|
|
34
|
+
<v-row class="flexrow isdl-prompt-footer" style="flex: 0 0 auto; margin: 0;">
|
|
34
35
|
<v-btn @click="context.promptSubmit && context.promptSubmit()" color="primary" class="ma-1 action-btn">Submit</v-btn>
|
|
35
36
|
<v-btn @click="context.promptCancel && context.promptCancel()" color="error" class="ma-1 action-btn">Cancel</v-btn>
|
|
36
37
|
</v-row>
|
|
@@ -47,11 +48,6 @@ export function generatePromptApp(name, entry, id, document, prompt, destination
|
|
|
47
48
|
return expandToNode ``;
|
|
48
49
|
if (element.modifier == "hidden")
|
|
49
50
|
return expandToNode ``;
|
|
50
|
-
if (element.name == "RollVisualizer") {
|
|
51
|
-
return expandToNode `
|
|
52
|
-
<i-roll-visualizer :context="context"></i-roll-visualizer>
|
|
53
|
-
`;
|
|
54
|
-
}
|
|
55
51
|
let disabled = element.modifier == "readonly" || element.modifier == "locked"; // TODO: Edit mode
|
|
56
52
|
if (element.modifier == "unlocked")
|
|
57
53
|
disabled = false;
|
|
@@ -60,6 +56,25 @@ export function generatePromptApp(name, entry, id, document, prompt, destination
|
|
|
60
56
|
const label = `${document.name}.${element.name}`;
|
|
61
57
|
const labelFragment = `:label="game.i18n.localize('${label}')"`;
|
|
62
58
|
const systemPath = `system.${action === null || action === void 0 ? void 0 : action.name.toLowerCase()}${variable === null || variable === void 0 ? void 0 : variable.name.toLowerCase()}.${element.name.toLowerCase()}`;
|
|
59
|
+
if (isRollVisualizerField(element)) {
|
|
60
|
+
// Phase 1: static preview on prompts -- the formula resolves against the
|
|
61
|
+
// document's data (context.object.system). It does not yet react to sibling
|
|
62
|
+
// prompt inputs as the user types (see the roll-visualizer design spec).
|
|
63
|
+
const { formula, data } = compileVisualizerFormula(entry, id, element);
|
|
64
|
+
const iconParam = element.params.find(p => isIconParam(p));
|
|
65
|
+
const colorParam = element.params.find(p => isColorParam(p));
|
|
66
|
+
return expandToNode `
|
|
67
|
+
<i-roll-visualizer
|
|
68
|
+
:context="context"
|
|
69
|
+
label="${label}"
|
|
70
|
+
${iconParam ? `icon="${iconParam.value}"` : ``}
|
|
71
|
+
${colorParam ? `color="${colorParam.value}"` : ``}
|
|
72
|
+
systemPath="${systemPath}"
|
|
73
|
+
:formula='${formula}'
|
|
74
|
+
:rollData='${data}'>
|
|
75
|
+
</i-roll-visualizer>
|
|
76
|
+
`;
|
|
77
|
+
}
|
|
63
78
|
if (isParentPropertyRefExp(element)) {
|
|
64
79
|
let allChoices = [];
|
|
65
80
|
const choicesParam = element.params.find(p => isParentPropertyRefChoiceParam(p));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue-prompt-generator.js","sourceRoot":"","sources":["../../../../src/cli/components/vue/vue-prompt-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vue-prompt-generator.js","sourceRoot":"","sources":["../../../../src/cli/components/vue/vue-prompt-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as path from 'node:path';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import { expandToNode, joinToNode, toString } from 'langium/generate';
|
|
4
|
-
import { isAccess, isAction, isActor, isAttributeExp, isAttributeParamMod, isAttributeRollParam, isAttributeFunctionParam, isAttributeStyleParam, isBackgroundParam, isBooleanExp, isBooleanParamValue, isChoiceCustomProperty, isChoiceStringValue, isColorParam, isColumn, isDateExp, isDateTimeExp, isDiceField, isDiceFields, isDieChoicesParam, isDieNoneParam, isDieField, isDocumentChoiceExp, isDocumentChoicesExp, isEntry, isHtmlExp, isIconParam, isImageParam, isLabelParam, isMacroField, isMeasuredTemplateField, isDamageBonusesField, isDamageResistancesField, isPinnedField, isMoneyField, isDamageTrackExp, isDamageTrackTypesParam, isMethodBlock, isNumberExp, isNumberParamMax, isNumberParamMin, isNumberParamValue, isNumberParamCalculator, isPage, isPaperDollExp, isParentPropertyRefChoiceParam, isParentPropertyRefExp, isSelfPropertyRefExp, isProperty, isResourceExp, isRow, isSection, isSegmentsParameter, isSingleDocumentExp, isSizeParam, isStatusProperty, isStringChoiceField, isDamageTypeChoiceField, isStringChoicesField, isStringExp, isStringExtendedChoice, isStringParamChoices, isStringParamValue, isTableField, isTimeExp, isTrackerExp, isTrackerStyleParameter, isVisibilityParam, isInventoryField, isInventorySlotsParam, isInventoryRowsParam, isInventoryColumnsParam, isInventorySlotSizeParam, isInventoryQuantityParam, isInventoryMoneyParam, isInventorySumParam, isInventorySumMaxParam, isInventorySortParam, isInventoryEmptySlotsParam, isInventorySummaryParam, isWhereParam, isGlobalParam } from "../../../language/generated/ast.js";
|
|
4
|
+
import { isAccess, isAction, isActor, isAttributeExp, isAttributeParamMod, isAttributeRollParam, isAttributeFunctionParam, isAttributeStyleParam, isBackgroundParam, isBooleanExp, isBooleanParamValue, isChoiceCustomProperty, isChoiceStringValue, isColorParam, isColumn, isDateExp, isDateTimeExp, isDiceField, isDiceFields, isDieChoicesParam, isDieNoneParam, isDieField, isDocumentChoiceExp, isDocumentChoicesExp, isEntry, isHtmlExp, isIconParam, isImageParam, isLabelParam, isMacroField, isMeasuredTemplateField, isDamageBonusesField, isDamageResistancesField, isPinnedField, isMoneyField, isDamageTrackExp, isDamageTrackTypesParam, isRollVisualizerField, isMethodBlock, isNumberExp, isNumberParamMax, isNumberParamMin, isNumberParamValue, isNumberParamCalculator, isPage, isPaperDollExp, isParentPropertyRefChoiceParam, isParentPropertyRefExp, isSelfPropertyRefExp, isProperty, isResourceExp, isRow, isSection, isSegmentsParameter, isSingleDocumentExp, isSizeParam, isStatusProperty, isStringChoiceField, isDamageTypeChoiceField, isStringChoicesField, isStringExp, isStringExtendedChoice, isStringParamChoices, isStringParamValue, isTableField, isTimeExp, isTrackerExp, isTrackerStyleParameter, isVisibilityParam, isInventoryField, isInventorySlotsParam, isInventoryRowsParam, isInventoryColumnsParam, isInventorySlotSizeParam, isInventoryQuantityParam, isInventoryMoneyParam, isInventorySumParam, isInventorySumMaxParam, isInventorySortParam, isInventoryEmptySlotsParam, isInventorySummaryParam, isWhereParam, isGlobalParam } from "../../../language/generated/ast.js";
|
|
5
5
|
import { getAllOfType, getDocument, getSystemPath, globalGetAllOfType, toMachineIdentifier } from '../utils.js';
|
|
6
6
|
import { AstUtils } from 'langium';
|
|
7
7
|
import { generateActionComponent } from './vue-action-component-generator.js';
|
|
8
8
|
import { generatePinnedVuetifyDatatableComponent } from './vue-pinned-datatable-component-generator.js';
|
|
9
9
|
// import {generateDocumentChoiceComponent} from './vue-document-choice-component-generator.js';
|
|
10
10
|
import { generateDocumentChoicesComponent } from './base-components/vue-document-choices.js';
|
|
11
|
-
import { translateBodyExpressionToJavascript, translateExpression } from '../method-generator.js';
|
|
11
|
+
import { translateBodyExpressionToJavascript, translateExpression, compileVisualizerFormula } from '../method-generator.js';
|
|
12
12
|
import { humanize } from "inflection";
|
|
13
13
|
import { generateVuetifyDatatableComponent } from "./vue-datatable2-component-generator.js";
|
|
14
14
|
import { generateDocumentChoiceComponent } from "./base-components/vue-document-choice.js";
|
|
@@ -1123,11 +1123,6 @@ function generateVueComponentTemplate(entry, id, document) {
|
|
|
1123
1123
|
if (isProperty(element)) {
|
|
1124
1124
|
if (element.modifier == "hidden")
|
|
1125
1125
|
return expandToNode ``;
|
|
1126
|
-
if (element.name == "RollVisualizer") {
|
|
1127
|
-
return expandToNode `
|
|
1128
|
-
<i-roll-visualizer :context="context"></i-roll-visualizer>
|
|
1129
|
-
`;
|
|
1130
|
-
}
|
|
1131
1126
|
const standardParams = element.params;
|
|
1132
1127
|
const iconParam = standardParams.find(p => isIconParam(p));
|
|
1133
1128
|
const colorParam = standardParams.find(p => isColorParam(p));
|
|
@@ -1135,6 +1130,21 @@ function generateVueComponentTemplate(entry, id, document) {
|
|
|
1135
1130
|
const standardParamsFragment = colorParam ? `:disabled="isDisabled('${element.name.toLowerCase()}')" v-if="!isHidden('${element.name.toLowerCase()}')" color="${colorParam.value}"` : `:disabled="isDisabled('${element.name.toLowerCase()}')" v-if="!isHidden('${element.name.toLowerCase()}')"`;
|
|
1136
1131
|
const systemPath = getSystemPath(element, [], undefined, false);
|
|
1137
1132
|
const entry = AstUtils.getContainerOfType(element, isEntry);
|
|
1133
|
+
if (isRollVisualizerField(element)) {
|
|
1134
|
+
const { formula, data } = compileVisualizerFormula(entry, id, element);
|
|
1135
|
+
return expandToNode `
|
|
1136
|
+
<i-roll-visualizer
|
|
1137
|
+
:context="context"
|
|
1138
|
+
label="${label}"
|
|
1139
|
+
${iconParam ? `icon="${iconParam.value}"` : ``}
|
|
1140
|
+
${colorParam ? `color="${colorParam.value}"` : ``}
|
|
1141
|
+
systemPath="${systemPath}"
|
|
1142
|
+
:formula='${formula}'
|
|
1143
|
+
:rollData='${data}'
|
|
1144
|
+
v-if="!isHidden('${element.name.toLowerCase()}')">
|
|
1145
|
+
</i-roll-visualizer>
|
|
1146
|
+
`;
|
|
1147
|
+
}
|
|
1138
1148
|
if (isParentPropertyRefExp(element)) {
|
|
1139
1149
|
const choicesParam = element.params.find(p => isParentPropertyRefChoiceParam(p));
|
|
1140
1150
|
let allChoices = [];
|