nadesiko3 3.4.21 → 3.4.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/batch/command.txt +93 -17
- package/batch/command_nakopad.txt +75 -3
- package/batch/pickup_command.nako3 +2 -0
- package/core/deno/snako.ts +1 -1
- package/core/package-lock.json +586 -628
- package/core/package.json +1 -1
- package/core/src/nako3.mjs +29 -1
- package/core/src/nako3.mts +27 -1
- package/core/src/nako_core_version.mjs +2 -2
- package/core/src/nako_core_version.mts +2 -2
- package/core/src/nako_lex_rules.mts +1 -1
- package/core/src/nako_parser3.mjs +33 -34
- package/core/src/nako_parser3.mts +45 -53
- package/core/src/plugin_system.mts +2 -2
- package/demo/index.html +3 -6
- package/package.json +2 -2
- package/release/_hash.txt +24 -24
- package/release/_script-tags.txt +14 -14
- package/release/command.json +1 -1
- package/release/command.json.js +1 -1
- package/release/command_cnako3.json +1 -1
- package/release/command_list.json +1 -1
- package/release/editor.js +1 -1
- package/release/editor.js.map +1 -1
- package/release/nako_gen_async.js +1 -1
- package/release/nako_gen_async.js.map +1 -1
- package/release/stats.json +1 -1
- package/release/version.js +1 -1
- package/release/version.js.map +1 -1
- package/release/wnako3.js +1 -1
- package/release/wnako3.js.map +1 -1
- package/release/wnako3webworker.js +1 -1
- package/release/wnako3webworker.js.map +1 -1
- package/src/browsers.json +1 -1
- package/src/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
- package/src/plugin_browser.mjs +15 -2
- package/src/plugin_browser.mts +15 -2
- package/src/plugin_browser_chart.mjs +29 -23
- package/src/plugin_browser_chart.mts +29 -23
- package/src/plugin_browser_dialog.mjs +3 -2
- package/src/plugin_browser_dialog.mts +4 -3
- package/src/plugin_browser_dom_parts.mjs +20 -0
- package/src/plugin_browser_dom_parts.mts +20 -0
- package/test/common/plugin_browser_ut_dialog_test.mjs +2 -2
- package/test/node/plugin_node_test.mjs +8 -0
- package/test/selenium/requirements.txt +1 -1
- package/test/selenium/test_chrome.py +1 -1
package/src/browsers.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"and_chr":["97"],"and_ff":["96"],"and_qq":["10.4"],"and_uc":["12.12"],"android":["97"],"baidu":["7.12"],"chrome":["98","97","96","93"],"edge":["98","97","96"],"firefox":["96","95","91","78"],"ie":["11"],"ios_saf":["15.2-15.3","15.0-15.1","14.5-14.8","14.0-14.4","12.2-12.5"],"kaios":["2.5"],"node":["17.0.0","16.12.0","14.18.0","12.22.0"],"op_mini":["all"],"op_mob":["64"],"opera":["83","82"],"safari":["15.2-15.3","15.1","14.1"],"samsung":["16.0","15.0"]}
|
|
1
|
+
{"and_chr":["97"],"and_ff":["96"],"and_qq":["10.4"],"and_uc":["12.12"],"android":["97"],"baidu":["7.12"],"chrome":["98","97","96","93"],"edge":["98","97","96"],"firefox":["96","95","91","78"],"ie":["11"],"ios_saf":["15.2-15.3","15.0-15.1","14.5-14.8","14.0-14.4","12.2-12.5"],"kaios":["2.5"],"node":["17.0.0","16.12.0","14.18.0","12.22.0"],"op_mini":["all"],"op_mob":["64"],"opera":["83","82"],"safari":["15.2-15.3","15.1","14.1"],"samsung":["16.0","15.0"]}
|
package/src/nako_version.mjs
CHANGED
package/src/nako_version.mts
CHANGED
package/src/plugin_browser.mjs
CHANGED
|
@@ -43,9 +43,9 @@ const PluginBrowser = {
|
|
|
43
43
|
type: 'const',
|
|
44
44
|
value: {
|
|
45
45
|
pluginName: 'plugin_browser',
|
|
46
|
-
pluginVersion: '3.
|
|
46
|
+
pluginVersion: '3.4.22',
|
|
47
47
|
nakoRuntime: ['wnako'],
|
|
48
|
-
nakoVersion: '^3.
|
|
48
|
+
nakoVersion: '^3.4.22' // 要求なでしこバージョン
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
51
|
'初期化': {
|
|
@@ -200,6 +200,19 @@ const PluginBrowser = {
|
|
|
200
200
|
}
|
|
201
201
|
return elm;
|
|
202
202
|
};
|
|
203
|
+
// 動的にJSライブラリを取り込む
|
|
204
|
+
sys.__loadScript = (url) => {
|
|
205
|
+
return new Promise((resolve, reject) => {
|
|
206
|
+
const script = document.createElement('script');
|
|
207
|
+
script.type = 'text/javascript';
|
|
208
|
+
script.src = url;
|
|
209
|
+
script.onload = resolve;
|
|
210
|
+
script.onerror = () => {
|
|
211
|
+
reject(new Error(`Failed to load script at url: ${url}`));
|
|
212
|
+
};
|
|
213
|
+
document.getElementsByTagName('head')[0].appendChild(script);
|
|
214
|
+
});
|
|
215
|
+
};
|
|
203
216
|
}
|
|
204
217
|
},
|
|
205
218
|
'!クリア': {
|
package/src/plugin_browser.mts
CHANGED
|
@@ -45,9 +45,9 @@ const PluginBrowser = {
|
|
|
45
45
|
type: 'const',
|
|
46
46
|
value: {
|
|
47
47
|
pluginName: 'plugin_browser', // プラグインの名前
|
|
48
|
-
pluginVersion: '3.
|
|
48
|
+
pluginVersion: '3.4.22', // プラグインのバージョン
|
|
49
49
|
nakoRuntime: ['wnako'], // 対象ランタイム
|
|
50
|
-
nakoVersion: '^3.
|
|
50
|
+
nakoVersion: '^3.4.22' // 要求なでしこバージョン
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
'初期化': {
|
|
@@ -190,6 +190,19 @@ const PluginBrowser = {
|
|
|
190
190
|
}
|
|
191
191
|
return elm
|
|
192
192
|
}
|
|
193
|
+
// 動的にJSライブラリを取り込む
|
|
194
|
+
sys.__loadScript = (url) => {
|
|
195
|
+
return new Promise((resolve, reject) => {
|
|
196
|
+
const script = document.createElement('script')
|
|
197
|
+
script.type = 'text/javascript'
|
|
198
|
+
script.src = url
|
|
199
|
+
script.onload = resolve
|
|
200
|
+
script.onerror = () => {
|
|
201
|
+
reject(new Error(`Failed to load script at url: ${url}`))
|
|
202
|
+
}
|
|
203
|
+
document.getElementsByTagName('head')[0].appendChild(script)
|
|
204
|
+
})
|
|
205
|
+
}
|
|
193
206
|
}
|
|
194
207
|
},
|
|
195
208
|
'!クリア': {
|
|
@@ -3,15 +3,21 @@ export default {
|
|
|
3
3
|
'グラフ描画': {
|
|
4
4
|
type: 'func',
|
|
5
5
|
josi: [['を', 'で', 'の']],
|
|
6
|
-
|
|
7
|
-
fn: function (data, sys) {
|
|
6
|
+
asyncFn: true,
|
|
7
|
+
fn: async function (data, sys) {
|
|
8
8
|
// Chart.jsが使えるかチェック
|
|
9
9
|
const win = sys.__v0.WINDOW;
|
|
10
10
|
if (typeof win === 'undefined') {
|
|
11
11
|
throw new Error('『グラフ描画』のエラー。ブラウザで実行してください。');
|
|
12
12
|
}
|
|
13
|
+
// Chart.jsがないので自動的に取り込む
|
|
14
|
+
if (typeof win.Chart === 'undefined') {
|
|
15
|
+
console.log('try to load chart.js');
|
|
16
|
+
await sys.__loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.0');
|
|
17
|
+
console.log('loaded chart.js');
|
|
18
|
+
}
|
|
13
19
|
if (typeof win.Chart === 'undefined') {
|
|
14
|
-
throw new Error('『グラフ描画』のエラー。Chart.js
|
|
20
|
+
throw new Error('『グラフ描画』のエラー。Chart.jsを取り込みに失敗しました。');
|
|
15
21
|
}
|
|
16
22
|
const Chart = win.Chart;
|
|
17
23
|
// Canvasが有効?
|
|
@@ -41,8 +47,8 @@ export default {
|
|
|
41
47
|
'線グラフ描画': {
|
|
42
48
|
type: 'func',
|
|
43
49
|
josi: [['を', 'で', 'の']],
|
|
44
|
-
|
|
45
|
-
fn: function (data, sys) {
|
|
50
|
+
asyncFn: true,
|
|
51
|
+
fn: async function (data, sys) {
|
|
46
52
|
data = sys.__exec('二次元グラフデータ変形', ['line', data, sys]);
|
|
47
53
|
const d = {
|
|
48
54
|
type: 'line',
|
|
@@ -55,8 +61,8 @@ export default {
|
|
|
55
61
|
'棒グラフ描画': {
|
|
56
62
|
type: 'func',
|
|
57
63
|
josi: [['を', 'で', 'の']],
|
|
58
|
-
|
|
59
|
-
fn: function (data, sys) {
|
|
64
|
+
asyncFn: true,
|
|
65
|
+
fn: async function (data, sys) {
|
|
60
66
|
// グラフオプションの差分作成
|
|
61
67
|
const gopt = Object.assign({}, sys.__v0['グラフオプション'], { 'indexAxis': 'x' });
|
|
62
68
|
data = sys.__exec('二次元グラフデータ変形', ['bar', data, sys]);
|
|
@@ -72,7 +78,8 @@ export default {
|
|
|
72
78
|
type: 'func',
|
|
73
79
|
josi: [['を', 'で', 'の']],
|
|
74
80
|
pure: true,
|
|
75
|
-
|
|
81
|
+
asyncFn: true,
|
|
82
|
+
fn: async function (data, sys) {
|
|
76
83
|
// グラフオプションの差分作成
|
|
77
84
|
const gopt = Object.assign({}, sys.__v0['グラフオプション'], { 'indexAxis': 'y' });
|
|
78
85
|
data = sys.__exec('二次元グラフデータ変形', ['bar', data, sys]);
|
|
@@ -87,8 +94,8 @@ export default {
|
|
|
87
94
|
'積上棒グラフ描画': {
|
|
88
95
|
type: 'func',
|
|
89
96
|
josi: [['を', 'で', 'の']],
|
|
90
|
-
|
|
91
|
-
fn: function (data, sys) {
|
|
97
|
+
asyncFn: true,
|
|
98
|
+
fn: async function (data, sys) {
|
|
92
99
|
// グラフオプションの差分作成
|
|
93
100
|
const gopt = Object.assign({}, sys.__v0['グラフオプション'], {
|
|
94
101
|
'indexAxis': 'x',
|
|
@@ -109,8 +116,8 @@ export default {
|
|
|
109
116
|
'積上横棒グラフ描画': {
|
|
110
117
|
type: 'func',
|
|
111
118
|
josi: [['を', 'で', 'の']],
|
|
112
|
-
|
|
113
|
-
fn: function (data, sys) {
|
|
119
|
+
asyncFn: true,
|
|
120
|
+
fn: async function (data, sys) {
|
|
114
121
|
// グラフオプションの差分作成
|
|
115
122
|
const gopt = Object.assign({}, sys.__v0['グラフオプション'], {
|
|
116
123
|
'indexAxis': 'y',
|
|
@@ -131,8 +138,8 @@ export default {
|
|
|
131
138
|
'散布図描画': {
|
|
132
139
|
type: 'func',
|
|
133
140
|
josi: [['を', 'で', 'の']],
|
|
134
|
-
|
|
135
|
-
fn: function (data, sys) {
|
|
141
|
+
asyncFn: true,
|
|
142
|
+
fn: async function (data, sys) {
|
|
136
143
|
// グラフオプションの差分作成
|
|
137
144
|
const gopt = Object.assign({}, sys.__v0['グラフオプション'], {});
|
|
138
145
|
data = sys.__exec('二次元グラフデータ変形', ['scatter', data, sys]);
|
|
@@ -147,8 +154,8 @@ export default {
|
|
|
147
154
|
'円グラフ描画': {
|
|
148
155
|
type: 'func',
|
|
149
156
|
josi: [['を', 'で', 'の']],
|
|
150
|
-
|
|
151
|
-
fn: function (data, sys) {
|
|
157
|
+
asyncFn: true,
|
|
158
|
+
fn: async function (data, sys) {
|
|
152
159
|
data = sys.__exec('二次元グラフデータ変形', ['pie', data, sys]);
|
|
153
160
|
const d = {
|
|
154
161
|
type: 'pie',
|
|
@@ -161,8 +168,8 @@ export default {
|
|
|
161
168
|
'ドーナツグラフ描画': {
|
|
162
169
|
type: 'func',
|
|
163
170
|
josi: [['を', 'で', 'の']],
|
|
164
|
-
|
|
165
|
-
fn: function (data, sys) {
|
|
171
|
+
asyncFn: true,
|
|
172
|
+
fn: async function (data, sys) {
|
|
166
173
|
data = sys.__exec('二次元グラフデータ変形', ['pie', data, sys]);
|
|
167
174
|
const d = {
|
|
168
175
|
type: 'doughnut',
|
|
@@ -175,8 +182,8 @@ export default {
|
|
|
175
182
|
'ポーラーグラフ描画': {
|
|
176
183
|
type: 'func',
|
|
177
184
|
josi: [['を', 'で', 'の']],
|
|
178
|
-
|
|
179
|
-
fn: function (data, sys) {
|
|
185
|
+
asyncFn: true,
|
|
186
|
+
fn: async function (data, sys) {
|
|
180
187
|
data = sys.__exec('二次元グラフデータ変形', ['pie', data, sys]);
|
|
181
188
|
const d = {
|
|
182
189
|
type: 'polarArea',
|
|
@@ -189,8 +196,8 @@ export default {
|
|
|
189
196
|
'レーダーグラフ描画': {
|
|
190
197
|
type: 'func',
|
|
191
198
|
josi: [['を', 'で', 'の']],
|
|
192
|
-
|
|
193
|
-
fn: function (data, sys) {
|
|
199
|
+
asyncFn: true,
|
|
200
|
+
fn: async function (data, sys) {
|
|
194
201
|
data = sys.__exec('二次元グラフデータ変形', ['bar', data, sys]);
|
|
195
202
|
const d = {
|
|
196
203
|
type: 'radar',
|
|
@@ -203,7 +210,6 @@ export default {
|
|
|
203
210
|
'二次元グラフデータ変形': {
|
|
204
211
|
type: 'func',
|
|
205
212
|
josi: [['の'], ['を']],
|
|
206
|
-
pure: true,
|
|
207
213
|
fn: function (t, dataOrg, sys) {
|
|
208
214
|
// データを破壊的に変更してしまうので最初にデータをコピー (#1416)
|
|
209
215
|
const data = JSON.parse(JSON.stringify(dataOrg));
|
|
@@ -3,15 +3,21 @@ export default {
|
|
|
3
3
|
'グラフ描画': { // @ Chart.jsを利用して、DATAのグラフを描画 // @ぐらふびょうが
|
|
4
4
|
type: 'func',
|
|
5
5
|
josi: [['を', 'で', 'の']],
|
|
6
|
-
|
|
7
|
-
fn: function (data: any, sys: any) {
|
|
6
|
+
asyncFn: true,
|
|
7
|
+
fn: async function (data: any, sys: any) {
|
|
8
8
|
// Chart.jsが使えるかチェック
|
|
9
9
|
const win: any = sys.__v0.WINDOW
|
|
10
10
|
if (typeof win === 'undefined') {
|
|
11
11
|
throw new Error('『グラフ描画』のエラー。ブラウザで実行してください。')
|
|
12
12
|
}
|
|
13
|
+
// Chart.jsがないので自動的に取り込む
|
|
14
|
+
if (typeof win.Chart === 'undefined') {
|
|
15
|
+
console.log('try to load chart.js')
|
|
16
|
+
await sys.__loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.0')
|
|
17
|
+
console.log('loaded chart.js')
|
|
18
|
+
}
|
|
13
19
|
if (typeof win.Chart === 'undefined') {
|
|
14
|
-
throw new Error('『グラフ描画』のエラー。Chart.js
|
|
20
|
+
throw new Error('『グラフ描画』のエラー。Chart.jsを取り込みに失敗しました。')
|
|
15
21
|
}
|
|
16
22
|
const Chart = win.Chart
|
|
17
23
|
// Canvasが有効?
|
|
@@ -35,8 +41,8 @@ export default {
|
|
|
35
41
|
'線グラフ描画': { // @ 線グラフを描画 // @せんぐらふびょうが
|
|
36
42
|
type: 'func',
|
|
37
43
|
josi: [['を', 'で', 'の']],
|
|
38
|
-
|
|
39
|
-
fn: function (data: any, sys: any) {
|
|
44
|
+
asyncFn: true,
|
|
45
|
+
fn: async function (data: any, sys: any) {
|
|
40
46
|
data = sys.__exec('二次元グラフデータ変形', ['line', data, sys])
|
|
41
47
|
const d = {
|
|
42
48
|
type: 'line',
|
|
@@ -49,8 +55,8 @@ export default {
|
|
|
49
55
|
'棒グラフ描画': { // @ 棒グラフを描画 // @ぼうぐらふびょうが
|
|
50
56
|
type: 'func',
|
|
51
57
|
josi: [['を', 'で', 'の']],
|
|
52
|
-
|
|
53
|
-
fn: function (data: any, sys: any) {
|
|
58
|
+
asyncFn: true,
|
|
59
|
+
fn: async function (data: any, sys: any) {
|
|
54
60
|
// グラフオプションの差分作成
|
|
55
61
|
const gopt = Object.assign({},
|
|
56
62
|
sys.__v0['グラフオプション'],
|
|
@@ -68,7 +74,8 @@ export default {
|
|
|
68
74
|
type: 'func',
|
|
69
75
|
josi: [['を', 'で', 'の']],
|
|
70
76
|
pure: true,
|
|
71
|
-
|
|
77
|
+
asyncFn: true,
|
|
78
|
+
fn: async function (data: any, sys: any) {
|
|
72
79
|
// グラフオプションの差分作成
|
|
73
80
|
const gopt = Object.assign({},
|
|
74
81
|
sys.__v0['グラフオプション'],
|
|
@@ -85,8 +92,8 @@ export default {
|
|
|
85
92
|
'積上棒グラフ描画': { // @ 複数列のデータがある場合積み上げ棒グラフを描画 // @つみあげぼうぐらふびょうが
|
|
86
93
|
type: 'func',
|
|
87
94
|
josi: [['を', 'で', 'の']],
|
|
88
|
-
|
|
89
|
-
fn: function (data: any, sys: any) {
|
|
95
|
+
asyncFn: true,
|
|
96
|
+
fn: async function (data: any, sys: any) {
|
|
90
97
|
// グラフオプションの差分作成
|
|
91
98
|
const gopt = Object.assign({},
|
|
92
99
|
sys.__v0['グラフオプション'],
|
|
@@ -109,8 +116,8 @@ export default {
|
|
|
109
116
|
'積上横棒グラフ描画': { // @ 複数列のデータがある場合積み上げ棒グラフを描画 // @つみあげよこぼうぐらふびょうが
|
|
110
117
|
type: 'func',
|
|
111
118
|
josi: [['を', 'で', 'の']],
|
|
112
|
-
|
|
113
|
-
fn: function (data: any, sys: any) {
|
|
119
|
+
asyncFn: true,
|
|
120
|
+
fn: async function (data: any, sys: any) {
|
|
114
121
|
// グラフオプションの差分作成
|
|
115
122
|
const gopt = Object.assign({},
|
|
116
123
|
sys.__v0['グラフオプション'],
|
|
@@ -133,8 +140,8 @@ export default {
|
|
|
133
140
|
'散布図描画': { // @ 散布図を描画 // @さんぷず
|
|
134
141
|
type: 'func',
|
|
135
142
|
josi: [['を', 'で', 'の']],
|
|
136
|
-
|
|
137
|
-
fn: function (data: any, sys: any) {
|
|
143
|
+
asyncFn: true,
|
|
144
|
+
fn: async function (data: any, sys: any) {
|
|
138
145
|
// グラフオプションの差分作成
|
|
139
146
|
const gopt = Object.assign({},
|
|
140
147
|
sys.__v0['グラフオプション'],
|
|
@@ -151,8 +158,8 @@ export default {
|
|
|
151
158
|
'円グラフ描画': { // @ 円グラフを描画 // @えんぐらふびょうが
|
|
152
159
|
type: 'func',
|
|
153
160
|
josi: [['を', 'で', 'の']],
|
|
154
|
-
|
|
155
|
-
fn: function (data: any, sys: any) {
|
|
161
|
+
asyncFn: true,
|
|
162
|
+
fn: async function (data: any, sys: any) {
|
|
156
163
|
data = sys.__exec('二次元グラフデータ変形', ['pie', data, sys])
|
|
157
164
|
const d = {
|
|
158
165
|
type: 'pie',
|
|
@@ -165,8 +172,8 @@ export default {
|
|
|
165
172
|
'ドーナツグラフ描画': { // @ 円グラフ(ドーナツ)を描画 // @ドーナツぐらふびょうが
|
|
166
173
|
type: 'func',
|
|
167
174
|
josi: [['を', 'で', 'の']],
|
|
168
|
-
|
|
169
|
-
fn: function (data: any, sys: any) {
|
|
175
|
+
asyncFn: true,
|
|
176
|
+
fn: async function (data: any, sys: any) {
|
|
170
177
|
data = sys.__exec('二次元グラフデータ変形', ['pie', data, sys])
|
|
171
178
|
const d = {
|
|
172
179
|
type: 'doughnut',
|
|
@@ -179,8 +186,8 @@ export default {
|
|
|
179
186
|
'ポーラーグラフ描画': { // @ 円グラフ(鶏頭グラフ/ポーラーエリアチャート)を描画 // @ぽーらーぐらふびょうが
|
|
180
187
|
type: 'func',
|
|
181
188
|
josi: [['を', 'で', 'の']],
|
|
182
|
-
|
|
183
|
-
fn: function (data: any, sys: any) {
|
|
189
|
+
asyncFn: true,
|
|
190
|
+
fn: async function (data: any, sys: any) {
|
|
184
191
|
data = sys.__exec('二次元グラフデータ変形', ['pie', data, sys])
|
|
185
192
|
const d = {
|
|
186
193
|
type: 'polarArea',
|
|
@@ -193,8 +200,8 @@ export default {
|
|
|
193
200
|
'レーダーグラフ描画': { // @ レーダーチャートを描画 // @れーだーぐらふびょうが
|
|
194
201
|
type: 'func',
|
|
195
202
|
josi: [['を', 'で', 'の']],
|
|
196
|
-
|
|
197
|
-
fn: function (data: any, sys: any) {
|
|
203
|
+
asyncFn: true,
|
|
204
|
+
fn: async function (data: any, sys: any) {
|
|
198
205
|
data = sys.__exec('二次元グラフデータ変形', ['bar', data, sys])
|
|
199
206
|
const d = {
|
|
200
207
|
type: 'radar',
|
|
@@ -207,7 +214,6 @@ export default {
|
|
|
207
214
|
'二次元グラフデータ変形': { // @ 二次元配列をXXグラフ描画の形式に整形する。種類TとDATAを指定。 // @にじげんぐらふでーたへんけい
|
|
208
215
|
type: 'func',
|
|
209
216
|
josi: [['の'], ['を']],
|
|
210
|
-
pure: true,
|
|
211
217
|
fn: function (t: any, dataOrg: any, sys: any) {
|
|
212
218
|
// データを破壊的に変更してしまうので最初にデータをコピー (#1416)
|
|
213
219
|
const data = JSON.parse(JSON.stringify(dataOrg))
|
|
@@ -10,6 +10,7 @@ export default {
|
|
|
10
10
|
},
|
|
11
11
|
return_none: true
|
|
12
12
|
},
|
|
13
|
+
'ダイアログキャンセル値': { type: 'var', value: '' },
|
|
13
14
|
'尋': {
|
|
14
15
|
type: 'func',
|
|
15
16
|
josi: [['と', 'を']],
|
|
@@ -17,7 +18,7 @@ export default {
|
|
|
17
18
|
fn: function (s, sys) {
|
|
18
19
|
const r = window.prompt(s);
|
|
19
20
|
if (!r) {
|
|
20
|
-
return sys.__v0['
|
|
21
|
+
return sys.__v0['ダイアログキャンセル値'];
|
|
21
22
|
}
|
|
22
23
|
if (/^[-+]?[0-9]+(\.[0-9]+)?$/.test(r)) {
|
|
23
24
|
return parseFloat(r);
|
|
@@ -37,7 +38,7 @@ export default {
|
|
|
37
38
|
fn: function (s, sys) {
|
|
38
39
|
const r = window.prompt(s);
|
|
39
40
|
if (!r) {
|
|
40
|
-
return sys.__v0['
|
|
41
|
+
return sys.__v0['ダイアログキャンセル値'];
|
|
41
42
|
}
|
|
42
43
|
return r;
|
|
43
44
|
}
|
|
@@ -10,6 +10,7 @@ export default {
|
|
|
10
10
|
},
|
|
11
11
|
return_none: true
|
|
12
12
|
},
|
|
13
|
+
'ダイアログキャンセル値': { type: 'var', value: '' }, // @だいあろぐきゃんせるち
|
|
13
14
|
'尋': { // @メッセージSと入力ボックスを出して尋ねる // @たずねる
|
|
14
15
|
type: 'func',
|
|
15
16
|
josi: [['と', 'を']],
|
|
@@ -17,7 +18,7 @@ export default {
|
|
|
17
18
|
fn: function (s: any, sys: any) {
|
|
18
19
|
const r = window.prompt(s)
|
|
19
20
|
if (!r) {
|
|
20
|
-
return sys.__v0['
|
|
21
|
+
return sys.__v0['ダイアログキャンセル値']
|
|
21
22
|
}
|
|
22
23
|
if (/^[-+]?[0-9]+(\.[0-9]+)?$/.test(r)) {
|
|
23
24
|
return parseFloat(r)
|
|
@@ -37,12 +38,12 @@ export default {
|
|
|
37
38
|
fn: function (s: any, sys: any) {
|
|
38
39
|
const r = window.prompt(s)
|
|
39
40
|
if (!r) {
|
|
40
|
-
return sys.__v0['
|
|
41
|
+
return sys.__v0['ダイアログキャンセル値']
|
|
41
42
|
}
|
|
42
43
|
return r
|
|
43
44
|
}
|
|
44
45
|
},
|
|
45
|
-
'二択': { // @メッセージSと[OK]
|
|
46
|
+
'二択': { // @メッセージSと[OK][キャンセル]のダイアログを出して尋ねる。戻り値はtrueかfalseのどちらかになる。 // @にたく
|
|
46
47
|
type: 'func',
|
|
47
48
|
josi: [['で', 'の', 'と', 'を']],
|
|
48
49
|
pure: true,
|
|
@@ -424,5 +424,25 @@ export default {
|
|
|
424
424
|
}
|
|
425
425
|
return table;
|
|
426
426
|
}
|
|
427
|
+
},
|
|
428
|
+
'マーメイド作成': {
|
|
429
|
+
type: 'func',
|
|
430
|
+
josi: [['の']],
|
|
431
|
+
pure: true,
|
|
432
|
+
asyncFn: true,
|
|
433
|
+
fn: async function (src, sys) {
|
|
434
|
+
console.log('aaa');
|
|
435
|
+
const div = sys.__exec('DOM部品作成', ['div', sys]);
|
|
436
|
+
div.classList.add('mermaid');
|
|
437
|
+
div.innerHTML = src;
|
|
438
|
+
// ライブラリを読み込む
|
|
439
|
+
if (typeof sys.__v0.WINDOW.mermaid === 'undefined') {
|
|
440
|
+
console.log('try to load mermaid');
|
|
441
|
+
await sys.__loadScript('https://cdn.jsdelivr.net/npm/mermaid@10.5.0/dist/mermaid.min.js');
|
|
442
|
+
console.log('loaded mermaid');
|
|
443
|
+
}
|
|
444
|
+
await sys.__v0.WINDOW.mermaid.run();
|
|
445
|
+
return div;
|
|
446
|
+
}
|
|
427
447
|
}
|
|
428
448
|
};
|
|
@@ -392,5 +392,25 @@ export default {
|
|
|
392
392
|
}
|
|
393
393
|
return table
|
|
394
394
|
}
|
|
395
|
+
},
|
|
396
|
+
'マーメイド作成': { // @ Mermaid記法を使ってSRCのチャートを作成する // @ まーめいどさくせい
|
|
397
|
+
type: 'func',
|
|
398
|
+
josi: [['の']],
|
|
399
|
+
pure: true,
|
|
400
|
+
asyncFn: true,
|
|
401
|
+
fn: async function (src: string, sys: any) {
|
|
402
|
+
console.log('aaa')
|
|
403
|
+
const div = sys.__exec('DOM部品作成', ['div', sys])
|
|
404
|
+
div.classList.add('mermaid')
|
|
405
|
+
div.innerHTML = src
|
|
406
|
+
// ライブラリを読み込む
|
|
407
|
+
if (typeof sys.__v0.WINDOW.mermaid === 'undefined') {
|
|
408
|
+
console.log('try to load mermaid')
|
|
409
|
+
await sys.__loadScript('https://cdn.jsdelivr.net/npm/mermaid@10.5.0/dist/mermaid.min.js')
|
|
410
|
+
console.log('loaded mermaid')
|
|
411
|
+
}
|
|
412
|
+
await sys.__v0.WINDOW.mermaid.run()
|
|
413
|
+
return div
|
|
414
|
+
}
|
|
395
415
|
}
|
|
396
416
|
}
|
|
@@ -48,7 +48,7 @@ describe('plugin_browser_dialog', () => {
|
|
|
48
48
|
chkprompt(['あいうえお'], 'あかね', 'あいうえお', 'あかね')
|
|
49
49
|
})
|
|
50
50
|
it('尋 - キャンセル', () => {
|
|
51
|
-
const sys = { __v0: {
|
|
51
|
+
const sys = { __v0: { 'ダイアログキャンセル値': '' } }
|
|
52
52
|
chkprompt(['あいうえお', sys], null, 'あいうえお', '')
|
|
53
53
|
})
|
|
54
54
|
})
|
|
@@ -77,7 +77,7 @@ describe('plugin_browser_dialog', () => {
|
|
|
77
77
|
chkprompt(['あいうえお'], '1.2.3', 'あいうえお', '1.2.3')
|
|
78
78
|
})
|
|
79
79
|
it('文字尋 - キャンセル', () => {
|
|
80
|
-
const sys = { __v0: {
|
|
80
|
+
const sys = { __v0: { 'ダイアログキャンセル値': '' } }
|
|
81
81
|
chkprompt(['あいうえお', sys], null, 'あいうえお', '')
|
|
82
82
|
})
|
|
83
83
|
})
|
|
@@ -136,8 +136,12 @@ describe('plugin_node_test', () => {
|
|
|
136
136
|
await cmp(code, 'OK', 300)
|
|
137
137
|
})
|
|
138
138
|
it('圧縮/解凍', async function () {
|
|
139
|
+
// 7zip がない環境ではテストを飛ばす
|
|
139
140
|
let path7z = get7zPath()
|
|
140
141
|
if (path7z === '') { return this.skip() }
|
|
142
|
+
// なぜかGitHubでエラーになるので飛ばす
|
|
143
|
+
if (process.platform !== 'darwin') { return this.skip() }
|
|
144
|
+
// テスト
|
|
141
145
|
let tmp = '/tmp'
|
|
142
146
|
if (process.platform === 'linux') {
|
|
143
147
|
tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'nadesiko3zip-test'))
|
|
@@ -152,6 +156,8 @@ describe('plugin_node_test', () => {
|
|
|
152
156
|
// 7z がない環境ではテストを飛ばす
|
|
153
157
|
let path7z = get7zPath()
|
|
154
158
|
if (path7z === '') { return this.skip() }
|
|
159
|
+
// なぜかGitHubでエラーになるので飛ばす
|
|
160
|
+
if (process.platform !== 'darwin') { return this.skip() }
|
|
155
161
|
// 一時フォルダを作成
|
|
156
162
|
let tmp = '/tmp'
|
|
157
163
|
if (process.platform === 'linux') {
|
|
@@ -182,6 +188,8 @@ describe('plugin_node_test', () => {
|
|
|
182
188
|
// 7z がない環境ではテストを飛ばす
|
|
183
189
|
let path7z = get7zPath()
|
|
184
190
|
if (path7z === '') { return this.skip() }
|
|
191
|
+
// なぜかGitHubでエラーになるので飛ばす
|
|
192
|
+
if (process.platform !== 'darwin') { return this.skip() }
|
|
185
193
|
//
|
|
186
194
|
let tmp = '/tmp'
|
|
187
195
|
if (process.platform === 'linux') {
|