@hatiolab/things-scene 9.0.0-beta.36 → 9.0.0-beta.37

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 (397) hide show
  1. package/package.json +1 -1
  2. package/things-scene-min.js +11 -11
  3. package/things-scene-min.js.map +1 -1
  4. package/things-scene.mjs +11 -11
  5. package/things-scene.mjs.map +1 -1
  6. package/.cursorignore +0 -62
  7. package/.prettierrc +0 -21
  8. package/assets/icon-audio.png +0 -0
  9. package/assets/icon-gif-viewer.png +0 -0
  10. package/assets/images/spinner.png +0 -0
  11. package/babel.config.js +0 -23
  12. package/db.sqlite +0 -0
  13. package/dist/animation/animate.js +0 -63
  14. package/dist/animation/animate.js.map +0 -1
  15. package/dist/animation/animations/animation.js +0 -122
  16. package/dist/animation/animations/animation.js.map +0 -1
  17. package/dist/animation/animations/fade.js +0 -28
  18. package/dist/animation/animations/fade.js.map +0 -1
  19. package/dist/animation/animations/heartbeat.js +0 -28
  20. package/dist/animation/animations/heartbeat.js.map +0 -1
  21. package/dist/animation/animations/moving.js +0 -24
  22. package/dist/animation/animations/moving.js.map +0 -1
  23. package/dist/animation/animations/outline.js +0 -47
  24. package/dist/animation/animations/outline.js.map +0 -1
  25. package/dist/animation/animations/rotation.js +0 -22
  26. package/dist/animation/animations/rotation.js.map +0 -1
  27. package/dist/animation/animations/vibration.js +0 -31
  28. package/dist/animation/animations/vibration.js.map +0 -1
  29. package/dist/animation/compile.js +0 -31
  30. package/dist/animation/compile.js.map +0 -1
  31. package/dist/animation/delta.js +0 -51
  32. package/dist/animation/delta.js.map +0 -1
  33. package/dist/animation/index.js +0 -14
  34. package/dist/animation/index.js.map +0 -1
  35. package/dist/command/command-change.js +0 -33
  36. package/dist/command/command-change.js.map +0 -1
  37. package/dist/command/command-migrate.js +0 -103
  38. package/dist/command/command-migrate.js.map +0 -1
  39. package/dist/command/command.js +0 -18
  40. package/dist/command/command.js.map +0 -1
  41. package/dist/command/snapshot-commander.js +0 -84
  42. package/dist/command/snapshot-commander.js.map +0 -1
  43. package/dist/components/anchor/anchor.js +0 -105
  44. package/dist/components/anchor/anchor.js.map +0 -1
  45. package/dist/components/anchor/ellipse-anchors.js +0 -53
  46. package/dist/components/anchor/ellipse-anchors.js.map +0 -1
  47. package/dist/components/anchor/rect-anchors.js +0 -53
  48. package/dist/components/anchor/rect-anchors.js.map +0 -1
  49. package/dist/components/audio.js +0 -154
  50. package/dist/components/audio.js.map +0 -1
  51. package/dist/components/cloud.js +0 -44
  52. package/dist/components/cloud.js.map +0 -1
  53. package/dist/components/component.js +0 -1086
  54. package/dist/components/component.js.map +0 -1
  55. package/dist/components/container-abstract.js +0 -387
  56. package/dist/components/container-abstract.js.map +0 -1
  57. package/dist/components/container.js +0 -331
  58. package/dist/components/container.js.map +0 -1
  59. package/dist/components/data/data-mapping.js +0 -82
  60. package/dist/components/data/data-mapping.js.map +0 -1
  61. package/dist/components/data/data.js +0 -166
  62. package/dist/components/data/data.js.map +0 -1
  63. package/dist/components/data/evaluator.js +0 -103
  64. package/dist/components/data/evaluator.js.map +0 -1
  65. package/dist/components/donut.js +0 -104
  66. package/dist/components/donut.js.map +0 -1
  67. package/dist/components/drawer/draw-image-pendable.js +0 -20
  68. package/dist/components/drawer/draw-image-pendable.js.map +0 -1
  69. package/dist/components/drawer/effect.js +0 -19
  70. package/dist/components/drawer/effect.js.map +0 -1
  71. package/dist/components/drawer/fill.js +0 -228
  72. package/dist/components/drawer/fill.js.map +0 -1
  73. package/dist/components/drawer/format.js +0 -115
  74. package/dist/components/drawer/format.js.map +0 -1
  75. package/dist/components/drawer/line.js +0 -191
  76. package/dist/components/drawer/line.js.map +0 -1
  77. package/dist/components/drawer/stroke.js +0 -62
  78. package/dist/components/drawer/stroke.js.map +0 -1
  79. package/dist/components/drawer/text-wrapper.js +0 -51
  80. package/dist/components/drawer/text-wrapper.js.map +0 -1
  81. package/dist/components/drawer/text.js +0 -269
  82. package/dist/components/drawer/text.js.map +0 -1
  83. package/dist/components/ellipse.js +0 -110
  84. package/dist/components/ellipse.js.map +0 -1
  85. package/dist/components/file/ondropfile.js +0 -19
  86. package/dist/components/file/ondropfile.js.map +0 -1
  87. package/dist/components/fit/fit.js +0 -137
  88. package/dist/components/fit/fit.js.map +0 -1
  89. package/dist/components/geometry/transcoord.js +0 -339
  90. package/dist/components/geometry/transcoord.js.map +0 -1
  91. package/dist/components/geometry/union.js +0 -35
  92. package/dist/components/geometry/union.js.map +0 -1
  93. package/dist/components/gif-view.js +0 -128
  94. package/dist/components/gif-view.js.map +0 -1
  95. package/dist/components/global-ref.js +0 -154
  96. package/dist/components/global-ref.js.map +0 -1
  97. package/dist/components/group.js +0 -171
  98. package/dist/components/group.js.map +0 -1
  99. package/dist/components/html/elements.js +0 -24
  100. package/dist/components/html/elements.js.map +0 -1
  101. package/dist/components/html/fill.js +0 -126
  102. package/dist/components/html/fill.js.map +0 -1
  103. package/dist/components/html/reposition.js +0 -119
  104. package/dist/components/html/reposition.js.map +0 -1
  105. package/dist/components/html/shadow.js +0 -24
  106. package/dist/components/html/shadow.js.map +0 -1
  107. package/dist/components/html-overlay-container.js +0 -27
  108. package/dist/components/html-overlay-container.js.map +0 -1
  109. package/dist/components/html-overlay-element.js +0 -22
  110. package/dist/components/html-overlay-element.js.map +0 -1
  111. package/dist/components/image-view.js +0 -193
  112. package/dist/components/image-view.js.map +0 -1
  113. package/dist/components/index.js +0 -231
  114. package/dist/components/index.js.map +0 -1
  115. package/dist/components/info-window.js +0 -416
  116. package/dist/components/info-window.js.map +0 -1
  117. package/dist/components/line.js +0 -374
  118. package/dist/components/line.js.map +0 -1
  119. package/dist/components/local-ref.js +0 -114
  120. package/dist/components/local-ref.js.map +0 -1
  121. package/dist/components/mixins/connectable.js +0 -128
  122. package/dist/components/mixins/connectable.js.map +0 -1
  123. package/dist/components/mixins/data-source.js +0 -34
  124. package/dist/components/mixins/data-source.js.map +0 -1
  125. package/dist/components/mixins/html-element.js +0 -107
  126. package/dist/components/mixins/html-element.js.map +0 -1
  127. package/dist/components/mixins/move-handle.js +0 -73
  128. package/dist/components/mixins/move-handle.js.map +0 -1
  129. package/dist/components/mixins/rect-path.js +0 -113
  130. package/dist/components/mixins/rect-path.js.map +0 -1
  131. package/dist/components/mixins/value-holder.js +0 -81
  132. package/dist/components/mixins/value-holder.js.map +0 -1
  133. package/dist/components/mutater/bounds.js +0 -68
  134. package/dist/components/mutater/bounds.js.map +0 -1
  135. package/dist/components/mutater/path.js +0 -73
  136. package/dist/components/mutater/path.js.map +0 -1
  137. package/dist/components/ortholine.js +0 -763
  138. package/dist/components/ortholine.js.map +0 -1
  139. package/dist/components/outline/ellipse-outline.js +0 -23
  140. package/dist/components/outline/ellipse-outline.js.map +0 -1
  141. package/dist/components/outline/path-outline.js +0 -48
  142. package/dist/components/outline/path-outline.js.map +0 -1
  143. package/dist/components/path.js +0 -49
  144. package/dist/components/path.js.map +0 -1
  145. package/dist/components/polygon.js +0 -91
  146. package/dist/components/polygon.js.map +0 -1
  147. package/dist/components/polyline.js +0 -114
  148. package/dist/components/polyline.js.map +0 -1
  149. package/dist/components/popup.js +0 -160
  150. package/dist/components/popup.js.map +0 -1
  151. package/dist/components/rect.js +0 -72
  152. package/dist/components/rect.js.map +0 -1
  153. package/dist/components/retention/retention-manager.js +0 -81
  154. package/dist/components/retention/retention-manager.js.map +0 -1
  155. package/dist/components/root-container.js +0 -519
  156. package/dist/components/root-container.js.map +0 -1
  157. package/dist/components/ruler.js +0 -103
  158. package/dist/components/ruler.js.map +0 -1
  159. package/dist/components/shape.js +0 -97
  160. package/dist/components/shape.js.map +0 -1
  161. package/dist/components/star.js +0 -103
  162. package/dist/components/star.js.map +0 -1
  163. package/dist/components/text/substitutor.js +0 -92
  164. package/dist/components/text/substitutor.js.map +0 -1
  165. package/dist/components/text.js +0 -21
  166. package/dist/components/text.js.map +0 -1
  167. package/dist/components/triangle.js +0 -92
  168. package/dist/components/triangle.js.map +0 -1
  169. package/dist/const.js +0 -71
  170. package/dist/const.js.map +0 -1
  171. package/dist/core/collection.js +0 -28
  172. package/dist/core/collection.js.map +0 -1
  173. package/dist/core/debug.js +0 -12
  174. package/dist/core/debug.js.map +0 -1
  175. package/dist/core/deep-equals.js +0 -112
  176. package/dist/core/deep-equals.js.map +0 -1
  177. package/dist/core/dom-to-image.js +0 -617
  178. package/dist/core/dom-to-image.js.map +0 -1
  179. package/dist/core/event.js +0 -205
  180. package/dist/core/event.js.map +0 -1
  181. package/dist/core/index.js +0 -21
  182. package/dist/core/index.js.map +0 -1
  183. package/dist/core/list.js +0 -87
  184. package/dist/core/list.js.map +0 -1
  185. package/dist/core/logger.js +0 -29
  186. package/dist/core/logger.js.map +0 -1
  187. package/dist/core/memoize.js +0 -40
  188. package/dist/core/memoize.js.map +0 -1
  189. package/dist/core/mixin.js +0 -26
  190. package/dist/core/mixin.js.map +0 -1
  191. package/dist/core/obj-accessor.js +0 -26
  192. package/dist/core/obj-accessor.js.map +0 -1
  193. package/dist/core/reference-map.js +0 -147
  194. package/dist/core/reference-map.js.map +0 -1
  195. package/dist/core/round-rect.js +0 -62
  196. package/dist/core/round-rect.js.map +0 -1
  197. package/dist/core/safe-round.js +0 -10
  198. package/dist/core/safe-round.js.map +0 -1
  199. package/dist/core/script-loader.js +0 -148
  200. package/dist/core/script-loader.js.map +0 -1
  201. package/dist/core/snapshot-taker.js +0 -59
  202. package/dist/core/snapshot-taker.js.map +0 -1
  203. package/dist/core/stack.js +0 -18
  204. package/dist/core/stack.js.map +0 -1
  205. package/dist/core/timecapsule.js +0 -88
  206. package/dist/core/timecapsule.js.map +0 -1
  207. package/dist/core/utils.js +0 -309
  208. package/dist/core/utils.js.map +0 -1
  209. package/dist/decorator/anchors-decorator.js +0 -53
  210. package/dist/decorator/anchors-decorator.js.map +0 -1
  211. package/dist/decorator/bouncing-arrow-decorator.js +0 -52
  212. package/dist/decorator/bouncing-arrow-decorator.js.map +0 -1
  213. package/dist/decorator/data-spread-decorator.js +0 -69
  214. package/dist/decorator/data-spread-decorator.js.map +0 -1
  215. package/dist/decorator/decotag-decorator.js +0 -33
  216. package/dist/decorator/decotag-decorator.js.map +0 -1
  217. package/dist/decorator/index.js +0 -31
  218. package/dist/decorator/index.js.map +0 -1
  219. package/dist/decorator/link-decorator.js +0 -66
  220. package/dist/decorator/link-decorator.js.map +0 -1
  221. package/dist/effect/gradation.js +0 -37
  222. package/dist/effect/gradation.js.map +0 -1
  223. package/dist/effect/index.js +0 -23
  224. package/dist/effect/index.js.map +0 -1
  225. package/dist/effect/shadow.js +0 -33
  226. package/dist/effect/shadow.js.map +0 -1
  227. package/dist/effect/turn.js +0 -25
  228. package/dist/effect/turn.js.map +0 -1
  229. package/dist/event/event-engine.js +0 -76
  230. package/dist/event/event-engine.js.map +0 -1
  231. package/dist/event/event-pump.js +0 -92
  232. package/dist/event/event-pump.js.map +0 -1
  233. package/dist/event/event-tracker.js +0 -97
  234. package/dist/event/event-tracker.js.map +0 -1
  235. package/dist/event/index.js +0 -21
  236. package/dist/event/index.js.map +0 -1
  237. package/dist/event/ua-event-handler.js +0 -453
  238. package/dist/event/ua-event-handler.js.map +0 -1
  239. package/dist/event-map/animator-handler.js +0 -225
  240. package/dist/event-map/animator-handler.js.map +0 -1
  241. package/dist/event-map/animators/animated-icon.js +0 -265
  242. package/dist/event-map/animators/animated-icon.js.map +0 -1
  243. package/dist/event-map/animators/border-highlighting.js +0 -476
  244. package/dist/event-map/animators/border-highlighting.js.map +0 -1
  245. package/dist/event-map/animators/bouncing-arrow.js +0 -226
  246. package/dist/event-map/animators/bouncing-arrow.js.map +0 -1
  247. package/dist/event-map/event-map.js +0 -36
  248. package/dist/event-map/event-map.js.map +0 -1
  249. package/dist/event-map/index.js +0 -20
  250. package/dist/event-map/index.js.map +0 -1
  251. package/dist/event-map/move-handler.js +0 -233
  252. package/dist/event-map/move-handler.js.map +0 -1
  253. package/dist/event-map/paste-handler.js +0 -176
  254. package/dist/event-map/paste-handler.js.map +0 -1
  255. package/dist/event-map/shift-handler.js +0 -55
  256. package/dist/event-map/shift-handler.js.map +0 -1
  257. package/dist/event-map/text-editor-lite.js +0 -276
  258. package/dist/event-map/text-editor-lite.js.map +0 -1
  259. package/dist/event-map/zoom-handler.js +0 -49
  260. package/dist/event-map/zoom-handler.js.map +0 -1
  261. package/dist/index.js +0 -20
  262. package/dist/index.js.map +0 -1
  263. package/dist/layer/action/emphasize.js +0 -42
  264. package/dist/layer/action/emphasize.js.map +0 -1
  265. package/dist/layer/action/popup.js +0 -461
  266. package/dist/layer/action/popup.js.map +0 -1
  267. package/dist/layer/action/pressed.js +0 -31
  268. package/dist/layer/action/pressed.js.map +0 -1
  269. package/dist/layer/add-layer.js +0 -180
  270. package/dist/layer/add-layer.js.map +0 -1
  271. package/dist/layer/decotag-layer.js +0 -121
  272. package/dist/layer/decotag-layer.js.map +0 -1
  273. package/dist/layer/guide-layer.js +0 -292
  274. package/dist/layer/guide-layer.js.map +0 -1
  275. package/dist/layer/index.js +0 -70
  276. package/dist/layer/index.js.map +0 -1
  277. package/dist/layer/layer.js +0 -230
  278. package/dist/layer/layer.js.map +0 -1
  279. package/dist/layer/minimap-layer.js +0 -84
  280. package/dist/layer/minimap-layer.js.map +0 -1
  281. package/dist/layer/model-layer.js +0 -465
  282. package/dist/layer/model-layer.js.map +0 -1
  283. package/dist/layer/modeler/anchor-handler.js +0 -193
  284. package/dist/layer/modeler/anchor-handler.js.map +0 -1
  285. package/dist/layer/modeler/control-handler.js +0 -95
  286. package/dist/layer/modeler/control-handler.js.map +0 -1
  287. package/dist/layer/modeler/focus-outline.js +0 -41
  288. package/dist/layer/modeler/focus-outline.js.map +0 -1
  289. package/dist/layer/modeler/group-outline.js +0 -30
  290. package/dist/layer/modeler/group-outline.js.map +0 -1
  291. package/dist/layer/modeler/index.js +0 -56
  292. package/dist/layer/modeler/index.js.map +0 -1
  293. package/dist/layer/modeler/path-handler.js +0 -300
  294. package/dist/layer/modeler/path-handler.js.map +0 -1
  295. package/dist/layer/modeler/resizer.js +0 -333
  296. package/dist/layer/modeler/resizer.js.map +0 -1
  297. package/dist/layer/modeler/rotator.js +0 -134
  298. package/dist/layer/modeler/rotator.js.map +0 -1
  299. package/dist/layer/modeling-layer.js +0 -491
  300. package/dist/layer/modeling-layer.js.map +0 -1
  301. package/dist/layer/reaction-layer.js +0 -111
  302. package/dist/layer/reaction-layer.js.map +0 -1
  303. package/dist/layer/scroll-layer.js +0 -191
  304. package/dist/layer/scroll-layer.js.map +0 -1
  305. package/dist/layer/selection/selected-finder.js +0 -96
  306. package/dist/layer/selection/selected-finder.js.map +0 -1
  307. package/dist/layer/selection-layer.js +0 -373
  308. package/dist/layer/selection-layer.js.map +0 -1
  309. package/dist/layer/shift-layer.js +0 -83
  310. package/dist/layer/shift-layer.js.map +0 -1
  311. package/dist/layout/absolute.js +0 -30
  312. package/dist/layout/absolute.js.map +0 -1
  313. package/dist/layout/card.js +0 -52
  314. package/dist/layout/card.js.map +0 -1
  315. package/dist/layout/html-absolute.js +0 -32
  316. package/dist/layout/html-absolute.js.map +0 -1
  317. package/dist/layout/index.js +0 -56
  318. package/dist/layout/index.js.map +0 -1
  319. package/dist/layout/layout.js +0 -36
  320. package/dist/layout/layout.js.map +0 -1
  321. package/dist/layout/linear-horizontal.js +0 -56
  322. package/dist/layout/linear-horizontal.js.map +0 -1
  323. package/dist/layout/linear-vertical.js +0 -56
  324. package/dist/layout/linear-vertical.js.map +0 -1
  325. package/dist/layout/table.js +0 -106
  326. package/dist/layout/table.js.map +0 -1
  327. package/dist/license/license.js +0 -170
  328. package/dist/license/license.js.map +0 -1
  329. package/dist/model/compile.js +0 -40
  330. package/dist/model/compile.js.map +0 -1
  331. package/dist/model/duplicate.js +0 -19
  332. package/dist/model/duplicate.js.map +0 -1
  333. package/dist/model/index.js +0 -34
  334. package/dist/model/index.js.map +0 -1
  335. package/dist/model/selector.js +0 -104
  336. package/dist/model/selector.js.map +0 -1
  337. package/dist/style/compile.js +0 -14
  338. package/dist/style/compile.js.map +0 -1
  339. package/dist/style/index.js +0 -14
  340. package/dist/style/index.js.map +0 -1
  341. package/dist/things-scene/api/add-start.js +0 -18
  342. package/dist/things-scene/api/add-start.js.map +0 -1
  343. package/dist/things-scene/api/add.js +0 -71
  344. package/dist/things-scene/api/add.js.map +0 -1
  345. package/dist/things-scene/api/align.js +0 -116
  346. package/dist/things-scene/api/align.js.map +0 -1
  347. package/dist/things-scene/api/center-to.js +0 -50
  348. package/dist/things-scene/api/center-to.js.map +0 -1
  349. package/dist/things-scene/api/change.js +0 -27
  350. package/dist/things-scene/api/change.js.map +0 -1
  351. package/dist/things-scene/api/clipboard.js +0 -45
  352. package/dist/things-scene/api/clipboard.js.map +0 -1
  353. package/dist/things-scene/api/distribute.js +0 -57
  354. package/dist/things-scene/api/distribute.js.map +0 -1
  355. package/dist/things-scene/api/duplicate.js +0 -47
  356. package/dist/things-scene/api/duplicate.js.map +0 -1
  357. package/dist/things-scene/api/fullscreen.js +0 -26
  358. package/dist/things-scene/api/fullscreen.js.map +0 -1
  359. package/dist/things-scene/api/group.js +0 -91
  360. package/dist/things-scene/api/group.js.map +0 -1
  361. package/dist/things-scene/api/ids.js +0 -28
  362. package/dist/things-scene/api/ids.js.map +0 -1
  363. package/dist/things-scene/api/index.js +0 -192
  364. package/dist/things-scene/api/index.js.map +0 -1
  365. package/dist/things-scene/api/listener.js +0 -69
  366. package/dist/things-scene/api/listener.js.map +0 -1
  367. package/dist/things-scene/api/paste-start.js +0 -27
  368. package/dist/things-scene/api/paste-start.js.map +0 -1
  369. package/dist/things-scene/api/place.js +0 -98
  370. package/dist/things-scene/api/place.js.map +0 -1
  371. package/dist/things-scene/api/remove.js +0 -57
  372. package/dist/things-scene/api/remove.js.map +0 -1
  373. package/dist/things-scene/api/symmetry.js +0 -47
  374. package/dist/things-scene/api/symmetry.js.map +0 -1
  375. package/dist/things-scene/api/to-data-url.js +0 -76
  376. package/dist/things-scene/api/to-data-url.js.map +0 -1
  377. package/dist/things-scene/api/zorder.js +0 -68
  378. package/dist/things-scene/api/zorder.js.map +0 -1
  379. package/dist/things-scene/application-context.js +0 -168
  380. package/dist/things-scene/application-context.js.map +0 -1
  381. package/dist/things-scene/config.js +0 -18
  382. package/dist/things-scene/config.js.map +0 -1
  383. package/dist/things-scene/create.js +0 -67
  384. package/dist/things-scene/create.js.map +0 -1
  385. package/dist/things-scene/fps.js +0 -26
  386. package/dist/things-scene/fps.js.map +0 -1
  387. package/dist/things-scene/index.js +0 -152
  388. package/dist/things-scene/index.js.map +0 -1
  389. package/dist/things-scene/polyfill.js +0 -111
  390. package/dist/things-scene/polyfill.js.map +0 -1
  391. package/dist/things-scene/scene.js +0 -442
  392. package/dist/things-scene/scene.js.map +0 -1
  393. package/dist/things-scene/version.js +0 -12
  394. package/dist/things-scene/version.js.map +0 -1
  395. package/rollup.config.js +0 -67
  396. package/schema.graphql +0 -4606
  397. package/tsconfig.json +0 -31
@@ -1,103 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- var _shape = _interopRequireDefault(require("./shape.js"));
9
- var _rectPath = _interopRequireDefault(require("./mixins/rect-path.js"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- /*
12
- * Copyright © HatioLab Inc. All rights reserved.
13
- */
14
-
15
- const STEPS = [1, 2, 10, 20, 50, 50, 50, 50, 50, 50];
16
- class Ruler extends (0, _rectPath.default)(_shape.default) {
17
- render(ctx) {
18
- const {
19
- lineWidth = 1,
20
- fillStyle = 'lightgray',
21
- font = '15px Arial',
22
- left,
23
- top,
24
- rotation,
25
- origin,
26
- margin,
27
- width,
28
- height,
29
- side = 'bottom',
30
- strokeStyle = '#000000',
31
- scale = 1
32
- } = this.state;
33
-
34
- /* 좌표 기준을 0, 0로 하기위해서 이동 */
35
- ctx.translate(left, top);
36
-
37
- // Clipping (여유있게 박스를 잡아주지 않으면.. 회전시 edge가 지저분해보인다.)
38
- ctx.beginPath();
39
- const clip_bound = Math.round(lineWidth / 2);
40
- ctx.rect(-clip_bound, -clip_bound, width + clip_bound * 2, height + clip_bound * 2);
41
- ctx.clip();
42
-
43
- // Boxing
44
- ctx.beginPath();
45
- ctx.rect(0, 0, width, height);
46
- if (fillStyle) {
47
- ctx.fillStyle = fillStyle;
48
- ctx.fill();
49
- }
50
- ctx.lineWidth = lineWidth;
51
- ctx.strokeStyle = strokeStyle;
52
- ctx.stroke();
53
-
54
- // Draw Scales & Text
55
- ctx.beginPath();
56
- ctx.font = font;
57
-
58
- // 자의 눈금을 위쪽에 그리는 경우에는 top_side가 true이다.
59
- var top_side = side !== 'bottom';
60
- var end_pos = top_side ? 0 : height;
61
- var ypos_mm = height * 4 / 5;
62
- var ypos_5m = height * 2 / 3;
63
- var ypos_cm = height * 1 / 2;
64
- var ypos_txt = height * 3 / 5;
65
- if (top_side) {
66
- ypos_mm = height - ypos_mm;
67
- ypos_5m = height - ypos_5m;
68
- ypos_cm = height - ypos_cm;
69
- ypos_txt = height - height * 1.5 / 5;
70
- }
71
- var ppm = scale * this.app.PPM / this.root.unitScale;
72
- var idx = Math.ceil(origin / ppm); // First Index
73
-
74
- var ratio = this.app.PPM / ppm;
75
- var step = ratio <= 1.1 ? 1 : STEPS[Math.round(ratio)] || 100;
76
- if (step != 1) idx += (step - idx % step) % step;
77
- var pos = Math.ceil(idx * ppm);
78
- var end = origin + width;
79
- ctx.fillStyle = strokeStyle;
80
- while (pos < end) {
81
- if (idx % 10 == 0) {
82
- ctx.moveTo(pos - origin, ypos_cm);
83
- ctx.lineTo(pos - origin, end_pos);
84
-
85
- // 센티미터 눈금 글자를 쓴다.
86
- let text = (idx / 10).toString();
87
- let metrics = ctx.measureText(text);
88
- ctx.fillText(text, pos - origin - metrics.width - 6, ypos_txt);
89
- } else if (idx % 5 == 0) {
90
- ctx.moveTo(pos - origin, ypos_5m);
91
- ctx.lineTo(pos - origin, end_pos);
92
- } else {
93
- ctx.moveTo(pos - origin, ypos_mm);
94
- ctx.lineTo(pos - origin, end_pos);
95
- }
96
- idx += step;
97
- pos = Math.ceil(idx * ppm);
98
- }
99
- }
100
- }
101
- exports.default = Ruler;
102
- _component.default.register('ruler', Ruler);
103
- //# sourceMappingURL=ruler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruler.js","names":["_component","_interopRequireDefault","require","_shape","_rectPath","e","__esModule","default","STEPS","Ruler","RectPath","Shape","render","ctx","lineWidth","fillStyle","font","left","top","rotation","origin","margin","width","height","side","strokeStyle","scale","state","translate","beginPath","clip_bound","Math","round","rect","clip","fill","stroke","top_side","end_pos","ypos_mm","ypos_5m","ypos_cm","ypos_txt","ppm","app","PPM","root","unitScale","idx","ceil","ratio","step","pos","end","moveTo","lineTo","text","toString","metrics","measureText","fillText","exports","Component","register"],"sources":["../../src/components/ruler.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Shape from './shape.js'\nimport RectPath from './mixins/rect-path.js'\n\nconst STEPS = [1, 2, 10, 20, 50, 50, 50, 50, 50, 50]\n\nexport default class Ruler extends RectPath(Shape) {\n render(ctx) {\n const {\n lineWidth = 1,\n fillStyle = 'lightgray',\n font = '15px Arial',\n left,\n top,\n rotation,\n origin,\n margin,\n width,\n height,\n side = 'bottom',\n strokeStyle = '#000000',\n scale = 1\n } = this.state\n\n /* 좌표 기준을 0, 0로 하기위해서 이동 */\n ctx.translate(left, top)\n\n // Clipping (여유있게 박스를 잡아주지 않으면.. 회전시 edge가 지저분해보인다.)\n ctx.beginPath()\n\n const clip_bound = Math.round(lineWidth / 2)\n ctx.rect(-clip_bound, -clip_bound, width + clip_bound * 2, height + clip_bound * 2)\n ctx.clip()\n\n // Boxing\n ctx.beginPath()\n\n ctx.rect(0, 0, width, height)\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle\n ctx.fill()\n }\n ctx.lineWidth = lineWidth\n ctx.strokeStyle = strokeStyle\n\n ctx.stroke()\n\n // Draw Scales & Text\n ctx.beginPath()\n\n ctx.font = font\n\n // 자의 눈금을 위쪽에 그리는 경우에는 top_side가 true이다.\n var top_side = side !== 'bottom'\n\n var end_pos = top_side ? 0 : height\n\n var ypos_mm = (height * 4) / 5\n var ypos_5m = (height * 2) / 3\n var ypos_cm = (height * 1) / 2\n var ypos_txt = (height * 3) / 5\n\n if (top_side) {\n ypos_mm = height - ypos_mm\n ypos_5m = height - ypos_5m\n ypos_cm = height - ypos_cm\n ypos_txt = height - (height * 1.5) / 5\n }\n\n var ppm = (scale * this.app.PPM) / this.root.unitScale\n\n var idx = Math.ceil(origin / ppm) // First Index\n\n var ratio = this.app.PPM / ppm\n var step = ratio <= 1.1 ? 1 : STEPS[Math.round(ratio)] || 100\n\n if (step != 1) idx += (step - (idx % step)) % step\n\n var pos = Math.ceil(idx * ppm)\n var end = origin + width\n\n ctx.fillStyle = strokeStyle\n\n while (pos < end) {\n if (idx % 10 == 0) {\n ctx.moveTo(pos - origin, ypos_cm)\n ctx.lineTo(pos - origin, end_pos)\n\n // 센티미터 눈금 글자를 쓴다.\n let text = (idx / 10).toString()\n let metrics = ctx.measureText(text)\n\n ctx.fillText(text, pos - origin - metrics.width - 6, ypos_txt)\n } else if (idx % 5 == 0) {\n ctx.moveTo(pos - origin, ypos_5m)\n ctx.lineTo(pos - origin, end_pos)\n } else {\n ctx.moveTo(pos - origin, ypos_mm)\n ctx.lineTo(pos - origin, end_pos)\n }\n\n idx += step\n pos = Math.ceil(idx * ppm)\n }\n }\n}\n\nComponent.register('ruler', Ruler)\n"],"mappings":"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","ignoreList":[]}
@@ -1,97 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- /*
10
- * Copyright © HatioLab Inc. All rights reserved.
11
- */
12
-
13
- /**
14
- * Shape 컴포넌트는 단순한 형태의 컴포넌트의 공통 기능을 정의한 추상클래스이다.
15
- * 단순한 형태의 컴포넌트란
16
- * - 컴포넌트 전체에서 라인 스타일이 하나만 사용된다.
17
- * - 컴포넌트 전체에서 FILL 스타일이 하나만 사용된다.
18
- *
19
- * 이런 단순한 컴포넌트는 render 메쏘드에서 모든 패스를 lineTo로 그리기만 하고
20
- * postrender에서 Fill, Stroke을 일괄적으로 한다.
21
- */
22
- class Shape extends _component.default {
23
- set rotationX(angle) {
24
- this.setState('rotationX', angle);
25
- }
26
- get rotationX() {
27
- return this.getState('rotationX');
28
- }
29
- set rotationY(angle) {
30
- this.setState('rotationY', angle);
31
- }
32
- get rotationY() {
33
- return this.getState('rotationY');
34
- }
35
- set rotationZ(angle) {
36
- this.setState('rotation', angle);
37
- }
38
- get rotationZ() {
39
- return this.getState('rotation');
40
- }
41
- set zPos(zPos) {
42
- this.setState('zPos', zPos);
43
- }
44
- get zPos() {
45
- return this.getState('zPos');
46
- }
47
- set depth(depth) {
48
- this.setState('depth', depth);
49
- }
50
- get depth() {
51
- return this.getState('depth');
52
- }
53
- postrender(context) {
54
- this.drawFill(context);
55
- this.drawStroke(context);
56
- super.postrender(context);
57
- }
58
- render(ctx) {
59
- var path = this.drawPath;
60
- var {
61
- round = 0
62
- } = this.state;
63
- if (path.length <= 1) {
64
- return;
65
- }
66
- ctx.beginPath();
67
- for (var i = 0; i < path.length; i++) {
68
- const prev = path[(i - 1 + path.length) % path.length];
69
- const cursor = path[(i + path.length) % path.length];
70
- const next = path[(i + 1) % path.length];
71
- if (prev.x === cursor.x && prev.y === cursor.y) {
72
- continue;
73
- }
74
- var length = Math.sqrt((prev.x - cursor.x) * (prev.x - cursor.x) + (prev.y - cursor.y) * (prev.y - cursor.y));
75
- var theta = length !== 0 ? Math.atan2(prev.x - cursor.x, prev.y - cursor.y) : 0;
76
- var x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x;
77
- var y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y;
78
- const p1 = round > 0 || length !== 0 ? {
79
- x,
80
- y
81
- } : cursor;
82
- var length = Math.sqrt((next.x - cursor.x) * (next.x - cursor.x) + (next.y - cursor.y) * (next.y - cursor.y));
83
- theta = length !== 0 ? Math.atan2(next.x - cursor.x, next.y - cursor.y) : 0;
84
- x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x;
85
- y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y;
86
- const p2 = round > 0 || length !== 0 ? {
87
- x,
88
- y
89
- } : cursor;
90
- i == 0 ? ctx.moveTo(p1.x, p1.y) : ctx.lineTo(p1.x, p1.y);
91
- round > 0 && ctx.quadraticCurveTo(cursor.x, cursor.y, p2.x, p2.y);
92
- }
93
- ctx.closePath();
94
- }
95
- }
96
- exports.default = Shape;
97
- //# sourceMappingURL=shape.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shape.js","names":["_component","_interopRequireDefault","require","e","__esModule","default","Shape","Component","rotationX","angle","setState","getState","rotationY","rotationZ","zPos","depth","postrender","context","drawFill","drawStroke","render","ctx","path","drawPath","round","state","length","beginPath","i","prev","cursor","next","x","y","Math","sqrt","theta","atan2","sin","min","cos","p1","p2","moveTo","lineTo","quadraticCurveTo","closePath","exports"],"sources":["../../src/components/shape.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\n\n/**\n * Shape 컴포넌트는 단순한 형태의 컴포넌트의 공통 기능을 정의한 추상클래스이다.\n * 단순한 형태의 컴포넌트란\n * - 컴포넌트 전체에서 라인 스타일이 하나만 사용된다.\n * - 컴포넌트 전체에서 FILL 스타일이 하나만 사용된다.\n *\n * 이런 단순한 컴포넌트는 render 메쏘드에서 모든 패스를 lineTo로 그리기만 하고\n * postrender에서 Fill, Stroke을 일괄적으로 한다.\n */\nexport default class Shape extends Component {\n set rotationX(angle) {\n this.setState('rotationX', angle)\n }\n\n get rotationX() {\n return this.getState('rotationX')\n }\n\n set rotationY(angle) {\n this.setState('rotationY', angle)\n }\n\n get rotationY() {\n return this.getState('rotationY')\n }\n\n set rotationZ(angle) {\n this.setState('rotation', angle)\n }\n\n get rotationZ() {\n return this.getState('rotation')\n }\n\n set zPos(zPos) {\n this.setState('zPos', zPos)\n }\n\n get zPos() {\n return this.getState('zPos')\n }\n\n set depth(depth) {\n this.setState('depth', depth)\n }\n\n get depth() {\n return this.getState('depth')\n }\n\n postrender(context) {\n this.drawFill(context)\n this.drawStroke(context)\n super.postrender(context)\n }\n\n render(ctx) {\n var path = this.drawPath\n var { round = 0 } = this.state\n\n if (path.length <= 1) {\n return\n }\n\n ctx.beginPath()\n\n for (var i = 0; i < path.length; i++) {\n const prev = path[(i - 1 + path.length) % path.length]\n const cursor = path[(i + path.length) % path.length]\n const next = path[(i + 1) % path.length]\n\n if (prev.x === cursor.x && prev.y === cursor.y) {\n continue\n }\n\n var length = Math.sqrt((prev.x - cursor.x) * (prev.x - cursor.x) + (prev.y - cursor.y) * (prev.y - cursor.y))\n var theta = length !== 0 ? Math.atan2(prev.x - cursor.x, prev.y - cursor.y) : 0\n var x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n var y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p1 = round > 0 || length !== 0 ? { x, y } : cursor\n\n var length = Math.sqrt((next.x - cursor.x) * (next.x - cursor.x) + (next.y - cursor.y) * (next.y - cursor.y))\n theta = length !== 0 ? Math.atan2(next.x - cursor.x, next.y - cursor.y) : 0\n x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p2 = round > 0 || length !== 0 ? { x, y } : cursor\n\n i == 0 ? ctx.moveTo(p1.x, p1.y) : ctx.lineTo(p1.x, p1.y)\n round > 0 && ctx.quadraticCurveTo(cursor.x, cursor.y, p2.x, p2.y)\n }\n\n ctx.closePath()\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,103 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- var _ellipse = _interopRequireDefault(require("./ellipse.js"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /*
11
- * Copyright © HatioLab Inc. All rights reserved.
12
- */
13
-
14
- const NATURE = {
15
- mutable: false,
16
- resizable: true,
17
- rotatable: true,
18
- properties: [{
19
- type: 'number',
20
- label: 'ratio',
21
- name: 'ratio',
22
- property: 'ratio'
23
- }, {
24
- type: 'number',
25
- label: 'wing',
26
- name: 'wing',
27
- property: 'wing'
28
- }],
29
- help: 'scene/component/star'
30
- };
31
- var controlHandler = {
32
- ondragmove: function (point, index, component) {
33
- var controls = component.controls;
34
- var {
35
- cy,
36
- ry
37
- } = component.model;
38
- var transcoorded = component.transcoordP2S(point.x, point.y);
39
- var ratio = (transcoorded.y - cy) / ry * 100 + 100;
40
- if (ratio >= 100) ratio = 100;else if (ratio <= 0) ratio = 0;
41
- component.set({
42
- ratio
43
- }); // ratio: ratio => ratio
44
- }
45
- };
46
- class Star extends _ellipse.default {
47
- is3dish() {
48
- return false;
49
- }
50
- render(ctx) {
51
- var {
52
- ratio = 30,
53
- wing = 5,
54
- cx,
55
- cy,
56
- rx,
57
- ry,
58
- startAngle,
59
- endAngle,
60
- anticlockwise
61
- } = this.state;
62
-
63
- // 박스 그리기
64
-
65
- if (wing < 3) return;
66
- const RADIAN = 1.5707963267948966; // 90도 뒤틀기
67
- var a = Math.PI * 2 / wing;
68
- var xRatio = rx - ratio / 100 * rx;
69
- var yRatio = ry - ratio / 100 * ry;
70
- ctx.save();
71
- ctx.beginPath();
72
- ctx.translate(cx, cy);
73
- ctx.moveTo(rx * Math.cos(-RADIAN), ry * Math.sin(-RADIAN));
74
- ctx.lineTo((rx - xRatio) * (Math.cos(a - RADIAN) + Math.cos(0 - RADIAN)) / 2, (ry - yRatio) * (Math.sin(a - RADIAN) + Math.sin(0 - RADIAN)) / 2);
75
- for (var i = 1; i < wing; i++) {
76
- ctx.lineTo(rx * Math.cos(a * i - RADIAN), ry * Math.sin(a * i - RADIAN));
77
- ctx.lineTo((rx - xRatio) * (Math.cos(a * (i + 1) - RADIAN) + Math.cos(a * i - RADIAN)) / 2, (ry - yRatio) * (Math.sin(a * (i + 1) - RADIAN) + Math.sin(a * i - RADIAN)) / 2);
78
- }
79
- // ratio /= 1.5;
80
- ctx.closePath();
81
- ctx.restore();
82
- }
83
- get controls() {
84
- var {
85
- cx,
86
- cy,
87
- ry,
88
- ratio
89
- } = this.state;
90
- return [{
91
- x: cx,
92
- y: cy - ry + ry * (ratio / 100),
93
- handler: controlHandler
94
- }];
95
- }
96
- get nature() {
97
- return NATURE;
98
- }
99
- }
100
- exports.default = Star;
101
- _component.default.memoize(Star.prototype, 'controls', false);
102
- _component.default.register('star', Star);
103
- //# sourceMappingURL=star.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"star.js","names":["_component","_interopRequireDefault","require","_ellipse","e","__esModule","default","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","help","controlHandler","ondragmove","point","index","component","controls","cy","ry","model","transcoorded","transcoordP2S","x","y","ratio","set","Star","Ellipse","is3dish","render","ctx","wing","cx","rx","startAngle","endAngle","anticlockwise","state","RADIAN","a","Math","PI","xRatio","yRatio","save","beginPath","translate","moveTo","cos","sin","lineTo","i","closePath","restore","handler","nature","exports","Component","memoize","prototype","register"],"sources":["../../src/components/star.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Ellipse from './ellipse.js'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'ratio',\n name: 'ratio',\n property: 'ratio'\n },\n {\n type: 'number',\n label: 'wing',\n name: 'wing',\n property: 'wing'\n }\n ],\n help: 'scene/component/star'\n}\n\nvar controlHandler = {\n ondragmove: function (point, index, component) {\n var controls = component.controls\n var { cy, ry } = component.model\n\n var transcoorded = component.transcoordP2S(point.x, point.y)\n\n var ratio = ((transcoorded.y - cy) / ry) * 100 + 100\n\n if (ratio >= 100) ratio = 100\n else if (ratio <= 0) ratio = 0\n\n component.set({ ratio }) // ratio: ratio => ratio\n }\n}\n\nexport default class Star extends Ellipse {\n is3dish() {\n return false\n }\n\n render(ctx) {\n var { ratio = 30, wing = 5, cx, cy, rx, ry, startAngle, endAngle, anticlockwise } = this.state\n\n // 박스 그리기\n\n if (wing < 3) return\n\n const RADIAN = 1.5707963267948966 // 90도 뒤틀기\n var a = (Math.PI * 2) / wing\n var xRatio = rx - (ratio / 100) * rx\n var yRatio = ry - (ratio / 100) * ry\n\n ctx.save()\n ctx.beginPath()\n\n ctx.translate(cx, cy)\n\n ctx.moveTo(rx * Math.cos(-RADIAN), ry * Math.sin(-RADIAN))\n ctx.lineTo(\n ((rx - xRatio) * (Math.cos(a - RADIAN) + Math.cos(0 - RADIAN))) / 2,\n ((ry - yRatio) * (Math.sin(a - RADIAN) + Math.sin(0 - RADIAN))) / 2\n )\n\n for (var i = 1; i < wing; i++) {\n ctx.lineTo(rx * Math.cos(a * i - RADIAN), ry * Math.sin(a * i - RADIAN))\n\n ctx.lineTo(\n ((rx - xRatio) * (Math.cos(a * (i + 1) - RADIAN) + Math.cos(a * i - RADIAN))) / 2,\n ((ry - yRatio) * (Math.sin(a * (i + 1) - RADIAN) + Math.sin(a * i - RADIAN))) / 2\n )\n }\n // ratio /= 1.5;\n ctx.closePath()\n ctx.restore()\n }\n\n get controls() {\n var { cx, cy, ry, ratio } = this.state\n\n return [\n {\n x: cx,\n y: cy - ry + ry * (ratio / 100),\n handler: controlHandler\n }\n ]\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.memoize(Star.prototype, 'controls', false)\n\nComponent.register('star', Star)\n"],"mappings":"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","ignoreList":[]}
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.access = access;
7
- exports.buildSubstitutor = buildSubstitutor;
8
- exports.substitute = substitute;
9
- var _utils = require("../../core/utils.js");
10
- /*
11
- * Copyright © HatioLab Inc. All rights reserved.
12
- */
13
-
14
- const SELF = function (o) {
15
- return o;
16
- };
17
- function parse(text) {
18
- var defaultIndex = text.indexOf('||');
19
- var originText = '';
20
- var defaultValue = '';
21
- if (defaultIndex != -1) {
22
- originText = text;
23
- defaultValue = text.substring(defaultIndex + 2, text.length - 1).trim();
24
- text = text.replace(text.substring(defaultIndex, text.length - 1), '').trim();
25
- }
26
- var parsed = text.substr(2, text.length - 3).trim().replace(/\[(\w+)\]/g, '.$1').replace(/^\./, '').split('.').filter(accessor => !!accessor.trim());
27
- var accessors = parsed.slice(1);
28
- return {
29
- defaultValue: defaultValue,
30
- match: text,
31
- originText: originText || text,
32
- target: parsed[0],
33
- accessor: accessors.length > 0 ? function (o) {
34
- return accessors.reduce((o, accessor) => o ? o[accessor] : undefined, o);
35
- } : SELF
36
- };
37
- }
38
- function access(expression) {
39
- if (!expression) return;
40
- var text = String(expression);
41
- var prop = (text.match(/#{(\S*)}/) || []).map(match => parse(match))[0];
42
- if (prop) {
43
- return prop.accessor(this.getState(prop.target));
44
- }
45
- var id = (text.match(/\${[^}]*}/) || []).map(match => parse(match))[0];
46
- if (id) {
47
- let target = this.root.findById(id.target);
48
- return id.accessor(this.getState(target));
49
- }
50
- return expression;
51
- }
52
- function substitute(expression, customObjToVal) {
53
- if (!expression) return;
54
- var text = String(expression);
55
- var _objToVal = customObjToVal || _utils.objToVal;
56
- var props = (text.match(/#{(\S*)}/gi) || []).map(match => parse(match));
57
- var ids = (text.match(/\${[^}]*}/gi) || []).map(match => parse(match));
58
- if (props.length == 0 && ids.length == 0) return text;
59
- var result = text;
60
- props.forEach(prop => {
61
- let value = _objToVal(prop.accessor(this.getState(prop.target)));
62
- result = result.replace(prop.match, value === undefined ? '' : value);
63
- });
64
- ids.forEach(id => {
65
- let target = this.root.findById(id.target);
66
- let value = _objToVal(id.accessor(target && target.data));
67
- result = result.replace(id.match, value === undefined ? '' : value);
68
- });
69
- return result;
70
- }
71
- function buildSubstitutor(expression, component, customObjToVal) {
72
- if (!expression) return;
73
- var _objToVal = customObjToVal || _utils.objToVal;
74
- var text = String(expression);
75
- var props = (text.match(/#{[^}]*}/gi) || []).map(match => parse(match));
76
- var ids = (text.match(/\${[^}]*}/gi) || []).map(match => parse(match));
77
- if (props.length == 0 && ids.length == 0) return;
78
- return function () {
79
- var result = text;
80
- props.forEach(prop => {
81
- let value = _objToVal(prop.accessor(component.getState(prop.target)));
82
- result = result.replace(prop.originText, value === undefined ? prop.defaultValue || '' : value);
83
- });
84
- ids.forEach(id => {
85
- let target = component.root.findById(id.target);
86
- let value = _objToVal(id.accessor(target && target.data));
87
- result = result.replace(id.originText, value === undefined ? id.defaultValue || '' : value);
88
- });
89
- return result;
90
- };
91
- }
92
- //# sourceMappingURL=substitutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"substitutor.js","names":["_utils","require","SELF","o","parse","text","defaultIndex","indexOf","originText","defaultValue","substring","length","trim","replace","parsed","substr","split","filter","accessor","accessors","slice","match","target","reduce","undefined","access","expression","String","prop","map","getState","id","root","findById","substitute","customObjToVal","_objToVal","objToVal","props","ids","result","forEach","value","data","buildSubstitutor","component"],"sources":["../../../src/components/text/substitutor.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { objToVal } from '../../core/utils.js'\n\nconst SELF = function (o) {\n return o\n}\n\nfunction parse(text) {\n var defaultIndex = text.indexOf('||')\n var originText = ''\n var defaultValue = ''\n if (defaultIndex != -1) {\n originText = text\n defaultValue = text.substring(defaultIndex + 2, text.length - 1).trim()\n text = text.replace(text.substring(defaultIndex, text.length - 1), '').trim()\n }\n var parsed = text\n .substr(2, text.length - 3)\n .trim()\n .replace(/\\[(\\w+)\\]/g, '.$1')\n .replace(/^\\./, '')\n .split('.')\n .filter(accessor => !!accessor.trim())\n var accessors = parsed.slice(1)\n return {\n defaultValue: defaultValue,\n match: text,\n originText: originText || text,\n target: parsed[0],\n accessor:\n accessors.length > 0\n ? function (o) {\n return accessors.reduce((o, accessor) => (o ? o[accessor] : undefined), o)\n }\n : SELF\n }\n}\n\nexport function access(expression) {\n if (!expression) return\n\n var text = String(expression)\n\n var prop = (text.match(/#{(\\S*)}/) || []).map(match => parse(match))[0]\n if (prop) {\n return prop.accessor(this.getState(prop.target))\n }\n\n var id = (text.match(/\\${[^}]*}/) || []).map(match => parse(match))[0]\n if (id) {\n let target = this.root.findById(id.target)\n return id.accessor(this.getState(target))\n }\n\n return expression\n}\n\nexport function substitute(expression, customObjToVal) {\n if (!expression) return\n\n var text = String(expression)\n var _objToVal = customObjToVal || objToVal\n\n var props = (text.match(/#{(\\S*)}/gi) || []).map(match => parse(match))\n var ids = (text.match(/\\${[^}]*}/gi) || []).map(match => parse(match))\n\n if (props.length == 0 && ids.length == 0) return text\n\n var result = text\n props.forEach(prop => {\n let value = _objToVal(prop.accessor(this.getState(prop.target)))\n result = result.replace(prop.match, value === undefined ? '' : value)\n })\n\n ids.forEach(id => {\n let target = this.root.findById(id.target)\n let value = _objToVal(id.accessor(target && target.data))\n result = result.replace(id.match, value === undefined ? '' : value)\n })\n\n return result\n}\n\nexport function buildSubstitutor(expression, component, customObjToVal) {\n if (!expression) return\n\n var _objToVal = customObjToVal || objToVal\n\n var text = String(expression)\n var props = (text.match(/#{[^}]*}/gi) || []).map(match => parse(match))\n var ids = (text.match(/\\${[^}]*}/gi) || []).map(match => parse(match))\n\n if (props.length == 0 && ids.length == 0) return\n\n return function () {\n var result = text\n props.forEach(prop => {\n let value = _objToVal(prop.accessor(component.getState(prop.target)))\n result = result.replace(prop.originText, value === undefined ? prop.defaultValue || '' : value)\n })\n\n ids.forEach(id => {\n let target = component.root.findById(id.target)\n let value = _objToVal(id.accessor(target && target.data))\n result = result.replace(id.originText, value === undefined ? id.defaultValue || '' : value)\n })\n\n return result\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- var _rectPath = _interopRequireDefault(require("./mixins/rect-path.js"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /*
11
- * Copyright © HatioLab Inc. All rights reserved.
12
- */
13
-
14
- class Text extends (0, _rectPath.default)(_component.default) {
15
- is3dish() {
16
- return true;
17
- }
18
- }
19
- exports.default = Text;
20
- _component.default.register('text', Text);
21
- //# sourceMappingURL=text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","names":["_component","_interopRequireDefault","require","_rectPath","e","__esModule","default","Text","RectPath","Component","is3dish","exports","register"],"sources":["../../src/components/text.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\n\nimport RectPath from './mixins/rect-path.js'\n\nexport default class Text extends RectPath(Component) {\n is3dish() {\n return true\n }\n}\n\nComponent.register('text', Text)\n"],"mappings":";;;;;;AAIA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA4C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAN5C;AACA;AACA;;AAMe,MAAMG,IAAI,SAAS,IAAAC,iBAAQ,EAACC,kBAAS,CAAC,CAAC;EACpDC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI;EACb;AACF;AAACC,OAAA,CAAAL,OAAA,GAAAC,IAAA;AAEDE,kBAAS,CAACG,QAAQ,CAAC,MAAM,EAAEL,IAAI,CAAC","ignoreList":[]}
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- var _shape = _interopRequireDefault(require("./shape.js"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /*
11
- * Copyright © HatioLab Inc. All rights reserved.
12
- */
13
-
14
- const NATURE = {
15
- mutable: true,
16
- resizable: false,
17
- rotatable: true,
18
- properties: [{
19
- type: 'number',
20
- label: 'round',
21
- name: 'round',
22
- property: {
23
- min: 0,
24
- max: 100,
25
- step: 1
26
- }
27
- }],
28
- help: 'scene/component/triangle'
29
- };
30
- class Triangle extends _shape.default {
31
- contains(x, y) {
32
- var {
33
- x1,
34
- y1,
35
- x2,
36
- y2,
37
- x3,
38
- y3
39
- } = this.state;
40
- var path = [x1, y1, x2, y2, x3, y3];
41
- var result = false;
42
- for (let i = 0; i < path.length; i += 2) {
43
- let j = (i + 2) % path.length;
44
- let x1 = path[i];
45
- let y1 = path[i + 1];
46
- let x2 = path[j];
47
- let y2 = path[j + 1];
48
- if (y1 > y != y2 > y && x < (x2 - x1) * (y - y1) / (y2 - y1) + x1) result = !result;
49
- }
50
- return result;
51
- }
52
- get mutable() {
53
- return true;
54
- }
55
- get path() {
56
- var {
57
- x1,
58
- y1,
59
- x2,
60
- y2,
61
- x3,
62
- y3
63
- } = this.state;
64
- return [{
65
- x: x1,
66
- y: y1
67
- }, {
68
- x: x2,
69
- y: y2
70
- }, {
71
- x: x3,
72
- y: y3
73
- }];
74
- }
75
- set path(path) {
76
- this.set({
77
- x1: path[0].x,
78
- y1: path[0].y,
79
- x2: path[1].x,
80
- y2: path[1].y,
81
- x3: path[2].x,
82
- y3: path[2].y
83
- });
84
- }
85
- get nature() {
86
- return NATURE;
87
- }
88
- }
89
- exports.default = Triangle;
90
- _component.default.memoize(Triangle.prototype, 'path', false);
91
- _component.default.register('triangle', Triangle);
92
- //# sourceMappingURL=triangle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"triangle.js","names":["_component","_interopRequireDefault","require","_shape","e","__esModule","default","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","min","max","step","help","Triangle","Shape","contains","x","y","x1","y1","x2","y2","x3","y3","state","path","result","i","length","j","set","nature","exports","Component","memoize","prototype","register"],"sources":["../../src/components/triangle.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Shape from './shape.js'\n\nconst NATURE = {\n mutable: true,\n resizable: false,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n }\n ],\n help: 'scene/component/triangle'\n}\n\nexport default class Triangle extends Shape {\n contains(x, y) {\n var { x1, y1, x2, y2, x3, y3 } = this.state\n var path = [x1, y1, x2, y2, x3, y3]\n\n var result = false\n\n for (let i = 0; i < path.length; i += 2) {\n let j = (i + 2) % path.length\n let x1 = path[i]\n let y1 = path[i + 1]\n let x2 = path[j]\n let y2 = path[j + 1]\n\n if (y1 > y != y2 > y && x < ((x2 - x1) * (y - y1)) / (y2 - y1) + x1) result = !result\n }\n\n return result\n }\n\n get mutable() {\n return true\n }\n\n get path() {\n var { x1, y1, x2, y2, x3, y3 } = this.state\n\n return [\n {\n x: x1,\n y: y1\n },\n {\n x: x2,\n y: y2\n },\n {\n x: x3,\n y: y3\n }\n ]\n }\n\n set path(path) {\n this.set({\n x1: path[0].x,\n y1: path[0].y,\n x2: path[1].x,\n y2: path[1].y,\n x3: path[2].x,\n y3: path[2].y\n })\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.memoize(Triangle.prototype, 'path', false)\n\nComponent.register('triangle', Triangle)\n"],"mappings":"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","ignoreList":[]}