nadesiko3 3.7.2 → 3.7.4
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/batch/command.txt +472 -469
- package/batch/pickup_command.nako3 +1 -1
- package/core/.eslintrc.cjs +10 -3
- package/core/package-lock.json +1184 -645
- package/core/package.json +4 -5
- package/core/src/nako3.mjs +8 -6
- package/core/src/nako3.mts +19 -16
- package/core/src/nako_ast.mts +2 -3
- package/core/src/nako_core_version.mjs +2 -2
- package/core/src/nako_core_version.mts +2 -2
- package/core/src/nako_csv.mjs +1 -0
- package/core/src/nako_csv.mts +3 -2
- package/core/src/nako_from_dncl.mjs +1 -1
- package/core/src/nako_from_dncl.mts +1 -1
- package/core/src/nako_from_dncl2.mjs +1 -1
- package/core/src/nako_from_dncl2.mts +2 -2
- package/core/src/nako_gen.mjs +37 -35
- package/core/src/nako_gen.mts +70 -67
- package/core/src/nako_global.mjs +3 -2
- package/core/src/nako_global.mts +3 -2
- package/core/src/nako_lexer.mjs +3 -3
- package/core/src/nako_lexer.mts +3 -3
- package/core/src/nako_logger.mjs +1 -1
- package/core/src/nako_logger.mts +2 -2
- package/core/src/nako_parser3.mjs +67 -59
- package/core/src/nako_parser3.mts +96 -90
- package/core/src/nako_parser_base.mts +3 -3
- package/core/src/nako_prepare.mjs +1 -1
- package/core/src/nako_prepare.mts +1 -1
- package/core/src/nako_source_mapping.mts +0 -1
- package/core/src/nako_token.mts +8 -8
- package/core/src/nako_types.mts +1 -1
- package/core/src/plugin_api.mts +1 -1
- package/core/src/plugin_csv.mjs +1 -0
- package/core/src/plugin_csv.mts +2 -1
- package/core/src/plugin_math.mjs +2 -2
- package/core/src/plugin_math.mts +3 -3
- package/core/src/plugin_promise.mjs +1 -1
- package/core/src/plugin_promise.mts +1 -1
- package/core/src/plugin_system.mjs +117 -40
- package/core/src/plugin_system.mts +132 -58
- package/core/src/plugin_test.mjs +3 -1
- package/core/src/plugin_test.mts +3 -1
- package/core/test/basic_test.mjs +16 -0
- package/core/test/calc_test.mjs +7 -0
- package/core/test/plugin_system_test.mjs +33 -0
- package/doc/files.md +4 -4
- package/doc/plugins.md +1 -1
- package/package.json +9 -9
- package/release/_hash.txt +36 -121
- package/release/_script-tags.txt +16 -33
- 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/edit_main.js +3 -3
- package/release/edit_main.js.map +2 -2
- package/release/editor.js +3 -3
- package/release/plugin_markup.js +53 -53
- package/release/plugin_markup.js.map +3 -3
- package/release/plugin_weykturtle3d.js +1 -1
- package/release/plugin_weykturtle3d.js.map +4 -4
- package/release/version.js +3 -3
- package/release/version_main.js +3 -3
- package/release/version_main.js.map +2 -2
- package/release/wnako3.js +66 -66
- package/release/wnako3.js.map +3 -3
- package/release/wnako3webworker.js +58 -58
- package/release/wnako3webworker.js.map +3 -3
- package/src/browsers.txt +30 -20
- package/src/cnako3mod.mjs +19 -18
- package/src/cnako3mod.mts +17 -16
- package/src/deno_wrapper.mjs +6 -6
- package/src/deno_wrapper.mts +11 -11
- package/src/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
- package/src/plugin_browser.mjs +2 -2
- package/src/plugin_browser.mts +5 -5
- package/src/plugin_browser_ajax.mjs +2 -2
- package/src/plugin_browser_ajax.mts +2 -2
- package/src/plugin_browser_api.mts +0 -1
- package/src/plugin_browser_crypto.mjs +8 -8
- package/src/plugin_browser_crypto.mts +13 -13
- package/src/plugin_browser_dom_basic.mjs +3 -3
- package/src/plugin_browser_dom_basic.mts +5 -7
- package/src/plugin_browser_dom_event.mjs +1 -1
- package/src/plugin_browser_dom_event.mts +2 -1
- package/src/plugin_browser_dom_parts.mjs +33 -18
- package/src/plugin_browser_dom_parts.mts +60 -59
- package/src/plugin_browser_speech.mjs +1 -1
- package/src/plugin_browser_speech.mts +1 -1
- package/src/plugin_node.mjs +5 -3
- package/src/plugin_node.mts +6 -4
- package/src/plugin_weykturtle3d.mjs +38 -15
- package/src/plugin_weykturtle3d.mts +279 -240
- package/src/plugin_weykturtle3d_three.mjs +3 -0
- package/src/plugin_weykturtle3d_three.mts +214 -0
- package/src/plugin_weykturtle3d_threeutil.mjs +28 -0
- package/src/plugin_weykturtle3d_threeutil.mts +31 -0
- package/src/wnako3.mjs +1 -0
- package/src/wnako3.mts +1 -0
- package/src/wnako3mod.mjs +5 -2
- package/src/wnako3mod.mts +6 -3
- package/batch/command_nakopad.txt +0 -1177
- package/core/__report.txt +0 -617
- package/core/command/plugin_snako.mjs +0 -112
- package/core/command/snako.mjs +0 -108
- package/release/core_src_nako_josi_list_mjs.js +0 -3
- package/release/core_src_nako_josi_list_mjs.js.LICENSE.txt +0 -3
- package/release/core_src_nako_josi_list_mjs.js.map +0 -1
- package/release/core_src_nako_reserved_words_mjs.js +0 -3
- package/release/core_src_nako_reserved_words_mjs.js.LICENSE.txt +0 -3
- package/release/core_src_nako_reserved_words_mjs.js.map +0 -1
- package/release/editor/edit_main.js +0 -48
- package/release/editor/edit_main.js.map +0 -7
- package/release/editor/version_main.js +0 -44
- package/release/editor/version_main.js.map +0 -7
- package/release/editor.js.LICENSE.txt +0 -91
- package/release/editor.js.map +0 -1
- package/release/nako_gen_async.js +0 -2
- package/release/nako_gen_async.js.LICENSE.txt +0 -21
- package/release/nako_gen_async.js.map +0 -1
- package/release/plugin_caniuse.js.LICENSE.txt +0 -15
- package/release/plugin_datetime.js.LICENSE.txt +0 -21
- package/release/plugin_kansuji.js.LICENSE.txt +0 -3
- package/release/plugin_markup.js.LICENSE.txt +0 -15
- package/release/plugin_toml.js +0 -295
- package/release/plugin_toml.js.map +0 -7
- package/release/plugin_turtle.js.LICENSE.txt +0 -9
- package/release/plugin_webworker.js.LICENSE.txt +0 -3
- package/release/plugin_weykturtle3d.js.LICENSE.txt +0 -3
- package/release/src/plugin_caniuse.js +0 -2
- package/release/src/plugin_caniuse.js.map +0 -7
- package/release/src/plugin_datetime.js +0 -2
- package/release/src/plugin_datetime.js.map +0 -7
- package/release/src/plugin_kansuji.js +0 -2
- package/release/src/plugin_kansuji.js.map +0 -7
- package/release/src/plugin_keigo.js +0 -2
- package/release/src/plugin_keigo.js.map +0 -7
- package/release/src/plugin_markup.js +0 -64
- package/release/src/plugin_markup.js.map +0 -7
- package/release/src/plugin_three.js +0 -2
- package/release/src/plugin_three.js.map +0 -7
- package/release/src/plugin_turtle.js +0 -2
- package/release/src/plugin_turtle.js.map +0 -7
- package/release/src/plugin_webworker.js +0 -4
- package/release/src/plugin_webworker.js.map +0 -7
- package/release/src/plugin_weykturtle3d.js +0 -2
- package/release/src/plugin_weykturtle3d.js.map +0 -7
- package/release/src/wnako3.js +0 -482
- package/release/src/wnako3.js.map +0 -7
- package/release/src/wnako3webworker.js +0 -428
- package/release/src/wnako3webworker.js.map +0 -7
- package/release/stats.json +0 -1
- package/release/version.js.LICENSE.txt +0 -65
- package/release/version.js.map +0 -1
- package/release/wnako3.js.LICENSE.txt +0 -341
- package/release/wnako3webworker.js.LICENSE.txt +0 -209
- package/src/plugin_three.mts +0 -240
|
@@ -296,6 +296,7 @@ export default {
|
|
|
296
296
|
rows = s;
|
|
297
297
|
}
|
|
298
298
|
// 入力項目に合わせて行を追加
|
|
299
|
+
// eslint-disable-next-line @typescript-eslint/no-for-in-array
|
|
299
300
|
for (const rowIndex in rows) {
|
|
300
301
|
const row = rows[rowIndex];
|
|
301
302
|
let cols;
|
|
@@ -421,8 +422,7 @@ export default {
|
|
|
421
422
|
lbl2.innerHTML = ' ' + sys.__tohtmlQ(opt2);
|
|
422
423
|
lbl2.htmlFor = inp.id;
|
|
423
424
|
}
|
|
424
|
-
// v3.2.33での拡張
|
|
425
|
-
else if (val === '?送信' || val === '?submit') {
|
|
425
|
+
else if (val === '?送信' || val === '?submit') { // v3.2.33での拡張
|
|
426
426
|
inp.type = 'submit';
|
|
427
427
|
inp.value = val.substring(1);
|
|
428
428
|
if (key !== '') {
|
|
@@ -533,43 +533,58 @@ export default {
|
|
|
533
533
|
const rr = [];
|
|
534
534
|
const rows = aa.split('\n');
|
|
535
535
|
for (const row of rows) {
|
|
536
|
-
rr.push(row.split(
|
|
536
|
+
rr.push(row.split(','));
|
|
537
537
|
}
|
|
538
538
|
aa = rr;
|
|
539
539
|
}
|
|
540
|
-
const
|
|
541
|
-
|
|
542
|
-
const
|
|
543
|
-
|
|
540
|
+
const table = tbl;
|
|
541
|
+
// テーブル作成/テーブル更新の設定を読み取る
|
|
542
|
+
const domOption = sys.__getSysVar('DOM部品オプション');
|
|
543
|
+
// 背景色は複製して使う
|
|
544
|
+
const bgColor = JSON.parse(JSON.stringify(domOption['テーブル背景色']));
|
|
544
545
|
for (let i = 0; i < 3; i++) {
|
|
545
|
-
bgColor.push(
|
|
546
|
+
bgColor.push('');
|
|
546
547
|
}
|
|
547
|
-
const bgHead = bgColor.shift() ||
|
|
548
|
-
|
|
548
|
+
const bgHead = bgColor.shift() || '';
|
|
549
|
+
let hasHeader = domOption['テーブルヘッダ'];
|
|
550
|
+
let isNumRight = domOption['テーブル数値右寄せ'];
|
|
551
|
+
if (table.dataset.nakoTags) {
|
|
552
|
+
// 既存DOMから設定を読む
|
|
553
|
+
hasHeader = table.dataset.nakoTags.hasHeader;
|
|
554
|
+
isNumRight = table.dataset.nakoTags.isNumRight;
|
|
555
|
+
}
|
|
556
|
+
else {
|
|
557
|
+
// 設定をDOMに保存する
|
|
558
|
+
table.dataset.nakoTags = {
|
|
559
|
+
hasHeader,
|
|
560
|
+
isNumRight
|
|
561
|
+
};
|
|
562
|
+
}
|
|
563
|
+
// テーブルにデータを追加していく
|
|
549
564
|
for (let i = 0; i < aa.length; i++) {
|
|
550
565
|
const rowNo = i;
|
|
551
566
|
const row = aa[rowNo];
|
|
552
|
-
const tr = document.createElement(
|
|
567
|
+
const tr = document.createElement('tr');
|
|
553
568
|
// 色指定
|
|
554
|
-
if (bgHead !==
|
|
569
|
+
if (bgHead !== '') {
|
|
555
570
|
const no = hasHeader ? rowNo : rowNo + 1;
|
|
556
571
|
tr.style.backgroundColor = no === 0 ? bgHead : bgColor[no % 2];
|
|
557
|
-
tr.style.color = no === 0 ?
|
|
572
|
+
tr.style.color = no === 0 ? 'white' : 'black';
|
|
558
573
|
}
|
|
559
574
|
for (let col of row) {
|
|
560
|
-
col =
|
|
561
|
-
const td = document.createElement(rowNo === 0 && hasHeader ?
|
|
575
|
+
col = '' + col;
|
|
576
|
+
const td = document.createElement(rowNo === 0 && hasHeader ? 'th' : 'td');
|
|
562
577
|
td.innerHTML = sys.__tohtml(col);
|
|
563
578
|
if (isNumRight && col.match(/^(\+|-)?\d+(\.\d+)?$/)) {
|
|
564
579
|
// number?
|
|
565
|
-
td.style.textAlign =
|
|
580
|
+
td.style.textAlign = 'right';
|
|
566
581
|
}
|
|
567
582
|
tr.appendChild(td);
|
|
568
583
|
}
|
|
569
584
|
table.appendChild(tr);
|
|
570
585
|
}
|
|
571
586
|
return table;
|
|
572
|
-
}
|
|
587
|
+
}
|
|
573
588
|
},
|
|
574
589
|
'テーブルセル変更': {
|
|
575
590
|
type: 'func',
|
|
@@ -595,7 +610,7 @@ export default {
|
|
|
595
610
|
const bgColor = JSON.parse(JSON.stringify(domOption['テーブル背景色'])); // 複製して使う
|
|
596
611
|
const isNumRight = domOption['テーブル数値右寄せ'];
|
|
597
612
|
while (bgColor.length < 3) { // オプションが壊れていた時のための補完
|
|
598
|
-
bgColor.push(
|
|
613
|
+
bgColor.push('white');
|
|
599
614
|
}
|
|
600
615
|
// 複数の範囲を一気に変更
|
|
601
616
|
for (let y = 0; y < v.length; y++) {
|
|
@@ -32,7 +32,7 @@ export default {
|
|
|
32
32
|
fn: function (skin: any, sys: any) {
|
|
33
33
|
sys.__setSysVar('DOMスキン', skin)
|
|
34
34
|
},
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
return_none: true
|
|
37
37
|
},
|
|
38
38
|
'DOM部品作成': { // @elmの要素を作成して『DOM親要素設定』で指定した要素に追加して、DOMオブジェクトを返す。(elmがDOM要素なら追加する) // @DOMぶひんさくせい
|
|
@@ -284,6 +284,7 @@ export default {
|
|
|
284
284
|
rows = s
|
|
285
285
|
}
|
|
286
286
|
// 入力項目に合わせて行を追加
|
|
287
|
+
// eslint-disable-next-line @typescript-eslint/no-for-in-array
|
|
287
288
|
for (const rowIndex in rows) {
|
|
288
289
|
const row: Array<string>|string = rows[rowIndex]
|
|
289
290
|
let cols: Array<string>
|
|
@@ -338,76 +339,62 @@ export default {
|
|
|
338
339
|
inp.value = opt1
|
|
339
340
|
inp.placeholder = opt2
|
|
340
341
|
inp.name = key
|
|
341
|
-
}
|
|
342
|
-
else if (val === '?password') {
|
|
342
|
+
} else if (val === '?password') {
|
|
343
343
|
inp.type = 'password'
|
|
344
344
|
inp.value = opt1
|
|
345
345
|
inp.placeholder = opt2
|
|
346
346
|
inp.name = key
|
|
347
|
-
}
|
|
348
|
-
else if (val === '?number') {
|
|
347
|
+
} else if (val === '?number') {
|
|
349
348
|
inp.type = 'number'
|
|
350
349
|
inp.value = opt1
|
|
351
350
|
inp.placeholder = opt2
|
|
352
351
|
inp.name = key
|
|
353
|
-
}
|
|
354
|
-
else if (val === '?email') {
|
|
352
|
+
} else if (val === '?email') {
|
|
355
353
|
inp.type = 'email'
|
|
356
354
|
inp.value = opt1
|
|
357
355
|
inp.placeholder = opt2
|
|
358
356
|
inp.name = key
|
|
359
|
-
}
|
|
360
|
-
else if (val === '?tel') {
|
|
357
|
+
} else if (val === '?tel') {
|
|
361
358
|
inp.type = 'tel'
|
|
362
359
|
inp.value = opt1
|
|
363
360
|
inp.placeholder = opt2
|
|
364
361
|
inp.name = key
|
|
365
|
-
}
|
|
366
|
-
else if (val === '?file') {
|
|
362
|
+
} else if (val === '?file') {
|
|
367
363
|
inp.type = 'file'
|
|
368
364
|
inp.name = key
|
|
369
|
-
}
|
|
370
|
-
else if (val === '?date') {
|
|
365
|
+
} else if (val === '?date') {
|
|
371
366
|
inp.type = 'date'
|
|
372
367
|
inp.value = opt1.replace(/\//g, '-')
|
|
373
368
|
inp.name = key
|
|
374
|
-
}
|
|
375
|
-
else if (val === '?month') {
|
|
369
|
+
} else if (val === '?month') {
|
|
376
370
|
inp.type = 'month'
|
|
377
371
|
inp.value = opt1.replace(/\//g, '-')
|
|
378
372
|
inp.name = key
|
|
379
|
-
}
|
|
380
|
-
else if (val === '?time') {
|
|
373
|
+
} else if (val === '?time') {
|
|
381
374
|
inp.type = 'time'
|
|
382
375
|
inp.value = opt1
|
|
383
376
|
inp.name = key
|
|
384
|
-
}
|
|
385
|
-
else if (val === '?color') {
|
|
377
|
+
} else if (val === '?color') {
|
|
386
378
|
inp.type = 'color'
|
|
387
379
|
inp.value = opt1
|
|
388
380
|
inp.name = key
|
|
389
|
-
}
|
|
390
|
-
else if (val === '?hidden') {
|
|
381
|
+
} else if (val === '?hidden') {
|
|
391
382
|
inp.type = 'hidden'
|
|
392
383
|
inp.value = opt1
|
|
393
384
|
inp.name = key
|
|
394
385
|
isHidden = true
|
|
395
386
|
frm.appendChild(inp)
|
|
396
|
-
}
|
|
397
|
-
else if (val === '?checkbox') {
|
|
387
|
+
} else if (val === '?checkbox') {
|
|
398
388
|
inp.type = 'checkbox'
|
|
399
389
|
inp.value = opt1
|
|
400
390
|
inp.name = key
|
|
401
391
|
lbl2.innerHTML = ' ' + sys.__tohtmlQ(opt2)
|
|
402
392
|
lbl2.htmlFor = inp.id
|
|
403
|
-
}
|
|
404
|
-
// v3.2.33での拡張
|
|
405
|
-
else if (val === '?送信' || val === '?submit') {
|
|
393
|
+
} else if (val === '?送信' || val === '?submit') { // v3.2.33での拡張
|
|
406
394
|
inp.type = 'submit'
|
|
407
395
|
inp.value = val.substring(1)
|
|
408
396
|
if (key !== '') { inp.name = key }
|
|
409
|
-
}
|
|
410
|
-
else if (val.substring(0, 3) === '?c#') {
|
|
397
|
+
} else if (val.substring(0, 3) === '?c#') {
|
|
411
398
|
inp.type = 'color'
|
|
412
399
|
inp.value = val.substring(2)
|
|
413
400
|
inp.name = key
|
|
@@ -491,55 +478,69 @@ export default {
|
|
|
491
478
|
fn: function (tbl: any, aa: any, sys: any) {
|
|
492
479
|
// 既存のテーブルを取得
|
|
493
480
|
if (typeof tbl === 'string') {
|
|
494
|
-
tbl = sys.__query(tbl, 'テーブル更新', false)
|
|
481
|
+
tbl = sys.__query(tbl, 'テーブル更新', false)
|
|
495
482
|
}
|
|
496
|
-
tbl.innerHTML = ''
|
|
483
|
+
tbl.innerHTML = '' // 初期化
|
|
497
484
|
// テーブルに差し込むデータを確認
|
|
498
485
|
if (typeof aa === 'string') {
|
|
499
|
-
const rr = []
|
|
500
|
-
const rows = aa.split('\n')
|
|
486
|
+
const rr = []
|
|
487
|
+
const rows = aa.split('\n')
|
|
501
488
|
for (const row of rows) {
|
|
502
|
-
rr.push(row.split(
|
|
489
|
+
rr.push(row.split(','))
|
|
503
490
|
}
|
|
504
|
-
aa = rr
|
|
491
|
+
aa = rr
|
|
505
492
|
}
|
|
506
|
-
const
|
|
493
|
+
const table = tbl
|
|
494
|
+
// テーブル作成/テーブル更新の設定を読み取る
|
|
495
|
+
const domOption = sys.__getSysVar('DOM部品オプション')
|
|
496
|
+
// 背景色は複製して使う
|
|
507
497
|
const bgColor: Array<string> = JSON.parse(
|
|
508
|
-
JSON.stringify(domOption[
|
|
509
|
-
)
|
|
510
|
-
const hasHeader: boolean = domOption["テーブルヘッダ"];
|
|
511
|
-
const isNumRight: boolean = domOption["テーブル数値右寄せ"];
|
|
498
|
+
JSON.stringify(domOption['テーブル背景色'])
|
|
499
|
+
)
|
|
512
500
|
for (let i = 0; i < 3; i++) {
|
|
513
|
-
bgColor.push(
|
|
501
|
+
bgColor.push('')
|
|
514
502
|
}
|
|
515
|
-
const bgHead = bgColor.shift() ||
|
|
516
|
-
|
|
503
|
+
const bgHead = bgColor.shift() || ''
|
|
504
|
+
let hasHeader: boolean = domOption['テーブルヘッダ']
|
|
505
|
+
let isNumRight: boolean = domOption['テーブル数値右寄せ']
|
|
506
|
+
if (table.dataset.nakoTags) {
|
|
507
|
+
// 既存DOMから設定を読む
|
|
508
|
+
hasHeader = table.dataset.nakoTags.hasHeader
|
|
509
|
+
isNumRight = table.dataset.nakoTags.isNumRight
|
|
510
|
+
} else {
|
|
511
|
+
// 設定をDOMに保存する
|
|
512
|
+
table.dataset.nakoTags = {
|
|
513
|
+
hasHeader,
|
|
514
|
+
isNumRight
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
// テーブルにデータを追加していく
|
|
517
518
|
for (let i = 0; i < aa.length; i++) {
|
|
518
|
-
const rowNo = i
|
|
519
|
-
const row = aa[rowNo]
|
|
520
|
-
const tr = document.createElement(
|
|
519
|
+
const rowNo = i
|
|
520
|
+
const row = aa[rowNo]
|
|
521
|
+
const tr = document.createElement('tr')
|
|
521
522
|
// 色指定
|
|
522
|
-
if (bgHead !==
|
|
523
|
-
const no = hasHeader ? rowNo : rowNo + 1
|
|
524
|
-
tr.style.backgroundColor = no === 0 ? bgHead : bgColor[no % 2]
|
|
525
|
-
tr.style.color = no === 0 ?
|
|
523
|
+
if (bgHead !== '') {
|
|
524
|
+
const no = hasHeader ? rowNo : rowNo + 1
|
|
525
|
+
tr.style.backgroundColor = no === 0 ? bgHead : bgColor[no % 2]
|
|
526
|
+
tr.style.color = no === 0 ? 'white' : 'black'
|
|
526
527
|
}
|
|
527
528
|
for (let col of row) {
|
|
528
|
-
col =
|
|
529
|
+
col = '' + col
|
|
529
530
|
const td = document.createElement(
|
|
530
|
-
rowNo === 0 && hasHeader ?
|
|
531
|
-
)
|
|
532
|
-
td.innerHTML = sys.__tohtml(col)
|
|
531
|
+
rowNo === 0 && hasHeader ? 'th' : 'td'
|
|
532
|
+
)
|
|
533
|
+
td.innerHTML = sys.__tohtml(col)
|
|
533
534
|
if (isNumRight && col.match(/^(\+|-)?\d+(\.\d+)?$/)) {
|
|
534
535
|
// number?
|
|
535
|
-
td.style.textAlign =
|
|
536
|
+
td.style.textAlign = 'right'
|
|
536
537
|
}
|
|
537
|
-
tr.appendChild(td)
|
|
538
|
+
tr.appendChild(td)
|
|
538
539
|
}
|
|
539
|
-
table.appendChild(tr)
|
|
540
|
+
table.appendChild(tr)
|
|
540
541
|
}
|
|
541
|
-
return table
|
|
542
|
-
}
|
|
542
|
+
return table
|
|
543
|
+
}
|
|
543
544
|
},
|
|
544
545
|
'テーブルセル変更': { // @TABLE要素のセル[行,列]をVへ変更する。Vが二次元配列変数であれば複数のセルを一括変更する // @てーぶるせるへんこう
|
|
545
546
|
type: 'func',
|
|
@@ -561,7 +562,7 @@ export default {
|
|
|
561
562
|
const bgColor = JSON.parse(JSON.stringify(domOption['テーブル背景色'])) // 複製して使う
|
|
562
563
|
const isNumRight: boolean = domOption['テーブル数値右寄せ']
|
|
563
564
|
while (bgColor.length < 3) { // オプションが壊れていた時のための補完
|
|
564
|
-
bgColor.push(
|
|
565
|
+
bgColor.push('white')
|
|
565
566
|
}
|
|
566
567
|
// 複数の範囲を一気に変更
|
|
567
568
|
for (let y = 0; y < v.length; y++) {
|
package/src/plugin_node.mjs
CHANGED
|
@@ -753,7 +753,7 @@ export default {
|
|
|
753
753
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
754
754
|
exec(cmd, (err, stdout, stderr) => {
|
|
755
755
|
if (err) {
|
|
756
|
-
throw new Error('[エラー]『圧縮時』' + err);
|
|
756
|
+
throw new Error('[エラー]『圧縮時』' + (err.message || JSON.stringify(err)));
|
|
757
757
|
}
|
|
758
758
|
callback(stdout);
|
|
759
759
|
});
|
|
@@ -998,6 +998,7 @@ export default {
|
|
|
998
998
|
pure: true,
|
|
999
999
|
fn: function (callback, url, params, sys) {
|
|
1000
1000
|
const flist = [];
|
|
1001
|
+
// eslint-disable-next-line @typescript-eslint/no-for-in-array
|
|
1001
1002
|
for (const key in params) {
|
|
1002
1003
|
const v = params[key];
|
|
1003
1004
|
const kv = encodeURIComponent(key) + '=' + encodeURIComponent(v);
|
|
@@ -1103,6 +1104,7 @@ export default {
|
|
|
1103
1104
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1104
1105
|
fn: function (url, params, sys) {
|
|
1105
1106
|
const flist = [];
|
|
1107
|
+
// eslint-disable-next-line @typescript-eslint/no-for-in-array
|
|
1106
1108
|
for (const key in params) {
|
|
1107
1109
|
const v = params[key];
|
|
1108
1110
|
const kv = encodeURIComponent(key) + '=' + encodeURIComponent(v);
|
|
@@ -1224,7 +1226,7 @@ export default {
|
|
|
1224
1226
|
}).then(text => {
|
|
1225
1227
|
resolve(text);
|
|
1226
1228
|
}).catch(err => {
|
|
1227
|
-
reject(err.message);
|
|
1229
|
+
reject(new Error(err.message));
|
|
1228
1230
|
});
|
|
1229
1231
|
});
|
|
1230
1232
|
}
|
|
@@ -1250,7 +1252,7 @@ export default {
|
|
|
1250
1252
|
}).then(text => {
|
|
1251
1253
|
resolve(text);
|
|
1252
1254
|
}).catch(err => {
|
|
1253
|
-
reject(err.message);
|
|
1255
|
+
reject(new Error(err.message));
|
|
1254
1256
|
});
|
|
1255
1257
|
});
|
|
1256
1258
|
}
|
package/src/plugin_node.mts
CHANGED
|
@@ -683,7 +683,7 @@ export default {
|
|
|
683
683
|
const cmd = `${tpath} x ${a} -o${b} -y`
|
|
684
684
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
685
685
|
exec(cmd, (err, stdout, stderr) => {
|
|
686
|
-
if (err) { throw new Error('[エラー]『解凍時』' + err) }
|
|
686
|
+
if (err) { throw new Error('[エラー]『解凍時』' + (err as unknown as string)) }
|
|
687
687
|
callback(stdout)
|
|
688
688
|
})
|
|
689
689
|
},
|
|
@@ -713,7 +713,7 @@ export default {
|
|
|
713
713
|
const cmd = `${tpath} a -r ${b} ${a} -y`
|
|
714
714
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
715
715
|
exec(cmd, (err, stdout, stderr) => {
|
|
716
|
-
if (err) { throw new Error('[エラー]『圧縮時』' + err) }
|
|
716
|
+
if (err) { throw new Error('[エラー]『圧縮時』' + (err.message || JSON.stringify(err))) }
|
|
717
717
|
callback(stdout)
|
|
718
718
|
})
|
|
719
719
|
},
|
|
@@ -942,6 +942,7 @@ export default {
|
|
|
942
942
|
pure: true,
|
|
943
943
|
fn: function (callback: any, url: string, params: [key: string], sys: NakoSystem) {
|
|
944
944
|
const flist: Array<string> = []
|
|
945
|
+
// eslint-disable-next-line @typescript-eslint/no-for-in-array
|
|
945
946
|
for (const key in params) {
|
|
946
947
|
const v: string = params[key]
|
|
947
948
|
const kv: string = encodeURIComponent(key) + '=' + encodeURIComponent(v)
|
|
@@ -1044,6 +1045,7 @@ export default {
|
|
|
1044
1045
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1045
1046
|
fn: function (url: string, params: [key: string], sys: NakoSystem) {
|
|
1046
1047
|
const flist: Array<string> = []
|
|
1048
|
+
// eslint-disable-next-line @typescript-eslint/no-for-in-array
|
|
1047
1049
|
for (const key in params) {
|
|
1048
1050
|
const v: string = params[key]
|
|
1049
1051
|
const kv: string = encodeURIComponent(key) + '=' + encodeURIComponent(v)
|
|
@@ -1161,7 +1163,7 @@ export default {
|
|
|
1161
1163
|
}).then(text => {
|
|
1162
1164
|
resolve(text)
|
|
1163
1165
|
}).catch(err => {
|
|
1164
|
-
reject(err.message)
|
|
1166
|
+
reject(new Error(err.message))
|
|
1165
1167
|
})
|
|
1166
1168
|
})
|
|
1167
1169
|
}
|
|
@@ -1185,7 +1187,7 @@ export default {
|
|
|
1185
1187
|
}).then(text => {
|
|
1186
1188
|
resolve(text)
|
|
1187
1189
|
}).catch(err => {
|
|
1188
|
-
reject(err.message)
|
|
1190
|
+
reject(new Error(err.message))
|
|
1189
1191
|
})
|
|
1190
1192
|
})
|
|
1191
1193
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* PluginWeykTurtle3D
|
|
3
3
|
* 3d turtle graphics plugin
|
|
4
4
|
*/
|
|
5
|
-
import { ThreeUtil } from './
|
|
5
|
+
import { ThreeUtil } from './plugin_weykturtle3d_threeutil.mjs';
|
|
6
6
|
class DrawLineEventArgs {
|
|
7
7
|
constructor(v1, v2, width, color) {
|
|
8
8
|
this.v1 = v1;
|
|
@@ -11,6 +11,8 @@ class DrawLineEventArgs {
|
|
|
11
11
|
this.color = color;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
class Command {
|
|
15
|
+
}
|
|
14
16
|
class CommandPromise {
|
|
15
17
|
constructor(command, resolve, reject) {
|
|
16
18
|
this.command = command;
|
|
@@ -18,8 +20,6 @@ class CommandPromise {
|
|
|
18
20
|
this.reject = reject;
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
|
-
class Command {
|
|
22
|
-
}
|
|
23
23
|
class CommandHome extends Command {
|
|
24
24
|
constructor(mode) {
|
|
25
25
|
super();
|
|
@@ -112,7 +112,8 @@ class CommandModel extends Command {
|
|
|
112
112
|
this.model = model;
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
|
|
115
|
+
const TypedTurtle3DEventTarget = EventTarget;
|
|
116
|
+
class Turtle3D extends TypedTurtle3DEventTarget {
|
|
116
117
|
constructor(three, id) {
|
|
117
118
|
super();
|
|
118
119
|
this.three = three;
|
|
@@ -395,6 +396,10 @@ class WeykTurtle3DSystem {
|
|
|
395
396
|
if (WeykTurtle3DSystem.instance === undefined) {
|
|
396
397
|
WeykTurtle3DSystem.instance = new WeykTurtle3DSystem(sys);
|
|
397
398
|
}
|
|
399
|
+
else if (WeykTurtle3DSystem.instance.sys !== sys) {
|
|
400
|
+
console.log('T3D: difference sys instance');
|
|
401
|
+
WeykTurtle3DSystem.instance.sys = sys;
|
|
402
|
+
}
|
|
398
403
|
const i = WeykTurtle3DSystem.instance;
|
|
399
404
|
i.instanceCount += 1;
|
|
400
405
|
return WeykTurtle3DSystem.instance;
|
|
@@ -434,7 +439,6 @@ class WeykTurtle3DSystem {
|
|
|
434
439
|
scene.remove(this._axishelper);
|
|
435
440
|
scene.add(this._axishelper);
|
|
436
441
|
}
|
|
437
|
-
this.initTurtle();
|
|
438
442
|
}
|
|
439
443
|
}
|
|
440
444
|
disposeAllTurtle() {
|
|
@@ -659,22 +663,22 @@ class WeykTurtle3DSystem {
|
|
|
659
663
|
else if (to instanceof HTMLCanvasElement) {
|
|
660
664
|
renderer = new three.WebGLRenderer({ antialias: false, alpha: true, canvas: to });
|
|
661
665
|
if (renderer === null) {
|
|
662
|
-
throw new Error('
|
|
666
|
+
throw new Error('レンダラを作成できません。指定したCanvas要素は使用できません');
|
|
663
667
|
}
|
|
664
668
|
renderer.setSize(to.width, to.height);
|
|
665
669
|
}
|
|
666
670
|
else if (to instanceof Element) {
|
|
667
671
|
renderer = new three.WebGLRenderer({ antialias: false, alpha: true });
|
|
668
672
|
if (renderer === null) {
|
|
669
|
-
throw new Error('
|
|
673
|
+
throw new Error('レンダラを作成できません。指定したDOM要素は使用できません');
|
|
670
674
|
}
|
|
671
675
|
renderer.setSize(to.clientWidth, to.clientHeight);
|
|
672
676
|
to.appendChild(renderer.domElement);
|
|
673
677
|
}
|
|
674
|
-
else
|
|
675
|
-
[
|
|
678
|
+
else {
|
|
676
679
|
// never
|
|
677
|
-
|
|
680
|
+
throw new Error('レンダラを作成できません。それは作成先に指定できません');
|
|
681
|
+
}
|
|
678
682
|
renderer.setPixelRatio(window.devicePixelRatio);
|
|
679
683
|
this._renderer = renderer;
|
|
680
684
|
return this._renderer;
|
|
@@ -722,7 +726,7 @@ class WeykTurtle3DSystem {
|
|
|
722
726
|
const geometry = new three.BufferGeometry();
|
|
723
727
|
const vertices = new three.Float32BufferAttribute(6, 3);
|
|
724
728
|
vertices.copyArray([v1.x, v1.y, v1.z, v2.x, v2.y, v2.z]);
|
|
725
|
-
const material = new three.LineBasicMaterial({ color
|
|
729
|
+
const material = new three.LineBasicMaterial({ color, linewidth: width });
|
|
726
730
|
geometry.setAttribute('position', vertices);
|
|
727
731
|
const line = new three.Line(geometry, material);
|
|
728
732
|
if (this._lines) {
|
|
@@ -858,6 +862,17 @@ const PluginWeykTurtle3D = {
|
|
|
858
862
|
sys.__setSysVar('THREE', null);
|
|
859
863
|
}
|
|
860
864
|
},
|
|
865
|
+
'!クリア': {
|
|
866
|
+
type: 'func',
|
|
867
|
+
josi: [],
|
|
868
|
+
pure: true,
|
|
869
|
+
fn: function (sys) {
|
|
870
|
+
if (sys.tags.weykturtle3d) {
|
|
871
|
+
sys.tags.weykturtle3d.clearAll();
|
|
872
|
+
sys.tags.weykturtle3d.clearRenderer();
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
},
|
|
861
876
|
// @3Dタートルグラフィックス・ライブラリとプラグイン
|
|
862
877
|
'THREE': { type: 'const', value: '' }, // @THREE
|
|
863
878
|
'T3DベースURL': { type: 'var', value: 'https://cdn.jsdelivr.net/npm/three@0.127.0' }, // @T3DべーすURL
|
|
@@ -878,6 +893,8 @@ const PluginWeykTurtle3D = {
|
|
|
878
893
|
return true;
|
|
879
894
|
});
|
|
880
895
|
promise.catch(err => {
|
|
896
|
+
console.error('T3D:ThreeJSのライブラリの読み込みに失敗しました');
|
|
897
|
+
console.error(err);
|
|
881
898
|
return false;
|
|
882
899
|
});
|
|
883
900
|
return await promise;
|
|
@@ -902,15 +919,17 @@ const PluginWeykTurtle3D = {
|
|
|
902
919
|
promise.then(module => {
|
|
903
920
|
turtle3d.three = Object.assign({}, module);
|
|
904
921
|
turtle3d.ck();
|
|
905
|
-
callback(
|
|
922
|
+
callback(turtle3d.three !== null);
|
|
906
923
|
});
|
|
907
924
|
promise.catch(err => {
|
|
908
|
-
|
|
925
|
+
console.error('T3D:ThreeJSのライブラリの読み込みに失敗しました');
|
|
926
|
+
console.error(err);
|
|
927
|
+
callback(turtle3d.three !== null);
|
|
909
928
|
});
|
|
910
929
|
}
|
|
911
930
|
else {
|
|
912
931
|
turtle3d.ck();
|
|
913
|
-
callback(
|
|
932
|
+
callback(turtle3d.three !== null);
|
|
914
933
|
}
|
|
915
934
|
},
|
|
916
935
|
return_none: true
|
|
@@ -941,7 +960,7 @@ const PluginWeykTurtle3D = {
|
|
|
941
960
|
resolve();
|
|
942
961
|
}
|
|
943
962
|
else {
|
|
944
|
-
reject();
|
|
963
|
+
reject(new Error('読み込みに失敗したプラグインがあります'));
|
|
945
964
|
}
|
|
946
965
|
}
|
|
947
966
|
};
|
|
@@ -954,6 +973,8 @@ const PluginWeykTurtle3D = {
|
|
|
954
973
|
callbacks(true);
|
|
955
974
|
});
|
|
956
975
|
promise.catch(err => {
|
|
976
|
+
console.error('T3D:ThreeJSのプラグインの読み込みに失敗しました');
|
|
977
|
+
console.error(err);
|
|
957
978
|
callbacks(false);
|
|
958
979
|
});
|
|
959
980
|
}
|
|
@@ -992,6 +1013,8 @@ const PluginWeykTurtle3D = {
|
|
|
992
1013
|
callbacks(true);
|
|
993
1014
|
});
|
|
994
1015
|
promise.catch(err => {
|
|
1016
|
+
console.error('T3D:ThreeJSのプラグインの読み込みに失敗しました');
|
|
1017
|
+
console.error(err);
|
|
995
1018
|
callbacks(false);
|
|
996
1019
|
});
|
|
997
1020
|
}
|