Repository navigation
Expand file tree
/
Copy pathcode.js
More file actions
63 lines (54 loc) · 1.97 KB
/
Copy pathcode.js
File metadata and controls
63 lines (54 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
function listSyntax(lang) {
switch (lang) {
case "sage":
return { l_bracket: "[", r_bracket: "]", delimiter: "," };
break;
case "mathematica":
return { l_bracket: "{", r_bracket: "}", delimiter: "," };
break;
case "gap":
return {l_bracket: "[", r_bracket: "]", delimiter: "," };
break;
case "macaulay2":
return { l_bracket: "{", r_bracket: "}", delimiter: "," };
case "maple":
return {l_bracket: "[", r_bracket: "]", delimiter: "," };
}
console.error("Language " + lang + " not recognized!");
}
function convertList(str, source_lang, target_lang) {
let syntax_in = listSyntax(source_lang);
let syntax_out = listSyntax(target_lang);
return str.replace(/\s/g, "").replaceAll(syntax_in.l_bracket, syntax_out.l_bracket).replaceAll(syntax_in.r_bracket, syntax_out.r_bracket).replaceAll(syntax_in.delimiter, syntax_out.delimiter);
}
function copyOutputToClipboard() {
navigator.clipboard.writeText($('#output').val());
}
function swap() {
let temp_in = $('#input').val();
let temp_source = $('#source').val();
let temp_out = $('#output').val();
let temp_target = $('#target').val();
$('#input').val(temp_out);
$('#output').val(temp_in);
$('#source').val(temp_target);
$('#target').val(temp_source);
}
$(function () {
$('#copy').on("click", copyOutputToClipboard);
$('#convert').on("click", function () {
let input = $('#input').val();
let source = $('#source').val();
let target = $('#target').val();
if ($('#type').val() == "list") {
$('#output').val(convertList(input, source, target));
}
});
$('#swap').on("click", swap);
// create a new keyboard event and set the key to "Enter"
$("#input").on("keyup", function(event) {
if (event.ctrlKey && event.which === 13) {
$("#convert").trigger("click");
}
});
});