nadesiko3 3.2.27

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.
Files changed (283) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +107 -0
  3. package/bin/cnako3 +10 -0
  4. package/bin/cnako3.bat +11 -0
  5. package/bin/nako3server.bat +6 -0
  6. package/demo/ace_editor.html +90 -0
  7. package/demo/ace_editor_tabs.html +162 -0
  8. package/demo/basic.html +71 -0
  9. package/demo/browsers.html +128 -0
  10. package/demo/css/basic.css +3 -0
  11. package/demo/css/common.css +157 -0
  12. package/demo/css/editor.css +8 -0
  13. package/demo/css/flow.css +3 -0
  14. package/demo/css/index.css +3 -0
  15. package/demo/extlib/ace@1.4.12/ace.js +17 -0
  16. package/demo/extlib/ace@1.4.12/ext-code_lens.min.js +1 -0
  17. package/demo/extlib/ace@1.4.12/ext-language_tools.min.js +1 -0
  18. package/demo/extlib/ace@1.4.12/ext-options.min.js +1 -0
  19. package/demo/extlib/ace@1.4.12/ext-settings_menu.js +8 -0
  20. package/demo/extlib/ace@1.4.12/keybinding-vscode.js +8 -0
  21. package/demo/extlib/ace@1.4.12/theme-monokai.js +8 -0
  22. package/demo/extlib/ace@1.4.12/theme-xcode.js +8 -0
  23. package/demo/extlib/chart.js@3.2.1/chart.min.js +13 -0
  24. package/demo/extlib/pure-min.css +11 -0
  25. package/demo/flow.html +97 -0
  26. package/demo/graph.html +53 -0
  27. package/demo/image/nako.png +0 -0
  28. package/demo/image/nakopad-icon256.png +0 -0
  29. package/demo/image/turtle.fla +0 -0
  30. package/demo/image/turtle.png +0 -0
  31. package/demo/index.html +134 -0
  32. package/demo/js/common.js +17 -0
  33. package/demo/js/turtle3d_test.js +44 -0
  34. package/demo/js/turtle_test.js +44 -0
  35. package/demo/runscript.html +47 -0
  36. package/demo/runscript2.html +33 -0
  37. package/demo/turtle.html +58 -0
  38. package/demo/turtle2.html +141 -0
  39. package/demo/turtle3.html +278 -0
  40. package/demo/turtle3d.html +58 -0
  41. package/demo/turtle3d2.html +107 -0
  42. package/demo/version.html +24 -0
  43. package/doc/SETUP.md +172 -0
  44. package/doc/about.md +34 -0
  45. package/doc/browsers.md +60 -0
  46. package/doc/docgen.md +21 -0
  47. package/doc/editor.md +44 -0
  48. package/doc/files.md +37 -0
  49. package/doc/plugins.md +195 -0
  50. package/doc/release.md +78 -0
  51. package/doc/win32.md +57 -0
  52. package/package.json +196 -0
  53. package/release/_hash.txt +65 -0
  54. package/release/_script-tags.txt +13 -0
  55. package/release/command.json +1 -0
  56. package/release/command.json.js +1 -0
  57. package/release/command_cnako3.json +1 -0
  58. package/release/command_list.json +1 -0
  59. package/release/editor.js +2 -0
  60. package/release/editor.js.LICENSE.txt +32 -0
  61. package/release/josi.json +48 -0
  62. package/release/nako_gen_async.js +1 -0
  63. package/release/nako_gen_async.js.LICENSE.txt +595 -0
  64. package/release/plugin_caniuse.js +1 -0
  65. package/release/plugin_caniuse.js.LICENSE.txt +411 -0
  66. package/release/plugin_csv.js +1 -0
  67. package/release/plugin_csv.js.LICENSE.txt +367 -0
  68. package/release/plugin_datetime.js +1 -0
  69. package/release/plugin_datetime.js.LICENSE.txt +471 -0
  70. package/release/plugin_kansuji.js +1 -0
  71. package/release/plugin_kansuji.js.LICENSE.txt +491 -0
  72. package/release/plugin_markup.js +1 -0
  73. package/release/plugin_markup.js.LICENSE.txt +363 -0
  74. package/release/plugin_turtle.js +1 -0
  75. package/release/plugin_turtle.js.LICENSE.txt +435 -0
  76. package/release/plugin_webworker.js +1 -0
  77. package/release/plugin_webworker.js.LICENSE.txt +491 -0
  78. package/release/version.js +2 -0
  79. package/release/version.js.LICENSE.txt +32 -0
  80. package/release/wnako3.js +2 -0
  81. package/release/wnako3.js.LICENSE.txt +1 -0
  82. package/release/wnako3webworker.js +1 -0
  83. package/release/wnako3webworker.js.LICENSE.txt +847 -0
  84. package/release/yoyakugo.json +30 -0
  85. package/src/browsers.md +60 -0
  86. package/src/cnako3.js +466 -0
  87. package/src/commander_ja.js +154 -0
  88. package/src/enako3.js +69 -0
  89. package/src/era.json +22 -0
  90. package/src/index.js +5 -0
  91. package/src/nako3.js +836 -0
  92. package/src/nako3_assert.js +37 -0
  93. package/src/nako3editorfix.sfd +106 -0
  94. package/src/nako3editorfix.woff +0 -0
  95. package/src/nako3server.js +51 -0
  96. package/src/nako_colors.js +86 -0
  97. package/src/nako_errors.js +176 -0
  98. package/src/nako_gen.js +1459 -0
  99. package/src/nako_gen_async.js +1622 -0
  100. package/src/nako_global.js +113 -0
  101. package/src/nako_indent.js +480 -0
  102. package/src/nako_josi_list.js +46 -0
  103. package/src/nako_lex_rules.js +259 -0
  104. package/src/nako_lexer.js +576 -0
  105. package/src/nako_logger.js +138 -0
  106. package/src/nako_parser3.js +1768 -0
  107. package/src/nako_parser_base.js +265 -0
  108. package/src/nako_parser_const.js +37 -0
  109. package/src/nako_prepare.js +293 -0
  110. package/src/nako_reserved_words.js +35 -0
  111. package/src/nako_source_mapping.js +251 -0
  112. package/src/nako_test.js +37 -0
  113. package/src/nako_version.js +8 -0
  114. package/src/plugin_browser.js +191 -0
  115. package/src/plugin_browser_ajax.js +352 -0
  116. package/src/plugin_browser_audio.js +109 -0
  117. package/src/plugin_browser_canvas.js +462 -0
  118. package/src/plugin_browser_chart.js +296 -0
  119. package/src/plugin_browser_color.js +49 -0
  120. package/src/plugin_browser_crypto.js +26 -0
  121. package/src/plugin_browser_dialog.js +53 -0
  122. package/src/plugin_browser_dom_basic.js +322 -0
  123. package/src/plugin_browser_dom_event.js +193 -0
  124. package/src/plugin_browser_dom_parts.js +163 -0
  125. package/src/plugin_browser_geolocation.js +51 -0
  126. package/src/plugin_browser_hotkey.js +25 -0
  127. package/src/plugin_browser_html.js +59 -0
  128. package/src/plugin_browser_in_worker.js +44 -0
  129. package/src/plugin_browser_location.js +21 -0
  130. package/src/plugin_browser_speech.js +111 -0
  131. package/src/plugin_browser_storage.js +121 -0
  132. package/src/plugin_browser_system.js +12 -0
  133. package/src/plugin_browser_websocket.js +73 -0
  134. package/src/plugin_caniuse.js +24 -0
  135. package/src/plugin_csv.js +57 -0
  136. package/src/plugin_datetime.js +414 -0
  137. package/src/plugin_express.js +212 -0
  138. package/src/plugin_kansuji.js +224 -0
  139. package/src/plugin_keigo.js +55 -0
  140. package/src/plugin_markup.js +32 -0
  141. package/src/plugin_math.js +319 -0
  142. package/src/plugin_node.js +1018 -0
  143. package/src/plugin_promise.js +94 -0
  144. package/src/plugin_system.js +2109 -0
  145. package/src/plugin_test.js +38 -0
  146. package/src/plugin_turtle.js +646 -0
  147. package/src/plugin_webworker.js +334 -0
  148. package/src/plugin_weykturtle3d.js +1216 -0
  149. package/src/plugin_worker.js +92 -0
  150. package/src/repl.nako3 +63 -0
  151. package/src/turtle-elephant.png +0 -0
  152. package/src/turtle-panda.png +0 -0
  153. package/src/turtle64.png +0 -0
  154. package/src/wnako3.js +162 -0
  155. package/src/wnako3_editor.css +215 -0
  156. package/src/wnako3_editor.js +1645 -0
  157. package/src/wnako3_editor_marker_red.png +0 -0
  158. package/src/wnako3_editor_marker_red.xcf +0 -0
  159. package/src/wnako3_editor_marker_yellow.png +0 -0
  160. package/src/wnako3_editor_marker_yellow.xcf +0 -0
  161. package/src/wnako3webworker.js +70 -0
  162. package/test/ace_editor/karma.config.js +94 -0
  163. package/test/ace_editor/test/.babelrc.json +3 -0
  164. package/test/ace_editor/test/ace_editor_test.js +178 -0
  165. package/test/ace_editor/test/html/custom_context.html +140 -0
  166. package/test/async/async_basic_test.js +124 -0
  167. package/test/browser/karma.config.js +212 -0
  168. package/test/browser/test/.babelrc.json +3 -0
  169. package/test/browser/test/compare_util.js +50 -0
  170. package/test/browser/test/html/canvas_basic.html +1 -0
  171. package/test/browser/test/html/div_basic.html +2 -0
  172. package/test/browser/test/html/event_dom_form.html +4 -0
  173. package/test/browser/test/html/event_dom_scrolldiv.html +5 -0
  174. package/test/browser/test/image/canvas_test1.png +0 -0
  175. package/test/browser/test/image/canvas_test2.png +0 -0
  176. package/test/browser/test/image/canvas_test3.png +0 -0
  177. package/test/browser/test/image/canvas_test4.png +0 -0
  178. package/test/browser/test/image/canvas_test7.png +0 -0
  179. package/test/browser/test/image/canvas_test8.png +0 -0
  180. package/test/browser/test/image/canvas_test_blank.png +0 -0
  181. package/test/browser/test/image/elephant_kana.png +0 -0
  182. package/test/browser/test/image/panda_kana.png +0 -0
  183. package/test/browser/test/image/turtle_kana.png +0 -0
  184. package/test/browser/test/import_plugin_checker.js +24 -0
  185. package/test/browser/test/plugin_browser_test.js +52 -0
  186. package/test/browser/test/plugin_browser_test_ajax.js +123 -0
  187. package/test/browser/test/plugin_browser_test_color.js +18 -0
  188. package/test/browser/test/plugin_browser_test_dialog.js +72 -0
  189. package/test/browser/test/plugin_browser_test_dom_event.js +598 -0
  190. package/test/browser/test/plugin_browser_test_dom_parts.js +125 -0
  191. package/test/browser/test/plugin_browser_test_system.js +9 -0
  192. package/test/browser/test/plugin_turtle_test.js +817 -0
  193. package/test/browser/test/plugin_webworker_test.js +87 -0
  194. package/test/browser/test/require_test.js +71 -0
  195. package/test/bundled/karma.config.base.js +117 -0
  196. package/test/bundled/karma.config.js +86 -0
  197. package/test/bundled/test/.babelrc.json +3 -0
  198. package/test/bundled/test/bundled_test.js +69 -0
  199. package/test/bundled/test/html/custom_context.html +65 -0
  200. package/test/bundled/test/html/custom_debug.html +66 -0
  201. package/test/bundled/test4b.cmd +52 -0
  202. package/test/bundled/test_base/.babelrc.json +3 -0
  203. package/test/bundled/test_base/_checktool_test.js +25 -0
  204. package/test/bundled/test_base/basic_ajax_test.js +56 -0
  205. package/test/bundled/test_base/basic_async_test.js +18 -0
  206. package/test/bundled/test_base/basic_test.js +153 -0
  207. package/test/bundled/test_base/calc_test.js +132 -0
  208. package/test/bundled/test_base/css/browsers_box.css +114 -0
  209. package/test/bundled/test_base/html/custom_context.html +69 -0
  210. package/test/bundled/test_base/html/custom_debug.html +71 -0
  211. package/test/bundled/test_base/js/browsers_box.js +72 -0
  212. package/test/bundled/test_base/plugin_csv_test.js +37 -0
  213. package/test/bundled/test_base/plugin_datetime_test.js +115 -0
  214. package/test/bundled/test_base/plugin_kansuji_test.js +49 -0
  215. package/test/bundled/test_base/plugin_system_test.js +410 -0
  216. package/test/bundled/test_base/plugin_webworker_test.js +53 -0
  217. package/test/bundled/test_base/resources/ok.txt +1 -0
  218. package/test/bundled/test_base/test_utils.js +191 -0
  219. package/test/common/array_test.js +40 -0
  220. package/test/common/basic_test.js +317 -0
  221. package/test/common/calc_test.js +139 -0
  222. package/test/common/debug_test.js +16 -0
  223. package/test/common/error_test.js +16 -0
  224. package/test/common/flow_test.js +360 -0
  225. package/test/common/func_call.js +136 -0
  226. package/test/common/func_test.js +149 -0
  227. package/test/common/indent_test.js +362 -0
  228. package/test/common/lex_test.js +146 -0
  229. package/test/common/literal_test.js +72 -0
  230. package/test/common/nako_logger_test.js +26 -0
  231. package/test/common/plugin_browser_test.js +24 -0
  232. package/test/common/plugin_browser_ut_audio_test.js +88 -0
  233. package/test/common/plugin_browser_ut_color_test.js +21 -0
  234. package/test/common/plugin_browser_ut_dialog_test.js +100 -0
  235. package/test/common/plugin_browser_ut_html_test.js +13 -0
  236. package/test/common/plugin_browser_ut_system_test.js +10 -0
  237. package/test/common/plugin_csv_test.js +39 -0
  238. package/test/common/plugin_datetime_test.js +120 -0
  239. package/test/common/plugin_kansuji_test.js +59 -0
  240. package/test/common/plugin_promise_test.js +18 -0
  241. package/test/common/plugin_system_test.js +451 -0
  242. package/test/common/prepare_test.js +93 -0
  243. package/test/common/re_test.js +20 -0
  244. package/test/common/variable_scope_test.js +105 -0
  245. package/test/jsconfig.json +19 -0
  246. package/test/karma.config.js +91 -0
  247. package/test/node/add_test.nako3 +1 -0
  248. package/test/node/async_test.js +80 -0
  249. package/test/node/commander_ja_test.js +82 -0
  250. package/test/node/error_message_test.js +244 -0
  251. package/test/node/kai_test.nako3 +6 -0
  252. package/test/node/node_test.js +43 -0
  253. package/test/node/plugin_broken.js.txt +3 -0
  254. package/test/node/plugin_browser_ut_ajax_test.js +355 -0
  255. package/test/node/plugin_browser_ut_location_test.js +32 -0
  256. package/test/node/plugin_markup_test.js +44 -0
  257. package/test/node/plugin_math_test.js +42 -0
  258. package/test/node/plugin_node_test.js +93 -0
  259. package/test/node/plugin_test.js +16 -0
  260. package/test/node/relative_import_test_1.nako3 +1 -0
  261. package/test/node/relative_import_test_2.nako3 +2 -0
  262. package/test/node/require_nako3_test.js +59 -0
  263. package/test/node/requiretest.nako3 +4 -0
  264. package/test/node/requiretest_indirect.nako3 +1 -0
  265. package/test/node/requiretest_name.nako3 +5 -0
  266. package/test/node/runtime_error.nako3 +2 -0
  267. package/test/node/side_effects_test.js +106 -0
  268. package/test/node/sjis.txt +5 -0
  269. package/test/node/syntax_error.nako3 +2 -0
  270. package/test/node/wnako3_editor_test.js +360 -0
  271. package/tools/README.md +7 -0
  272. package/tools/nako3edit/html/edit.html +83 -0
  273. package/tools/nako3edit/html/edit_plugin.js +6 -0
  274. package/tools/nako3edit/html/files.html +49 -0
  275. package/tools/nako3edit/html/nako3edit.css +66 -0
  276. package/tools/nako3edit/index.nako3 +145 -0
  277. package/tools/nako3edit/run.js +12 -0
  278. package/tools/nako3server/html/edit.html +104 -0
  279. package/tools/nako3server/html/edit_plugin.js +6 -0
  280. package/tools/nako3server/html/files.html +53 -0
  281. package/tools/nako3server/html/nako3edit.css +66 -0
  282. package/tools/nako3server/index.nako3 +129 -0
  283. package/tools/nako3server/run.js +12 -0
@@ -0,0 +1,322 @@
1
+ // @ts-nocheck
2
+ module.exports = {
3
+ // @DOM操作
4
+ 'DOCUMENT': { type: 'const', value: '' }, // @DOCUMENT
5
+ 'WINDOW': { type: 'const', value: '' }, // @WINDOW
6
+ 'NAVIGATOR': { type: 'const', value: '' }, // @NAVIGATOR
7
+ 'DOM要素ID取得': { // @DOMの要素をIDを指定して取得 // @DOMようそIDしゅとく
8
+ type: 'func',
9
+ josi: [['の', 'を']],
10
+ pure: true,
11
+ fn: function (id) {
12
+ return document.getElementById(id)
13
+ }
14
+ },
15
+ 'DOM要素取得': { // @DOMの要素をクエリqで取得して返す // @DOMようそしゅとく
16
+ type: 'func',
17
+ josi: [['の', 'を']],
18
+ pure: true,
19
+ fn: function (q) {
20
+ return document.querySelector(q)
21
+ }
22
+ },
23
+ 'DOM要素全取得': { // @DOMの要素をクエリqで全部取得して返す // @DOMようそぜんしゅとく
24
+ type: 'func',
25
+ josi: [['の', 'を']],
26
+ pure: true,
27
+ fn: function (q) {
28
+ return Array.from(document.querySelectorAll(q))
29
+ }
30
+ },
31
+ 'タグ一覧取得': { // @任意のタグの一覧を取得して返す // @たぐいちらんしゅとく
32
+ type: 'func',
33
+ josi: [['の', 'を']],
34
+ pure: true,
35
+ fn: function (tag) {
36
+ return document.getElementsByTagName(tag)
37
+ }
38
+ },
39
+ 'DOM子要素取得': { // @DOMの要素PAの子要素をクエリqを指定して結果を一つ取得して返す // @DOMこようそしゅとく
40
+ type: 'func',
41
+ josi: [['の'], ['を']],
42
+ pure: true,
43
+ fn: function (pa, q) {
44
+ if (typeof pa === 'string') { pa = document.querySelector(pa) }
45
+ if (!pa.querySelector) {
46
+ throw new Error('『DOM子要素取得』で親要素がDOMではありません。')
47
+ }
48
+ return pa.querySelector(q)
49
+ }
50
+ },
51
+ 'DOM子要素全取得': { // @DOMの要素PAの子要素をクエリqを指定して結果を複数取得して返す // @DOMこようそぜんしゅとく
52
+ type: 'func',
53
+ josi: [['の'], ['を']],
54
+ pure: true,
55
+ fn: function (pa, q) {
56
+ if (typeof pa === 'string') { pa = document.querySelector(pa) }
57
+ if (!pa.querySelectorAll) {
58
+ throw new Error('『DOM子要素取得』で親要素がDOMではありません。')
59
+ }
60
+ return pa.querySelectorAll(q)
61
+ }
62
+ },
63
+ 'DOMイベント設定': { // @DOMのEVENTになでしこ関数名funcStrのイベントを設定 // @DOMいべんとせってい
64
+ type: 'func',
65
+ josi: [['の'], ['に', 'へ'], ['を']],
66
+ pure: false,
67
+ fn: function (dom, event, funcStr, sys) {
68
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
69
+
70
+ dom[event] = sys.__findVar(funcStr, null)
71
+ },
72
+ return_none: true
73
+ },
74
+ 'DOMテキスト設定': { // @DOMにテキストを設定 // @DOMてきすとせってい
75
+ type: 'func',
76
+ josi: [['に', 'の', 'へ'], ['を']],
77
+ pure: true,
78
+ fn: function (dom, text) {
79
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
80
+
81
+ const tag = dom.tagName.toUpperCase()
82
+ if (tag === 'INPUT' || tag === 'TEXTAREA') { dom.value = text } else if (tag === 'SELECT') {
83
+ for (let i = 0; i < dom.options.length; i++) {
84
+ const v = dom.options[i].value
85
+ if (String(v) === text) {
86
+ dom.selectedIndex = i
87
+ break
88
+ }
89
+ }
90
+ } else { dom.innerHTML = text }
91
+ },
92
+ return_none: true
93
+ },
94
+ 'DOMテキスト取得': { // @DOMのテキストを取得 // @DOMてきすとしゅとく
95
+ type: 'func',
96
+ josi: [['の', 'から']],
97
+ pure: true,
98
+ fn: function (dom) {
99
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
100
+
101
+ const tag = dom.tagName.toUpperCase()
102
+ if (tag === 'INPUT' || tag === 'TEXTAREA') { return dom.value } else if (tag === 'SELECT') {
103
+ const idx = dom.selectedIndex
104
+ if (idx < 0) { return null }
105
+ return dom.options[idx].value
106
+ }
107
+ return dom.innerHTML
108
+ }
109
+ },
110
+ 'DOM_HTML設定': { // @DOMにHTML文字列を設定 // @DOM_HTMLせってい
111
+ type: 'func',
112
+ josi: [['に', 'の', 'へ'], ['を']],
113
+ pure: true,
114
+ fn: function (dom, text) {
115
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
116
+
117
+ dom.innerHTML = text
118
+ },
119
+ return_none: true
120
+ },
121
+ 'DOM_HTML取得': { // @DOMのHTML文字列を取得 // @DOM_HTMLしゅとく
122
+ type: 'func',
123
+ josi: [['の', 'から']],
124
+ pure: true,
125
+ fn: function (dom) {
126
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
127
+
128
+ return dom.innerHTML
129
+ }
130
+ },
131
+ 'テキスト設定': { // @DOMのテキストにVを設定 // @てきすとせってい
132
+ type: 'func',
133
+ josi: [['に', 'の', 'へ'], ['を']],
134
+ pure: false,
135
+ fn: function (dom, v, sys) {
136
+ return sys.__exec('DOMテキスト設定', [dom, v, sys])
137
+ }
138
+ },
139
+ 'テキスト取得': { // @DOMのテキストを取得 // @てきすとしゅとく
140
+ type: 'func',
141
+ josi: [['の', 'から']],
142
+ pure: false,
143
+ fn: function (dom, sys) {
144
+ console.log(dom)
145
+ console.log(sys)
146
+ return sys.__exec('DOMテキスト取得', [dom, sys])
147
+ }
148
+ },
149
+ 'HTML設定': { // @DOMのHTMLにVを設定 // @HTMLせってい
150
+ type: 'func',
151
+ josi: [['に', 'の', 'へ'], ['を']],
152
+ pure: false,
153
+ fn: function (dom, v, sys) {
154
+ return sys.__exec('DOM_HTML設定', [dom, v, sys])
155
+ }
156
+ },
157
+ 'HTML取得': { // @DOMのテキストを取得 // @HTMLしゅとく
158
+ type: 'func',
159
+ josi: [['の', 'から']],
160
+ pure: false,
161
+ fn: function (dom, sys) {
162
+ return sys.__exec('DOM_HTML取得', [dom, sys])
163
+ }
164
+ },
165
+ 'DOM属性設定': { // @DOMの属性Sに値Vを設定 // @DOMぞくせいせってい
166
+ type: 'func',
167
+ josi: [['の'], ['に', 'へ'], ['を']],
168
+ uses: ['DOM和スタイル'],
169
+ pure: true,
170
+ fn: function (dom, s, v, sys) {
171
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
172
+ const wa = sys.__v0['DOM和スタイル']
173
+ if (wa[s]) { s = wa[s] }
174
+ dom[s] = v
175
+ },
176
+ return_none: true
177
+ },
178
+ 'DOM属性取得': { // @DOMの属性Sを取得 // @DOMぞくせいしゅとく
179
+ type: 'func',
180
+ josi: [['の', 'から'], ['を']],
181
+ uses: ['DOM和スタイル'],
182
+ pure: true,
183
+ fn: function (dom, s, sys) {
184
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
185
+ const wa = sys.__v0['DOM和スタイル']
186
+ if (wa[s]) { s = wa[s] }
187
+ return dom[s]
188
+ }
189
+ },
190
+ 'DOM和スタイル': { // const // @DOMわすたいる
191
+ type: 'const',
192
+ value: {
193
+ '幅': 'width',
194
+ '高さ': 'height',
195
+ '高': 'height',
196
+ '背景色': 'background-color',
197
+ '色': 'color',
198
+ 'マージン': 'margin',
199
+ '余白': 'padding',
200
+ '文字サイズ': 'font-size',
201
+ '行揃え': 'text-align',
202
+ '左': 'left',
203
+ '右': 'right',
204
+ '中央': 'center',
205
+ 'ボーダー': 'border',
206
+ 'ボックス表示': 'display',
207
+ 'なし': 'none',
208
+ 'ブロック': 'block',
209
+ '表示位置': 'float',
210
+ '重なり': 'z-index'
211
+ }
212
+ },
213
+ 'DOMスタイル設定': { // @DOMのスタイルAに値Bを設定 // @DOMすたいるせってい
214
+ type: 'func',
215
+ josi: [['の'], ['に', 'へ'], ['を']],
216
+ uses: ['DOM和スタイル'],
217
+ pure: true,
218
+ fn: function (dom, s, v, sys) {
219
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
220
+ const wa = sys.__v0['DOM和スタイル']
221
+ if (wa[s] !== undefined) { s = wa[s] }
222
+ if (wa[v] !== undefined) { v = wa[v] }
223
+ dom.style[s] = v
224
+ },
225
+ return_none: true
226
+ },
227
+ 'DOMスタイル一括設定': { // @DOMに(オブジェクト型で)スタイル情報を一括設定 // @DOMすたいるいっかつせってい
228
+ type: 'func',
229
+ josi: [['に', 'へ'], ['を']],
230
+ uses: ['DOM和スタイル'],
231
+ pure: true,
232
+ fn: function (dom, values, sys) {
233
+ if (typeof dom === 'string') { dom = document.querySelectorAll(dom) }
234
+ if (!dom) { return }
235
+ if (dom instanceof window.HTMLElement) { dom = [dom] }
236
+ const wa = sys.__v0['DOM和スタイル']
237
+ // 列挙したDOM一覧を全てスタイル変更する
238
+ for (let i = 0; i < dom.length; i++) {
239
+ const e = dom[i]
240
+ for (const key in values) {
241
+ let s = key
242
+ let v = values[key]
243
+ if (wa[s] !== undefined) { s = wa[s] }
244
+ if (wa[v] !== undefined) { v = wa[v] }
245
+ e.style[s] = v
246
+ }
247
+ }
248
+ },
249
+ return_none: true
250
+ },
251
+ 'DOMスタイル取得': { // @DOMのSTYLEの値を取得 // @DOMすたいるしゅとく
252
+ type: 'func',
253
+ josi: [['の'], ['を']],
254
+ uses: ['DOM和スタイル'],
255
+ pure: true,
256
+ fn: function (dom, style, sys) {
257
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
258
+ if (!dom) { return '' }
259
+ const wa = sys.__v0['DOM和スタイル']
260
+ if (wa[style]) { style = wa[style] }
261
+ return dom.style[style]
262
+ }
263
+ },
264
+ 'DOMスタイル一括取得': { // @DOMのSTYLE(配列で複数指定)の値を取得 // @DOMすたいるいっかつしゅとく
265
+ type: 'func',
266
+ josi: [['の'], ['を']],
267
+ uses: ['DOM和スタイル'],
268
+ pure: true,
269
+ fn: function (dom, style, sys) {
270
+ const res = {}
271
+ if (typeof (dom) === 'string') { dom = document.querySelector(dom) }
272
+
273
+ if (!dom) { return res }
274
+ if (style instanceof String) { style = [style] }
275
+
276
+ const wa = sys.__v0['DOM和スタイル']
277
+ if (style instanceof Array) {
278
+ style.forEach((key) => {
279
+ if (wa[key]) { key = wa[key] }
280
+ res[key] = dom.style[key]
281
+ })
282
+ return res
283
+ }
284
+ if (style instanceof Object) {
285
+ for (let key in style) {
286
+ if (wa[key]) { key = wa[key] }
287
+ res[key] = dom.style[key]
288
+ }
289
+ return res
290
+ }
291
+ return dom.style[style]
292
+ }
293
+ },
294
+ 'DOM要素作成': { // @DOMにTAGの新規要素を作成 // @DOMようそさくせい
295
+ type: 'func',
296
+ josi: [['の', 'を']],
297
+ pure: true,
298
+ fn: function (tag) {
299
+ return document.createElement(tag)
300
+ }
301
+ },
302
+ 'DOM子要素追加': { // @DOMの要素PAの子へ要素ELを追加してPAを返す // @DOMこようそついか
303
+ type: 'func',
304
+ josi: [['に', 'へ'], ['を']],
305
+ pure: true,
306
+ fn: function (pa, el) {
307
+ if (typeof el === 'string') { el = document.querySelector(el) }
308
+ if (typeof pa === 'string') { pa = document.querySelector(pa) }
309
+ pa.appendChild(el)
310
+ }
311
+ },
312
+ 'DOM子要素削除': { // @DOMの要素PAの子から要素ELを削除してPAを返す // @DOMこようそさくじょ
313
+ type: 'func',
314
+ josi: [['から'], ['を']],
315
+ pure: true,
316
+ fn: function (pa, el) {
317
+ if (typeof el === 'string') { el = document.querySelector(el) }
318
+ if (typeof pa === 'string') { pa = document.querySelector(pa) }
319
+ pa.removeChild(el)
320
+ }
321
+ }
322
+ }
@@ -0,0 +1,193 @@
1
+ // @ts-nocheck
2
+ module.exports = {
3
+ // @DOM操作とイベント
4
+ '対象イベント': { type: 'const', value: '' }, // @たいしょういべんと
5
+ 'DOMイベント追加': { // @DOMのEVENTになでしこ関数名funcStrのイベントを追加// @DOMいべんとついか
6
+ type: 'func',
7
+ josi: [['の'], ['に', 'へ'], ['を']],
8
+ pure: false,
9
+ fn: function (dom, event, funcStr, sys) {
10
+ sys.__addEvent(dom, event, funcStr, null)
11
+ },
12
+ return_none: true
13
+ },
14
+ 'DOMイベント削除': { // @DOMのEVENTからなでしこ関数名funcStrのイベントを削除// @DOMいべんとさくじょ
15
+ type: 'func',
16
+ josi: [['の'], ['から'], ['を']],
17
+ pure: false,
18
+ fn: function (dom, event, funcStr, sys) {
19
+ sys.__removeEvent(dom, event, funcStr)
20
+ },
21
+ return_none: true
22
+ },
23
+ 'DOMイベント発火時': { // @DOMのEVENTが発火した時にCALLBACKを実行するように設定 // @DOMいべんとはっかしたとき
24
+ type: 'func',
25
+ josi: [['で'], ['の'], ['が']],
26
+ pure: true,
27
+ fn: function (callback, dom, event, sys) {
28
+ sys.__addEvent(dom, event, callback, null)
29
+ },
30
+ return_none: true
31
+ },
32
+ 'DOMイベント処理停止': { // @キーイベントやマウスイベントで、元々ブラウザが行う処理を中止する // @DOMいべんとしょりていし
33
+ type: 'func',
34
+ josi: [['を', 'の']],
35
+ pure: true,
36
+ fn: function (event, sys) {
37
+ event.preventDefault()
38
+ },
39
+ return_none: true
40
+ },
41
+ 'クリック時': { // @無名関数FでDOMをクリックした時に実行するイベントを設定 // @くりっくしたとき
42
+ type: 'func',
43
+ josi: [['で'], ['を']],
44
+ pure: false,
45
+ fn: function (func, dom, sys) {
46
+ sys.__addEvent(dom, 'click', func, null)
47
+ },
48
+ return_none: true
49
+ },
50
+ '読込時': { // @無名関数FでDOMを読み込んだ時に実行するイベントを設定 // @よみこんだとき
51
+ type: 'func',
52
+ josi: [['で'], ['を', 'の']],
53
+ pure: false,
54
+ fn: function (func, dom, sys) {
55
+ sys.__addEvent(dom, 'load', func, null)
56
+ },
57
+ return_none: true
58
+ },
59
+ 'フォーム送信時': { // @無名関数Fでフォームを送信した時に実行するイベントを設定 // @ふぉーむそうしんしたとき
60
+ type: 'func',
61
+ josi: [['で'], ['を', 'の']],
62
+ pure: false,
63
+ fn: function (func, dom, sys) {
64
+ sys.__addEvent(dom, 'submit', func, null)
65
+ },
66
+ return_none: true
67
+ },
68
+ '押キー': { type: 'const', value: '' }, // @おされたきー
69
+ 'キー押時': { // @無名関数FでDOMに対してキーを押した時に実行するイベントを設定。『押されたキー』が設定される。 // @きーおしたとき
70
+ type: 'func',
71
+ josi: [['で'], ['を', 'の']],
72
+ pure: false,
73
+ fn: function (func, dom, sys) {
74
+ sys.__addEvent(dom, 'keydown', func, sys.__keyHandler)
75
+ },
76
+ return_none: true
77
+ },
78
+ 'キー離時': { // @無名関数FでDOMに対してキーを離した時に実行するイベントを設定。『押されたキー』が設定される。 // @きーはなしたとき
79
+ type: 'func',
80
+ josi: [['で'], ['を', 'の']],
81
+ pure: false,
82
+ fn: function (func, dom, sys) {
83
+ sys.__addEvent(dom, 'keyup', func, sys.__keyHandler)
84
+ },
85
+ return_none: true
86
+ },
87
+ 'キータイピング時': { // @無名関数FでDOMに対してキーをプレスした時に実行するイベントを設定。『押されたキー』が設定される。 // @きーたいぴんぐしたとき
88
+ type: 'func',
89
+ josi: [['で'], ['を', 'の']],
90
+ pure: false,
91
+ fn: function (func, dom, sys) {
92
+ sys.__addEvent(dom, 'keypress', func, sys.__keyHandler)
93
+ },
94
+ return_none: true
95
+ },
96
+ 'マウスX': { type: 'const', value: 0 }, // @まうすX
97
+ 'マウスY': { type: 'const', value: 0 }, // @まうすY
98
+ 'マウス押時': { // @無名関数FでDOMに対してマウスボタンを押した時に実行するイベントを設定。『マウスX』『マウスY』に座標が設定される。『対象』にイベントDOM。『対象イベント』にイベント引数。 // @まうすおしたとき
99
+ type: 'func',
100
+ josi: [['で'], ['を', 'の']],
101
+ pure: false,
102
+ fn: function (func, dom, sys) {
103
+ sys.__addEvent(dom, 'mousedown', func, sys.__mouseHandler)
104
+ },
105
+ return_none: true
106
+ },
107
+ 'マウス移動時': { // @無名関数FでDOMに対してマウスカーソルが移動した時に実行するイベントを設定。『マウスX』『マウスY』に座標が設定される。『対象』にイベントDOM。『対象イベント』にイベント引数。 // @まうすいどうしたとき
108
+ type: 'func',
109
+ josi: [['で'], ['を', 'の']],
110
+ pure: false,
111
+ fn: function (func, dom, sys) {
112
+ sys.__addEvent(dom, 'mousemove', func, sys.__mouseHandler)
113
+ },
114
+ return_none: true
115
+ },
116
+ 'マウス離時': { // @無名関数FでDOMに対してマウスボタンを離した時に実行するイベントを設定。『マウスX』『マウスY』に座標が設定される。『対象』にイベントDOM。『対象イベント』にイベント引数。 // @まうすはなしたとき
117
+ type: 'func',
118
+ josi: [['で'], ['を', 'の']],
119
+ pure: false,
120
+ fn: function (func, dom, sys) {
121
+ sys.__addEvent(dom, 'mouseup', func, sys.__mouseHandler)
122
+ },
123
+ return_none: true
124
+ },
125
+ 'タッチX': { type: 'const', value: 0 }, // @たっちX
126
+ 'タッチY': { type: 'const', value: 0 }, // @たっちY
127
+ 'タッチ配列': { type: 'const', value: [] }, // @たっちはいれつ
128
+ 'タッチイベント計算': { // @タッチイベントで座標計算を行う。『タッチX』『タッチY』『タッチ配列』『対象』『対象イベント』が設定される。『タッチ配列』の内容が返る // @たっちいべんとけいさん
129
+ type: 'func',
130
+ josi: [['の']],
131
+ pure: true,
132
+ fn: function (e, sys) {
133
+ return sys.__touchHandler(e, sys)
134
+ }
135
+ },
136
+ 'タッチ開始時': { // @無名関数FでDOMに対してタッチを開始した時に実行するイベントを設定。// @たっちかいししたとき
137
+ type: 'func',
138
+ josi: [['で'], ['を', 'の']],
139
+ pure: false,
140
+ fn: function (func, dom, sys) {
141
+ sys.__addEvent(dom, 'touchstart', func, sys.__touchHandler)
142
+ },
143
+ return_none: true
144
+ },
145
+ 'タッチ時': { // @無名関数FでDOMに対してタッチして指を動かした時に実行するイベントを設定。// @たっちしたとき
146
+ type: 'func',
147
+ josi: [['で'], ['を', 'の']],
148
+ pure: false,
149
+ fn: function (func, dom, sys) {
150
+ sys.__addEvent(dom, 'touchmove', func, sys.__touchHandler)
151
+ },
152
+ return_none: true
153
+ },
154
+ 'タッチ終了時': { // @無名関数FでDOMに対してタッチして指を離した時のイベントを設定。// @たっちしゅうりょうしたとき
155
+ type: 'func',
156
+ josi: [['で'], ['を', 'の']],
157
+ pure: false,
158
+ fn: function (func, dom, sys) {
159
+ sys.__addEvent(dom, 'touchend', func, sys.__touchHandler)
160
+ },
161
+ return_none: true
162
+ },
163
+ 'タッチキャンセル時': { // @無名関数FでDOMに対してタッチイベントをキャンセルした時の動作を設定。// @たっちきゃんせるしたとき
164
+ type: 'func',
165
+ josi: [['で'], ['を', 'の']],
166
+ pure: false,
167
+ fn: function (func, dom, sys) {
168
+ sys.__addEvent(dom, 'touchcancel', func, sys.__touchHandler)
169
+ },
170
+ return_none: true
171
+ },
172
+ '画面更新時実行': { // @画面描画タイミングで関数F(文字列指定も可)を実行する。識別IDを返す。// @がめんこうしんじじっこう
173
+ type: 'func',
174
+ josi: [['を']],
175
+ pure: false,
176
+ fn: function (func, sys) {
177
+ func = sys.__findVar(func, null) // 文字列指定なら関数に変換
178
+ if (!func) { throw new Error('『画面更新時実行』で関数の取得に失敗しました。') }
179
+ sys.__requestAnimationFrameLastId = window.requestAnimationFrame(func)
180
+ return sys.__requestAnimationFrameLastId
181
+ }
182
+ },
183
+ '画面更新処理取消': { // @識別IDを指定して『画面更新時実行』を取り消す// @がめんこうしんしょりとりけし
184
+ type: 'func',
185
+ josi: [['の', 'を']],
186
+ pure: false,
187
+ fn: function (id, sys) {
188
+ window.cancelAnimationFrame(id)
189
+ if (sys.__requestAnimationFrameLastId === id) { sys.__requestAnimationFrameLastId = 0 }
190
+ },
191
+ return_none: true
192
+ }
193
+ }
@@ -0,0 +1,163 @@
1
+ // @ts-nocheck
2
+ module.exports = {
3
+ // @DOM部品操作
4
+ 'DOM親要素': { type: 'const', value: '' }, // @DOMおやようそ
5
+ 'DOM生成個数': { type: 'const', value: 0 }, // @DOMせいせいこすう
6
+ 'DOM親要素設定': { // @「ボタン作成」「エディタ作成」などのDOM要素を追加する対象を指定(デフォルトはdocument)して親要素のDOMオブジェクトを返す // @DOMおやようそせってい
7
+ type: 'func',
8
+ josi: [['に', 'へ']],
9
+ pure: false,
10
+ fn: function (el, sys) {
11
+ if (typeof el === 'string') { el = document.querySelector(el) || document.getElementById(el) }
12
+ sys.__v0['DOM親要素'] = el
13
+ return el
14
+ }
15
+ },
16
+ 'DOMスキン': { type: 'const', value: '' }, // @DOMすきん
17
+ 'DOMスキン辞書': { type: 'const', value: {} }, // @DOMすきんじしょ
18
+ 'ボタン作成': { // @ラベルlabelを持つbutton要素を追加しDOMオブジェクトを返す // @ぼたんさくせい
19
+ type: 'func',
20
+ josi: [['の']],
21
+ pure: false,
22
+ fn: function (label, sys) {
23
+ const parent = sys.__v0['DOM親要素']
24
+ const btn = document.createElement('button')
25
+ btn.innerHTML = label
26
+ btn.id = 'nadesi-dom-' + sys.__v0['DOM生成個数']
27
+ // スキン適用
28
+ const func = sys.__v0['DOMスキン辞書'][sys.__v0['DOMスキン']]
29
+ if (typeof (func) === 'function') { func('ボタン作成', btn, sys) }
30
+ // DOM追加
31
+ parent.appendChild(btn)
32
+ sys.__v0['DOM生成個数']++
33
+ return btn
34
+ }
35
+ },
36
+ 'エディタ作成': { // @textの値を持つテキストボックス(input[type='text'])の要素を追加しDOMオブジェクトを返す // @えでぃたさくせい
37
+ type: 'func',
38
+ josi: [['の']],
39
+ pure: false,
40
+ fn: function (text, sys) {
41
+ const parent = sys.__v0['DOM親要素']
42
+ const inp = document.createElement('input')
43
+ inp.type = 'text'
44
+ inp.value = text
45
+ inp.id = 'nadesi-dom-' + sys.__v0['DOM生成個数']
46
+ // スキン適用
47
+ const func = sys.__v0['DOMスキン辞書'][sys.__v0['DOMスキン']]
48
+ if (typeof (func) === 'function') { func('エディタ作成', inp, sys) }
49
+ // DOM追加
50
+ parent.appendChild(inp)
51
+ sys.__v0['DOM生成個数']++
52
+ return inp
53
+ }
54
+ },
55
+ 'テキストエリア作成': { // @textの値を持つtextarea要素を追加しDOMオブジェクトを返す // @てきすとえりあさくせい
56
+ type: 'func',
57
+ josi: [['の']],
58
+ pure: false,
59
+ fn: function (text, sys) {
60
+ const parent = sys.__v0['DOM親要素']
61
+ const te = document.createElement('textarea')
62
+ te.value = text
63
+ te.id = 'nadesi-dom-' + sys.__v0['DOM生成個数']
64
+ // スキン適用
65
+ const func = sys.__v0['DOMスキン辞書'][sys.__v0['DOMスキン']]
66
+ if (typeof (func) === 'function') { func('テキストエリア作成', te, sys) }
67
+ // DOM追加
68
+ parent.appendChild(te)
69
+ sys.__v0['DOM生成個数']++
70
+ return te
71
+ }
72
+ },
73
+ 'ラベル作成': { // @textの値を持つラベル(span要素)を追加しDOMオブジェクトを返す // @らべるさくせい
74
+ type: 'func',
75
+ josi: [['の']],
76
+ pure: false,
77
+ fn: function (text, sys) {
78
+ const parent = sys.__v0['DOM親要素']
79
+ const te = document.createElement('span')
80
+ te.innerHTML = text
81
+ te.id = 'nadesi-dom-' + sys.__v0['DOM生成個数']
82
+ // スキン適用
83
+ const func = sys.__v0['DOMスキン辞書'][sys.__v0['DOMスキン']]
84
+ if (typeof (func) === 'function') { func('ラベル作成', te, sys) }
85
+ // DOM追加
86
+ parent.appendChild(te)
87
+ sys.__v0['DOM生成個数']++
88
+ return te
89
+ }
90
+ },
91
+ '改行作成': { // @改行(br要素)を追加しDOMオブジェクトを返す // @かいぎょうさくせい
92
+ type: 'func',
93
+ josi: [],
94
+ pure: false,
95
+ fn: function (sys) {
96
+ const parent = sys.__v0['DOM親要素']
97
+ const te = document.createElement('br')
98
+ te.id = 'nadesi-dom-' + sys.__v0['DOM生成個数']
99
+ // スキン適用
100
+ const func = sys.__v0['DOMスキン辞書'][sys.__v0['DOMスキン']]
101
+ if (typeof (func) === 'function') { func('改行作成', te, sys) }
102
+ // DOM追加
103
+ parent.appendChild(te)
104
+ sys.__v0['DOM生成個数']++
105
+ return te
106
+ }
107
+ },
108
+ 'チェックボックス作成': { // @textのラベルを持つチェックボックス(input[type='checkbox'])要素を追加しDOMオブジェクトを返す // @ちぇっくぼっくすさくせい
109
+ type: 'func',
110
+ josi: [['の']],
111
+ pure: false,
112
+ fn: function (text, sys) {
113
+ const parent = sys.__v0['DOM親要素']
114
+ const span = document.createElement('span')
115
+ const inp = document.createElement('input')
116
+ inp.type = 'checkbox'
117
+ inp.id = 'nadesi-dom-' + sys.__v0['DOM生成個数']
118
+ const label = document.createElement('label')
119
+ label.innerHTML = text
120
+ label.htmlFor = inp.id
121
+ span.appendChild(inp)
122
+ span.appendChild(label)
123
+ // スキン適用
124
+ const func = sys.__v0['DOMスキン辞書'][sys.__v0['DOMスキン']]
125
+ if (typeof (func) === 'function') { func('チェックボックス作成', span, sys) }
126
+ // DOM追加
127
+ parent.appendChild(span)
128
+ sys.__v0['DOM生成個数']++
129
+ return inp
130
+ }
131
+ },
132
+ 'セレクトボックス作成': { // @配列optionsの選択肢を持つselect要素を追加しDOMオブジェクトを返す // @せれくとぼっくすさくせい
133
+ type: 'func',
134
+ josi: [['の']],
135
+ pure: false,
136
+ fn: function (options, sys) {
137
+ const parent = sys.__v0['DOM親要素']
138
+ const dom = document.createElement('select')
139
+ dom.id = 'nadesi-dom-' + (sys.__v0['DOM生成個数']++)
140
+ for (let i = 0; i < options.length; i++) {
141
+ const item = document.createElement('option')
142
+ item.value = options[i]
143
+ item.appendChild(document.createTextNode(options[i]))
144
+ dom.appendChild(item)
145
+ }
146
+ // スキン適用
147
+ const func = sys.__v0['DOMスキン辞書'][sys.__v0['DOMスキン']]
148
+ if (typeof (func) === 'function') { func('セレクトボックス作成', dom, sys) }
149
+ // DOM追加
150
+ parent.appendChild(dom)
151
+ return dom
152
+ }
153
+ },
154
+ 'DOMスキン設定': { // @「ボタン作成」「エディタ作成」などで適用するスキンを指定する(#1033) // @DOMすきんせってい
155
+ type: 'func',
156
+ josi: [['を', 'に', 'の']],
157
+ pure: false,
158
+ fn: function (skin, sys) {
159
+ sys.__v0['DOMスキン'] = skin
160
+ },
161
+ return_none: true
162
+ }
163
+ }