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

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 (385) hide show
  1. package/babel.config.js +4 -3
  2. package/db.sqlite +0 -0
  3. package/dist/animation/animate.js +63 -0
  4. package/dist/animation/animate.js.map +1 -0
  5. package/dist/animation/animations/animation.js +122 -0
  6. package/dist/animation/animations/animation.js.map +1 -0
  7. package/dist/animation/animations/fade.js +28 -0
  8. package/dist/animation/animations/fade.js.map +1 -0
  9. package/dist/animation/animations/heartbeat.js +28 -0
  10. package/dist/animation/animations/heartbeat.js.map +1 -0
  11. package/dist/animation/animations/moving.js +24 -0
  12. package/dist/animation/animations/moving.js.map +1 -0
  13. package/dist/animation/animations/outline.js +47 -0
  14. package/dist/animation/animations/outline.js.map +1 -0
  15. package/dist/animation/animations/rotation.js +22 -0
  16. package/dist/animation/animations/rotation.js.map +1 -0
  17. package/dist/animation/animations/vibration.js +31 -0
  18. package/dist/animation/animations/vibration.js.map +1 -0
  19. package/dist/animation/compile.js +31 -0
  20. package/dist/animation/compile.js.map +1 -0
  21. package/dist/animation/delta.js +51 -0
  22. package/dist/animation/delta.js.map +1 -0
  23. package/dist/animation/index.js +14 -0
  24. package/dist/animation/index.js.map +1 -0
  25. package/dist/command/command-change.js +33 -0
  26. package/dist/command/command-change.js.map +1 -0
  27. package/dist/command/command-migrate.js +103 -0
  28. package/dist/command/command-migrate.js.map +1 -0
  29. package/dist/command/command.js +18 -0
  30. package/dist/command/command.js.map +1 -0
  31. package/dist/command/snapshot-commander.js +84 -0
  32. package/dist/command/snapshot-commander.js.map +1 -0
  33. package/dist/components/anchor/anchor.js +105 -0
  34. package/dist/components/anchor/anchor.js.map +1 -0
  35. package/dist/components/anchor/ellipse-anchors.js +53 -0
  36. package/dist/components/anchor/ellipse-anchors.js.map +1 -0
  37. package/dist/components/anchor/rect-anchors.js +53 -0
  38. package/dist/components/anchor/rect-anchors.js.map +1 -0
  39. package/dist/components/audio.js +154 -0
  40. package/dist/components/audio.js.map +1 -0
  41. package/dist/components/cloud.js +44 -0
  42. package/dist/components/cloud.js.map +1 -0
  43. package/dist/components/component.js +1086 -0
  44. package/dist/components/component.js.map +1 -0
  45. package/dist/components/container-abstract.js +387 -0
  46. package/dist/components/container-abstract.js.map +1 -0
  47. package/dist/components/container.js +331 -0
  48. package/dist/components/container.js.map +1 -0
  49. package/dist/components/data/data-mapping.js +82 -0
  50. package/dist/components/data/data-mapping.js.map +1 -0
  51. package/dist/components/data/data.js +166 -0
  52. package/dist/components/data/data.js.map +1 -0
  53. package/dist/components/data/evaluator.js +103 -0
  54. package/dist/components/data/evaluator.js.map +1 -0
  55. package/dist/components/donut.js +104 -0
  56. package/dist/components/donut.js.map +1 -0
  57. package/dist/components/drawer/draw-image-pendable.js +20 -0
  58. package/dist/components/drawer/draw-image-pendable.js.map +1 -0
  59. package/dist/components/drawer/effect.js +19 -0
  60. package/dist/components/drawer/effect.js.map +1 -0
  61. package/dist/components/drawer/fill.js +228 -0
  62. package/dist/components/drawer/fill.js.map +1 -0
  63. package/dist/components/drawer/format.js +115 -0
  64. package/dist/components/drawer/format.js.map +1 -0
  65. package/dist/components/drawer/line.js +191 -0
  66. package/dist/components/drawer/line.js.map +1 -0
  67. package/dist/components/drawer/stroke.js +62 -0
  68. package/dist/components/drawer/stroke.js.map +1 -0
  69. package/dist/components/drawer/text-wrapper.js +51 -0
  70. package/dist/components/drawer/text-wrapper.js.map +1 -0
  71. package/dist/components/drawer/text.js +269 -0
  72. package/dist/components/drawer/text.js.map +1 -0
  73. package/dist/components/ellipse.js +110 -0
  74. package/dist/components/ellipse.js.map +1 -0
  75. package/dist/components/file/ondropfile.js +19 -0
  76. package/dist/components/file/ondropfile.js.map +1 -0
  77. package/dist/components/fit/fit.js +137 -0
  78. package/dist/components/fit/fit.js.map +1 -0
  79. package/dist/components/geometry/transcoord.js +339 -0
  80. package/dist/components/geometry/transcoord.js.map +1 -0
  81. package/dist/components/geometry/union.js +35 -0
  82. package/dist/components/geometry/union.js.map +1 -0
  83. package/dist/components/gif-view.js +128 -0
  84. package/dist/components/gif-view.js.map +1 -0
  85. package/dist/components/global-ref.js +154 -0
  86. package/dist/components/global-ref.js.map +1 -0
  87. package/dist/components/group.js +171 -0
  88. package/dist/components/group.js.map +1 -0
  89. package/dist/components/html/elements.js +24 -0
  90. package/dist/components/html/elements.js.map +1 -0
  91. package/dist/components/html/fill.js +126 -0
  92. package/dist/components/html/fill.js.map +1 -0
  93. package/dist/components/html/reposition.js +119 -0
  94. package/dist/components/html/reposition.js.map +1 -0
  95. package/dist/components/html/shadow.js +24 -0
  96. package/dist/components/html/shadow.js.map +1 -0
  97. package/dist/components/html-overlay-container.js +27 -0
  98. package/dist/components/html-overlay-container.js.map +1 -0
  99. package/dist/components/html-overlay-element.js +22 -0
  100. package/dist/components/html-overlay-element.js.map +1 -0
  101. package/dist/components/image-view.js +193 -0
  102. package/dist/components/image-view.js.map +1 -0
  103. package/dist/components/index.js +231 -0
  104. package/dist/components/index.js.map +1 -0
  105. package/dist/components/info-window.js +416 -0
  106. package/dist/components/info-window.js.map +1 -0
  107. package/dist/components/line.js +374 -0
  108. package/dist/components/line.js.map +1 -0
  109. package/dist/components/local-ref.js +114 -0
  110. package/dist/components/local-ref.js.map +1 -0
  111. package/dist/components/mixins/connectable.js +128 -0
  112. package/dist/components/mixins/connectable.js.map +1 -0
  113. package/dist/components/mixins/data-source.js +34 -0
  114. package/dist/components/mixins/data-source.js.map +1 -0
  115. package/dist/components/mixins/html-element.js +107 -0
  116. package/dist/components/mixins/html-element.js.map +1 -0
  117. package/dist/components/mixins/move-handle.js +73 -0
  118. package/dist/components/mixins/move-handle.js.map +1 -0
  119. package/dist/components/mixins/rect-path.js +113 -0
  120. package/dist/components/mixins/rect-path.js.map +1 -0
  121. package/dist/components/mixins/value-holder.js +81 -0
  122. package/dist/components/mixins/value-holder.js.map +1 -0
  123. package/dist/components/mutater/bounds.js +68 -0
  124. package/dist/components/mutater/bounds.js.map +1 -0
  125. package/dist/components/mutater/path.js +73 -0
  126. package/dist/components/mutater/path.js.map +1 -0
  127. package/dist/components/ortholine.js +763 -0
  128. package/dist/components/ortholine.js.map +1 -0
  129. package/dist/components/outline/ellipse-outline.js +23 -0
  130. package/dist/components/outline/ellipse-outline.js.map +1 -0
  131. package/dist/components/outline/path-outline.js +48 -0
  132. package/dist/components/outline/path-outline.js.map +1 -0
  133. package/dist/components/path.js +49 -0
  134. package/dist/components/path.js.map +1 -0
  135. package/dist/components/polygon.js +91 -0
  136. package/dist/components/polygon.js.map +1 -0
  137. package/dist/components/polyline.js +114 -0
  138. package/dist/components/polyline.js.map +1 -0
  139. package/dist/components/popup.js +160 -0
  140. package/dist/components/popup.js.map +1 -0
  141. package/dist/components/rect.js +72 -0
  142. package/dist/components/rect.js.map +1 -0
  143. package/dist/components/retention/retention-manager.js +81 -0
  144. package/dist/components/retention/retention-manager.js.map +1 -0
  145. package/dist/components/root-container.js +519 -0
  146. package/dist/components/root-container.js.map +1 -0
  147. package/dist/components/ruler.js +103 -0
  148. package/dist/components/ruler.js.map +1 -0
  149. package/dist/components/shape.js +97 -0
  150. package/dist/components/shape.js.map +1 -0
  151. package/dist/components/star.js +103 -0
  152. package/dist/components/star.js.map +1 -0
  153. package/dist/components/text/substitutor.js +92 -0
  154. package/dist/components/text/substitutor.js.map +1 -0
  155. package/dist/components/text.js +21 -0
  156. package/dist/components/text.js.map +1 -0
  157. package/dist/components/triangle.js +92 -0
  158. package/dist/components/triangle.js.map +1 -0
  159. package/dist/const.js +71 -0
  160. package/dist/const.js.map +1 -0
  161. package/dist/core/collection.js +28 -0
  162. package/dist/core/collection.js.map +1 -0
  163. package/dist/core/debug.js +12 -0
  164. package/dist/core/debug.js.map +1 -0
  165. package/dist/core/deep-equals.js +112 -0
  166. package/dist/core/deep-equals.js.map +1 -0
  167. package/dist/core/dom-to-image.js +617 -0
  168. package/dist/core/dom-to-image.js.map +1 -0
  169. package/dist/core/event.js +205 -0
  170. package/dist/core/event.js.map +1 -0
  171. package/dist/core/index.js +21 -0
  172. package/dist/core/index.js.map +1 -0
  173. package/dist/core/list.js +87 -0
  174. package/dist/core/list.js.map +1 -0
  175. package/dist/core/logger.js +29 -0
  176. package/dist/core/logger.js.map +1 -0
  177. package/dist/core/memoize.js +40 -0
  178. package/dist/core/memoize.js.map +1 -0
  179. package/dist/core/mixin.js +26 -0
  180. package/dist/core/mixin.js.map +1 -0
  181. package/dist/core/obj-accessor.js +26 -0
  182. package/dist/core/obj-accessor.js.map +1 -0
  183. package/dist/core/reference-map.js +147 -0
  184. package/dist/core/reference-map.js.map +1 -0
  185. package/dist/core/round-rect.js +62 -0
  186. package/dist/core/round-rect.js.map +1 -0
  187. package/dist/core/safe-round.js +10 -0
  188. package/dist/core/safe-round.js.map +1 -0
  189. package/dist/core/script-loader.js +148 -0
  190. package/dist/core/script-loader.js.map +1 -0
  191. package/dist/core/snapshot-taker.js +59 -0
  192. package/dist/core/snapshot-taker.js.map +1 -0
  193. package/dist/core/stack.js +18 -0
  194. package/dist/core/stack.js.map +1 -0
  195. package/dist/core/timecapsule.js +88 -0
  196. package/dist/core/timecapsule.js.map +1 -0
  197. package/dist/core/utils.js +309 -0
  198. package/dist/core/utils.js.map +1 -0
  199. package/dist/decorator/anchors-decorator.js +53 -0
  200. package/dist/decorator/anchors-decorator.js.map +1 -0
  201. package/dist/decorator/bouncing-arrow-decorator.js +52 -0
  202. package/dist/decorator/bouncing-arrow-decorator.js.map +1 -0
  203. package/dist/decorator/data-spread-decorator.js +69 -0
  204. package/dist/decorator/data-spread-decorator.js.map +1 -0
  205. package/dist/decorator/decotag-decorator.js +33 -0
  206. package/dist/decorator/decotag-decorator.js.map +1 -0
  207. package/dist/decorator/index.js +31 -0
  208. package/dist/decorator/index.js.map +1 -0
  209. package/dist/decorator/link-decorator.js +66 -0
  210. package/dist/decorator/link-decorator.js.map +1 -0
  211. package/dist/effect/gradation.js +37 -0
  212. package/dist/effect/gradation.js.map +1 -0
  213. package/dist/effect/index.js +23 -0
  214. package/dist/effect/index.js.map +1 -0
  215. package/dist/effect/shadow.js +33 -0
  216. package/dist/effect/shadow.js.map +1 -0
  217. package/dist/effect/turn.js +25 -0
  218. package/dist/effect/turn.js.map +1 -0
  219. package/dist/event/event-engine.js +76 -0
  220. package/dist/event/event-engine.js.map +1 -0
  221. package/dist/event/event-pump.js +92 -0
  222. package/dist/event/event-pump.js.map +1 -0
  223. package/dist/event/event-tracker.js +97 -0
  224. package/dist/event/event-tracker.js.map +1 -0
  225. package/dist/event/index.js +21 -0
  226. package/dist/event/index.js.map +1 -0
  227. package/dist/event/ua-event-handler.js +453 -0
  228. package/dist/event/ua-event-handler.js.map +1 -0
  229. package/dist/event-map/animator-handler.js +225 -0
  230. package/dist/event-map/animator-handler.js.map +1 -0
  231. package/dist/event-map/animators/animated-icon.js +265 -0
  232. package/dist/event-map/animators/animated-icon.js.map +1 -0
  233. package/dist/event-map/animators/border-highlighting.js +476 -0
  234. package/dist/event-map/animators/border-highlighting.js.map +1 -0
  235. package/dist/event-map/animators/bouncing-arrow.js +226 -0
  236. package/dist/event-map/animators/bouncing-arrow.js.map +1 -0
  237. package/dist/event-map/event-map.js +36 -0
  238. package/dist/event-map/event-map.js.map +1 -0
  239. package/dist/event-map/index.js +20 -0
  240. package/dist/event-map/index.js.map +1 -0
  241. package/dist/event-map/move-handler.js +233 -0
  242. package/dist/event-map/move-handler.js.map +1 -0
  243. package/dist/event-map/paste-handler.js +176 -0
  244. package/dist/event-map/paste-handler.js.map +1 -0
  245. package/dist/event-map/shift-handler.js +55 -0
  246. package/dist/event-map/shift-handler.js.map +1 -0
  247. package/dist/event-map/text-editor-lite.js +276 -0
  248. package/dist/event-map/text-editor-lite.js.map +1 -0
  249. package/dist/event-map/zoom-handler.js +49 -0
  250. package/dist/event-map/zoom-handler.js.map +1 -0
  251. package/dist/index.js +20 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/layer/action/emphasize.js +42 -0
  254. package/dist/layer/action/emphasize.js.map +1 -0
  255. package/dist/layer/action/popup.js +461 -0
  256. package/dist/layer/action/popup.js.map +1 -0
  257. package/dist/layer/action/pressed.js +31 -0
  258. package/dist/layer/action/pressed.js.map +1 -0
  259. package/dist/layer/add-layer.js +180 -0
  260. package/dist/layer/add-layer.js.map +1 -0
  261. package/dist/layer/decotag-layer.js +121 -0
  262. package/dist/layer/decotag-layer.js.map +1 -0
  263. package/dist/layer/guide-layer.js +292 -0
  264. package/dist/layer/guide-layer.js.map +1 -0
  265. package/dist/layer/index.js +70 -0
  266. package/dist/layer/index.js.map +1 -0
  267. package/dist/layer/layer.js +230 -0
  268. package/dist/layer/layer.js.map +1 -0
  269. package/dist/layer/minimap-layer.js +84 -0
  270. package/dist/layer/minimap-layer.js.map +1 -0
  271. package/dist/layer/model-layer.js +465 -0
  272. package/dist/layer/model-layer.js.map +1 -0
  273. package/dist/layer/modeler/anchor-handler.js +193 -0
  274. package/dist/layer/modeler/anchor-handler.js.map +1 -0
  275. package/dist/layer/modeler/control-handler.js +95 -0
  276. package/dist/layer/modeler/control-handler.js.map +1 -0
  277. package/dist/layer/modeler/focus-outline.js +41 -0
  278. package/dist/layer/modeler/focus-outline.js.map +1 -0
  279. package/dist/layer/modeler/group-outline.js +30 -0
  280. package/dist/layer/modeler/group-outline.js.map +1 -0
  281. package/dist/layer/modeler/index.js +56 -0
  282. package/dist/layer/modeler/index.js.map +1 -0
  283. package/dist/layer/modeler/path-handler.js +300 -0
  284. package/dist/layer/modeler/path-handler.js.map +1 -0
  285. package/dist/layer/modeler/resizer.js +333 -0
  286. package/dist/layer/modeler/resizer.js.map +1 -0
  287. package/dist/layer/modeler/rotator.js +134 -0
  288. package/dist/layer/modeler/rotator.js.map +1 -0
  289. package/dist/layer/modeling-layer.js +491 -0
  290. package/dist/layer/modeling-layer.js.map +1 -0
  291. package/dist/layer/reaction-layer.js +111 -0
  292. package/dist/layer/reaction-layer.js.map +1 -0
  293. package/dist/layer/scroll-layer.js +191 -0
  294. package/dist/layer/scroll-layer.js.map +1 -0
  295. package/dist/layer/selection/selected-finder.js +96 -0
  296. package/dist/layer/selection/selected-finder.js.map +1 -0
  297. package/dist/layer/selection-layer.js +373 -0
  298. package/dist/layer/selection-layer.js.map +1 -0
  299. package/dist/layer/shift-layer.js +83 -0
  300. package/dist/layer/shift-layer.js.map +1 -0
  301. package/dist/layout/absolute.js +30 -0
  302. package/dist/layout/absolute.js.map +1 -0
  303. package/dist/layout/card.js +52 -0
  304. package/dist/layout/card.js.map +1 -0
  305. package/dist/layout/html-absolute.js +32 -0
  306. package/dist/layout/html-absolute.js.map +1 -0
  307. package/dist/layout/index.js +56 -0
  308. package/dist/layout/index.js.map +1 -0
  309. package/dist/layout/layout.js +36 -0
  310. package/dist/layout/layout.js.map +1 -0
  311. package/dist/layout/linear-horizontal.js +56 -0
  312. package/dist/layout/linear-horizontal.js.map +1 -0
  313. package/dist/layout/linear-vertical.js +56 -0
  314. package/dist/layout/linear-vertical.js.map +1 -0
  315. package/dist/layout/table.js +106 -0
  316. package/dist/layout/table.js.map +1 -0
  317. package/dist/license/license.js +170 -0
  318. package/dist/license/license.js.map +1 -0
  319. package/dist/model/compile.js +40 -0
  320. package/dist/model/compile.js.map +1 -0
  321. package/dist/model/duplicate.js +19 -0
  322. package/dist/model/duplicate.js.map +1 -0
  323. package/dist/model/index.js +34 -0
  324. package/dist/model/index.js.map +1 -0
  325. package/dist/model/selector.js +104 -0
  326. package/dist/model/selector.js.map +1 -0
  327. package/dist/style/compile.js +14 -0
  328. package/dist/style/compile.js.map +1 -0
  329. package/dist/style/index.js +14 -0
  330. package/dist/style/index.js.map +1 -0
  331. package/dist/things-scene/api/add-start.js +18 -0
  332. package/dist/things-scene/api/add-start.js.map +1 -0
  333. package/dist/things-scene/api/add.js +71 -0
  334. package/dist/things-scene/api/add.js.map +1 -0
  335. package/dist/things-scene/api/align.js +116 -0
  336. package/dist/things-scene/api/align.js.map +1 -0
  337. package/dist/things-scene/api/center-to.js +50 -0
  338. package/dist/things-scene/api/center-to.js.map +1 -0
  339. package/dist/things-scene/api/change.js +27 -0
  340. package/dist/things-scene/api/change.js.map +1 -0
  341. package/dist/things-scene/api/clipboard.js +45 -0
  342. package/dist/things-scene/api/clipboard.js.map +1 -0
  343. package/dist/things-scene/api/distribute.js +57 -0
  344. package/dist/things-scene/api/distribute.js.map +1 -0
  345. package/dist/things-scene/api/duplicate.js +47 -0
  346. package/dist/things-scene/api/duplicate.js.map +1 -0
  347. package/dist/things-scene/api/fullscreen.js +26 -0
  348. package/dist/things-scene/api/fullscreen.js.map +1 -0
  349. package/dist/things-scene/api/group.js +91 -0
  350. package/dist/things-scene/api/group.js.map +1 -0
  351. package/dist/things-scene/api/ids.js +28 -0
  352. package/dist/things-scene/api/ids.js.map +1 -0
  353. package/dist/things-scene/api/index.js +192 -0
  354. package/dist/things-scene/api/index.js.map +1 -0
  355. package/dist/things-scene/api/listener.js +69 -0
  356. package/dist/things-scene/api/listener.js.map +1 -0
  357. package/dist/things-scene/api/paste-start.js +27 -0
  358. package/dist/things-scene/api/paste-start.js.map +1 -0
  359. package/dist/things-scene/api/place.js +98 -0
  360. package/dist/things-scene/api/place.js.map +1 -0
  361. package/dist/things-scene/api/remove.js +57 -0
  362. package/dist/things-scene/api/remove.js.map +1 -0
  363. package/dist/things-scene/api/symmetry.js +47 -0
  364. package/dist/things-scene/api/symmetry.js.map +1 -0
  365. package/dist/things-scene/api/to-data-url.js +76 -0
  366. package/dist/things-scene/api/to-data-url.js.map +1 -0
  367. package/dist/things-scene/api/zorder.js +68 -0
  368. package/dist/things-scene/api/zorder.js.map +1 -0
  369. package/dist/things-scene/application-context.js +168 -0
  370. package/dist/things-scene/application-context.js.map +1 -0
  371. package/dist/things-scene/config.js +18 -0
  372. package/dist/things-scene/config.js.map +1 -0
  373. package/dist/things-scene/create.js +67 -0
  374. package/dist/things-scene/create.js.map +1 -0
  375. package/dist/things-scene/fps.js +26 -0
  376. package/dist/things-scene/fps.js.map +1 -0
  377. package/dist/things-scene/index.js +152 -0
  378. package/dist/things-scene/index.js.map +1 -0
  379. package/dist/things-scene/polyfill.js +111 -0
  380. package/dist/things-scene/polyfill.js.map +1 -0
  381. package/dist/things-scene/scene.js +442 -0
  382. package/dist/things-scene/scene.js.map +1 -0
  383. package/dist/things-scene/version.js +12 -0
  384. package/dist/things-scene/version.js.map +1 -0
  385. package/package.json +8 -6
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = format;
7
+ /*
8
+ * Copyright © HatioLab Inc. All rights reserved.
9
+ */
10
+
11
+ /*
12
+ * Source Code from https://github.com/Mottie/javascript-number-formatter
13
+ * 소스코드 출처 : https://github.com/Mottie/javascript-number-formatter
14
+ */
15
+
16
+ function format(mask, value) {
17
+ if (!mask || isNaN(+value)) {
18
+ return value; // return as it is.
19
+ }
20
+ var isNegative,
21
+ result,
22
+ decimal,
23
+ group,
24
+ posLeadZero,
25
+ posTrailZero,
26
+ posSeparator,
27
+ part,
28
+ szSep,
29
+ integer,
30
+ // find prefix/suffix
31
+ len = mask.length,
32
+ start = mask.search(/[0-9\-\+#]/),
33
+ prefix = start > 0 ? mask.substring(0, start) : '',
34
+ // reverse string: not an ideal method if there are surrogate pairs
35
+ str = mask.split('').reverse().join(''),
36
+ end = str.search(/[0-9\-\+#]/),
37
+ offset = len - end,
38
+ substr = mask.substring(offset, offset + 1),
39
+ indx = offset + (substr === '.' || substr === ',' ? 1 : 0),
40
+ suffix = end > 0 ? mask.substring(indx, len) : '';
41
+
42
+ // mask with prefix & suffix removed
43
+ mask = mask.substring(start, indx);
44
+
45
+ // convert any string to number according to formation sign.
46
+ value = mask.charAt(0) === '-' ? -value : +value;
47
+ isNegative = value < 0 ? value = -value : 0; // process only abs(), and turn on flag.
48
+
49
+ // search for separator for grp & decimal, anything not digit, not +/- sign, not #.
50
+ result = mask.match(/[^\d\-\+#]/g);
51
+ decimal = '.'; // ( result && result[ result.length - 1 ] ) || '.'; // ','는 소수점이 되지 않게 함
52
+ group = result && result[1] && result[0] || ','; // treat the left most symbol as group separator
53
+
54
+ // split the decimal for the format string if any.
55
+ mask = mask.split(decimal);
56
+ // Fix the decimal first, toFixed will auto fill trailing zero.
57
+ value = value.toFixed(mask[1] && mask[1].length);
58
+ value = +value + ''; // convert number to string to trim off *all* trailing decimal zero(es)
59
+
60
+ // fill back any trailing zero according to format
61
+ posTrailZero = mask[1] && mask[1].lastIndexOf('0'); // look for last zero in format
62
+ part = value.split('.');
63
+ // integer will get !part[1]
64
+ if (!part[1] || part[1] && part[1].length <= posTrailZero) {
65
+ value = (+value).toFixed(posTrailZero + 1);
66
+ }
67
+ szSep = mask[0].split(group); // look for separator
68
+ mask[0] = szSep.join(''); // join back without separator for counting the pos of any leading 0.
69
+
70
+ posLeadZero = mask[0] && mask[0].indexOf('0');
71
+ if (posLeadZero > -1) {
72
+ while (part[0].length < mask[0].length - posLeadZero) {
73
+ part[0] = '0' + part[0];
74
+ }
75
+ } else if (+part[0] === 0) {
76
+ part[0] = '';
77
+ }
78
+ value = value.split('.');
79
+ value[0] = part[0];
80
+
81
+ // process the first group separator from decimal (.) only, the rest ignore.
82
+ // get the length of the last slice of split result.
83
+ posSeparator = szSep[1] && szSep[szSep.length - 1].length;
84
+ if (posSeparator) {
85
+ integer = value[0];
86
+ str = '';
87
+ offset = integer.length % posSeparator;
88
+ len = integer.length;
89
+ for (indx = 0; indx < len; indx++) {
90
+ str += integer.charAt(indx); // ie6 only support charAt for sz.
91
+ // -posSeparator so that won't trail separator on full length
92
+ /*jshint -W018 */
93
+ if (!((indx - offset + 1) % posSeparator) && indx < len - posSeparator) {
94
+ str += group;
95
+ }
96
+ }
97
+ value[0] = str;
98
+ }
99
+ value[1] = mask[1] && value[1] ? decimal + value[1] : '';
100
+
101
+ // remove negative sign if result is zero
102
+ result = value.join('');
103
+ if (result === '0' || result === '') {
104
+ // remove negative sign if result is zero
105
+ isNegative = false;
106
+ }
107
+
108
+ // 앞에 +가 붙는다면 양수일 경우에도 +를 표기해줌
109
+ var fixedPlusSign;
110
+ if (mask[0].substring(0, 1) == '+') fixedPlusSign = isNegative ? '-' : '+';else fixedPlusSign = isNegative ? '-' : '';
111
+
112
+ // put back any negation, combine integer and fraction, and add back prefix & suffix
113
+ return prefix + (fixedPlusSign + result) + suffix;
114
+ }
115
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","names":["format","mask","value","isNaN","isNegative","result","decimal","group","posLeadZero","posTrailZero","posSeparator","part","szSep","integer","len","length","start","search","prefix","substring","str","split","reverse","join","end","offset","substr","indx","suffix","charAt","match","toFixed","lastIndexOf","indexOf","fixedPlusSign"],"sources":["../../../src/components/drawer/format.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\n/*\n * Source Code from https://github.com/Mottie/javascript-number-formatter\n * 소스코드 출처 : https://github.com/Mottie/javascript-number-formatter\n */\n\nexport default function format(mask, value) {\n if (!mask || isNaN(+value)) {\n return value // return as it is.\n }\n\n var isNegative,\n result,\n decimal,\n group,\n posLeadZero,\n posTrailZero,\n posSeparator,\n part,\n szSep,\n integer,\n // find prefix/suffix\n len = mask.length,\n start = mask.search(/[0-9\\-\\+#]/),\n prefix = start > 0 ? mask.substring(0, start) : '',\n // reverse string: not an ideal method if there are surrogate pairs\n str = mask\n .split('')\n .reverse()\n .join(''),\n end = str.search(/[0-9\\-\\+#]/),\n offset = len - end,\n substr = mask.substring(offset, offset + 1),\n indx = offset + (substr === '.' || substr === ',' ? 1 : 0),\n suffix = end > 0 ? mask.substring(indx, len) : ''\n\n // mask with prefix & suffix removed\n mask = mask.substring(start, indx)\n\n // convert any string to number according to formation sign.\n value = mask.charAt(0) === '-' ? -value : +value\n isNegative = value < 0 ? (value = -value) : 0 // process only abs(), and turn on flag.\n\n // search for separator for grp & decimal, anything not digit, not +/- sign, not #.\n result = mask.match(/[^\\d\\-\\+#]/g)\n decimal = '.' // ( result && result[ result.length - 1 ] ) || '.'; // ','는 소수점이 되지 않게 함\n group = (result && result[1] && result[0]) || ',' // treat the left most symbol as group separator\n\n // split the decimal for the format string if any.\n mask = mask.split(decimal)\n // Fix the decimal first, toFixed will auto fill trailing zero.\n value = value.toFixed(mask[1] && mask[1].length)\n value = +value + '' // convert number to string to trim off *all* trailing decimal zero(es)\n\n // fill back any trailing zero according to format\n posTrailZero = mask[1] && mask[1].lastIndexOf('0') // look for last zero in format\n part = value.split('.')\n // integer will get !part[1]\n if (!part[1] || (part[1] && part[1].length <= posTrailZero)) {\n value = (+value).toFixed(posTrailZero + 1)\n }\n szSep = mask[0].split(group) // look for separator\n mask[0] = szSep.join('') // join back without separator for counting the pos of any leading 0.\n\n posLeadZero = mask[0] && mask[0].indexOf('0')\n if (posLeadZero > -1) {\n while (part[0].length < mask[0].length - posLeadZero) {\n part[0] = '0' + part[0]\n }\n } else if (+part[0] === 0) {\n part[0] = ''\n }\n\n value = value.split('.')\n value[0] = part[0]\n\n // process the first group separator from decimal (.) only, the rest ignore.\n // get the length of the last slice of split result.\n posSeparator = szSep[1] && szSep[szSep.length - 1].length\n if (posSeparator) {\n integer = value[0]\n str = ''\n offset = integer.length % posSeparator\n len = integer.length\n for (indx = 0; indx < len; indx++) {\n str += integer.charAt(indx) // ie6 only support charAt for sz.\n // -posSeparator so that won't trail separator on full length\n /*jshint -W018 */\n if (!((indx - offset + 1) % posSeparator) && indx < len - posSeparator) {\n str += group\n }\n }\n value[0] = str\n }\n value[1] = mask[1] && value[1] ? decimal + value[1] : ''\n\n // remove negative sign if result is zero\n result = value.join('')\n if (result === '0' || result === '') {\n // remove negative sign if result is zero\n isNegative = false\n }\n\n // 앞에 +가 붙는다면 양수일 경우에도 +를 표기해줌\n var fixedPlusSign\n\n if (mask[0].substring(0, 1) == '+') fixedPlusSign = isNegative ? '-' : '+'\n else fixedPlusSign = isNegative ? '-' : ''\n\n // put back any negation, combine integer and fraction, and add back prefix & suffix\n return prefix + (fixedPlusSign + result) + suffix\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.containedInPath = containedInPath;
7
+ exports.drawEndTips = drawEndTips;
8
+ exports.getTipNeckPos = getTipNeckPos;
9
+ /*
10
+ * Copyright © HatioLab Inc. All rights reserved.
11
+ */
12
+
13
+ const EPSILON = 5;
14
+ const WING_FACTOR = Math.sqrt(3);
15
+ const LINEWIDTH = 2;
16
+ function containedInLine(x, y, p1, p2, lineWidth) {
17
+ var epsilon = EPSILON + lineWidth;
18
+ var x1 = p1.x,
19
+ y1 = p1.y,
20
+ x2 = p2.x,
21
+ y2 = p2.y;
22
+ if (Math.abs(x1 - x2) > epsilon && Math.abs(y1 - y2) > epsilon) {
23
+ var m = (y2 - y1) / (x2 - x1);
24
+ var b = y1 - m * x1;
25
+ if (Math.abs(y - (m * x + b)) > epsilon) return false;
26
+ }
27
+ var minx, maxx, miny, maxy;
28
+ if (x1 > x2) {
29
+ maxx = x1;
30
+ minx = x2;
31
+ } else {
32
+ maxx = x2;
33
+ minx = x1;
34
+ }
35
+ if (y1 > y2) {
36
+ maxy = y1;
37
+ miny = y2;
38
+ } else {
39
+ maxy = y2;
40
+ miny = y1;
41
+ }
42
+ if (maxx + EPSILON < x) return false;
43
+ if (minx - EPSILON > x) return false;
44
+ if (maxy + EPSILON < y) return false;
45
+ if (miny - EPSILON > y) return false;
46
+ return true;
47
+ }
48
+ function containedInPath(x, y, path, lineWidth = 2) {
49
+ for (let idx = 0; idx < path.length - 1; idx++) {
50
+ if (containedInLine(x, y, path[idx], path[idx + 1], lineWidth)) return true;
51
+ }
52
+ return false;
53
+ }
54
+ function getTipNeckPos(tipType, lineWidth, p1, p2) {
55
+ if (tipType.slice(-5) != 'arrow') return p1;
56
+ var {
57
+ x,
58
+ y
59
+ } = p1;
60
+ var theta = Math.atan2(p2.y - p1.y, p2.x - p1.x);
61
+ var diff = lineWidth * 1.5;
62
+ return {
63
+ x: p1.x + Math.cos(theta) * diff,
64
+ y: p1.y + Math.sin(theta) * diff
65
+ };
66
+ }
67
+ function drawEndTips(ctx, path, style) {
68
+ var {
69
+ lineWidth = LINEWIDTH,
70
+ strokeStyle = '#000000',
71
+ lineCap = false,
72
+ alpha = 1,
73
+ begin = 'none',
74
+ end = 'none',
75
+ beginSize = 'size5',
76
+ endSize = 'size5'
77
+ } = style;
78
+
79
+ // 양 끝 라인 그리기.
80
+ if (begin != 'none' || end != 'none') {
81
+ lineWidth = Number(lineWidth) || LINEWIDTH;
82
+ ctx.lineCap = lineCap;
83
+ ctx.lineWidth = lineWidth;
84
+ ctx.strokeStyle = strokeStyle;
85
+ ctx.fillStyle = strokeStyle;
86
+ ctx.globalAlpha *= alpha;
87
+
88
+ // 선 그리기.
89
+ if (begin != 'none') drawTip(ctx, path[0], path[1], lineWidth, begin, tipSize(beginSize, lineWidth));
90
+ if (end != 'none') {
91
+ let length = path.length;
92
+ drawTip(ctx, path[length - 1], path[length - 2], lineWidth, end, tipSize(endSize, lineWidth));
93
+ }
94
+ }
95
+ }
96
+ function drawTip(ctx, p1, p2, lineWidth, type, size) {
97
+ var {
98
+ x,
99
+ y
100
+ } = p1;
101
+ var theta = Math.atan2(p2.y - y, p2.x - x);
102
+ ctx.beginPath();
103
+ ctx.translate(x, y);
104
+ ctx.rotate(theta);
105
+ switch (type) {
106
+ case 'oval':
107
+ ctx.ellipse(0, 0, size.X, size.Y, 0, 0, 2 * Math.PI);
108
+ ctx.fill();
109
+ // ctx.scale(1, 1 / arc_scale_y)
110
+ break;
111
+ case 'diamond':
112
+ ctx.moveTo(-size.X, 0);
113
+ ctx.lineTo(0, -size.Y);
114
+ ctx.lineTo(size.X, 0);
115
+ ctx.lineTo(0, size.Y);
116
+ ctx.fill();
117
+ break;
118
+ case 'arrow':
119
+ ctx.moveTo(0, 0);
120
+ ctx.lineTo(WING_FACTOR * size.X, -size.Y);
121
+ ctx.lineTo(WING_FACTOR * size.X, size.Y);
122
+ ctx.fill();
123
+ break;
124
+ case 'sharp-arrow':
125
+ ctx.moveTo(0, 0);
126
+ ctx.lineTo(WING_FACTOR * size.X, -size.Y);
127
+ ctx.lineTo(-size.X / 1.5 + WING_FACTOR * size.X, 0);
128
+ ctx.lineTo(WING_FACTOR * size.X, size.Y);
129
+ ctx.fill();
130
+ break;
131
+ case 'open-arrow':
132
+ ctx.moveTo(WING_FACTOR * size.X + lineWidth, -size.Y);
133
+ ctx.lineTo(lineWidth, 0);
134
+ ctx.lineTo(WING_FACTOR * size.X + lineWidth, size.Y);
135
+ ctx.stroke();
136
+ break;
137
+ default:
138
+ break;
139
+ }
140
+ ctx.rotate(-theta);
141
+ ctx.translate(-x, -y);
142
+ ctx.closePath();
143
+ }
144
+ function tipSize(size, lineWidth) {
145
+ let length = {};
146
+ lineWidth = lineWidth * 1.2;
147
+ switch (size) {
148
+ case 'size1':
149
+ length.X = lineWidth;
150
+ length.Y = lineWidth;
151
+ break;
152
+ case 'size2':
153
+ length.X = lineWidth * 1.5;
154
+ length.Y = lineWidth;
155
+ break;
156
+ case 'size3':
157
+ length.X = lineWidth * 2;
158
+ length.Y = lineWidth;
159
+ break;
160
+ case 'size4':
161
+ length.X = lineWidth;
162
+ length.Y = lineWidth * 1.5;
163
+ break;
164
+ case 'size5':
165
+ length.X = lineWidth * 1.5;
166
+ length.Y = lineWidth * 1.5;
167
+ break;
168
+ case 'size6':
169
+ length.X = lineWidth * 2;
170
+ length.Y = lineWidth * 1.5;
171
+ break;
172
+ case 'size7':
173
+ length.X = lineWidth;
174
+ length.Y = lineWidth * 2;
175
+ break;
176
+ case 'size8':
177
+ length.X = lineWidth * 1.5;
178
+ length.Y = lineWidth * 2;
179
+ break;
180
+ case 'size9':
181
+ length.X = lineWidth * 2;
182
+ length.Y = lineWidth * 2;
183
+ break;
184
+ default:
185
+ length.X = lineWidth * 1.5;
186
+ length.Y = lineWidth * 1.5;
187
+ break;
188
+ }
189
+ return length;
190
+ }
191
+ //# sourceMappingURL=line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line.js","names":["EPSILON","WING_FACTOR","Math","sqrt","LINEWIDTH","containedInLine","x","y","p1","p2","lineWidth","epsilon","x1","y1","x2","y2","abs","m","b","minx","maxx","miny","maxy","containedInPath","path","idx","length","getTipNeckPos","tipType","slice","theta","atan2","diff","cos","sin","drawEndTips","ctx","style","strokeStyle","lineCap","alpha","begin","end","beginSize","endSize","Number","fillStyle","globalAlpha","drawTip","tipSize","type","size","beginPath","translate","rotate","ellipse","X","Y","PI","fill","moveTo","lineTo","stroke","closePath"],"sources":["../../../src/components/drawer/line.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst EPSILON = 5\nconst WING_FACTOR = Math.sqrt(3)\nconst LINEWIDTH = 2\n\nfunction containedInLine(x, y, p1, p2, lineWidth) {\n var epsilon = EPSILON + lineWidth\n var x1 = p1.x,\n y1 = p1.y,\n x2 = p2.x,\n y2 = p2.y\n\n if (Math.abs(x1 - x2) > epsilon && Math.abs(y1 - y2) > epsilon) {\n var m = (y2 - y1) / (x2 - x1)\n var b = y1 - m * x1\n\n if (Math.abs(y - (m * x + b)) > epsilon) return false\n }\n\n var minx, maxx, miny, maxy\n\n if (x1 > x2) {\n maxx = x1\n minx = x2\n } else {\n maxx = x2\n minx = x1\n }\n\n if (y1 > y2) {\n maxy = y1\n miny = y2\n } else {\n maxy = y2\n miny = y1\n }\n\n if (maxx + EPSILON < x) return false\n if (minx - EPSILON > x) return false\n\n if (maxy + EPSILON < y) return false\n if (miny - EPSILON > y) return false\n\n return true\n}\n\nexport function containedInPath(x, y, path, lineWidth = 2) {\n for (let idx = 0; idx < path.length - 1; idx++) {\n if (containedInLine(x, y, path[idx], path[idx + 1], lineWidth)) return true\n }\n\n return false\n}\n\nexport function getTipNeckPos(tipType, lineWidth, p1, p2) {\n if (tipType.slice(-5) != 'arrow') return p1\n\n var { x, y } = p1\n var theta = Math.atan2(p2.y - p1.y, p2.x - p1.x)\n var diff = lineWidth * 1.5\n\n return {\n x: p1.x + Math.cos(theta) * diff,\n y: p1.y + Math.sin(theta) * diff\n }\n}\n\nexport function drawEndTips(ctx, path, style) {\n var {\n lineWidth = LINEWIDTH,\n strokeStyle = '#000000',\n lineCap = false,\n alpha = 1,\n begin = 'none',\n end = 'none',\n beginSize = 'size5',\n endSize = 'size5'\n } = style\n\n // 양 끝 라인 그리기.\n if (begin != 'none' || end != 'none') {\n lineWidth = Number(lineWidth) || LINEWIDTH\n\n ctx.lineCap = lineCap\n ctx.lineWidth = lineWidth\n ctx.strokeStyle = strokeStyle\n ctx.fillStyle = strokeStyle\n ctx.globalAlpha *= alpha\n\n // 선 그리기.\n if (begin != 'none') drawTip(ctx, path[0], path[1], lineWidth, begin, tipSize(beginSize, lineWidth))\n if (end != 'none') {\n let length = path.length\n drawTip(ctx, path[length - 1], path[length - 2], lineWidth, end, tipSize(endSize, lineWidth))\n }\n }\n}\n\nfunction drawTip(ctx, p1, p2, lineWidth, type, size) {\n var { x, y } = p1\n var theta = Math.atan2(p2.y - y, p2.x - x)\n\n ctx.beginPath()\n\n ctx.translate(x, y)\n ctx.rotate(theta)\n\n switch (type) {\n case 'oval':\n ctx.ellipse(0, 0, size.X, size.Y, 0, 0, 2 * Math.PI)\n ctx.fill()\n // ctx.scale(1, 1 / arc_scale_y)\n break\n case 'diamond':\n ctx.moveTo(-size.X, 0)\n ctx.lineTo(0, -size.Y)\n ctx.lineTo(size.X, 0)\n ctx.lineTo(0, size.Y)\n ctx.fill()\n break\n case 'arrow':\n ctx.moveTo(0, 0)\n ctx.lineTo(WING_FACTOR * size.X, -size.Y)\n ctx.lineTo(WING_FACTOR * size.X, size.Y)\n ctx.fill()\n break\n case 'sharp-arrow':\n ctx.moveTo(0, 0)\n ctx.lineTo(WING_FACTOR * size.X, -size.Y)\n ctx.lineTo(-size.X / 1.5 + WING_FACTOR * size.X, 0)\n ctx.lineTo(WING_FACTOR * size.X, size.Y)\n ctx.fill()\n break\n case 'open-arrow':\n ctx.moveTo(WING_FACTOR * size.X + lineWidth, -size.Y)\n ctx.lineTo(lineWidth, 0)\n ctx.lineTo(WING_FACTOR * size.X + lineWidth, size.Y)\n ctx.stroke()\n break\n default:\n break\n }\n\n ctx.rotate(-theta)\n ctx.translate(-x, -y)\n\n ctx.closePath()\n}\n\nfunction tipSize(size, lineWidth) {\n let length = {}\n lineWidth = lineWidth * 1.2\n\n switch (size) {\n case 'size1':\n length.X = lineWidth\n length.Y = lineWidth\n break\n case 'size2':\n length.X = lineWidth * 1.5\n length.Y = lineWidth\n break\n case 'size3':\n length.X = lineWidth * 2\n length.Y = lineWidth\n break\n case 'size4':\n length.X = lineWidth\n length.Y = lineWidth * 1.5\n break\n case 'size5':\n length.X = lineWidth * 1.5\n length.Y = lineWidth * 1.5\n break\n case 'size6':\n length.X = lineWidth * 2\n length.Y = lineWidth * 1.5\n break\n case 'size7':\n length.X = lineWidth\n length.Y = lineWidth * 2\n break\n case 'size8':\n length.X = lineWidth * 1.5\n length.Y = lineWidth * 2\n break\n case 'size9':\n length.X = lineWidth * 2\n length.Y = lineWidth * 2\n break\n default:\n length.X = lineWidth * 1.5\n length.Y = lineWidth * 1.5\n break\n }\n return length\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = stroke;
7
+ /*
8
+ * Copyright © HatioLab Inc. All rights reserved.
9
+ */
10
+
11
+ function stroke(context, style, hostComponent) {
12
+ var {
13
+ strokeStyle,
14
+ lineDash,
15
+ lineWidth,
16
+ lineCap,
17
+ lineJoin,
18
+ alpha
19
+ } = style;
20
+ // var strokeStyle = hostComponent.strokeStyle;
21
+
22
+ if (!strokeStyle || lineWidth == 0)
23
+ // 라인색이나 굵기가 없을시 무조건 그리지 않음
24
+ return;
25
+ if (lineCap) context.lineCap = lineCap;
26
+ if (lineDash) {
27
+ var isRound = lineCap == 'round';
28
+ switch (lineDash) {
29
+ case 'solid':
30
+ lineDash = [0, 0];
31
+ break;
32
+ case 'round-dot':
33
+ if (isRound) lineDash = [0, lineWidth * 2];else lineDash = [lineWidth, lineWidth];
34
+ break;
35
+ case 'square-dot':
36
+ if (isRound) lineDash = [lineWidth, lineWidth * 2];else lineDash = [lineWidth * 2, lineWidth];
37
+ break;
38
+ case 'dash':
39
+ if (isRound) lineDash = [lineWidth * 3, lineWidth * 2.5];else lineDash = [lineWidth * 4, lineWidth * 1.5];
40
+ break;
41
+ case 'dash-dot':
42
+ if (isRound) lineDash = [lineWidth * 3, lineWidth * 3, 0, lineWidth * 3];else lineDash = [lineWidth * 4, lineWidth * 2, lineWidth, lineWidth * 2];
43
+ break;
44
+ case 'long-dash':
45
+ if (isRound) lineDash = [lineWidth * 5, lineWidth * 4];else lineDash = [lineWidth * 6, lineWidth * 3];
46
+ break;
47
+ case 'long-dash-dot':
48
+ if (isRound) lineDash = [lineWidth * 5, lineWidth * 3, 0, lineWidth * 3];else lineDash = [lineWidth * 6, lineWidth * 2, lineWidth, lineWidth * 2];
49
+ break;
50
+ case 'long-dash-dot-dot':
51
+ if (isRound) lineDash = [lineWidth * 5, lineWidth * 2, 0, lineWidth * 2, 0, lineWidth * 2];else lineDash = [lineWidth * 6, lineWidth, lineWidth, lineWidth, lineWidth, lineWidth];
52
+ break;
53
+ }
54
+ context.setLineDash(lineDash);
55
+ }
56
+ context.globalAlpha *= alpha;
57
+ context.strokeStyle = strokeStyle;
58
+ context.lineWidth = lineWidth;
59
+ context.lineJoin = lineJoin;
60
+ context.stroke();
61
+ }
62
+ //# sourceMappingURL=stroke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stroke.js","names":["stroke","context","style","hostComponent","strokeStyle","lineDash","lineWidth","lineCap","lineJoin","alpha","isRound","setLineDash","globalAlpha"],"sources":["../../../src/components/drawer/stroke.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport default function stroke(context, style, hostComponent) {\n var { strokeStyle, lineDash, lineWidth, lineCap, lineJoin, alpha } = style\n // var strokeStyle = hostComponent.strokeStyle;\n\n if (!strokeStyle || lineWidth == 0)\n // 라인색이나 굵기가 없을시 무조건 그리지 않음\n return\n\n if (lineCap) context.lineCap = lineCap\n\n if (lineDash) {\n var isRound = lineCap == 'round'\n\n switch (lineDash) {\n case 'solid':\n lineDash = [0, 0]\n break\n case 'round-dot':\n if (isRound) lineDash = [0, lineWidth * 2]\n else lineDash = [lineWidth, lineWidth]\n break\n case 'square-dot':\n if (isRound) lineDash = [lineWidth, lineWidth * 2]\n else lineDash = [lineWidth * 2, lineWidth]\n break\n case 'dash':\n if (isRound) lineDash = [lineWidth * 3, lineWidth * 2.5]\n else lineDash = [lineWidth * 4, lineWidth * 1.5]\n break\n case 'dash-dot':\n if (isRound) lineDash = [lineWidth * 3, lineWidth * 3, 0, lineWidth * 3]\n else lineDash = [lineWidth * 4, lineWidth * 2, lineWidth, lineWidth * 2]\n break\n case 'long-dash':\n if (isRound) lineDash = [lineWidth * 5, lineWidth * 4]\n else lineDash = [lineWidth * 6, lineWidth * 3]\n break\n case 'long-dash-dot':\n if (isRound) lineDash = [lineWidth * 5, lineWidth * 3, 0, lineWidth * 3]\n else lineDash = [lineWidth * 6, lineWidth * 2, lineWidth, lineWidth * 2]\n break\n case 'long-dash-dot-dot':\n if (isRound) lineDash = [lineWidth * 5, lineWidth * 2, 0, lineWidth * 2, 0, lineWidth * 2]\n else lineDash = [lineWidth * 6, lineWidth, lineWidth, lineWidth, lineWidth, lineWidth]\n break\n }\n context.setLineDash(lineDash)\n }\n\n context.globalAlpha *= alpha\n context.strokeStyle = strokeStyle\n context.lineWidth = lineWidth\n context.lineJoin = lineJoin\n\n context.stroke()\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEe,SAASA,MAAMA,CAACC,OAAO,EAAEC,KAAK,EAAEC,aAAa,EAAE;EAC5D,IAAI;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGP,KAAK;EAC1E;;EAEA,IAAI,CAACE,WAAW,IAAIE,SAAS,IAAI,CAAC;IAChC;IACA;EAEF,IAAIC,OAAO,EAAEN,OAAO,CAACM,OAAO,GAAGA,OAAO;EAEtC,IAAIF,QAAQ,EAAE;IACZ,IAAIK,OAAO,GAAGH,OAAO,IAAI,OAAO;IAEhC,QAAQF,QAAQ;MACd,KAAK,OAAO;QACVA,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACjB;MACF,KAAK,WAAW;QACd,IAAIK,OAAO,EAAEL,QAAQ,GAAG,CAAC,CAAC,EAAEC,SAAS,GAAG,CAAC,CAAC,MACrCD,QAAQ,GAAG,CAACC,SAAS,EAAEA,SAAS,CAAC;QACtC;MACF,KAAK,YAAY;QACf,IAAII,OAAO,EAAEL,QAAQ,GAAG,CAACC,SAAS,EAAEA,SAAS,GAAG,CAAC,CAAC,MAC7CD,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,CAAC;QAC1C;MACF,KAAK,MAAM;QACT,IAAII,OAAO,EAAEL,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,GAAG,CAAC,MACnDD,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,GAAG,CAAC;QAChD;MACF,KAAK,UAAU;QACb,IAAII,OAAO,EAAEL,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,CAAC,EAAE,CAAC,EAAEA,SAAS,GAAG,CAAC,CAAC,MACnED,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,CAAC,EAAEA,SAAS,EAAEA,SAAS,GAAG,CAAC,CAAC;QACxE;MACF,KAAK,WAAW;QACd,IAAII,OAAO,EAAEL,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,CAAC,CAAC,MACjDD,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,CAAC,CAAC;QAC9C;MACF,KAAK,eAAe;QAClB,IAAII,OAAO,EAAEL,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,CAAC,EAAE,CAAC,EAAEA,SAAS,GAAG,CAAC,CAAC,MACnED,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,CAAC,EAAEA,SAAS,EAAEA,SAAS,GAAG,CAAC,CAAC;QACxE;MACF,KAAK,mBAAmB;QACtB,IAAII,OAAO,EAAEL,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAG,CAAC,EAAE,CAAC,EAAEA,SAAS,GAAG,CAAC,EAAE,CAAC,EAAEA,SAAS,GAAG,CAAC,CAAC,MACrFD,QAAQ,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEA,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEA,SAAS,CAAC;QACtF;IACJ;IACAL,OAAO,CAACU,WAAW,CAACN,QAAQ,CAAC;EAC/B;EAEAJ,OAAO,CAACW,WAAW,IAAIH,KAAK;EAC5BR,OAAO,CAACG,WAAW,GAAGA,WAAW;EACjCH,OAAO,CAACK,SAAS,GAAGA,SAAS;EAC7BL,OAAO,CAACO,QAAQ,GAAGA,QAAQ;EAE3BP,OAAO,CAACD,MAAM,CAAC,CAAC;AAClB","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = splitTextToLines;
7
+ function wrapWord(context, word, width, letterSpacing = 0) {
8
+ if (word.length < 2) return word;
9
+ let index = 2;
10
+ for (; index < word.length; index++) {
11
+ const substring = word.substring(0, index);
12
+ const textWidth = context.measureText(substring).width + (substring.length - 1) * letterSpacing;
13
+ if (textWidth < width) continue;
14
+ break;
15
+ }
16
+ return word.substring(0, index - 1);
17
+ }
18
+ function wrapLine(context, line, width, letterSpacing = 0) {
19
+ const words = line.split(' '); // 공백으로 단어를 분리함.
20
+ const lines = [];
21
+ let begin, end;
22
+ let slice = [];
23
+ for (begin = 0, end = 1; end <= words.length; end++) {
24
+ slice = words.slice(begin, end); // 단어를 하나씩 추가하면서 계산을 시작함.
25
+
26
+ const sliceWidth = context.measureText(slice.join(' ')).width + (slice.join('').length - 1) * letterSpacing;
27
+ if (sliceWidth > width) {
28
+ if (end - begin == 1) {
29
+ const line = wrapWord(context, slice[0], width, letterSpacing);
30
+ lines.push([line]);
31
+ words.splice(begin, 1, line, slice[0].substring(line.length));
32
+ } else {
33
+ while (words[end - 1] == '') end++;
34
+ lines.push(words.slice(begin, --end));
35
+ }
36
+ begin = end;
37
+ }
38
+ }
39
+ if (end - begin > 1) lines.push(slice);
40
+ if (lines.length == 0) lines.push(['']);
41
+ return lines;
42
+ }
43
+ function splitTextToLines(context, text, width, wrap, letterSpacing = 0) {
44
+ const lines = String(text).split('\n');
45
+ if (wrap) {
46
+ return [].concat.apply([], lines.map(line => wrapLine(context, line, width, letterSpacing)));
47
+ } else {
48
+ return lines.map(line => line.split(' '));
49
+ }
50
+ }
51
+ //# sourceMappingURL=text-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-wrapper.js","names":["wrapWord","context","word","width","letterSpacing","length","index","substring","textWidth","measureText","wrapLine","line","words","split","lines","begin","end","slice","sliceWidth","join","push","splice","splitTextToLines","text","wrap","String","concat","apply","map"],"sources":["../../../src/components/drawer/text-wrapper.js"],"sourcesContent":["function wrapWord(context, word, width, letterSpacing = 0) {\n if (word.length < 2) return word\n\n let index = 2\n for (; index < word.length; index++) {\n const substring = word.substring(0, index)\n const textWidth = context.measureText(substring).width + (substring.length - 1) * letterSpacing\n if (textWidth < width) continue\n\n break\n }\n\n return word.substring(0, index - 1)\n}\n\nfunction wrapLine(context, line, width, letterSpacing = 0) {\n const words = line.split(' ') // 공백으로 단어를 분리함.\n const lines = []\n let begin, end\n let slice = []\n\n for (begin = 0, end = 1; end <= words.length; end++) {\n slice = words.slice(begin, end) // 단어를 하나씩 추가하면서 계산을 시작함.\n\n const sliceWidth = context.measureText(slice.join(' ')).width + (slice.join('').length - 1) * letterSpacing\n if (sliceWidth > width) {\n if (end - begin == 1) {\n const line = wrapWord(context, slice[0], width, letterSpacing)\n lines.push([line])\n words.splice(begin, 1, line, slice[0].substring(line.length))\n } else {\n while (words[end - 1] == '') end++\n lines.push(words.slice(begin, --end))\n }\n begin = end\n }\n }\n\n if (end - begin > 1) lines.push(slice)\n if (lines.length == 0) lines.push([''])\n\n return lines\n}\n\nexport default function splitTextToLines(context, text, width, wrap, letterSpacing = 0) {\n const lines = String(text).split('\\n')\n if (wrap) {\n return [].concat.apply(\n [],\n lines.map(line => wrapLine(context, line, width, letterSpacing))\n )\n } else {\n return lines.map(line => line.split(' '))\n }\n}\n"],"mappings":"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","ignoreList":[]}