@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 = buildEvaluator;
7
- var _logger = require("../../core/logger.js");
8
- var _utils = require("../../core/utils.js");
9
- /*
10
- * Copyright © HatioLab Inc. All rights reserved.
11
- */
12
-
13
- function tostring(value) {
14
- var v = (0, _utils.objToVal)(value);
15
- return v == undefined ? '' : String(v);
16
- }
17
- function tonumber(value) {
18
- return Number((0, _utils.objToVal)(value));
19
- }
20
-
21
- /* 값을 그대로 반환하는 evaluator */
22
- function value(value) {
23
- return value;
24
- }
25
- function valueString(value) {
26
- return tostring(value);
27
- }
28
- function valueNumber(value) {
29
- return tonumber(value);
30
- }
31
-
32
- /* map에 매핑된 값을 반환하는 evaluator */
33
- function map(value) {
34
- if (!this.param) return;
35
- value = tostring(value);
36
- if (this.param.hasOwnProperty(value)) return this.param[value];
37
- return this.param['default'];
38
- }
39
-
40
- /* 범위에 매핑된 값을 반환하는 evaluator */
41
- function range(value) {
42
- var {
43
- param
44
- } = this;
45
- if (!param) return;
46
- for (let range in param) {
47
- let [from, to] = range.split('~');
48
- let from_defined = !!from;
49
- let to_defined = !!to;
50
-
51
- // if(type === 'number') {
52
- from = parseFloat(from);
53
- to = parseFloat(to);
54
- value = tonumber(value);
55
- // } else {
56
- // from = String(from)
57
- // to = String(to)
58
- // value = tostring(value)
59
- // }
60
-
61
- // from이나 to 둘 중 하나만 있는 경우 먼저 계산
62
- if (from_defined && !to_defined && value >= from) return param[range];else if (!from_defined && to_defined && value < from) return param[range];
63
-
64
- // 소수점이 있으므로 from <= value < to 가 되야함
65
- if (value >= from && value < to) return param[range];
66
- }
67
- return param['default'];
68
- }
69
-
70
- /* degree 값을 radian으로 변환하는 evaluator */
71
- function radian(value) {
72
- return tonumber(value) * Math.PI / 180;
73
- }
74
- function noop() {}
75
-
76
- /* 자바스크립트 로직으로 문자열을 evaluator로 변환 */
77
- function build(script) {
78
- try {
79
- return new Function('value', 'targets', script);
80
- } catch (e) {
81
- (0, _logger.error)(e);
82
- return noop;
83
- }
84
- }
85
- function buildEvaluator(mapping, owner, rule, param, type) {
86
- switch (rule) {
87
- case 'value':
88
- if (type === 'text' || type === 'string') return valueString.bind(mapping);
89
- if (type === 'number') return valueNumber.bind(mapping);
90
- return value.bind(owner);
91
- case 'map':
92
- return map.bind(mapping);
93
- case 'range':
94
- return range.bind(mapping);
95
- case 'radian':
96
- return radian.bind(mapping);
97
- case 'eval':
98
- return build(param).bind(owner);
99
- default:
100
- return value.bind(owner);
101
- }
102
- }
103
- //# sourceMappingURL=evaluator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.js","names":["_logger","require","_utils","tostring","value","v","objToVal","undefined","String","tonumber","Number","valueString","valueNumber","map","param","hasOwnProperty","range","from","to","split","from_defined","to_defined","parseFloat","radian","Math","PI","noop","build","script","Function","e","error","buildEvaluator","mapping","owner","rule","type","bind"],"sources":["../../../src/components/data/evaluator.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { error } from '../../core/logger.js'\nimport { objToVal } from '../../core/utils.js'\n\nfunction tostring(value) {\n var v = objToVal(value)\n return v == undefined ? '' : String(v)\n}\n\nfunction tonumber(value) {\n return Number(objToVal(value))\n}\n\n/* 값을 그대로 반환하는 evaluator */\nfunction value(value) {\n return value\n}\n\nfunction valueString(value) {\n return tostring(value)\n}\n\nfunction valueNumber(value) {\n return tonumber(value)\n}\n\n/* map에 매핑된 값을 반환하는 evaluator */\nfunction map(value) {\n if (!this.param) return\n\n value = tostring(value)\n\n if (this.param.hasOwnProperty(value)) return this.param[value]\n\n return this.param['default']\n}\n\n/* 범위에 매핑된 값을 반환하는 evaluator */\nfunction range(value) {\n var { param } = this\n\n if (!param) return\n\n for (let range in param) {\n let [from, to] = range.split('~')\n let from_defined = !!from\n let to_defined = !!to\n\n // if(type === 'number') {\n from = parseFloat(from)\n to = parseFloat(to)\n value = tonumber(value)\n // } else {\n // from = String(from)\n // to = String(to)\n // value = tostring(value)\n // }\n\n // from이나 to 둘 중 하나만 있는 경우 먼저 계산\n if (from_defined && !to_defined && value >= from) return param[range]\n else if (!from_defined && to_defined && value < from) return param[range]\n\n // 소수점이 있으므로 from <= value < to 가 되야함\n if (value >= from && value < to) return param[range]\n }\n\n return param['default']\n}\n\n/* degree 값을 radian으로 변환하는 evaluator */\nfunction radian(value) {\n return (tonumber(value) * Math.PI) / 180\n}\n\nfunction noop() {}\n\n/* 자바스크립트 로직으로 문자열을 evaluator로 변환 */\nfunction build(script) {\n try {\n return new Function('value', 'targets', script)\n } catch (e) {\n error(e)\n return noop\n }\n}\n\nexport default function buildEvaluator(mapping, owner, rule, param, type) {\n switch (rule) {\n case 'value':\n if (type === 'text' || type === 'string') return valueString.bind(mapping)\n if (type === 'number') return valueNumber.bind(mapping)\n return value.bind(owner)\n case 'map':\n return map.bind(mapping)\n case 'range':\n return range.bind(mapping)\n case 'radian':\n return radian.bind(mapping)\n case 'eval':\n return build(param).bind(owner)\n default:\n return value.bind(owner)\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,104 +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
- help: 'scene/component/donut'
25
- };
26
- var controlHandler = {
27
- ondragmove: function (point, index, component) {
28
- var controls = component.controls;
29
- var {
30
- cx,
31
- rx
32
- } = component.model;
33
- rx = Math.abs(rx);
34
- var transcoorded = component.transcoordP2S(point.x, point.y);
35
- var ratio = (transcoorded.x - cx) / rx * 100;
36
- ratio = ratio >= 100 || ratio <= -100 ? 100 : Math.abs(ratio);
37
- component.set({
38
- ratio
39
- });
40
- }
41
- };
42
- class Donut extends _ellipse.default {
43
- is3dish() {
44
- return false;
45
- }
46
- render(ctx) {
47
- var {
48
- ratio = 50,
49
- cx,
50
- cy,
51
- rx,
52
- ry,
53
- startAngle,
54
- endAngle,
55
- anticlockwise
56
- } = this.state;
57
- rx = Math.abs(rx);
58
- ry = Math.abs(ry);
59
- ctx.beginPath();
60
- ctx.ellipse(cx, cy, rx, ry, 0, startAngle || 0, endAngle || 2 * Math.PI, anticlockwise);
61
- ctx.moveTo(cx + rx / 100 * ratio, cy);
62
- // 맨 마지막 속성이 true면 원의 범위만큼 공백이 됨
63
- ctx.ellipse(cx, cy, rx / 100 * ratio, ry / 100 * ratio, 0, startAngle || 0, endAngle || 2 * Math.PI, true);
64
- }
65
- contains(x, y) {
66
- var {
67
- cx,
68
- cy,
69
- rx,
70
- ry,
71
- ratio
72
- } = this.state;
73
- rx = Math.abs(rx);
74
- ry = Math.abs(ry);
75
- var normx = (x - cx) / (rx * 2 - 0.5);
76
- var normy = (y - cy) / (ry * 2 - 0.5);
77
- var ratiox = (x - cx) / (rx / 100 * ratio * 2 - 0.5);
78
- var ratioy = (y - cy) / (ry / 100 * ratio * 2 - 0.5);
79
- var result = false;
80
- if (normx * normx + normy * normy < 0.25 && ratiox * ratiox + ratioy * ratioy > 0.25) result = !result;
81
- return result;
82
- }
83
- get controls() {
84
- var {
85
- cx,
86
- cy,
87
- rx,
88
- ratio
89
- } = this.state;
90
- rx = Math.abs(rx);
91
- return [{
92
- x: cx + rx / 100 * ratio,
93
- y: cy,
94
- handler: controlHandler
95
- }];
96
- }
97
- get nature() {
98
- return NATURE;
99
- }
100
- }
101
- exports.default = Donut;
102
- _component.default.memoize(Donut.prototype, 'controls', false);
103
- _component.default.register('donut', Donut);
104
- //# sourceMappingURL=donut.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donut.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","cx","rx","model","Math","abs","transcoorded","transcoordP2S","x","y","ratio","set","Donut","Ellipse","is3dish","render","ctx","cy","ry","startAngle","endAngle","anticlockwise","state","beginPath","ellipse","PI","moveTo","contains","normx","normy","ratiox","ratioy","result","handler","nature","exports","Component","memoize","prototype","register"],"sources":["../../src/components/donut.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 help: 'scene/component/donut'\n}\n\nvar controlHandler = {\n ondragmove: function (point, index, component) {\n var controls = component.controls\n var { cx, rx } = component.model\n rx = Math.abs(rx)\n\n var transcoorded = component.transcoordP2S(point.x, point.y)\n\n var ratio = ((transcoorded.x - cx) / rx) * 100\n\n ratio = ratio >= 100 || ratio <= -100 ? 100 : Math.abs(ratio)\n\n component.set({ ratio })\n }\n}\n\nexport default class Donut extends Ellipse {\n is3dish() {\n return false\n }\n\n render(ctx) {\n var { ratio = 50, cx, cy, rx, ry, startAngle, endAngle, anticlockwise } = this.state\n rx = Math.abs(rx)\n ry = Math.abs(ry)\n\n ctx.beginPath()\n ctx.ellipse(cx, cy, rx, ry, 0, startAngle || 0, endAngle || 2 * Math.PI, anticlockwise)\n\n ctx.moveTo(cx + (rx / 100) * ratio, cy)\n // 맨 마지막 속성이 true면 원의 범위만큼 공백이 됨\n ctx.ellipse(cx, cy, (rx / 100) * ratio, (ry / 100) * ratio, 0, startAngle || 0, endAngle || 2 * Math.PI, true)\n }\n\n contains(x, y) {\n var { cx, cy, rx, ry, ratio } = this.state\n rx = Math.abs(rx)\n ry = Math.abs(ry)\n\n var normx = (x - cx) / (rx * 2 - 0.5)\n var normy = (y - cy) / (ry * 2 - 0.5)\n var ratiox = (x - cx) / ((rx / 100) * ratio * 2 - 0.5)\n var ratioy = (y - cy) / ((ry / 100) * ratio * 2 - 0.5)\n var result = false\n\n if (normx * normx + normy * normy < 0.25 && ratiox * ratiox + ratioy * ratioy > 0.25) result = !result\n\n return result\n }\n\n get controls() {\n var { cx, cy, rx, ratio } = this.state\n rx = Math.abs(rx)\n\n return [\n {\n x: cx + (rx / 100) * ratio,\n y: cy,\n handler: controlHandler\n }\n ]\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.memoize(Donut.prototype, 'controls', false)\n\nComponent.register('donut', Donut)\n"],"mappings":"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","ignoreList":[]}
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = drawImage;
7
- /*
8
- * Copyright © HatioLab Inc. All rights reserved.
9
- */
10
-
11
- function drawImage(context, image, left, top, width, height) {
12
- if (image.complete) {
13
- context.drawImage(image, left, top, width, height);
14
- } else {
15
- image.addEventListener('load', () => {
16
- this.invalidate();
17
- });
18
- }
19
- }
20
- //# sourceMappingURL=draw-image-pendable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"draw-image-pendable.js","names":["drawImage","context","image","left","top","width","height","complete","addEventListener","invalidate"],"sources":["../../../src/components/drawer/draw-image-pendable.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport default function drawImage(context, image, left, top, width, height) {\n if (image.complete) {\n context.drawImage(image, left, top, width, height)\n } else {\n image.addEventListener('load', () => {\n this.invalidate()\n })\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEe,SAASA,SAASA,CAACC,OAAO,EAAEC,KAAK,EAAEC,IAAI,EAAEC,GAAG,EAAEC,KAAK,EAAEC,MAAM,EAAE;EAC1E,IAAIJ,KAAK,CAACK,QAAQ,EAAE;IAClBN,OAAO,CAACD,SAAS,CAACE,KAAK,EAAEC,IAAI,EAAEC,GAAG,EAAEC,KAAK,EAAEC,MAAM,CAAC;EACpD,CAAC,MAAM;IACLJ,KAAK,CAACM,gBAAgB,CAAC,MAAM,EAAE,MAAM;MACnC,IAAI,CAACC,UAAU,CAAC,CAAC;IACnB,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = effect;
7
- /*
8
- * Copyright © HatioLab Inc. All rights reserved.
9
- */
10
-
11
- function effect(context) {
12
- const {
13
- effects
14
- } = this.state;
15
- (effects || []).forEach(effect => {
16
- this.effect(context, effect);
17
- });
18
- }
19
- //# sourceMappingURL=effect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"effect.js","names":["effect","context","effects","state","forEach"],"sources":["../../../src/components/drawer/effect.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport default function effect(context) {\n const { effects } = this.state\n\n ;(effects || []).forEach(effect => {\n this.effect(context, effect)\n })\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEe,SAASA,MAAMA,CAACC,OAAO,EAAE;EACtC,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAI,CAACC,KAAK;EAE7B,CAACD,OAAO,IAAI,EAAE,EAAEE,OAAO,CAACJ,MAAM,IAAI;IACjC,IAAI,CAACA,MAAM,CAACC,OAAO,EAAED,MAAM,CAAC;EAC9B,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1,228 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.drawFill = drawFill;
7
- exports.onchangeFill = onchangeFill;
8
- exports.prepareFill = prepareFill;
9
- exports.prepareFillIf = prepareFillIf;
10
- var _const = require("../../const.js");
11
- var _logger = require("../../core/logger.js");
12
- var _elements = require("../html/elements.js");
13
- /*
14
- * Copyright © HatioLab Inc. All rights reserved.
15
- */
16
-
17
- function drawFill(context, bounds, center, style, host_component) {
18
- var {
19
- alpha = 1
20
- } = style;
21
- var fillStyle = host_component.fillStyle;
22
- context.globalAlpha *= alpha;
23
- if (!fillStyle) {
24
- return;
25
- } else if (typeof fillStyle == 'string') {
26
- context.fillStyle = fillStyle;
27
- context.fill();
28
- } else if (typeof fillStyle == 'object') {
29
- if (fillStyle.type == 'gradient') {
30
- context.translate(center.x, center.y); // 센터로 이동
31
-
32
- let grd,
33
- {
34
- width,
35
- height
36
- } = bounds;
37
- if (fillStyle.gradientType == 'linear') {
38
- let degree180 = 3.141592653589793; // 라디안으로 180도 회전
39
- let fRotation = fillStyle.rotation;
40
- if (fRotation >= 0.436332 && fRotation <= 1.13446 || fRotation >= 2.00713 && fRotation <= 2.70526 || fRotation >= 3.57792 && fRotation <= 4.27606 || fRotation >= 5.14872 && fRotation <= 5.84685) {
41
- let diagonal = Math.sqrt(Math.pow((width - 4) / 2, 2) + Math.pow((height - 4) / 2, 2));
42
- diagonal = diagonal - (diagonal - (width + height) / 3);
43
- grd = context.createLinearGradient(diagonal * Math.cos(fRotation + degree180), diagonal * Math.sin(fRotation + degree180), diagonal * Math.cos(fRotation), diagonal * Math.sin(fRotation));
44
- } else {
45
- grd = context.createLinearGradient((width - 4) / 2 * Math.cos(fRotation + degree180), (height - 4) / 2 * Math.sin(fRotation + degree180), (width - 4) / 2 * Math.cos(fRotation), (height - 4) / 2 * Math.sin(fRotation));
46
- }
47
- } else if (fillStyle.gradientType == 'radial') {
48
- let length = Math.sqrt(Math.pow((width - 4) / 2, 2) + Math.pow((height - 4) / 2, 2)) * 0.95;
49
- switch (fillStyle.center) {
50
- case 'center':
51
- grd = context.createRadialGradient(0, 0, 0, 0, 0, length);
52
- break;
53
- case 'left-top':
54
- grd = context.createRadialGradient(-width / 2, -height / 2, 0, -width / 2, -height / 2, length * 2);
55
- break;
56
- case 'right-top':
57
- grd = context.createRadialGradient(width / 2, -height / 2, 0, width / 2, -height / 2, length * 2);
58
- break;
59
- case 'left-bottom':
60
- grd = context.createRadialGradient(-width / 2, height / 2, 0, -width / 2, height / 2, length * 2);
61
- break;
62
- case 'right-bottom':
63
- grd = context.createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, length * 2);
64
- break;
65
- default:
66
- grd = context.createRadialGradient(0, 0, 0, 0, 0, length);
67
- }
68
- }
69
- fillStyle.colorStops.forEach(v => {
70
- // 값이 0~1 가 아니면 애러가 발생하므로 0과 1 사이가 아니면 무시한다.
71
- if (v.position >= 0 && v.position <= 1) {
72
- try {
73
- grd.addColorStop(v.position, v.color);
74
- } catch (e) {
75
- (0, _logger.warn)('Invalid Color for colorstop : ', v.color);
76
- grd.addColorStop(v.position, '#fff');
77
- }
78
- }
79
- });
80
- context.fillStyle = grd;
81
- context.fill();
82
- context.translate(-center.x, -center.y);
83
- } else if (fillStyle.type == 'pattern' && fillStyle.image) {
84
- if (!fillStyle.guideOnly || host_component.app.mode == _const.MODE_EDIT) {
85
- host_component.prepareFillIf(!host_component._pattern_image_origin);
86
- var pattern_image = host_component._pattern_image;
87
- if (!pattern_image) return;
88
- let offsetX = 0,
89
- offsetY = 0,
90
- alignX = 0,
91
- alignY = 0;
92
- let translateX = bounds.left,
93
- translateY = bounds.top;
94
- if (!fillStyle.fitPattern) {
95
- offsetX = fillStyle.offsetX;
96
- offsetY = fillStyle.offsetY;
97
- const patternWidth = fillStyle.width ? fillStyle.width : pattern_image.width;
98
- const patternHeight = fillStyle.height ? fillStyle.height : pattern_image.height;
99
- switch (fillStyle.align) {
100
- case 'center':
101
- alignX = bounds.width / 2 - patternWidth / 2;
102
- alignY = bounds.height / 2 - patternHeight / 2;
103
- break;
104
- case 'left-top':
105
- alignX = 0;
106
- alignY = 0;
107
- break;
108
- case 'left-bottom':
109
- alignX = 0;
110
- alignY = bounds.height - patternHeight;
111
- break;
112
- case 'right-top':
113
- alignX = bounds.width - patternWidth;
114
- alignY = 0;
115
- break;
116
- case 'right-bottom':
117
- alignX = bounds.width - patternWidth;
118
- alignY = bounds.height - patternHeight;
119
- break;
120
- case 'left':
121
- alignX = 0;
122
- alignY = bounds.height / 2 - patternHeight / 2;
123
- break;
124
- case 'right':
125
- alignX = bounds.width - patternWidth;
126
- alignY = bounds.height / 2 - patternHeight / 2;
127
- break;
128
- case 'top':
129
- alignX = bounds.width / 2 - patternWidth / 2;
130
- alignY = 0;
131
- break;
132
- case 'bottom':
133
- alignX = bounds.width / 2 - patternWidth / 2;
134
- alignY = bounds.height - patternHeight;
135
- break;
136
- }
137
- translateX += offsetX + alignX;
138
- translateY += offsetY + alignY;
139
- }
140
- context.translate(translateX, translateY);
141
- if (fillStyle.color) {
142
- context.fillStyle = fillStyle.color;
143
- context.fill();
144
- }
145
- if (fillStyle.fitPattern) {
146
- if (Math.abs((pattern_image.width - bounds.width) * (pattern_image.height - bounds.height)) > 1) {
147
- delete host_component._pattern_image;
148
- delete host_component._pattern_image_origin;
149
- } else {
150
- context.fillStyle = context.createPattern(pattern_image, 'no-repeat');
151
- }
152
- } else {
153
- context.fillStyle = context.createPattern(pattern_image, fillStyle.noRepeat ? 'no-repeat' : 'repeat');
154
- }
155
- context.fill();
156
- context.translate(-translateX, -translateY);
157
- } else {
158
- if (fillStyle.color) {
159
- context.fillStyle = fillStyle.color;
160
- context.fill();
161
- }
162
- }
163
- }
164
- }
165
- }
166
- function prepareFill(resolve, reject) {
167
- var fillStyle = this.fillStyle;
168
- if (!fillStyle || fillStyle.type != 'pattern' || !fillStyle.image) {
169
- resolve(this);
170
- return;
171
- }
172
- if (typeof fillStyle.image !== 'string') {
173
- this._pattern_image_origin = this._pattern_image = fillStyle.image;
174
- resolve(this);
175
- return;
176
- }
177
- this._pattern_image = null;
178
- this._pattern_image_origin = new Image();
179
- var self = this;
180
- this._pattern_image_origin.onload = function () {
181
- if (!fillStyle.fitPattern && !fillStyle.width && !fillStyle.height) {
182
- self._pattern_image = self._pattern_image_origin;
183
- resolve(this);
184
- return;
185
- }
186
- let width = fillStyle.width || this.width;
187
- let height = fillStyle.height || this.height;
188
- if (fillStyle.fitPattern) {
189
- width = self.bounds.width;
190
- height = self.bounds.height;
191
- }
192
- let offscreen_canvas = (0, _elements.createCanvas)(width, height);
193
- let temp_context = offscreen_canvas.getContext('2d');
194
- temp_context.drawImage(this, 0, 0, this.width, this.height, 0, 0, width, height);
195
- self._pattern_image = offscreen_canvas;
196
- resolve(this);
197
- };
198
- this._pattern_image_origin.onerror = function (e) {
199
- reject(e);
200
- };
201
- try {
202
- // this._pattern_image_origin.crossOrigin = 'use-credentials';
203
- if (String(fillStyle.image).substring(0, 4) !== 'data') this._pattern_image_origin.crossOrigin = 'use-credentials';else this._pattern_image_origin.crossOrigin = null;
204
- this._pattern_image_origin.src = this.app.url(fillStyle.image);
205
- } catch (e) {
206
- reject(e);
207
- }
208
- }
209
- function prepareFillIf(condition) {
210
- if (!condition) return;
211
- this.prepareFill(resolve => {
212
- this.invalidate();
213
- }, reject => {
214
- (0, _logger.error)(reject);
215
- });
216
- }
217
- function onchangeFill(after, before) {
218
- var fillStyle = this.fillStyle;
219
- if (fillStyle && fillStyle.type !== 'pattern') {
220
- if (this._pattern_image) {
221
- this._pattern_image = null;
222
- this._pattern_image_origin = null;
223
- }
224
- return;
225
- }
226
- fillStyle?.image && this.prepareFillIf(fillStyle.image);
227
- }
228
- //# sourceMappingURL=fill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fill.js","names":["_const","require","_logger","_elements","drawFill","context","bounds","center","style","host_component","alpha","fillStyle","globalAlpha","fill","type","translate","x","y","grd","width","height","gradientType","degree180","fRotation","rotation","diagonal","Math","sqrt","pow","createLinearGradient","cos","sin","length","createRadialGradient","colorStops","forEach","v","position","addColorStop","color","e","warn","image","guideOnly","app","mode","MODE_EDIT","prepareFillIf","_pattern_image_origin","pattern_image","_pattern_image","offsetX","offsetY","alignX","alignY","translateX","left","translateY","top","fitPattern","patternWidth","patternHeight","align","abs","createPattern","noRepeat","prepareFill","resolve","reject","Image","self","onload","offscreen_canvas","createCanvas","temp_context","getContext","drawImage","onerror","String","substring","crossOrigin","src","url","condition","invalidate","error","onchangeFill","after","before"],"sources":["../../../src/components/drawer/fill.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { MODE_EDIT } from '../../const.js'\nimport { error, warn } from '../../core/logger.js'\nimport { createCanvas } from '../html/elements.js'\n\nexport function drawFill(context, bounds, center, style, host_component) {\n var { alpha = 1 } = style\n var fillStyle = host_component.fillStyle\n\n context.globalAlpha *= alpha\n\n if (!fillStyle) {\n return\n } else if (typeof fillStyle == 'string') {\n context.fillStyle = fillStyle\n\n context.fill()\n } else if (typeof fillStyle == 'object') {\n if (fillStyle.type == 'gradient') {\n context.translate(center.x, center.y) // 센터로 이동\n\n let grd,\n { width, height } = bounds\n\n if (fillStyle.gradientType == 'linear') {\n let degree180 = 3.141592653589793 // 라디안으로 180도 회전\n let fRotation = fillStyle.rotation\n\n if (\n (fRotation >= 0.436332 && fRotation <= 1.13446) ||\n (fRotation >= 2.00713 && fRotation <= 2.70526) ||\n (fRotation >= 3.57792 && fRotation <= 4.27606) ||\n (fRotation >= 5.14872 && fRotation <= 5.84685)\n ) {\n let diagonal = Math.sqrt(Math.pow((width - 4) / 2, 2) + Math.pow((height - 4) / 2, 2))\n diagonal = diagonal - (diagonal - (width + height) / 3)\n\n grd = context.createLinearGradient(\n diagonal * Math.cos(fRotation + degree180),\n diagonal * Math.sin(fRotation + degree180),\n diagonal * Math.cos(fRotation),\n diagonal * Math.sin(fRotation)\n )\n } else {\n grd = context.createLinearGradient(\n ((width - 4) / 2) * Math.cos(fRotation + degree180),\n ((height - 4) / 2) * Math.sin(fRotation + degree180),\n ((width - 4) / 2) * Math.cos(fRotation),\n ((height - 4) / 2) * Math.sin(fRotation)\n )\n }\n } else if (fillStyle.gradientType == 'radial') {\n let length = Math.sqrt(Math.pow((width - 4) / 2, 2) + Math.pow((height - 4) / 2, 2)) * 0.95\n\n switch (fillStyle.center) {\n case 'center':\n grd = context.createRadialGradient(0, 0, 0, 0, 0, length)\n break\n case 'left-top':\n grd = context.createRadialGradient(-width / 2, -height / 2, 0, -width / 2, -height / 2, length * 2)\n break\n case 'right-top':\n grd = context.createRadialGradient(width / 2, -height / 2, 0, width / 2, -height / 2, length * 2)\n break\n case 'left-bottom':\n grd = context.createRadialGradient(-width / 2, height / 2, 0, -width / 2, height / 2, length * 2)\n break\n case 'right-bottom':\n grd = context.createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, length * 2)\n break\n default:\n grd = context.createRadialGradient(0, 0, 0, 0, 0, length)\n }\n }\n\n fillStyle.colorStops.forEach(v => {\n // 값이 0~1 가 아니면 애러가 발생하므로 0과 1 사이가 아니면 무시한다.\n if (v.position >= 0 && v.position <= 1) {\n try {\n grd.addColorStop(v.position, v.color)\n } catch (e) {\n warn('Invalid Color for colorstop : ', v.color)\n grd.addColorStop(v.position, '#fff')\n }\n }\n })\n\n context.fillStyle = grd\n context.fill()\n\n context.translate(-center.x, -center.y)\n } else if (fillStyle.type == 'pattern' && fillStyle.image) {\n if (!fillStyle.guideOnly || host_component.app.mode == MODE_EDIT) {\n host_component.prepareFillIf(!host_component._pattern_image_origin)\n\n var pattern_image = host_component._pattern_image\n if (!pattern_image) return\n\n let offsetX = 0,\n offsetY = 0,\n alignX = 0,\n alignY = 0\n\n let translateX = bounds.left,\n translateY = bounds.top\n\n if (!fillStyle.fitPattern) {\n offsetX = fillStyle.offsetX\n offsetY = fillStyle.offsetY\n const patternWidth = fillStyle.width ? fillStyle.width : pattern_image.width\n const patternHeight = fillStyle.height ? fillStyle.height : pattern_image.height\n\n switch (fillStyle.align) {\n case 'center':\n alignX = bounds.width / 2 - patternWidth / 2\n alignY = bounds.height / 2 - patternHeight / 2\n break\n case 'left-top':\n alignX = 0\n alignY = 0\n break\n case 'left-bottom':\n alignX = 0\n alignY = bounds.height - patternHeight\n break\n case 'right-top':\n alignX = bounds.width - patternWidth\n alignY = 0\n break\n case 'right-bottom':\n alignX = bounds.width - patternWidth\n alignY = bounds.height - patternHeight\n break\n case 'left':\n alignX = 0\n alignY = bounds.height / 2 - patternHeight / 2\n break\n case 'right':\n alignX = bounds.width - patternWidth\n alignY = bounds.height / 2 - patternHeight / 2\n break\n case 'top':\n alignX = bounds.width / 2 - patternWidth / 2\n alignY = 0\n break\n case 'bottom':\n alignX = bounds.width / 2 - patternWidth / 2\n alignY = bounds.height - patternHeight\n break\n }\n\n translateX += offsetX + alignX\n translateY += offsetY + alignY\n }\n\n context.translate(translateX, translateY)\n\n if (fillStyle.color) {\n context.fillStyle = fillStyle.color\n context.fill()\n }\n\n if (fillStyle.fitPattern) {\n if (Math.abs((pattern_image.width - bounds.width) * (pattern_image.height - bounds.height)) > 1) {\n delete host_component._pattern_image\n delete host_component._pattern_image_origin\n } else {\n context.fillStyle = context.createPattern(pattern_image, 'no-repeat')\n }\n } else {\n context.fillStyle = context.createPattern(pattern_image, fillStyle.noRepeat ? 'no-repeat' : 'repeat')\n }\n\n context.fill()\n\n context.translate(-translateX, -translateY)\n } else {\n if (fillStyle.color) {\n context.fillStyle = fillStyle.color\n context.fill()\n }\n }\n }\n }\n}\n\nexport function prepareFill(resolve, reject) {\n var fillStyle = this.fillStyle\n\n if (!fillStyle || fillStyle.type != 'pattern' || !fillStyle.image) {\n resolve(this)\n return\n }\n\n if (typeof fillStyle.image !== 'string') {\n this._pattern_image_origin = this._pattern_image = fillStyle.image\n resolve(this)\n return\n }\n\n this._pattern_image = null\n\n this._pattern_image_origin = new Image()\n\n var self = this\n\n this._pattern_image_origin.onload = function () {\n if (!fillStyle.fitPattern && !fillStyle.width && !fillStyle.height) {\n self._pattern_image = self._pattern_image_origin\n\n resolve(this)\n return\n }\n\n let width = fillStyle.width || this.width\n let height = fillStyle.height || this.height\n\n if (fillStyle.fitPattern) {\n width = self.bounds.width\n height = self.bounds.height\n }\n\n let offscreen_canvas = createCanvas(width, height)\n let temp_context = offscreen_canvas.getContext('2d')\n\n temp_context.drawImage(this, 0, 0, this.width, this.height, 0, 0, width, height)\n self._pattern_image = offscreen_canvas\n\n resolve(this)\n }\n\n this._pattern_image_origin.onerror = function (e) {\n reject(e)\n }\n\n try {\n // this._pattern_image_origin.crossOrigin = 'use-credentials';\n if (String(fillStyle.image).substring(0, 4) !== 'data') this._pattern_image_origin.crossOrigin = 'use-credentials'\n else this._pattern_image_origin.crossOrigin = null\n\n this._pattern_image_origin.src = this.app.url(fillStyle.image)\n } catch (e) {\n reject(e)\n }\n}\n\nexport function prepareFillIf(condition) {\n if (!condition) return\n\n this.prepareFill(\n resolve => {\n this.invalidate()\n },\n reject => {\n error(reject)\n }\n )\n}\n\nexport function onchangeFill(after, before) {\n var fillStyle = this.fillStyle\n\n if (fillStyle && fillStyle.type !== 'pattern') {\n if (this._pattern_image) {\n this._pattern_image = null\n this._pattern_image_origin = null\n }\n\n return\n }\n\n fillStyle?.image && this.prepareFillIf(fillStyle.image)\n}\n"],"mappings":"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","ignoreList":[]}