maze-blockly-wrapper 0.3.0 → 0.3.2
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/dist/blockly-CB1haBOu.cjs +329 -0
- package/dist/blockly-CB1haBOu.cjs.map +1 -0
- package/dist/blockly-D9trJ_x0.js +329 -0
- package/dist/blockly-D9trJ_x0.js.map +1 -0
- package/dist/blockly_compressed-Bdba50O4.js +21043 -0
- package/dist/{blockly_compressed-L5h4evQZ.js.map → blockly_compressed-Bdba50O4.js.map} +1 -1
- package/dist/blockly_compressed-DKwMdvF1.cjs +21042 -0
- package/dist/{blockly_compressed-BZraWoMC.cjs.map → blockly_compressed-DKwMdvF1.cjs.map} +1 -1
- package/dist/blocks-B05dnyOn.js +1707 -0
- package/dist/{blocks-DNGprLHy.js.map → blocks-B05dnyOn.js.map} +1 -1
- package/dist/blocks-BabbRNKU.cjs +1707 -0
- package/dist/{blocks-C4L357Lk.cjs.map → blocks-BabbRNKU.cjs.map} +1 -1
- package/dist/components/maze/MazeGame.d.ts +1 -0
- package/dist/index-C2TQzLih.js +5038 -0
- package/dist/{index-Kkc2CBjJ.js.map → index-C2TQzLih.js.map} +1 -1
- package/dist/index-CeTmKa8Y.cjs +5053 -0
- package/dist/{index-CRP4KubC.cjs.map → index-CeTmKa8Y.cjs.map} +1 -1
- package/dist/index.cjs.js +34 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +32 -32
- package/dist/javascript-B767_urL.js +969 -0
- package/dist/{javascript-BdBscNU_.js.map → javascript-B767_urL.js.map} +1 -1
- package/dist/javascript-Diow8phl.cjs +969 -0
- package/dist/{javascript-C001Vve5.cjs.map → javascript-Diow8phl.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/blockly-Bh_t9Weo.cjs +0 -2
- package/dist/blockly-Bh_t9Weo.cjs.map +0 -1
- package/dist/blockly-Dbc_qiBz.js +0 -328
- package/dist/blockly-Dbc_qiBz.js.map +0 -1
- package/dist/blockly_compressed-BZraWoMC.cjs +0 -792
- package/dist/blockly_compressed-L5h4evQZ.js +0 -15717
- package/dist/blocks-C4L357Lk.cjs +0 -4
- package/dist/blocks-DNGprLHy.js +0 -1316
- package/dist/index-CRP4KubC.cjs +0 -75
- package/dist/index-Kkc2CBjJ.js +0 -3762
- package/dist/javascript-BdBscNU_.js +0 -819
- package/dist/javascript-C001Vve5.cjs +0 -219
|
@@ -0,0 +1,969 @@
|
|
|
1
|
+
import { g as getDefaultExportFromCjs } from "./index-C2TQzLih.js";
|
|
2
|
+
import { r as requireBlockly_compressed } from "./blockly_compressed-Bdba50O4.js";
|
|
3
|
+
var javascript_compressed$1 = { exports: {} };
|
|
4
|
+
var javascript_compressed = javascript_compressed$1.exports;
|
|
5
|
+
var hasRequiredJavascript_compressed;
|
|
6
|
+
function requireJavascript_compressed() {
|
|
7
|
+
if (hasRequiredJavascript_compressed) return javascript_compressed$1.exports;
|
|
8
|
+
hasRequiredJavascript_compressed = 1;
|
|
9
|
+
(function(module, exports) {
|
|
10
|
+
(function(root, factory) {
|
|
11
|
+
{
|
|
12
|
+
module.exports = factory(requireBlockly_compressed());
|
|
13
|
+
}
|
|
14
|
+
})(javascript_compressed, function(__parent__) {
|
|
15
|
+
var $ = __parent__.__namespace__;
|
|
16
|
+
var lists_create_empty$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
17
|
+
return ["[]", Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC];
|
|
18
|
+
}, lists_create_with$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
19
|
+
const c = Array(a.itemCount_);
|
|
20
|
+
for (let d = 0; d < a.itemCount_; d++) c[d] = b.valueToCode(a, "ADD" + d, Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "null";
|
|
21
|
+
return ["[" + c.join(", ") + "]", Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC];
|
|
22
|
+
}, lists_repeat$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
23
|
+
const c = b.provideFunction_("listsRepeat", `
|
|
24
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(value, n) {
|
|
25
|
+
var array = [];
|
|
26
|
+
for (var i = 0; i < n; i++) {
|
|
27
|
+
array[i] = value;
|
|
28
|
+
}
|
|
29
|
+
return array;
|
|
30
|
+
}
|
|
31
|
+
`), d = b.valueToCode(a, "ITEM", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "null";
|
|
32
|
+
a = b.valueToCode(a, "NUM", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "0";
|
|
33
|
+
return [c + "(" + d + ", " + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
34
|
+
}, lists_length$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
35
|
+
return [(b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "[]") + ".length", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER];
|
|
36
|
+
}, lists_isEmpty$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
37
|
+
return ["!" + (b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "[]") + ".length", Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_NOT];
|
|
38
|
+
}, lists_indexOf$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
39
|
+
const c = a.getFieldValue("END") === "FIRST" ? "indexOf" : "lastIndexOf", d = b.valueToCode(a, "FIND", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
40
|
+
b = (b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "[]") + "." + c + "(" + d + ")";
|
|
41
|
+
return a.workspace.options.oneBasedIndex ? [b + " + 1", Order$$module$build$src$generators$javascript$javascript_generator.ADDITION] : [b, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
42
|
+
}, lists_getIndex$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
43
|
+
const c = a.getFieldValue("MODE") || "GET", d = a.getFieldValue("WHERE") || "FROM_START";
|
|
44
|
+
var e = b.valueToCode(a, "VALUE", d === "RANDOM" ? Order$$module$build$src$generators$javascript$javascript_generator.NONE : Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "[]";
|
|
45
|
+
switch (d) {
|
|
46
|
+
case "FIRST":
|
|
47
|
+
if (c === "GET") return [e + "[0]", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER];
|
|
48
|
+
if (c === "GET_REMOVE") return [e + ".shift()", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER];
|
|
49
|
+
if (c === "REMOVE") return e + ".shift();\n";
|
|
50
|
+
break;
|
|
51
|
+
case "LAST":
|
|
52
|
+
if (c === "GET") return [e + ".slice(-1)[0]", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER];
|
|
53
|
+
if (c === "GET_REMOVE") return [e + ".pop()", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER];
|
|
54
|
+
if (c === "REMOVE") return e + ".pop();\n";
|
|
55
|
+
break;
|
|
56
|
+
case "FROM_START":
|
|
57
|
+
a = b.getAdjusted(a, "AT");
|
|
58
|
+
if (c === "GET") return [e + "[" + a + "]", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER];
|
|
59
|
+
if (c === "GET_REMOVE") return [e + ".splice(" + a + ", 1)[0]", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
60
|
+
if (c === "REMOVE") return e + ".splice(" + a + ", 1);\n";
|
|
61
|
+
break;
|
|
62
|
+
case "FROM_END":
|
|
63
|
+
a = b.getAdjusted(a, "AT", 1, true);
|
|
64
|
+
if (c === "GET") return [e + ".slice(" + a + ")[0]", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
65
|
+
if (c === "GET_REMOVE") return [e + ".splice(" + a + ", 1)[0]", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
66
|
+
if (c === "REMOVE") return e + ".splice(" + a + ", 1);";
|
|
67
|
+
break;
|
|
68
|
+
case "RANDOM":
|
|
69
|
+
e = b.provideFunction_("listsGetRandomItem", `
|
|
70
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(list, remove) {
|
|
71
|
+
var x = Math.floor(Math.random() * list.length);
|
|
72
|
+
if (remove) {
|
|
73
|
+
return list.splice(x, 1)[0];
|
|
74
|
+
} else {
|
|
75
|
+
return list[x];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
`) + "(" + e + ", " + (c !== "GET") + ")";
|
|
79
|
+
if (c === "GET" || c === "GET_REMOVE") return [e, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
80
|
+
if (c === "REMOVE") return e + ";\n";
|
|
81
|
+
}
|
|
82
|
+
throw Error("Unhandled combination (lists_getIndex).");
|
|
83
|
+
}, lists_setIndex$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
84
|
+
function c() {
|
|
85
|
+
if (d.match(/^\w+$/)) return "";
|
|
86
|
+
const h = b.nameDB_.getDistinctName("tmpList", $.NameType$$module$build$src$core$names.VARIABLE), k = "var " + h + " = " + d + ";\n";
|
|
87
|
+
d = h;
|
|
88
|
+
return k;
|
|
89
|
+
}
|
|
90
|
+
let d = b.valueToCode(
|
|
91
|
+
a,
|
|
92
|
+
"LIST",
|
|
93
|
+
Order$$module$build$src$generators$javascript$javascript_generator.MEMBER
|
|
94
|
+
) || "[]";
|
|
95
|
+
const e = a.getFieldValue("MODE") || "GET";
|
|
96
|
+
var f = a.getFieldValue("WHERE") || "FROM_START";
|
|
97
|
+
const g = b.valueToCode(a, "TO", Order$$module$build$src$generators$javascript$javascript_generator.ASSIGNMENT) || "null";
|
|
98
|
+
switch (f) {
|
|
99
|
+
case "FIRST":
|
|
100
|
+
if (e === "SET") return d + "[0] = " + g + ";\n";
|
|
101
|
+
if (e === "INSERT") return d + ".unshift(" + g + ");\n";
|
|
102
|
+
break;
|
|
103
|
+
case "LAST":
|
|
104
|
+
if (e === "SET") return c() + (d + "[" + d + ".length - 1] = " + g + ";\n");
|
|
105
|
+
if (e === "INSERT") return d + ".push(" + g + ");\n";
|
|
106
|
+
break;
|
|
107
|
+
case "FROM_START":
|
|
108
|
+
a = b.getAdjusted(a, "AT");
|
|
109
|
+
if (e === "SET") return d + "[" + a + "] = " + g + ";\n";
|
|
110
|
+
if (e === "INSERT") return d + ".splice(" + a + ", 0, " + g + ");\n";
|
|
111
|
+
break;
|
|
112
|
+
case "FROM_END":
|
|
113
|
+
a = b.getAdjusted(a, "AT", 1, false, Order$$module$build$src$generators$javascript$javascript_generator.SUBTRACTION);
|
|
114
|
+
f = c();
|
|
115
|
+
if (e === "SET") return f + (d + "[" + d + ".length - " + a + "] = " + g + ";\n");
|
|
116
|
+
if (e === "INSERT") return f + (d + ".splice(" + d + ".length - " + a + ", 0, " + g + ");\n");
|
|
117
|
+
break;
|
|
118
|
+
case "RANDOM":
|
|
119
|
+
a = c();
|
|
120
|
+
f = b.nameDB_.getDistinctName("tmpX", $.NameType$$module$build$src$core$names.VARIABLE);
|
|
121
|
+
a += "var " + f + " = Math.floor(Math.random() * " + d + ".length);\n";
|
|
122
|
+
if (e === "SET") return a + (d + "[" + f + "] = " + g + ";\n");
|
|
123
|
+
if (e === "INSERT") return a + (d + ".splice(" + f + ", 0, " + g + ");\n");
|
|
124
|
+
}
|
|
125
|
+
throw Error("Unhandled combination (lists_setIndex).");
|
|
126
|
+
}, lists_getSublist$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
127
|
+
var c = { FIRST: "First", LAST: "Last", FROM_START: "FromStart", FROM_END: "FromEnd" }, d = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "[]";
|
|
128
|
+
const e = a.getFieldValue("WHERE1"), f = a.getFieldValue("WHERE2");
|
|
129
|
+
if (e === "FIRST" && f === "LAST") d += ".slice(0)";
|
|
130
|
+
else if (d.match(/^\w+$/) || e !== "FROM_END" && f === "FROM_START") {
|
|
131
|
+
switch (e) {
|
|
132
|
+
case "FROM_START":
|
|
133
|
+
c = b.getAdjusted(a, "AT1");
|
|
134
|
+
break;
|
|
135
|
+
case "FROM_END":
|
|
136
|
+
c = b.getAdjusted(a, "AT1", 1, false, Order$$module$build$src$generators$javascript$javascript_generator.SUBTRACTION);
|
|
137
|
+
c = d + ".length - " + c;
|
|
138
|
+
break;
|
|
139
|
+
case "FIRST":
|
|
140
|
+
c = "0";
|
|
141
|
+
break;
|
|
142
|
+
default:
|
|
143
|
+
throw Error("Unhandled option (lists_getSublist).");
|
|
144
|
+
}
|
|
145
|
+
switch (f) {
|
|
146
|
+
case "FROM_START":
|
|
147
|
+
b = b.getAdjusted(a, "AT2", 1);
|
|
148
|
+
break;
|
|
149
|
+
case "FROM_END":
|
|
150
|
+
b = b.getAdjusted(a, "AT2", 0, false, Order$$module$build$src$generators$javascript$javascript_generator.SUBTRACTION);
|
|
151
|
+
b = d + ".length - " + b;
|
|
152
|
+
break;
|
|
153
|
+
case "LAST":
|
|
154
|
+
b = d + ".length";
|
|
155
|
+
break;
|
|
156
|
+
default:
|
|
157
|
+
throw Error("Unhandled option (lists_getSublist).");
|
|
158
|
+
}
|
|
159
|
+
d = d + ".slice(" + c + ", " + b + ")";
|
|
160
|
+
} else {
|
|
161
|
+
const g = b.getAdjusted(a, "AT1");
|
|
162
|
+
a = b.getAdjusted(a, "AT2");
|
|
163
|
+
d = b.provideFunction_("subsequence" + c[e] + c[f], `
|
|
164
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(sequence${e === "FROM_END" || e === "FROM_START" ? ", at1" : ""}${f === "FROM_END" || f === "FROM_START" ? ", at2" : ""}) {
|
|
165
|
+
var start = ${getSubstringIndex$$module$build$src$generators$javascript$lists("sequence", e, "at1")};
|
|
166
|
+
var end = ${getSubstringIndex$$module$build$src$generators$javascript$lists("sequence", f, "at2")} + 1;
|
|
167
|
+
return sequence.slice(start, end);
|
|
168
|
+
}
|
|
169
|
+
`) + "(" + d + (e === "FROM_END" || e === "FROM_START" ? ", " + g : "") + (f === "FROM_END" || f === "FROM_START" ? ", " + a : "") + ")";
|
|
170
|
+
}
|
|
171
|
+
return [d, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
172
|
+
}, lists_sort$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
173
|
+
const c = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL) || "[]", d = a.getFieldValue("DIRECTION") === "1" ? 1 : -1;
|
|
174
|
+
a = a.getFieldValue("TYPE");
|
|
175
|
+
b = b.provideFunction_("listsGetSortCompare", `
|
|
176
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(type, direction) {
|
|
177
|
+
var compareFuncs = {
|
|
178
|
+
'NUMERIC': function(a, b) {
|
|
179
|
+
return Number(a) - Number(b); },
|
|
180
|
+
'TEXT': function(a, b) {
|
|
181
|
+
return String(a) > String(b) ? 1 : -1; },
|
|
182
|
+
'IGNORE_CASE': function(a, b) {
|
|
183
|
+
return String(a).toLowerCase() > String(b).toLowerCase() ? 1 : -1; },
|
|
184
|
+
};
|
|
185
|
+
var compare = compareFuncs[type];
|
|
186
|
+
return function(a, b) { return compare(a, b) * direction; };
|
|
187
|
+
}
|
|
188
|
+
`);
|
|
189
|
+
return [c + ".slice().sort(" + b + '("' + a + '", ' + d + "))", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
190
|
+
}, lists_split$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
191
|
+
let c = b.valueToCode(a, "INPUT", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER);
|
|
192
|
+
b = b.valueToCode(a, "DELIM", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
193
|
+
a = a.getFieldValue("MODE");
|
|
194
|
+
if (a === "SPLIT") c || (c = "''"), a = "split";
|
|
195
|
+
else if (a === "JOIN") c || (c = "[]"), a = "join";
|
|
196
|
+
else throw Error("Unknown mode: " + a);
|
|
197
|
+
return [c + "." + a + "(" + b + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
198
|
+
}, lists_reverse$$module$build$src$generators$javascript$lists = function(a, b) {
|
|
199
|
+
return [(b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL) || "[]") + ".slice().reverse()", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
200
|
+
}, controls_if$$module$build$src$generators$javascript$logic = function(a, b) {
|
|
201
|
+
var c = 0;
|
|
202
|
+
let d = "";
|
|
203
|
+
b.STATEMENT_PREFIX && (d += b.injectId(b.STATEMENT_PREFIX, a));
|
|
204
|
+
do {
|
|
205
|
+
const e = b.valueToCode(a, "IF" + c, Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "false";
|
|
206
|
+
let f = b.statementToCode(a, "DO" + c);
|
|
207
|
+
b.STATEMENT_SUFFIX && (f = b.prefixLines(b.injectId(b.STATEMENT_SUFFIX, a), b.INDENT) + f);
|
|
208
|
+
d += (c > 0 ? " else " : "") + "if (" + e + ") {\n" + f + "}";
|
|
209
|
+
c++;
|
|
210
|
+
} while (a.getInput("IF" + c));
|
|
211
|
+
if (a.getInput("ELSE") || b.STATEMENT_SUFFIX) c = a.getInput("ELSE") ? b.statementToCode(a, "ELSE") : "", b.STATEMENT_SUFFIX && (c = b.prefixLines(b.injectId(b.STATEMENT_SUFFIX, a), b.INDENT) + c), d += " else {\n" + c + "}";
|
|
212
|
+
return d + "\n";
|
|
213
|
+
}, logic_compare$$module$build$src$generators$javascript$logic = function(a, b) {
|
|
214
|
+
const c = { EQ: "==", NEQ: "!=", LT: "<", LTE: "<=", GT: ">", GTE: ">=" }[a.getFieldValue("OP")], d = c === "==" || c === "!=" ? Order$$module$build$src$generators$javascript$javascript_generator.EQUALITY : Order$$module$build$src$generators$javascript$javascript_generator.RELATIONAL, e = b.valueToCode(a, "A", d) || "0";
|
|
215
|
+
a = b.valueToCode(a, "B", d) || "0";
|
|
216
|
+
return [e + " " + c + " " + a, d];
|
|
217
|
+
}, logic_operation$$module$build$src$generators$javascript$logic = function(a, b) {
|
|
218
|
+
const c = a.getFieldValue("OP") === "AND" ? "&&" : "||", d = c === "&&" ? Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_AND : Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_OR;
|
|
219
|
+
let e = b.valueToCode(a, "A", d);
|
|
220
|
+
a = b.valueToCode(a, "B", d);
|
|
221
|
+
e || a ? (b = c === "&&" ? "true" : "false", e || (e = b), a || (a = b)) : a = e = "false";
|
|
222
|
+
return [e + " " + c + " " + a, d];
|
|
223
|
+
}, logic_negate$$module$build$src$generators$javascript$logic = function(a, b) {
|
|
224
|
+
const c = Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_NOT;
|
|
225
|
+
return ["!" + (b.valueToCode(a, "BOOL", c) || "true"), c];
|
|
226
|
+
}, logic_boolean$$module$build$src$generators$javascript$logic = function(a, b) {
|
|
227
|
+
return [a.getFieldValue("BOOL") === "TRUE" ? "true" : "false", Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC];
|
|
228
|
+
}, logic_null$$module$build$src$generators$javascript$logic = function(a, b) {
|
|
229
|
+
return ["null", Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC];
|
|
230
|
+
}, logic_ternary$$module$build$src$generators$javascript$logic = function(a, b) {
|
|
231
|
+
const c = b.valueToCode(a, "IF", Order$$module$build$src$generators$javascript$javascript_generator.CONDITIONAL) || "false", d = b.valueToCode(a, "THEN", Order$$module$build$src$generators$javascript$javascript_generator.CONDITIONAL) || "null";
|
|
232
|
+
a = b.valueToCode(a, "ELSE", Order$$module$build$src$generators$javascript$javascript_generator.CONDITIONAL) || "null";
|
|
233
|
+
return [c + " ? " + d + " : " + a, Order$$module$build$src$generators$javascript$javascript_generator.CONDITIONAL];
|
|
234
|
+
}, controls_repeat_ext$$module$build$src$generators$javascript$loops = function(a, b) {
|
|
235
|
+
let c;
|
|
236
|
+
c = a.getField("TIMES") ? String(Number(a.getFieldValue("TIMES"))) : b.valueToCode(a, "TIMES", Order$$module$build$src$generators$javascript$javascript_generator.ASSIGNMENT) || "0";
|
|
237
|
+
let d = b.statementToCode(a, "DO");
|
|
238
|
+
d = b.addLoopTrap(d, a);
|
|
239
|
+
a = "";
|
|
240
|
+
const e = b.nameDB_.getDistinctName("count", $.NameType$$module$build$src$core$names.VARIABLE);
|
|
241
|
+
let f = c;
|
|
242
|
+
c.match(/^\w+$/) || $.isNumber$$module$build$src$core$utils$string(c) || (f = b.nameDB_.getDistinctName(
|
|
243
|
+
"repeat_end",
|
|
244
|
+
$.NameType$$module$build$src$core$names.VARIABLE
|
|
245
|
+
), a += "var " + f + " = " + c + ";\n");
|
|
246
|
+
return a + ("for (var " + e + " = 0; " + e + " < " + f + "; " + e + "++) {\n" + d + "}\n");
|
|
247
|
+
}, controls_whileUntil$$module$build$src$generators$javascript$loops = function(a, b) {
|
|
248
|
+
const c = a.getFieldValue("MODE") === "UNTIL";
|
|
249
|
+
let d = b.valueToCode(a, "BOOL", c ? Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_NOT : Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "false", e = b.statementToCode(a, "DO");
|
|
250
|
+
e = b.addLoopTrap(
|
|
251
|
+
e,
|
|
252
|
+
a
|
|
253
|
+
);
|
|
254
|
+
c && (d = "!" + d);
|
|
255
|
+
return "while (" + d + ") {\n" + e + "}\n";
|
|
256
|
+
}, controls_for$$module$build$src$generators$javascript$loops = function(a, b) {
|
|
257
|
+
var c = b.getVariableName(a.getFieldValue("VAR")), d = b.valueToCode(a, "FROM", Order$$module$build$src$generators$javascript$javascript_generator.ASSIGNMENT) || "0", e = b.valueToCode(a, "TO", Order$$module$build$src$generators$javascript$javascript_generator.ASSIGNMENT) || "0";
|
|
258
|
+
const f = b.valueToCode(a, "BY", Order$$module$build$src$generators$javascript$javascript_generator.ASSIGNMENT) || "1";
|
|
259
|
+
let g = b.statementToCode(a, "DO");
|
|
260
|
+
g = b.addLoopTrap(g, a);
|
|
261
|
+
if ($.isNumber$$module$build$src$core$utils$string(d) && $.isNumber$$module$build$src$core$utils$string(e) && $.isNumber$$module$build$src$core$utils$string(f)) b = Number(d) <= Number(e), a = "for (" + c + " = " + d + "; " + c + (b ? " <= " : " >= ") + e + "; " + c, c = Math.abs(Number(f)), a = c === 1 ? a + (b ? "++" : "--") : a + ((b ? " += " : " -= ") + c), a += ") {\n" + g + "}\n";
|
|
262
|
+
else {
|
|
263
|
+
a = "";
|
|
264
|
+
let h = d;
|
|
265
|
+
d.match(/^\w+$/) || $.isNumber$$module$build$src$core$utils$string(d) || (h = b.nameDB_.getDistinctName(
|
|
266
|
+
c + "_start",
|
|
267
|
+
$.NameType$$module$build$src$core$names.VARIABLE
|
|
268
|
+
), a += "var " + h + " = " + d + ";\n");
|
|
269
|
+
d = e;
|
|
270
|
+
e.match(/^\w+$/) || $.isNumber$$module$build$src$core$utils$string(e) || (d = b.nameDB_.getDistinctName(c + "_end", $.NameType$$module$build$src$core$names.VARIABLE), a += "var " + d + " = " + e + ";\n");
|
|
271
|
+
e = b.nameDB_.getDistinctName(c + "_inc", $.NameType$$module$build$src$core$names.VARIABLE);
|
|
272
|
+
a += "var " + e + " = ";
|
|
273
|
+
a = $.isNumber$$module$build$src$core$utils$string(f) ? a + (Math.abs(Number(f)) + ";\n") : a + ("Math.abs(" + f + ");\n");
|
|
274
|
+
a += "if (" + h + " > " + d + ") {\n";
|
|
275
|
+
a += b.INDENT + e + " = -" + e + ";\n";
|
|
276
|
+
a = a + "}\nfor (" + (c + " = " + h + "; " + e + " >= 0 ? " + c + " <= " + d + " : " + c + " >= " + d + "; " + c + " += " + e + ") {\n" + g + "}\n");
|
|
277
|
+
}
|
|
278
|
+
return a;
|
|
279
|
+
}, controls_forEach$$module$build$src$generators$javascript$loops = function(a, b) {
|
|
280
|
+
const c = b.getVariableName(a.getFieldValue("VAR"));
|
|
281
|
+
var d = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.ASSIGNMENT) || "[]";
|
|
282
|
+
let e = b.statementToCode(a, "DO");
|
|
283
|
+
e = b.addLoopTrap(e, a);
|
|
284
|
+
a = "";
|
|
285
|
+
let f = d;
|
|
286
|
+
d.match(/^\w+$/) || (f = b.nameDB_.getDistinctName(
|
|
287
|
+
c + "_list",
|
|
288
|
+
$.NameType$$module$build$src$core$names.VARIABLE
|
|
289
|
+
), a += "var " + f + " = " + d + ";\n");
|
|
290
|
+
d = b.nameDB_.getDistinctName(c + "_index", $.NameType$$module$build$src$core$names.VARIABLE);
|
|
291
|
+
e = b.INDENT + c + " = " + f + "[" + d + "];\n" + e;
|
|
292
|
+
return a + ("for (var " + d + " in " + f + ") {\n" + e + "}\n");
|
|
293
|
+
}, controls_flow_statements$$module$build$src$generators$javascript$loops = function(a, b) {
|
|
294
|
+
let c = "";
|
|
295
|
+
b.STATEMENT_PREFIX && (c += b.injectId(b.STATEMENT_PREFIX, a));
|
|
296
|
+
b.STATEMENT_SUFFIX && (c += b.injectId(b.STATEMENT_SUFFIX, a));
|
|
297
|
+
if (b.STATEMENT_PREFIX) {
|
|
298
|
+
const d = a.getSurroundLoop();
|
|
299
|
+
d && !d.suppressPrefixSuffix && (c += b.injectId(b.STATEMENT_PREFIX, d));
|
|
300
|
+
}
|
|
301
|
+
switch (a.getFieldValue("FLOW")) {
|
|
302
|
+
case "BREAK":
|
|
303
|
+
return c + "break;\n";
|
|
304
|
+
case "CONTINUE":
|
|
305
|
+
return c + "continue;\n";
|
|
306
|
+
}
|
|
307
|
+
throw Error("Unknown flow statement.");
|
|
308
|
+
}, math_number$$module$build$src$generators$javascript$math = function(a, b) {
|
|
309
|
+
a = Number(a.getFieldValue("NUM"));
|
|
310
|
+
return [String(a), a >= 0 ? Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC : Order$$module$build$src$generators$javascript$javascript_generator.UNARY_NEGATION];
|
|
311
|
+
}, math_arithmetic$$module$build$src$generators$javascript$math = function(a, b) {
|
|
312
|
+
var c = { ADD: [" + ", Order$$module$build$src$generators$javascript$javascript_generator.ADDITION], MINUS: [" - ", Order$$module$build$src$generators$javascript$javascript_generator.SUBTRACTION], MULTIPLY: [" * ", Order$$module$build$src$generators$javascript$javascript_generator.MULTIPLICATION], DIVIDE: [" / ", Order$$module$build$src$generators$javascript$javascript_generator.DIVISION], POWER: [null, Order$$module$build$src$generators$javascript$javascript_generator.NONE] }[a.getFieldValue("OP")];
|
|
313
|
+
const d = c[0];
|
|
314
|
+
c = c[1];
|
|
315
|
+
const e = b.valueToCode(a, "A", c) || "0";
|
|
316
|
+
a = b.valueToCode(a, "B", c) || "0";
|
|
317
|
+
return d ? [e + d + a, c] : ["Math.pow(" + e + ", " + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
318
|
+
}, math_single$$module$build$src$generators$javascript$math = function(a, b) {
|
|
319
|
+
const c = a.getFieldValue("OP");
|
|
320
|
+
let d;
|
|
321
|
+
if (c === "NEG") return a = b.valueToCode(a, "NUM", Order$$module$build$src$generators$javascript$javascript_generator.UNARY_NEGATION) || "0", a[0] === "-" && (a = " " + a), ["-" + a, Order$$module$build$src$generators$javascript$javascript_generator.UNARY_NEGATION];
|
|
322
|
+
a = c === "SIN" || c === "COS" || c === "TAN" ? b.valueToCode(a, "NUM", Order$$module$build$src$generators$javascript$javascript_generator.DIVISION) || "0" : b.valueToCode(a, "NUM", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "0";
|
|
323
|
+
switch (c) {
|
|
324
|
+
case "ABS":
|
|
325
|
+
d = "Math.abs(" + a + ")";
|
|
326
|
+
break;
|
|
327
|
+
case "ROOT":
|
|
328
|
+
d = "Math.sqrt(" + a + ")";
|
|
329
|
+
break;
|
|
330
|
+
case "LN":
|
|
331
|
+
d = "Math.log(" + a + ")";
|
|
332
|
+
break;
|
|
333
|
+
case "EXP":
|
|
334
|
+
d = "Math.exp(" + a + ")";
|
|
335
|
+
break;
|
|
336
|
+
case "POW10":
|
|
337
|
+
d = "Math.pow(10," + a + ")";
|
|
338
|
+
break;
|
|
339
|
+
case "ROUND":
|
|
340
|
+
d = "Math.round(" + a + ")";
|
|
341
|
+
break;
|
|
342
|
+
case "ROUNDUP":
|
|
343
|
+
d = "Math.ceil(" + a + ")";
|
|
344
|
+
break;
|
|
345
|
+
case "ROUNDDOWN":
|
|
346
|
+
d = "Math.floor(" + a + ")";
|
|
347
|
+
break;
|
|
348
|
+
case "SIN":
|
|
349
|
+
d = "Math.sin(" + a + " / 180 * Math.PI)";
|
|
350
|
+
break;
|
|
351
|
+
case "COS":
|
|
352
|
+
d = "Math.cos(" + a + " / 180 * Math.PI)";
|
|
353
|
+
break;
|
|
354
|
+
case "TAN":
|
|
355
|
+
d = "Math.tan(" + a + " / 180 * Math.PI)";
|
|
356
|
+
}
|
|
357
|
+
if (d) return [d, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
358
|
+
switch (c) {
|
|
359
|
+
case "LOG10":
|
|
360
|
+
d = "Math.log(" + a + ") / Math.log(10)";
|
|
361
|
+
break;
|
|
362
|
+
case "ASIN":
|
|
363
|
+
d = "Math.asin(" + a + ") / Math.PI * 180";
|
|
364
|
+
break;
|
|
365
|
+
case "ACOS":
|
|
366
|
+
d = "Math.acos(" + a + ") / Math.PI * 180";
|
|
367
|
+
break;
|
|
368
|
+
case "ATAN":
|
|
369
|
+
d = "Math.atan(" + a + ") / Math.PI * 180";
|
|
370
|
+
break;
|
|
371
|
+
default:
|
|
372
|
+
throw Error("Unknown math operator: " + c);
|
|
373
|
+
}
|
|
374
|
+
return [d, Order$$module$build$src$generators$javascript$javascript_generator.DIVISION];
|
|
375
|
+
}, math_constant$$module$build$src$generators$javascript$math = function(a, b) {
|
|
376
|
+
return {
|
|
377
|
+
PI: ["Math.PI", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER],
|
|
378
|
+
E: ["Math.E", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER],
|
|
379
|
+
GOLDEN_RATIO: ["(1 + Math.sqrt(5)) / 2", Order$$module$build$src$generators$javascript$javascript_generator.DIVISION],
|
|
380
|
+
SQRT2: ["Math.SQRT2", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER],
|
|
381
|
+
SQRT1_2: ["Math.SQRT1_2", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER],
|
|
382
|
+
INFINITY: ["Infinity", Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC]
|
|
383
|
+
}[a.getFieldValue("CONSTANT")];
|
|
384
|
+
}, math_number_property$$module$build$src$generators$javascript$math = function(a, b) {
|
|
385
|
+
var c = { EVEN: [
|
|
386
|
+
" % 2 === 0",
|
|
387
|
+
Order$$module$build$src$generators$javascript$javascript_generator.MODULUS,
|
|
388
|
+
Order$$module$build$src$generators$javascript$javascript_generator.EQUALITY
|
|
389
|
+
], ODD: [" % 2 === 1", Order$$module$build$src$generators$javascript$javascript_generator.MODULUS, Order$$module$build$src$generators$javascript$javascript_generator.EQUALITY], WHOLE: [" % 1 === 0", Order$$module$build$src$generators$javascript$javascript_generator.MODULUS, Order$$module$build$src$generators$javascript$javascript_generator.EQUALITY], POSITIVE: [
|
|
390
|
+
" > 0",
|
|
391
|
+
Order$$module$build$src$generators$javascript$javascript_generator.RELATIONAL,
|
|
392
|
+
Order$$module$build$src$generators$javascript$javascript_generator.RELATIONAL
|
|
393
|
+
], NEGATIVE: [" < 0", Order$$module$build$src$generators$javascript$javascript_generator.RELATIONAL, Order$$module$build$src$generators$javascript$javascript_generator.RELATIONAL], DIVISIBLE_BY: [null, Order$$module$build$src$generators$javascript$javascript_generator.MODULUS, Order$$module$build$src$generators$javascript$javascript_generator.EQUALITY], PRIME: [
|
|
394
|
+
null,
|
|
395
|
+
Order$$module$build$src$generators$javascript$javascript_generator.NONE,
|
|
396
|
+
Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL
|
|
397
|
+
] };
|
|
398
|
+
const d = a.getFieldValue("PROPERTY"), [e, f, g] = c[d];
|
|
399
|
+
c = b.valueToCode(a, "NUMBER_TO_CHECK", f) || "0";
|
|
400
|
+
d === "PRIME" ? a = b.provideFunction_("mathIsPrime", `
|
|
401
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(n) {
|
|
402
|
+
// https://en.wikipedia.org/wiki/Primality_test#Naive_methods
|
|
403
|
+
if (n == 2 || n == 3) {
|
|
404
|
+
return true;
|
|
405
|
+
}
|
|
406
|
+
// False if n is NaN, negative, is 1, or not whole.
|
|
407
|
+
// And false if n is divisible by 2 or 3.
|
|
408
|
+
if (isNaN(n) || n <= 1 || n % 1 !== 0 || n % 2 === 0 || n % 3 === 0) {
|
|
409
|
+
return false;
|
|
410
|
+
}
|
|
411
|
+
// Check all the numbers of form 6k +/- 1, up to sqrt(n).
|
|
412
|
+
for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) {
|
|
413
|
+
if (n % (x - 1) === 0 || n % (x + 1) === 0) {
|
|
414
|
+
return false;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return true;
|
|
418
|
+
}
|
|
419
|
+
`) + "(" + c + ")" : d === "DIVISIBLE_BY" ? (a = b.valueToCode(a, "DIVISOR", Order$$module$build$src$generators$javascript$javascript_generator.MODULUS) || "0", a = c + " % " + a + " === 0") : a = c + e;
|
|
420
|
+
return [a, g];
|
|
421
|
+
}, math_change$$module$build$src$generators$javascript$math = function(a, b) {
|
|
422
|
+
const c = b.valueToCode(a, "DELTA", Order$$module$build$src$generators$javascript$javascript_generator.ADDITION) || "0";
|
|
423
|
+
a = b.getVariableName(a.getFieldValue("VAR"));
|
|
424
|
+
return a + " = (typeof " + a + " === 'number' ? " + a + " : 0) + " + c + ";\n";
|
|
425
|
+
}, math_on_list$$module$build$src$generators$javascript$math = function(a, b) {
|
|
426
|
+
var c = a.getFieldValue("OP");
|
|
427
|
+
switch (c) {
|
|
428
|
+
case "SUM":
|
|
429
|
+
a = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "[]";
|
|
430
|
+
a += ".reduce(function(x, y) {return x + y;}, 0)";
|
|
431
|
+
break;
|
|
432
|
+
case "MIN":
|
|
433
|
+
a = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "[]";
|
|
434
|
+
a = "Math.min.apply(null, " + a + ")";
|
|
435
|
+
break;
|
|
436
|
+
case "MAX":
|
|
437
|
+
a = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "[]";
|
|
438
|
+
a = "Math.max.apply(null, " + a + ")";
|
|
439
|
+
break;
|
|
440
|
+
case "AVERAGE":
|
|
441
|
+
c = b.provideFunction_("mathMean", `
|
|
442
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(myList) {
|
|
443
|
+
return myList.reduce(function(x, y) {return x + y;}, 0) / myList.length;
|
|
444
|
+
}
|
|
445
|
+
`);
|
|
446
|
+
a = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "[]";
|
|
447
|
+
a = c + "(" + a + ")";
|
|
448
|
+
break;
|
|
449
|
+
case "MEDIAN":
|
|
450
|
+
c = b.provideFunction_("mathMedian", `
|
|
451
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(myList) {
|
|
452
|
+
var localList = myList.filter(function (x) {return typeof x === 'number';});
|
|
453
|
+
if (!localList.length) return null;
|
|
454
|
+
localList.sort(function(a, b) {return b - a;});
|
|
455
|
+
if (localList.length % 2 === 0) {
|
|
456
|
+
return (localList[localList.length / 2 - 1] + localList[localList.length / 2]) / 2;
|
|
457
|
+
} else {
|
|
458
|
+
return localList[(localList.length - 1) / 2];
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
`);
|
|
462
|
+
a = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "[]";
|
|
463
|
+
a = c + "(" + a + ")";
|
|
464
|
+
break;
|
|
465
|
+
case "MODE":
|
|
466
|
+
c = b.provideFunction_("mathModes", `
|
|
467
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(values) {
|
|
468
|
+
var modes = [];
|
|
469
|
+
var counts = [];
|
|
470
|
+
var maxCount = 0;
|
|
471
|
+
for (var i = 0; i < values.length; i++) {
|
|
472
|
+
var value = values[i];
|
|
473
|
+
var found = false;
|
|
474
|
+
var thisCount;
|
|
475
|
+
for (var j = 0; j < counts.length; j++) {
|
|
476
|
+
if (counts[j][0] === value) {
|
|
477
|
+
thisCount = ++counts[j][1];
|
|
478
|
+
found = true;
|
|
479
|
+
break;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
if (!found) {
|
|
483
|
+
counts.push([value, 1]);
|
|
484
|
+
thisCount = 1;
|
|
485
|
+
}
|
|
486
|
+
maxCount = Math.max(thisCount, maxCount);
|
|
487
|
+
}
|
|
488
|
+
for (var j = 0; j < counts.length; j++) {
|
|
489
|
+
if (counts[j][1] === maxCount) {
|
|
490
|
+
modes.push(counts[j][0]);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
return modes;
|
|
494
|
+
}
|
|
495
|
+
`);
|
|
496
|
+
a = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "[]";
|
|
497
|
+
a = c + "(" + a + ")";
|
|
498
|
+
break;
|
|
499
|
+
case "STD_DEV":
|
|
500
|
+
c = b.provideFunction_("mathStandardDeviation", `
|
|
501
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(numbers) {
|
|
502
|
+
var n = numbers.length;
|
|
503
|
+
if (!n) return null;
|
|
504
|
+
var mean = numbers.reduce(function(x, y) {return x + y;}) / n;
|
|
505
|
+
var variance = 0;
|
|
506
|
+
for (var j = 0; j < n; j++) {
|
|
507
|
+
variance += Math.pow(numbers[j] - mean, 2);
|
|
508
|
+
}
|
|
509
|
+
variance /= n;
|
|
510
|
+
return Math.sqrt(variance);
|
|
511
|
+
}
|
|
512
|
+
`);
|
|
513
|
+
a = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "[]";
|
|
514
|
+
a = c + "(" + a + ")";
|
|
515
|
+
break;
|
|
516
|
+
case "RANDOM":
|
|
517
|
+
c = b.provideFunction_("mathRandomList", `
|
|
518
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(list) {
|
|
519
|
+
var x = Math.floor(Math.random() * list.length);
|
|
520
|
+
return list[x];
|
|
521
|
+
}
|
|
522
|
+
`);
|
|
523
|
+
a = b.valueToCode(a, "LIST", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "[]";
|
|
524
|
+
a = c + "(" + a + ")";
|
|
525
|
+
break;
|
|
526
|
+
default:
|
|
527
|
+
throw Error("Unknown operator: " + c);
|
|
528
|
+
}
|
|
529
|
+
return [a, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
530
|
+
}, math_modulo$$module$build$src$generators$javascript$math = function(a, b) {
|
|
531
|
+
const c = b.valueToCode(a, "DIVIDEND", Order$$module$build$src$generators$javascript$javascript_generator.MODULUS) || "0";
|
|
532
|
+
a = b.valueToCode(a, "DIVISOR", Order$$module$build$src$generators$javascript$javascript_generator.MODULUS) || "0";
|
|
533
|
+
return [c + " % " + a, Order$$module$build$src$generators$javascript$javascript_generator.MODULUS];
|
|
534
|
+
}, math_constrain$$module$build$src$generators$javascript$math = function(a, b) {
|
|
535
|
+
const c = b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "0", d = b.valueToCode(a, "LOW", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "0";
|
|
536
|
+
a = b.valueToCode(a, "HIGH", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "Infinity";
|
|
537
|
+
return ["Math.min(Math.max(" + c + ", " + d + "), " + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
538
|
+
}, math_random_int$$module$build$src$generators$javascript$math = function(a, b) {
|
|
539
|
+
const c = b.valueToCode(a, "FROM", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "0";
|
|
540
|
+
a = b.valueToCode(a, "TO", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "0";
|
|
541
|
+
return [b.provideFunction_("mathRandomInt", `
|
|
542
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(a, b) {
|
|
543
|
+
if (a > b) {
|
|
544
|
+
// Swap a and b to ensure a is smaller.
|
|
545
|
+
var c = a;
|
|
546
|
+
a = b;
|
|
547
|
+
b = c;
|
|
548
|
+
}
|
|
549
|
+
return Math.floor(Math.random() * (b - a + 1) + a);
|
|
550
|
+
}
|
|
551
|
+
`) + "(" + c + ", " + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
552
|
+
}, math_random_float$$module$build$src$generators$javascript$math = function(a, b) {
|
|
553
|
+
return ["Math.random()", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
554
|
+
}, math_atan2$$module$build$src$generators$javascript$math = function(a, b) {
|
|
555
|
+
const c = b.valueToCode(a, "X", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "0";
|
|
556
|
+
return ["Math.atan2(" + (b.valueToCode(
|
|
557
|
+
a,
|
|
558
|
+
"Y",
|
|
559
|
+
Order$$module$build$src$generators$javascript$javascript_generator.NONE
|
|
560
|
+
) || "0") + ", " + c + ") / Math.PI * 180", Order$$module$build$src$generators$javascript$javascript_generator.DIVISION];
|
|
561
|
+
}, procedures_defreturn$$module$build$src$generators$javascript$procedures = function(a, b) {
|
|
562
|
+
const c = b.getProcedureName(a.getFieldValue("NAME"));
|
|
563
|
+
var d = "";
|
|
564
|
+
b.STATEMENT_PREFIX && (d += b.injectId(b.STATEMENT_PREFIX, a));
|
|
565
|
+
b.STATEMENT_SUFFIX && (d += b.injectId(b.STATEMENT_SUFFIX, a));
|
|
566
|
+
d && (d = b.prefixLines(d, b.INDENT));
|
|
567
|
+
let e = "";
|
|
568
|
+
b.INFINITE_LOOP_TRAP && (e = b.prefixLines(b.injectId(b.INFINITE_LOOP_TRAP, a), b.INDENT));
|
|
569
|
+
let f = "";
|
|
570
|
+
a.getInput("STACK") && (f = b.statementToCode(a, "STACK"));
|
|
571
|
+
let g = "";
|
|
572
|
+
a.getInput("RETURN") && (g = b.valueToCode(a, "RETURN", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "");
|
|
573
|
+
let h = "";
|
|
574
|
+
f && g && (h = d);
|
|
575
|
+
g && (g = b.INDENT + "return " + g + ";\n");
|
|
576
|
+
const k = [], l = a.getVars();
|
|
577
|
+
for (let m = 0; m < l.length; m++) k[m] = b.getVariableName(l[m]);
|
|
578
|
+
d = "function " + c + "(" + k.join(", ") + ") {\n" + d + e + f + h + g + "}";
|
|
579
|
+
d = b.scrub_(a, d);
|
|
580
|
+
b.definitions_["%" + c] = d;
|
|
581
|
+
return null;
|
|
582
|
+
}, procedures_callreturn$$module$build$src$generators$javascript$procedures = function(a, b) {
|
|
583
|
+
const c = b.getProcedureName(a.getFieldValue("NAME")), d = [], e = a.getVars();
|
|
584
|
+
for (let f = 0; f < e.length; f++) d[f] = b.valueToCode(a, "ARG" + f, Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "null";
|
|
585
|
+
return [c + "(" + d.join(", ") + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
586
|
+
}, procedures_callnoreturn$$module$build$src$generators$javascript$procedures = function(a, b) {
|
|
587
|
+
return b.forBlock.procedures_callreturn(
|
|
588
|
+
a,
|
|
589
|
+
b
|
|
590
|
+
)[0] + ";\n";
|
|
591
|
+
}, procedures_ifreturn$$module$build$src$generators$javascript$procedures = function(a, b) {
|
|
592
|
+
let c = "if (" + (b.valueToCode(a, "CONDITION", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "false") + ") {\n";
|
|
593
|
+
b.STATEMENT_SUFFIX && (c += b.prefixLines(b.injectId(b.STATEMENT_SUFFIX, a), b.INDENT));
|
|
594
|
+
a.hasReturnValue_ ? (a = b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "null", c += b.INDENT + "return " + a + ";\n") : c += b.INDENT + "return;\n";
|
|
595
|
+
return c + "}\n";
|
|
596
|
+
}, text$$module$build$src$generators$javascript$text = function(a, b) {
|
|
597
|
+
return [b.quote_(a.getFieldValue("TEXT")), Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC];
|
|
598
|
+
}, text_join$$module$build$src$generators$javascript$text = function(a, b) {
|
|
599
|
+
switch (a.itemCount_) {
|
|
600
|
+
case 0:
|
|
601
|
+
return ["''", Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC];
|
|
602
|
+
case 1:
|
|
603
|
+
return a = b.valueToCode(a, "ADD0", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''", forceString$$module$build$src$generators$javascript$text(a);
|
|
604
|
+
case 2:
|
|
605
|
+
var c = b.valueToCode(a, "ADD0", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
606
|
+
a = b.valueToCode(a, "ADD1", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
607
|
+
return [forceString$$module$build$src$generators$javascript$text(c)[0] + " + " + forceString$$module$build$src$generators$javascript$text(a)[0], Order$$module$build$src$generators$javascript$javascript_generator.ADDITION];
|
|
608
|
+
default:
|
|
609
|
+
c = Array(a.itemCount_);
|
|
610
|
+
for (let d = 0; d < a.itemCount_; d++) c[d] = b.valueToCode(a, "ADD" + d, Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
611
|
+
return ["[" + c.join(",") + "].join('')", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
612
|
+
}
|
|
613
|
+
}, text_append$$module$build$src$generators$javascript$text = function(a, b) {
|
|
614
|
+
const c = b.getVariableName(a.getFieldValue("VAR"));
|
|
615
|
+
a = b.valueToCode(a, "TEXT", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
616
|
+
return c + " += " + forceString$$module$build$src$generators$javascript$text(a)[0] + ";\n";
|
|
617
|
+
}, text_length$$module$build$src$generators$javascript$text = function(a, b) {
|
|
618
|
+
return [(b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "''") + ".length", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER];
|
|
619
|
+
}, text_isEmpty$$module$build$src$generators$javascript$text = function(a, b) {
|
|
620
|
+
return ["!" + (b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "''") + ".length", Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_NOT];
|
|
621
|
+
}, text_indexOf$$module$build$src$generators$javascript$text = function(a, b) {
|
|
622
|
+
const c = a.getFieldValue("END") === "FIRST" ? "indexOf" : "lastIndexOf", d = b.valueToCode(a, "FIND", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
623
|
+
b = (b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "''") + "." + c + "(" + d + ")";
|
|
624
|
+
return a.workspace.options.oneBasedIndex ? [b + " + 1", Order$$module$build$src$generators$javascript$javascript_generator.ADDITION] : [b, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
625
|
+
}, text_charAt$$module$build$src$generators$javascript$text = function(a, b) {
|
|
626
|
+
const c = a.getFieldValue("WHERE") || "FROM_START", d = b.valueToCode(a, "VALUE", c === "RANDOM" ? Order$$module$build$src$generators$javascript$javascript_generator.NONE : Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "''";
|
|
627
|
+
switch (c) {
|
|
628
|
+
case "FIRST":
|
|
629
|
+
return [d + ".charAt(0)", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
630
|
+
case "LAST":
|
|
631
|
+
return [d + ".slice(-1)", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
632
|
+
case "FROM_START":
|
|
633
|
+
return a = b.getAdjusted(a, "AT"), [d + ".charAt(" + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
634
|
+
case "FROM_END":
|
|
635
|
+
return a = b.getAdjusted(a, "AT", 1, true), [d + ".slice(" + a + ").charAt(0)", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
636
|
+
case "RANDOM":
|
|
637
|
+
return [b.provideFunction_("textRandomLetter", `
|
|
638
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(text) {
|
|
639
|
+
var x = Math.floor(Math.random() * text.length);
|
|
640
|
+
return text[x];
|
|
641
|
+
}
|
|
642
|
+
`) + "(" + d + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
643
|
+
}
|
|
644
|
+
throw Error("Unhandled option (text_charAt).");
|
|
645
|
+
}, text_getSubstring$$module$build$src$generators$javascript$text = function(a, b) {
|
|
646
|
+
var c = { FIRST: "First", LAST: "Last", FROM_START: "FromStart", FROM_END: "FromEnd" };
|
|
647
|
+
const d = a.getFieldValue("WHERE1"), e = a.getFieldValue("WHERE2");
|
|
648
|
+
var f = d !== "FROM_END" && d !== "LAST" && e !== "FROM_END" && e !== "LAST", g = b.valueToCode(a, "STRING", f ? Order$$module$build$src$generators$javascript$javascript_generator.MEMBER : Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
649
|
+
if (d === "FIRST" && e === "LAST") return [g, Order$$module$build$src$generators$javascript$javascript_generator.NONE];
|
|
650
|
+
if (g.match(/^'?\w+'?$/) || f) {
|
|
651
|
+
switch (d) {
|
|
652
|
+
case "FROM_START":
|
|
653
|
+
c = b.getAdjusted(a, "AT1");
|
|
654
|
+
break;
|
|
655
|
+
case "FROM_END":
|
|
656
|
+
c = b.getAdjusted(a, "AT1", 1, false, Order$$module$build$src$generators$javascript$javascript_generator.SUBTRACTION);
|
|
657
|
+
c = g + ".length - " + c;
|
|
658
|
+
break;
|
|
659
|
+
case "FIRST":
|
|
660
|
+
c = "0";
|
|
661
|
+
break;
|
|
662
|
+
default:
|
|
663
|
+
throw Error("Unhandled option (text_getSubstring).");
|
|
664
|
+
}
|
|
665
|
+
switch (e) {
|
|
666
|
+
case "FROM_START":
|
|
667
|
+
b = b.getAdjusted(a, "AT2", 1);
|
|
668
|
+
break;
|
|
669
|
+
case "FROM_END":
|
|
670
|
+
b = b.getAdjusted(a, "AT2", 0, false, Order$$module$build$src$generators$javascript$javascript_generator.SUBTRACTION);
|
|
671
|
+
b = g + ".length - " + b;
|
|
672
|
+
break;
|
|
673
|
+
case "LAST":
|
|
674
|
+
b = g + ".length";
|
|
675
|
+
break;
|
|
676
|
+
default:
|
|
677
|
+
throw Error("Unhandled option (text_getSubstring).");
|
|
678
|
+
}
|
|
679
|
+
g = g + ".slice(" + c + ", " + b + ")";
|
|
680
|
+
} else f = b.getAdjusted(a, "AT1"), a = b.getAdjusted(a, "AT2"), g = b.provideFunction_("subsequence" + c[d] + c[e], `
|
|
681
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(sequence${d === "FROM_END" || d === "FROM_START" ? ", at1" : ""}${e === "FROM_END" || e === "FROM_START" ? ", at2" : ""}) {
|
|
682
|
+
var start = ${getSubstringIndex$$module$build$src$generators$javascript$text("sequence", d, "at1")};
|
|
683
|
+
var end = ${getSubstringIndex$$module$build$src$generators$javascript$text("sequence", e, "at2")} + 1;
|
|
684
|
+
return sequence.slice(start, end);
|
|
685
|
+
}
|
|
686
|
+
`) + "(" + g + (d === "FROM_END" || d === "FROM_START" ? ", " + f : "") + (e === "FROM_END" || e === "FROM_START" ? ", " + a : "") + ")";
|
|
687
|
+
return [g, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
688
|
+
}, text_changeCase$$module$build$src$generators$javascript$text = function(a, b) {
|
|
689
|
+
const c = { UPPERCASE: ".toUpperCase()", LOWERCASE: ".toLowerCase()", TITLECASE: null }[a.getFieldValue("CASE")];
|
|
690
|
+
a = b.valueToCode(a, "TEXT", c ? Order$$module$build$src$generators$javascript$javascript_generator.MEMBER : Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
691
|
+
return [c ? a + c : b.provideFunction_("textToTitleCase", `
|
|
692
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(str) {
|
|
693
|
+
return str.replace(/\\S+/g,
|
|
694
|
+
function(txt) {return txt[0].toUpperCase() + txt.substring(1).toLowerCase();});
|
|
695
|
+
}
|
|
696
|
+
`) + "(" + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
697
|
+
}, text_trim$$module$build$src$generators$javascript$text = function(a, b) {
|
|
698
|
+
const c = { LEFT: ".replace(/^[\\s\\xa0]+/, '')", RIGHT: ".replace(/[\\s\\xa0]+$/, '')", BOTH: ".trim()" }[a.getFieldValue("MODE")];
|
|
699
|
+
return [(b.valueToCode(a, "TEXT", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "''") + c, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
700
|
+
}, text_print$$module$build$src$generators$javascript$text = function(a, b) {
|
|
701
|
+
return "window.alert(" + (b.valueToCode(a, "TEXT", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''") + ");\n";
|
|
702
|
+
}, text_prompt_ext$$module$build$src$generators$javascript$text = function(a, b) {
|
|
703
|
+
b = "window.prompt(" + (a.getField("TEXT") ? b.quote_(a.getFieldValue("TEXT")) : b.valueToCode(a, "TEXT", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''") + ")";
|
|
704
|
+
a.getFieldValue("TYPE") === "NUMBER" && (b = "Number(" + b + ")");
|
|
705
|
+
return [b, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
706
|
+
}, text_count$$module$build$src$generators$javascript$text = function(a, b) {
|
|
707
|
+
const c = b.valueToCode(a, "TEXT", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
708
|
+
a = b.valueToCode(a, "SUB", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
709
|
+
return [b.provideFunction_("textCount", `
|
|
710
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(haystack, needle) {
|
|
711
|
+
if (needle.length === 0) {
|
|
712
|
+
return haystack.length + 1;
|
|
713
|
+
} else {
|
|
714
|
+
return haystack.split(needle).length - 1;
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
`) + "(" + c + ", " + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
718
|
+
}, text_replace$$module$build$src$generators$javascript$text = function(a, b) {
|
|
719
|
+
const c = b.valueToCode(a, "TEXT", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''", d = b.valueToCode(a, "FROM", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
720
|
+
a = b.valueToCode(a, "TO", Order$$module$build$src$generators$javascript$javascript_generator.NONE) || "''";
|
|
721
|
+
return [b.provideFunction_(
|
|
722
|
+
"textReplace",
|
|
723
|
+
`
|
|
724
|
+
function ${b.FUNCTION_NAME_PLACEHOLDER_}(haystack, needle, replacement) {
|
|
725
|
+
needle = needle.replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g, '\\\\$1')
|
|
726
|
+
.replace(/\\x08/g, '\\\\x08');
|
|
727
|
+
return haystack.replace(new RegExp(needle, 'g'), replacement);
|
|
728
|
+
}
|
|
729
|
+
`
|
|
730
|
+
) + "(" + c + ", " + d + ", " + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
731
|
+
}, text_reverse$$module$build$src$generators$javascript$text = function(a, b) {
|
|
732
|
+
return [(b.valueToCode(a, "TEXT", Order$$module$build$src$generators$javascript$javascript_generator.MEMBER) || "''") + ".split('').reverse().join('')", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
733
|
+
}, variables_get$$module$build$src$generators$javascript$variables = function(a, b) {
|
|
734
|
+
return [
|
|
735
|
+
b.getVariableName(a.getFieldValue("VAR")),
|
|
736
|
+
Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC
|
|
737
|
+
];
|
|
738
|
+
}, variables_set$$module$build$src$generators$javascript$variables = function(a, b) {
|
|
739
|
+
const c = b.valueToCode(a, "VALUE", Order$$module$build$src$generators$javascript$javascript_generator.ASSIGNMENT) || "0";
|
|
740
|
+
return b.getVariableName(a.getFieldValue("VAR")) + " = " + c + ";\n";
|
|
741
|
+
}, Order$$module$build$src$generators$javascript$javascript_generator;
|
|
742
|
+
(function(a) {
|
|
743
|
+
a[a.ATOMIC = 0] = "ATOMIC";
|
|
744
|
+
a[a.NEW = 1.1] = "NEW";
|
|
745
|
+
a[a.MEMBER = 1.2] = "MEMBER";
|
|
746
|
+
a[a.FUNCTION_CALL = 2] = "FUNCTION_CALL";
|
|
747
|
+
a[a.INCREMENT = 3] = "INCREMENT";
|
|
748
|
+
a[a.DECREMENT = 3] = "DECREMENT";
|
|
749
|
+
a[a.BITWISE_NOT = 4.1] = "BITWISE_NOT";
|
|
750
|
+
a[a.UNARY_PLUS = 4.2] = "UNARY_PLUS";
|
|
751
|
+
a[a.UNARY_NEGATION = 4.3] = "UNARY_NEGATION";
|
|
752
|
+
a[a.LOGICAL_NOT = 4.4] = "LOGICAL_NOT";
|
|
753
|
+
a[a.TYPEOF = 4.5] = "TYPEOF";
|
|
754
|
+
a[a.VOID = 4.6] = "VOID";
|
|
755
|
+
a[a.DELETE = 4.7] = "DELETE";
|
|
756
|
+
a[a.AWAIT = 4.8] = "AWAIT";
|
|
757
|
+
a[a.EXPONENTIATION = 5] = "EXPONENTIATION";
|
|
758
|
+
a[a.MULTIPLICATION = 5.1] = "MULTIPLICATION";
|
|
759
|
+
a[a.DIVISION = 5.2] = "DIVISION";
|
|
760
|
+
a[a.MODULUS = 5.3] = "MODULUS";
|
|
761
|
+
a[a.SUBTRACTION = 6.1] = "SUBTRACTION";
|
|
762
|
+
a[a.ADDITION = 6.2] = "ADDITION";
|
|
763
|
+
a[a.BITWISE_SHIFT = 7] = "BITWISE_SHIFT";
|
|
764
|
+
a[a.RELATIONAL = 8] = "RELATIONAL";
|
|
765
|
+
a[a.IN = 8] = "IN";
|
|
766
|
+
a[a.INSTANCEOF = 8] = "INSTANCEOF";
|
|
767
|
+
a[a.EQUALITY = 9] = "EQUALITY";
|
|
768
|
+
a[a.BITWISE_AND = 10] = "BITWISE_AND";
|
|
769
|
+
a[a.BITWISE_XOR = 11] = "BITWISE_XOR";
|
|
770
|
+
a[a.BITWISE_OR = 12] = "BITWISE_OR";
|
|
771
|
+
a[a.LOGICAL_AND = 13] = "LOGICAL_AND";
|
|
772
|
+
a[a.LOGICAL_OR = 14] = "LOGICAL_OR";
|
|
773
|
+
a[a.CONDITIONAL = 15] = "CONDITIONAL";
|
|
774
|
+
a[a.ASSIGNMENT = 16] = "ASSIGNMENT";
|
|
775
|
+
a[a.YIELD = 17] = "YIELD";
|
|
776
|
+
a[a.COMMA = 18] = "COMMA";
|
|
777
|
+
a[a.NONE = 99] = "NONE";
|
|
778
|
+
})(Order$$module$build$src$generators$javascript$javascript_generator || (Order$$module$build$src$generators$javascript$javascript_generator = {}));
|
|
779
|
+
var JavascriptGenerator$$module$build$src$generators$javascript$javascript_generator = class extends $.CodeGenerator$$module$build$src$core$generator {
|
|
780
|
+
constructor(a = "JavaScript") {
|
|
781
|
+
super(a);
|
|
782
|
+
this.ORDER_OVERRIDES = [
|
|
783
|
+
[Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL, Order$$module$build$src$generators$javascript$javascript_generator.MEMBER],
|
|
784
|
+
[Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL],
|
|
785
|
+
[Order$$module$build$src$generators$javascript$javascript_generator.MEMBER, Order$$module$build$src$generators$javascript$javascript_generator.MEMBER],
|
|
786
|
+
[Order$$module$build$src$generators$javascript$javascript_generator.MEMBER, Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL],
|
|
787
|
+
[Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_NOT, Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_NOT],
|
|
788
|
+
[
|
|
789
|
+
Order$$module$build$src$generators$javascript$javascript_generator.MULTIPLICATION,
|
|
790
|
+
Order$$module$build$src$generators$javascript$javascript_generator.MULTIPLICATION
|
|
791
|
+
],
|
|
792
|
+
[Order$$module$build$src$generators$javascript$javascript_generator.ADDITION, Order$$module$build$src$generators$javascript$javascript_generator.ADDITION],
|
|
793
|
+
[Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_AND, Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_AND],
|
|
794
|
+
[Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_OR, Order$$module$build$src$generators$javascript$javascript_generator.LOGICAL_OR]
|
|
795
|
+
];
|
|
796
|
+
this.isInitialized = false;
|
|
797
|
+
for (const b in Order$$module$build$src$generators$javascript$javascript_generator) a = Order$$module$build$src$generators$javascript$javascript_generator[b], typeof a !== "string" && (this["ORDER_" + b] = a);
|
|
798
|
+
this.addReservedWords("break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,in,instanceof,new,return,super,switch,this,throw,try,typeof,var,void,while,with,yield,enum,implements,interface,let,package,private,protected,public,static,await,null,true,false,arguments," + Object.getOwnPropertyNames(globalThis).join(","));
|
|
799
|
+
}
|
|
800
|
+
init(a) {
|
|
801
|
+
super.init(a);
|
|
802
|
+
this.nameDB_ ? this.nameDB_.reset() : this.nameDB_ = new $.Names$$module$build$src$core$names(this.RESERVED_WORDS_);
|
|
803
|
+
this.nameDB_.setVariableMap(a.getVariableMap());
|
|
804
|
+
this.nameDB_.populateVariables(a);
|
|
805
|
+
this.nameDB_.populateProcedures(a);
|
|
806
|
+
const b = [];
|
|
807
|
+
var c = $.allDeveloperVariables$$module$build$src$core$variables(a);
|
|
808
|
+
for (let d = 0; d < c.length; d++) b.push(this.nameDB_.getName(c[d], $.NameType$$module$build$src$core$names.DEVELOPER_VARIABLE));
|
|
809
|
+
a = $.allUsedVarModels$$module$build$src$core$variables(a);
|
|
810
|
+
for (c = 0; c < a.length; c++) b.push(this.nameDB_.getName(a[c].getId(), $.NameType$$module$build$src$core$names.VARIABLE));
|
|
811
|
+
b.length && (this.definitions_.variables = "var " + b.join(", ") + ";");
|
|
812
|
+
this.isInitialized = true;
|
|
813
|
+
}
|
|
814
|
+
finish(a) {
|
|
815
|
+
const b = Object.values(this.definitions_);
|
|
816
|
+
super.finish(a);
|
|
817
|
+
this.isInitialized = false;
|
|
818
|
+
this.nameDB_.reset();
|
|
819
|
+
return b.join("\n\n") + "\n\n\n" + a;
|
|
820
|
+
}
|
|
821
|
+
scrubNakedValue(a) {
|
|
822
|
+
return a + ";\n";
|
|
823
|
+
}
|
|
824
|
+
quote_(a) {
|
|
825
|
+
a = a.replace(/\\/g, "\\\\").replace(/\n/g, "\\\n").replace(/'/g, "\\'");
|
|
826
|
+
return "'" + a + "'";
|
|
827
|
+
}
|
|
828
|
+
multiline_quote_(a) {
|
|
829
|
+
return a.split(/\n/g).map(this.quote_).join(" + '\\n' +\n");
|
|
830
|
+
}
|
|
831
|
+
scrub_(a, b, c = false) {
|
|
832
|
+
let d = "";
|
|
833
|
+
if (!a.outputConnection || !a.outputConnection.targetConnection) {
|
|
834
|
+
var e = a.getCommentText();
|
|
835
|
+
e && (e = $.wrap$$module$build$src$core$utils$string(e, this.COMMENT_WRAP - 3), d += this.prefixLines(e + "\n", "// "));
|
|
836
|
+
for (let f = 0; f < a.inputList.length; f++) a.inputList[f].type === $.inputTypes$$module$build$src$core$inputs$input_types.VALUE && (e = a.inputList[f].connection.targetBlock()) && (e = this.allNestedComments(e)) && (d += this.prefixLines(e, "// "));
|
|
837
|
+
}
|
|
838
|
+
a = a.nextConnection && a.nextConnection.targetBlock();
|
|
839
|
+
c = c ? "" : this.blockToCode(a);
|
|
840
|
+
return d + b + c;
|
|
841
|
+
}
|
|
842
|
+
getAdjusted(a, b, c = 0, d = false, e = Order$$module$build$src$generators$javascript$javascript_generator.NONE) {
|
|
843
|
+
a.workspace.options.oneBasedIndex && c--;
|
|
844
|
+
const f = a.workspace.options.oneBasedIndex ? "1" : "0";
|
|
845
|
+
let g = e;
|
|
846
|
+
c > 0 ? g = Order$$module$build$src$generators$javascript$javascript_generator.ADDITION : c < 0 ? g = Order$$module$build$src$generators$javascript$javascript_generator.SUBTRACTION : d && (g = Order$$module$build$src$generators$javascript$javascript_generator.UNARY_NEGATION);
|
|
847
|
+
a = this.valueToCode(a, b, g) || f;
|
|
848
|
+
if (c === 0 && !d) return a;
|
|
849
|
+
if ($.isNumber$$module$build$src$core$utils$string(a)) return a = String(Number(a) + c), d && (a = String(-Number(a))), a;
|
|
850
|
+
c > 0 ? a = `${a} + ${c}` : c < 0 && (a = `${a} - ${-c}`);
|
|
851
|
+
d && (a = c ? `-(${a})` : `-${a}`);
|
|
852
|
+
Math.floor(e) >= Math.floor(g) && (a = `(${a})`);
|
|
853
|
+
return a;
|
|
854
|
+
}
|
|
855
|
+
};
|
|
856
|
+
var getSubstringIndex$$module$build$src$generators$javascript$lists = function(a, b, c) {
|
|
857
|
+
return b === "FIRST" ? "0" : b === "FROM_END" ? a + ".length - 1 - " + c : b === "LAST" ? a + ".length - 1" : c;
|
|
858
|
+
}, module$build$src$generators$javascript$lists = {};
|
|
859
|
+
module$build$src$generators$javascript$lists.lists_create_empty = lists_create_empty$$module$build$src$generators$javascript$lists;
|
|
860
|
+
module$build$src$generators$javascript$lists.lists_create_with = lists_create_with$$module$build$src$generators$javascript$lists;
|
|
861
|
+
module$build$src$generators$javascript$lists.lists_getIndex = lists_getIndex$$module$build$src$generators$javascript$lists;
|
|
862
|
+
module$build$src$generators$javascript$lists.lists_getSublist = lists_getSublist$$module$build$src$generators$javascript$lists;
|
|
863
|
+
module$build$src$generators$javascript$lists.lists_indexOf = lists_indexOf$$module$build$src$generators$javascript$lists;
|
|
864
|
+
module$build$src$generators$javascript$lists.lists_isEmpty = lists_isEmpty$$module$build$src$generators$javascript$lists;
|
|
865
|
+
module$build$src$generators$javascript$lists.lists_length = lists_length$$module$build$src$generators$javascript$lists;
|
|
866
|
+
module$build$src$generators$javascript$lists.lists_repeat = lists_repeat$$module$build$src$generators$javascript$lists;
|
|
867
|
+
module$build$src$generators$javascript$lists.lists_reverse = lists_reverse$$module$build$src$generators$javascript$lists;
|
|
868
|
+
module$build$src$generators$javascript$lists.lists_setIndex = lists_setIndex$$module$build$src$generators$javascript$lists;
|
|
869
|
+
module$build$src$generators$javascript$lists.lists_sort = lists_sort$$module$build$src$generators$javascript$lists;
|
|
870
|
+
module$build$src$generators$javascript$lists.lists_split = lists_split$$module$build$src$generators$javascript$lists;
|
|
871
|
+
var module$build$src$generators$javascript$logic = {};
|
|
872
|
+
module$build$src$generators$javascript$logic.controls_if = controls_if$$module$build$src$generators$javascript$logic;
|
|
873
|
+
module$build$src$generators$javascript$logic.controls_ifelse = controls_if$$module$build$src$generators$javascript$logic;
|
|
874
|
+
module$build$src$generators$javascript$logic.logic_boolean = logic_boolean$$module$build$src$generators$javascript$logic;
|
|
875
|
+
module$build$src$generators$javascript$logic.logic_compare = logic_compare$$module$build$src$generators$javascript$logic;
|
|
876
|
+
module$build$src$generators$javascript$logic.logic_negate = logic_negate$$module$build$src$generators$javascript$logic;
|
|
877
|
+
module$build$src$generators$javascript$logic.logic_null = logic_null$$module$build$src$generators$javascript$logic;
|
|
878
|
+
module$build$src$generators$javascript$logic.logic_operation = logic_operation$$module$build$src$generators$javascript$logic;
|
|
879
|
+
module$build$src$generators$javascript$logic.logic_ternary = logic_ternary$$module$build$src$generators$javascript$logic;
|
|
880
|
+
var module$build$src$generators$javascript$loops = {};
|
|
881
|
+
module$build$src$generators$javascript$loops.controls_flow_statements = controls_flow_statements$$module$build$src$generators$javascript$loops;
|
|
882
|
+
module$build$src$generators$javascript$loops.controls_for = controls_for$$module$build$src$generators$javascript$loops;
|
|
883
|
+
module$build$src$generators$javascript$loops.controls_forEach = controls_forEach$$module$build$src$generators$javascript$loops;
|
|
884
|
+
module$build$src$generators$javascript$loops.controls_repeat = controls_repeat_ext$$module$build$src$generators$javascript$loops;
|
|
885
|
+
module$build$src$generators$javascript$loops.controls_repeat_ext = controls_repeat_ext$$module$build$src$generators$javascript$loops;
|
|
886
|
+
module$build$src$generators$javascript$loops.controls_whileUntil = controls_whileUntil$$module$build$src$generators$javascript$loops;
|
|
887
|
+
var module$build$src$generators$javascript$math = {};
|
|
888
|
+
module$build$src$generators$javascript$math.math_arithmetic = math_arithmetic$$module$build$src$generators$javascript$math;
|
|
889
|
+
module$build$src$generators$javascript$math.math_atan2 = math_atan2$$module$build$src$generators$javascript$math;
|
|
890
|
+
module$build$src$generators$javascript$math.math_change = math_change$$module$build$src$generators$javascript$math;
|
|
891
|
+
module$build$src$generators$javascript$math.math_constant = math_constant$$module$build$src$generators$javascript$math;
|
|
892
|
+
module$build$src$generators$javascript$math.math_constrain = math_constrain$$module$build$src$generators$javascript$math;
|
|
893
|
+
module$build$src$generators$javascript$math.math_modulo = math_modulo$$module$build$src$generators$javascript$math;
|
|
894
|
+
module$build$src$generators$javascript$math.math_number = math_number$$module$build$src$generators$javascript$math;
|
|
895
|
+
module$build$src$generators$javascript$math.math_number_property = math_number_property$$module$build$src$generators$javascript$math;
|
|
896
|
+
module$build$src$generators$javascript$math.math_on_list = math_on_list$$module$build$src$generators$javascript$math;
|
|
897
|
+
module$build$src$generators$javascript$math.math_random_float = math_random_float$$module$build$src$generators$javascript$math;
|
|
898
|
+
module$build$src$generators$javascript$math.math_random_int = math_random_int$$module$build$src$generators$javascript$math;
|
|
899
|
+
module$build$src$generators$javascript$math.math_round = math_single$$module$build$src$generators$javascript$math;
|
|
900
|
+
module$build$src$generators$javascript$math.math_single = math_single$$module$build$src$generators$javascript$math;
|
|
901
|
+
module$build$src$generators$javascript$math.math_trig = math_single$$module$build$src$generators$javascript$math;
|
|
902
|
+
var module$build$src$generators$javascript$procedures = {};
|
|
903
|
+
module$build$src$generators$javascript$procedures.procedures_callnoreturn = procedures_callnoreturn$$module$build$src$generators$javascript$procedures;
|
|
904
|
+
module$build$src$generators$javascript$procedures.procedures_callreturn = procedures_callreturn$$module$build$src$generators$javascript$procedures;
|
|
905
|
+
module$build$src$generators$javascript$procedures.procedures_defnoreturn = procedures_defreturn$$module$build$src$generators$javascript$procedures;
|
|
906
|
+
module$build$src$generators$javascript$procedures.procedures_defreturn = procedures_defreturn$$module$build$src$generators$javascript$procedures;
|
|
907
|
+
module$build$src$generators$javascript$procedures.procedures_ifreturn = procedures_ifreturn$$module$build$src$generators$javascript$procedures;
|
|
908
|
+
var strRegExp$$module$build$src$generators$javascript$text = /^\s*'([^']|\\')*'\s*$/, forceString$$module$build$src$generators$javascript$text = function(a) {
|
|
909
|
+
return strRegExp$$module$build$src$generators$javascript$text.test(a) ? [a, Order$$module$build$src$generators$javascript$javascript_generator.ATOMIC] : ["String(" + a + ")", Order$$module$build$src$generators$javascript$javascript_generator.FUNCTION_CALL];
|
|
910
|
+
}, getSubstringIndex$$module$build$src$generators$javascript$text = function(a, b, c) {
|
|
911
|
+
return b === "FIRST" ? "0" : b === "FROM_END" ? a + ".length - 1 - " + c : b === "LAST" ? a + ".length - 1" : c;
|
|
912
|
+
}, module$build$src$generators$javascript$text = {};
|
|
913
|
+
module$build$src$generators$javascript$text.text = text$$module$build$src$generators$javascript$text;
|
|
914
|
+
module$build$src$generators$javascript$text.text_append = text_append$$module$build$src$generators$javascript$text;
|
|
915
|
+
module$build$src$generators$javascript$text.text_changeCase = text_changeCase$$module$build$src$generators$javascript$text;
|
|
916
|
+
module$build$src$generators$javascript$text.text_charAt = text_charAt$$module$build$src$generators$javascript$text;
|
|
917
|
+
module$build$src$generators$javascript$text.text_count = text_count$$module$build$src$generators$javascript$text;
|
|
918
|
+
module$build$src$generators$javascript$text.text_getSubstring = text_getSubstring$$module$build$src$generators$javascript$text;
|
|
919
|
+
module$build$src$generators$javascript$text.text_indexOf = text_indexOf$$module$build$src$generators$javascript$text;
|
|
920
|
+
module$build$src$generators$javascript$text.text_isEmpty = text_isEmpty$$module$build$src$generators$javascript$text;
|
|
921
|
+
module$build$src$generators$javascript$text.text_join = text_join$$module$build$src$generators$javascript$text;
|
|
922
|
+
module$build$src$generators$javascript$text.text_length = text_length$$module$build$src$generators$javascript$text;
|
|
923
|
+
module$build$src$generators$javascript$text.text_print = text_print$$module$build$src$generators$javascript$text;
|
|
924
|
+
module$build$src$generators$javascript$text.text_prompt = text_prompt_ext$$module$build$src$generators$javascript$text;
|
|
925
|
+
module$build$src$generators$javascript$text.text_prompt_ext = text_prompt_ext$$module$build$src$generators$javascript$text;
|
|
926
|
+
module$build$src$generators$javascript$text.text_replace = text_replace$$module$build$src$generators$javascript$text;
|
|
927
|
+
module$build$src$generators$javascript$text.text_reverse = text_reverse$$module$build$src$generators$javascript$text;
|
|
928
|
+
module$build$src$generators$javascript$text.text_trim = text_trim$$module$build$src$generators$javascript$text;
|
|
929
|
+
var module$build$src$generators$javascript$variables = {};
|
|
930
|
+
module$build$src$generators$javascript$variables.variables_get = variables_get$$module$build$src$generators$javascript$variables;
|
|
931
|
+
module$build$src$generators$javascript$variables.variables_set = variables_set$$module$build$src$generators$javascript$variables;
|
|
932
|
+
var module$build$src$generators$javascript$variables_dynamic = {};
|
|
933
|
+
module$build$src$generators$javascript$variables_dynamic.variables_get_dynamic = variables_get$$module$build$src$generators$javascript$variables;
|
|
934
|
+
module$build$src$generators$javascript$variables_dynamic.variables_set_dynamic = variables_set$$module$build$src$generators$javascript$variables;
|
|
935
|
+
var javascriptGenerator$$module$build$src$generators$javascript = new JavascriptGenerator$$module$build$src$generators$javascript$javascript_generator(), generators$$module$build$src$generators$javascript = Object.assign(
|
|
936
|
+
{},
|
|
937
|
+
module$build$src$generators$javascript$lists,
|
|
938
|
+
module$build$src$generators$javascript$logic,
|
|
939
|
+
module$build$src$generators$javascript$loops,
|
|
940
|
+
module$build$src$generators$javascript$math,
|
|
941
|
+
module$build$src$generators$javascript$procedures,
|
|
942
|
+
module$build$src$generators$javascript$text,
|
|
943
|
+
module$build$src$generators$javascript$variables,
|
|
944
|
+
module$build$src$generators$javascript$variables_dynamic
|
|
945
|
+
);
|
|
946
|
+
for (const a in generators$$module$build$src$generators$javascript) javascriptGenerator$$module$build$src$generators$javascript.forBlock[a] = generators$$module$build$src$generators$javascript[a];
|
|
947
|
+
var module$build$src$generators$javascript = {};
|
|
948
|
+
module$build$src$generators$javascript.JavascriptGenerator = JavascriptGenerator$$module$build$src$generators$javascript$javascript_generator;
|
|
949
|
+
module$build$src$generators$javascript.Order = Order$$module$build$src$generators$javascript$javascript_generator;
|
|
950
|
+
module$build$src$generators$javascript.javascriptGenerator = javascriptGenerator$$module$build$src$generators$javascript;
|
|
951
|
+
module$build$src$generators$javascript.__namespace__ = $;
|
|
952
|
+
return module$build$src$generators$javascript;
|
|
953
|
+
});
|
|
954
|
+
})(javascript_compressed$1);
|
|
955
|
+
return javascript_compressed$1.exports;
|
|
956
|
+
}
|
|
957
|
+
var javascript_compressedExports = requireJavascript_compressed();
|
|
958
|
+
const javascript = /* @__PURE__ */ getDefaultExportFromCjs(javascript_compressedExports);
|
|
959
|
+
const {
|
|
960
|
+
JavascriptGenerator,
|
|
961
|
+
Order,
|
|
962
|
+
javascriptGenerator
|
|
963
|
+
} = javascript;
|
|
964
|
+
export {
|
|
965
|
+
JavascriptGenerator,
|
|
966
|
+
Order,
|
|
967
|
+
javascriptGenerator
|
|
968
|
+
};
|
|
969
|
+
//# sourceMappingURL=javascript-B767_urL.js.map
|