@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.
- package/package.json +1 -1
- package/things-scene-min.js +11 -11
- package/things-scene-min.js.map +1 -1
- package/things-scene.mjs +11 -11
- package/things-scene.mjs.map +1 -1
- package/.cursorignore +0 -62
- package/.prettierrc +0 -21
- package/assets/icon-audio.png +0 -0
- package/assets/icon-gif-viewer.png +0 -0
- package/assets/images/spinner.png +0 -0
- package/babel.config.js +0 -23
- package/db.sqlite +0 -0
- package/dist/animation/animate.js +0 -63
- package/dist/animation/animate.js.map +0 -1
- package/dist/animation/animations/animation.js +0 -122
- package/dist/animation/animations/animation.js.map +0 -1
- package/dist/animation/animations/fade.js +0 -28
- package/dist/animation/animations/fade.js.map +0 -1
- package/dist/animation/animations/heartbeat.js +0 -28
- package/dist/animation/animations/heartbeat.js.map +0 -1
- package/dist/animation/animations/moving.js +0 -24
- package/dist/animation/animations/moving.js.map +0 -1
- package/dist/animation/animations/outline.js +0 -47
- package/dist/animation/animations/outline.js.map +0 -1
- package/dist/animation/animations/rotation.js +0 -22
- package/dist/animation/animations/rotation.js.map +0 -1
- package/dist/animation/animations/vibration.js +0 -31
- package/dist/animation/animations/vibration.js.map +0 -1
- package/dist/animation/compile.js +0 -31
- package/dist/animation/compile.js.map +0 -1
- package/dist/animation/delta.js +0 -51
- package/dist/animation/delta.js.map +0 -1
- package/dist/animation/index.js +0 -14
- package/dist/animation/index.js.map +0 -1
- package/dist/command/command-change.js +0 -33
- package/dist/command/command-change.js.map +0 -1
- package/dist/command/command-migrate.js +0 -103
- package/dist/command/command-migrate.js.map +0 -1
- package/dist/command/command.js +0 -18
- package/dist/command/command.js.map +0 -1
- package/dist/command/snapshot-commander.js +0 -84
- package/dist/command/snapshot-commander.js.map +0 -1
- package/dist/components/anchor/anchor.js +0 -105
- package/dist/components/anchor/anchor.js.map +0 -1
- package/dist/components/anchor/ellipse-anchors.js +0 -53
- package/dist/components/anchor/ellipse-anchors.js.map +0 -1
- package/dist/components/anchor/rect-anchors.js +0 -53
- package/dist/components/anchor/rect-anchors.js.map +0 -1
- package/dist/components/audio.js +0 -154
- package/dist/components/audio.js.map +0 -1
- package/dist/components/cloud.js +0 -44
- package/dist/components/cloud.js.map +0 -1
- package/dist/components/component.js +0 -1086
- package/dist/components/component.js.map +0 -1
- package/dist/components/container-abstract.js +0 -387
- package/dist/components/container-abstract.js.map +0 -1
- package/dist/components/container.js +0 -331
- package/dist/components/container.js.map +0 -1
- package/dist/components/data/data-mapping.js +0 -82
- package/dist/components/data/data-mapping.js.map +0 -1
- package/dist/components/data/data.js +0 -166
- package/dist/components/data/data.js.map +0 -1
- package/dist/components/data/evaluator.js +0 -103
- package/dist/components/data/evaluator.js.map +0 -1
- package/dist/components/donut.js +0 -104
- package/dist/components/donut.js.map +0 -1
- package/dist/components/drawer/draw-image-pendable.js +0 -20
- package/dist/components/drawer/draw-image-pendable.js.map +0 -1
- package/dist/components/drawer/effect.js +0 -19
- package/dist/components/drawer/effect.js.map +0 -1
- package/dist/components/drawer/fill.js +0 -228
- package/dist/components/drawer/fill.js.map +0 -1
- package/dist/components/drawer/format.js +0 -115
- package/dist/components/drawer/format.js.map +0 -1
- package/dist/components/drawer/line.js +0 -191
- package/dist/components/drawer/line.js.map +0 -1
- package/dist/components/drawer/stroke.js +0 -62
- package/dist/components/drawer/stroke.js.map +0 -1
- package/dist/components/drawer/text-wrapper.js +0 -51
- package/dist/components/drawer/text-wrapper.js.map +0 -1
- package/dist/components/drawer/text.js +0 -269
- package/dist/components/drawer/text.js.map +0 -1
- package/dist/components/ellipse.js +0 -110
- package/dist/components/ellipse.js.map +0 -1
- package/dist/components/file/ondropfile.js +0 -19
- package/dist/components/file/ondropfile.js.map +0 -1
- package/dist/components/fit/fit.js +0 -137
- package/dist/components/fit/fit.js.map +0 -1
- package/dist/components/geometry/transcoord.js +0 -339
- package/dist/components/geometry/transcoord.js.map +0 -1
- package/dist/components/geometry/union.js +0 -35
- package/dist/components/geometry/union.js.map +0 -1
- package/dist/components/gif-view.js +0 -128
- package/dist/components/gif-view.js.map +0 -1
- package/dist/components/global-ref.js +0 -154
- package/dist/components/global-ref.js.map +0 -1
- package/dist/components/group.js +0 -171
- package/dist/components/group.js.map +0 -1
- package/dist/components/html/elements.js +0 -24
- package/dist/components/html/elements.js.map +0 -1
- package/dist/components/html/fill.js +0 -126
- package/dist/components/html/fill.js.map +0 -1
- package/dist/components/html/reposition.js +0 -119
- package/dist/components/html/reposition.js.map +0 -1
- package/dist/components/html/shadow.js +0 -24
- package/dist/components/html/shadow.js.map +0 -1
- package/dist/components/html-overlay-container.js +0 -27
- package/dist/components/html-overlay-container.js.map +0 -1
- package/dist/components/html-overlay-element.js +0 -22
- package/dist/components/html-overlay-element.js.map +0 -1
- package/dist/components/image-view.js +0 -193
- package/dist/components/image-view.js.map +0 -1
- package/dist/components/index.js +0 -231
- package/dist/components/index.js.map +0 -1
- package/dist/components/info-window.js +0 -416
- package/dist/components/info-window.js.map +0 -1
- package/dist/components/line.js +0 -374
- package/dist/components/line.js.map +0 -1
- package/dist/components/local-ref.js +0 -114
- package/dist/components/local-ref.js.map +0 -1
- package/dist/components/mixins/connectable.js +0 -128
- package/dist/components/mixins/connectable.js.map +0 -1
- package/dist/components/mixins/data-source.js +0 -34
- package/dist/components/mixins/data-source.js.map +0 -1
- package/dist/components/mixins/html-element.js +0 -107
- package/dist/components/mixins/html-element.js.map +0 -1
- package/dist/components/mixins/move-handle.js +0 -73
- package/dist/components/mixins/move-handle.js.map +0 -1
- package/dist/components/mixins/rect-path.js +0 -113
- package/dist/components/mixins/rect-path.js.map +0 -1
- package/dist/components/mixins/value-holder.js +0 -81
- package/dist/components/mixins/value-holder.js.map +0 -1
- package/dist/components/mutater/bounds.js +0 -68
- package/dist/components/mutater/bounds.js.map +0 -1
- package/dist/components/mutater/path.js +0 -73
- package/dist/components/mutater/path.js.map +0 -1
- package/dist/components/ortholine.js +0 -763
- package/dist/components/ortholine.js.map +0 -1
- package/dist/components/outline/ellipse-outline.js +0 -23
- package/dist/components/outline/ellipse-outline.js.map +0 -1
- package/dist/components/outline/path-outline.js +0 -48
- package/dist/components/outline/path-outline.js.map +0 -1
- package/dist/components/path.js +0 -49
- package/dist/components/path.js.map +0 -1
- package/dist/components/polygon.js +0 -91
- package/dist/components/polygon.js.map +0 -1
- package/dist/components/polyline.js +0 -114
- package/dist/components/polyline.js.map +0 -1
- package/dist/components/popup.js +0 -160
- package/dist/components/popup.js.map +0 -1
- package/dist/components/rect.js +0 -72
- package/dist/components/rect.js.map +0 -1
- package/dist/components/retention/retention-manager.js +0 -81
- package/dist/components/retention/retention-manager.js.map +0 -1
- package/dist/components/root-container.js +0 -519
- package/dist/components/root-container.js.map +0 -1
- package/dist/components/ruler.js +0 -103
- package/dist/components/ruler.js.map +0 -1
- package/dist/components/shape.js +0 -97
- package/dist/components/shape.js.map +0 -1
- package/dist/components/star.js +0 -103
- package/dist/components/star.js.map +0 -1
- package/dist/components/text/substitutor.js +0 -92
- package/dist/components/text/substitutor.js.map +0 -1
- package/dist/components/text.js +0 -21
- package/dist/components/text.js.map +0 -1
- package/dist/components/triangle.js +0 -92
- package/dist/components/triangle.js.map +0 -1
- package/dist/const.js +0 -71
- package/dist/const.js.map +0 -1
- package/dist/core/collection.js +0 -28
- package/dist/core/collection.js.map +0 -1
- package/dist/core/debug.js +0 -12
- package/dist/core/debug.js.map +0 -1
- package/dist/core/deep-equals.js +0 -112
- package/dist/core/deep-equals.js.map +0 -1
- package/dist/core/dom-to-image.js +0 -617
- package/dist/core/dom-to-image.js.map +0 -1
- package/dist/core/event.js +0 -205
- package/dist/core/event.js.map +0 -1
- package/dist/core/index.js +0 -21
- package/dist/core/index.js.map +0 -1
- package/dist/core/list.js +0 -87
- package/dist/core/list.js.map +0 -1
- package/dist/core/logger.js +0 -29
- package/dist/core/logger.js.map +0 -1
- package/dist/core/memoize.js +0 -40
- package/dist/core/memoize.js.map +0 -1
- package/dist/core/mixin.js +0 -26
- package/dist/core/mixin.js.map +0 -1
- package/dist/core/obj-accessor.js +0 -26
- package/dist/core/obj-accessor.js.map +0 -1
- package/dist/core/reference-map.js +0 -147
- package/dist/core/reference-map.js.map +0 -1
- package/dist/core/round-rect.js +0 -62
- package/dist/core/round-rect.js.map +0 -1
- package/dist/core/safe-round.js +0 -10
- package/dist/core/safe-round.js.map +0 -1
- package/dist/core/script-loader.js +0 -148
- package/dist/core/script-loader.js.map +0 -1
- package/dist/core/snapshot-taker.js +0 -59
- package/dist/core/snapshot-taker.js.map +0 -1
- package/dist/core/stack.js +0 -18
- package/dist/core/stack.js.map +0 -1
- package/dist/core/timecapsule.js +0 -88
- package/dist/core/timecapsule.js.map +0 -1
- package/dist/core/utils.js +0 -309
- package/dist/core/utils.js.map +0 -1
- package/dist/decorator/anchors-decorator.js +0 -53
- package/dist/decorator/anchors-decorator.js.map +0 -1
- package/dist/decorator/bouncing-arrow-decorator.js +0 -52
- package/dist/decorator/bouncing-arrow-decorator.js.map +0 -1
- package/dist/decorator/data-spread-decorator.js +0 -69
- package/dist/decorator/data-spread-decorator.js.map +0 -1
- package/dist/decorator/decotag-decorator.js +0 -33
- package/dist/decorator/decotag-decorator.js.map +0 -1
- package/dist/decorator/index.js +0 -31
- package/dist/decorator/index.js.map +0 -1
- package/dist/decorator/link-decorator.js +0 -66
- package/dist/decorator/link-decorator.js.map +0 -1
- package/dist/effect/gradation.js +0 -37
- package/dist/effect/gradation.js.map +0 -1
- package/dist/effect/index.js +0 -23
- package/dist/effect/index.js.map +0 -1
- package/dist/effect/shadow.js +0 -33
- package/dist/effect/shadow.js.map +0 -1
- package/dist/effect/turn.js +0 -25
- package/dist/effect/turn.js.map +0 -1
- package/dist/event/event-engine.js +0 -76
- package/dist/event/event-engine.js.map +0 -1
- package/dist/event/event-pump.js +0 -92
- package/dist/event/event-pump.js.map +0 -1
- package/dist/event/event-tracker.js +0 -97
- package/dist/event/event-tracker.js.map +0 -1
- package/dist/event/index.js +0 -21
- package/dist/event/index.js.map +0 -1
- package/dist/event/ua-event-handler.js +0 -453
- package/dist/event/ua-event-handler.js.map +0 -1
- package/dist/event-map/animator-handler.js +0 -225
- package/dist/event-map/animator-handler.js.map +0 -1
- package/dist/event-map/animators/animated-icon.js +0 -265
- package/dist/event-map/animators/animated-icon.js.map +0 -1
- package/dist/event-map/animators/border-highlighting.js +0 -476
- package/dist/event-map/animators/border-highlighting.js.map +0 -1
- package/dist/event-map/animators/bouncing-arrow.js +0 -226
- package/dist/event-map/animators/bouncing-arrow.js.map +0 -1
- package/dist/event-map/event-map.js +0 -36
- package/dist/event-map/event-map.js.map +0 -1
- package/dist/event-map/index.js +0 -20
- package/dist/event-map/index.js.map +0 -1
- package/dist/event-map/move-handler.js +0 -233
- package/dist/event-map/move-handler.js.map +0 -1
- package/dist/event-map/paste-handler.js +0 -176
- package/dist/event-map/paste-handler.js.map +0 -1
- package/dist/event-map/shift-handler.js +0 -55
- package/dist/event-map/shift-handler.js.map +0 -1
- package/dist/event-map/text-editor-lite.js +0 -276
- package/dist/event-map/text-editor-lite.js.map +0 -1
- package/dist/event-map/zoom-handler.js +0 -49
- package/dist/event-map/zoom-handler.js.map +0 -1
- package/dist/index.js +0 -20
- package/dist/index.js.map +0 -1
- package/dist/layer/action/emphasize.js +0 -42
- package/dist/layer/action/emphasize.js.map +0 -1
- package/dist/layer/action/popup.js +0 -461
- package/dist/layer/action/popup.js.map +0 -1
- package/dist/layer/action/pressed.js +0 -31
- package/dist/layer/action/pressed.js.map +0 -1
- package/dist/layer/add-layer.js +0 -180
- package/dist/layer/add-layer.js.map +0 -1
- package/dist/layer/decotag-layer.js +0 -121
- package/dist/layer/decotag-layer.js.map +0 -1
- package/dist/layer/guide-layer.js +0 -292
- package/dist/layer/guide-layer.js.map +0 -1
- package/dist/layer/index.js +0 -70
- package/dist/layer/index.js.map +0 -1
- package/dist/layer/layer.js +0 -230
- package/dist/layer/layer.js.map +0 -1
- package/dist/layer/minimap-layer.js +0 -84
- package/dist/layer/minimap-layer.js.map +0 -1
- package/dist/layer/model-layer.js +0 -465
- package/dist/layer/model-layer.js.map +0 -1
- package/dist/layer/modeler/anchor-handler.js +0 -193
- package/dist/layer/modeler/anchor-handler.js.map +0 -1
- package/dist/layer/modeler/control-handler.js +0 -95
- package/dist/layer/modeler/control-handler.js.map +0 -1
- package/dist/layer/modeler/focus-outline.js +0 -41
- package/dist/layer/modeler/focus-outline.js.map +0 -1
- package/dist/layer/modeler/group-outline.js +0 -30
- package/dist/layer/modeler/group-outline.js.map +0 -1
- package/dist/layer/modeler/index.js +0 -56
- package/dist/layer/modeler/index.js.map +0 -1
- package/dist/layer/modeler/path-handler.js +0 -300
- package/dist/layer/modeler/path-handler.js.map +0 -1
- package/dist/layer/modeler/resizer.js +0 -333
- package/dist/layer/modeler/resizer.js.map +0 -1
- package/dist/layer/modeler/rotator.js +0 -134
- package/dist/layer/modeler/rotator.js.map +0 -1
- package/dist/layer/modeling-layer.js +0 -491
- package/dist/layer/modeling-layer.js.map +0 -1
- package/dist/layer/reaction-layer.js +0 -111
- package/dist/layer/reaction-layer.js.map +0 -1
- package/dist/layer/scroll-layer.js +0 -191
- package/dist/layer/scroll-layer.js.map +0 -1
- package/dist/layer/selection/selected-finder.js +0 -96
- package/dist/layer/selection/selected-finder.js.map +0 -1
- package/dist/layer/selection-layer.js +0 -373
- package/dist/layer/selection-layer.js.map +0 -1
- package/dist/layer/shift-layer.js +0 -83
- package/dist/layer/shift-layer.js.map +0 -1
- package/dist/layout/absolute.js +0 -30
- package/dist/layout/absolute.js.map +0 -1
- package/dist/layout/card.js +0 -52
- package/dist/layout/card.js.map +0 -1
- package/dist/layout/html-absolute.js +0 -32
- package/dist/layout/html-absolute.js.map +0 -1
- package/dist/layout/index.js +0 -56
- package/dist/layout/index.js.map +0 -1
- package/dist/layout/layout.js +0 -36
- package/dist/layout/layout.js.map +0 -1
- package/dist/layout/linear-horizontal.js +0 -56
- package/dist/layout/linear-horizontal.js.map +0 -1
- package/dist/layout/linear-vertical.js +0 -56
- package/dist/layout/linear-vertical.js.map +0 -1
- package/dist/layout/table.js +0 -106
- package/dist/layout/table.js.map +0 -1
- package/dist/license/license.js +0 -170
- package/dist/license/license.js.map +0 -1
- package/dist/model/compile.js +0 -40
- package/dist/model/compile.js.map +0 -1
- package/dist/model/duplicate.js +0 -19
- package/dist/model/duplicate.js.map +0 -1
- package/dist/model/index.js +0 -34
- package/dist/model/index.js.map +0 -1
- package/dist/model/selector.js +0 -104
- package/dist/model/selector.js.map +0 -1
- package/dist/style/compile.js +0 -14
- package/dist/style/compile.js.map +0 -1
- package/dist/style/index.js +0 -14
- package/dist/style/index.js.map +0 -1
- package/dist/things-scene/api/add-start.js +0 -18
- package/dist/things-scene/api/add-start.js.map +0 -1
- package/dist/things-scene/api/add.js +0 -71
- package/dist/things-scene/api/add.js.map +0 -1
- package/dist/things-scene/api/align.js +0 -116
- package/dist/things-scene/api/align.js.map +0 -1
- package/dist/things-scene/api/center-to.js +0 -50
- package/dist/things-scene/api/center-to.js.map +0 -1
- package/dist/things-scene/api/change.js +0 -27
- package/dist/things-scene/api/change.js.map +0 -1
- package/dist/things-scene/api/clipboard.js +0 -45
- package/dist/things-scene/api/clipboard.js.map +0 -1
- package/dist/things-scene/api/distribute.js +0 -57
- package/dist/things-scene/api/distribute.js.map +0 -1
- package/dist/things-scene/api/duplicate.js +0 -47
- package/dist/things-scene/api/duplicate.js.map +0 -1
- package/dist/things-scene/api/fullscreen.js +0 -26
- package/dist/things-scene/api/fullscreen.js.map +0 -1
- package/dist/things-scene/api/group.js +0 -91
- package/dist/things-scene/api/group.js.map +0 -1
- package/dist/things-scene/api/ids.js +0 -28
- package/dist/things-scene/api/ids.js.map +0 -1
- package/dist/things-scene/api/index.js +0 -192
- package/dist/things-scene/api/index.js.map +0 -1
- package/dist/things-scene/api/listener.js +0 -69
- package/dist/things-scene/api/listener.js.map +0 -1
- package/dist/things-scene/api/paste-start.js +0 -27
- package/dist/things-scene/api/paste-start.js.map +0 -1
- package/dist/things-scene/api/place.js +0 -98
- package/dist/things-scene/api/place.js.map +0 -1
- package/dist/things-scene/api/remove.js +0 -57
- package/dist/things-scene/api/remove.js.map +0 -1
- package/dist/things-scene/api/symmetry.js +0 -47
- package/dist/things-scene/api/symmetry.js.map +0 -1
- package/dist/things-scene/api/to-data-url.js +0 -76
- package/dist/things-scene/api/to-data-url.js.map +0 -1
- package/dist/things-scene/api/zorder.js +0 -68
- package/dist/things-scene/api/zorder.js.map +0 -1
- package/dist/things-scene/application-context.js +0 -168
- package/dist/things-scene/application-context.js.map +0 -1
- package/dist/things-scene/config.js +0 -18
- package/dist/things-scene/config.js.map +0 -1
- package/dist/things-scene/create.js +0 -67
- package/dist/things-scene/create.js.map +0 -1
- package/dist/things-scene/fps.js +0 -26
- package/dist/things-scene/fps.js.map +0 -1
- package/dist/things-scene/index.js +0 -152
- package/dist/things-scene/index.js.map +0 -1
- package/dist/things-scene/polyfill.js +0 -111
- package/dist/things-scene/polyfill.js.map +0 -1
- package/dist/things-scene/scene.js +0 -442
- package/dist/things-scene/scene.js.map +0 -1
- package/dist/things-scene/version.js +0 -12
- package/dist/things-scene/version.js.map +0 -1
- package/rollup.config.js +0 -67
- package/schema.graphql +0 -4606
- package/tsconfig.json +0 -31
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ortholine.js","names":["_component","_interopRequireDefault","require","_line","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FROM","TO","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","min","max","step","help","OrthoLine","Line","pathExtendable","drawPath","fromPosition","path","toPosition","component","fromComponent","direction","fromDirection","boundaryPosition","fromBoundaryPosition","fromEnd","toComponent","toDirection","toBoundaryPosition","toEnd","boundaryPositions","push","fromOriginBounds","bounds","transcoorded","transcoordS2T","left","top","transcoordT2P","x","y","fromBounds","width","height","toOriginBounds","toBounds","fromToBounds","leftMost","topMost","unionBounds","centerX","centerY","centerWidth","centerHeight","upperComponent","leftComponent","rightComponent","lowerComponent","upperComponentDirection","lowerComponentDirection","leftComponentDirection","rightComponentDirection","lpath","WEST","EAST","leftComponentCenterY","leftY","Math","NORTH","SOUTH","rightY","undefined","reverse","upperComponentCenterX","upperX","lowerX","filter","p","idx","prev","length","next","nature","exports","Component","register"],"sources":["../../src/components/ortholine.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Line, { SOUTH, NORTH, EAST, WEST } from './line.js'\n\nconst FROM = 0\nconst TO = 1\n\nconst NATURE = {\n mutable: false,\n resizable: false,\n rotatable: false,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n }\n ],\n help: 'scene/component/ortholine'\n}\n\nexport default class OrthoLine extends Line {\n get pathExtendable() {\n return false\n }\n\n get drawPath() {\n const fromPosition = this.path[0]\n const toPosition = this.path[1]\n\n const {\n component: fromComponent,\n direction: fromDirection,\n boundaryPosition: fromBoundaryPosition = fromPosition\n } = this.fromEnd || {}\n const {\n component: toComponent,\n direction: toDirection,\n boundaryPosition: toBoundaryPosition = toPosition\n } = this.toEnd || {}\n\n var boundaryPositions = [fromBoundaryPosition, toBoundaryPosition]\n\n var path = []\n\n if (fromBoundaryPosition) {\n path.push(fromBoundaryPosition)\n }\n\n /* 두 컴포넌트의 확장된 바운드를 구한다. */\n var fromOriginBounds = fromComponent?.bounds\n if (fromOriginBounds) {\n var transcoorded = fromComponent.transcoordS2T(fromOriginBounds.left, fromOriginBounds.top)\n transcoorded = this.transcoordT2P(transcoorded.x, transcoorded.y)\n\n fromOriginBounds = {\n ...fromOriginBounds,\n left: transcoorded.x,\n top: transcoorded.y\n }\n }\n\n var fromBounds = fromOriginBounds\n ? {\n left: fromOriginBounds.left - 20,\n top: fromOriginBounds.top - 20,\n width: fromOriginBounds.width + 40,\n height: fromOriginBounds.height + 40\n }\n : {\n left: fromBoundaryPosition.x,\n top: fromBoundaryPosition.y,\n width: 0,\n height: 0\n }\n fromOriginBounds = fromOriginBounds || fromBounds\n\n var toOriginBounds = toComponent?.bounds\n if (toOriginBounds) {\n var transcoorded = toComponent.transcoordS2T(toOriginBounds.left, toOriginBounds.top)\n transcoorded = this.transcoordT2P(transcoorded.x, transcoorded.y)\n\n toOriginBounds = {\n ...toOriginBounds,\n left: transcoorded.x,\n top: transcoorded.y\n }\n }\n\n var toBounds = toOriginBounds\n ? {\n left: toOriginBounds.left - 20,\n top: toOriginBounds.top - 20,\n width: toOriginBounds.width + 40,\n height: toOriginBounds.height + 40\n }\n : {\n left: toBoundaryPosition.x,\n top: toBoundaryPosition.y,\n width: 0,\n height: 0\n }\n toOriginBounds = toOriginBounds || toBounds\n\n var fromToBounds = [fromBounds, toBounds]\n\n const leftMost = fromBounds.left > toBounds.left ? toBounds.left : fromBounds.left\n const topMost = fromBounds.top > toBounds.top ? toBounds.top : fromBounds.top\n\n var unionBounds = {\n left: leftMost,\n top: topMost,\n width:\n fromBounds.left + fromBounds.width > toBounds.left + toBounds.width\n ? fromBounds.left + fromBounds.width - leftMost\n : toBounds.left + toBounds.width - leftMost,\n height:\n fromBounds.top + fromBounds.height > toBounds.top + toBounds.height\n ? fromBounds.top + fromBounds.height - topMost\n : toBounds.top + toBounds.height - topMost\n }\n\n /* 두 컴포넌트 바운드의 센터를 찾는다. */\n var centerX,\n centerY,\n centerWidth = 0,\n centerHeight = 0\n var upperComponent, leftComponent, rightComponent, lowerComponent\n var upperComponentDirection, lowerComponentDirection\n var leftComponentDirection, rightComponentDirection\n\n if (fromOriginBounds.left + fromOriginBounds.width < toOriginBounds.left) {\n leftComponent = FROM\n rightComponent = TO\n leftComponentDirection = fromDirection\n rightComponentDirection = toDirection\n centerX = (fromOriginBounds.left + fromOriginBounds.width + toOriginBounds.left) / 2\n centerWidth = toOriginBounds.left - centerX\n } else if (toOriginBounds.left + toOriginBounds.width < fromOriginBounds.left) {\n leftComponent = TO\n rightComponent = FROM\n leftComponentDirection = toDirection\n rightComponentDirection = fromDirection\n centerX = (fromOriginBounds.left + toOriginBounds.width + toOriginBounds.left) / 2\n centerWidth = fromOriginBounds.left - centerX\n }\n\n if (fromOriginBounds.top + fromOriginBounds.height < toOriginBounds.top) {\n upperComponent = FROM\n lowerComponent = TO\n upperComponentDirection = fromDirection\n lowerComponentDirection = toDirection\n centerY = (fromOriginBounds.top + fromOriginBounds.height + toOriginBounds.top) / 2\n centerHeight = toOriginBounds.top - centerY\n } else if (toOriginBounds.top + toOriginBounds.height < fromOriginBounds.top) {\n upperComponent = TO\n lowerComponent = FROM\n upperComponentDirection = toDirection\n lowerComponentDirection = fromDirection\n centerY = (fromOriginBounds.top + toOriginBounds.height + toOriginBounds.top) / 2\n centerHeight = fromOriginBounds.top - centerY\n }\n\n /* 각 LinkEnd의 방향별 패스 구하기 */\n var lpath = []\n\n if (centerX && centerWidth > centerHeight) {\n switch (rightComponentDirection) {\n case WEST:\n switch (leftComponentDirection) {\n case EAST:\n lpath.push({\n x: centerX,\n y: boundaryPositions[leftComponent].y\n })\n\n lpath.push({\n x: centerX,\n y: boundaryPositions[rightComponent].y\n })\n break\n case WEST:\n var leftComponentCenterY = fromToBounds[leftComponent].top + fromToBounds[leftComponent].height / 2\n var leftY =\n leftComponentCenterY > boundaryPositions[rightComponent].y\n ? Math.min(fromToBounds[leftComponent].top, boundaryPositions[rightComponent].y)\n : Math.max(\n fromToBounds[leftComponent].top + fromToBounds[leftComponent].height,\n boundaryPositions[rightComponent].y\n )\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: boundaryPositions[rightComponent].y\n })\n break\n case NORTH:\n case SOUTH:\n var leftY =\n leftComponentDirection === SOUTH\n ? Math.max(boundaryPositions[leftComponent].y, boundaryPositions[rightComponent].y)\n : Math.min(boundaryPositions[leftComponent].y, boundaryPositions[rightComponent].y)\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: boundaryPositions[rightComponent].y\n })\n break\n default:\n return this.path\n }\n break\n case EAST:\n switch (leftComponentDirection) {\n case EAST:\n var leftY =\n boundaryPositions[leftComponent].y < boundaryPositions[rightComponent].y\n ? Math.min(fromToBounds[rightComponent].top, boundaryPositions[leftComponent].y)\n : Math.max(\n fromToBounds[rightComponent].top + fromToBounds[rightComponent].height,\n boundaryPositions[leftComponent].y\n )\n var rightY = leftY\n break\n\n case WEST:\n var leftY =\n centerY !== undefined\n ? centerY\n : boundaryPositions[leftComponent].y < boundaryPositions[rightComponent].y\n ? unionBounds.top - centerWidth * 0.5\n : unionBounds.top + unionBounds.height + centerWidth * 0.5\n\n var rightY = leftY\n\n break\n\n case SOUTH:\n var leftY =\n centerY !== undefined\n ? Math.max(centerY, boundaryPositions[leftComponent].y)\n : unionBounds.top + unionBounds.height\n var rightY = leftY\n\n break\n case NORTH:\n var leftY = centerY ? Math.min(centerY, fromToBounds[leftComponent].top) : unionBounds.top\n var rightY = leftY\n\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: rightY\n })\n\n lpath.push({\n x: boundaryPositions[rightComponent].x,\n y: rightY\n })\n\n break\n case SOUTH:\n switch (leftComponentDirection) {\n case EAST:\n var leftY = boundaryPositions[leftComponent].y\n var rightY =\n boundaryPositions[leftComponent].y > boundaryPositions[rightComponent].y\n ? boundaryPositions[leftComponent].y\n : fromToBounds[rightComponent].top + fromToBounds[rightComponent].height\n break\n\n case WEST:\n var leftY = centerY\n ? Math.max(centerY, fromToBounds[rightComponent].top + fromToBounds[rightComponent].height)\n : unionBounds.top + unionBounds.height\n var rightY = leftY\n\n break\n\n case SOUTH:\n var leftY = unionBounds.top + unionBounds.height\n var rightY = leftY\n\n break\n case NORTH:\n var leftY = centerY ? Math.min(centerY, fromToBounds[leftComponent].top) : fromToBounds[leftComponent].top\n var rightY = centerY\n ? Math.max(centerY, fromToBounds[rightComponent].top + fromToBounds[rightComponent].height)\n : fromToBounds[rightComponent].top + fromToBounds[rightComponent].height\n\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: rightY\n })\n\n lpath.push({\n x: boundaryPositions[rightComponent].x,\n y: rightY\n })\n break\n case NORTH:\n switch (leftComponentDirection) {\n case EAST:\n var leftY = boundaryPositions[leftComponent].y\n var rightY =\n boundaryPositions[leftComponent].y < boundaryPositions[rightComponent].y\n ? boundaryPositions[leftComponent].y\n : fromToBounds[rightComponent].top\n break\n\n case WEST:\n var leftY = centerY ? Math.min(centerY, fromToBounds[rightComponent].top) : unionBounds.top\n var rightY = leftY\n\n break\n\n case SOUTH:\n var leftY =\n centerY !== undefined\n ? Math.max(centerY, boundaryPositions[leftComponent].y)\n : boundaryPositions[leftComponent].y\n var rightY =\n centerY !== undefined\n ? Math.min(centerY, boundaryPositions[rightComponent].y)\n : boundaryPositions[rightComponent].y\n\n break\n case NORTH:\n var leftY = unionBounds.top\n var rightY = leftY\n\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: rightY\n })\n\n lpath.push({\n x: boundaryPositions[rightComponent].x,\n y: rightY\n })\n break\n default:\n return this.path\n }\n\n path.push(...(leftComponent === FROM ? lpath : lpath.reverse()))\n } else if (centerY) {\n switch (lowerComponentDirection) {\n case NORTH:\n switch (upperComponentDirection) {\n case SOUTH:\n lpath.push({\n x: boundaryPositions[upperComponent].x,\n y: centerY\n })\n\n lpath.push({\n x: boundaryPositions[lowerComponent].x,\n y: centerY\n })\n break\n case NORTH:\n var upperComponentCenterX = fromToBounds[upperComponent].left + fromToBounds[upperComponent].width / 2\n var upperX =\n upperComponentCenterX > boundaryPositions[lowerComponent].x\n ? Math.min(fromToBounds[upperComponent].left, boundaryPositions[lowerComponent].x)\n : Math.max(\n fromToBounds[upperComponent].left + fromToBounds[upperComponent].width,\n boundaryPositions[lowerComponent].x\n )\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: boundaryPositions[lowerComponent].x,\n y: centerY\n })\n break\n case WEST:\n var upperX = Math.min(boundaryPositions[upperComponent].x, boundaryPositions[lowerComponent].x)\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: boundaryPositions[lowerComponent].x,\n y: centerY\n })\n break\n case EAST:\n var upperX = Math.max(boundaryPositions[upperComponent].x, boundaryPositions[lowerComponent].x)\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: boundaryPositions[lowerComponent].x,\n y: centerY\n })\n break\n default:\n return this.path\n }\n break\n case SOUTH:\n switch (upperComponentDirection) {\n case WEST:\n var upperX = unionBounds.left\n var lowerX = upperX\n break\n case EAST:\n var upperX =\n centerX !== undefined\n ? Math.max(centerX, boundaryPositions[upperComponent].x)\n : unionBounds.left + unionBounds.width\n var lowerX = upperX\n break\n case NORTH:\n var upperX =\n centerX !== undefined\n ? centerX\n : boundaryPositions[upperComponent].x < boundaryPositions[lowerComponent].x\n ? unionBounds.left - centerHeight * 0.5\n : unionBounds.left + unionBounds.width + centerHeight * 0.5\n var lowerX = upperX\n break\n case SOUTH:\n var upperX = boundaryPositions[upperComponent].x\n var lowerX =\n boundaryPositions[upperComponent].x < boundaryPositions[lowerComponent].x\n ? Math.min(fromToBounds[lowerComponent].left, boundaryPositions[upperComponent].x)\n : Math.max(\n fromToBounds[lowerComponent].left + fromToBounds[lowerComponent].width,\n boundaryPositions[upperComponent].x\n )\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: boundaryPositions[lowerComponent].y\n })\n break\n case EAST:\n switch (upperComponentDirection) {\n case WEST:\n var upperX =\n centerX !== undefined\n ? Math.min(centerX, boundaryPositions[upperComponent].x)\n : boundaryPositions[upperComponent].x\n var lowerX =\n centerX !== undefined\n ? Math.max(centerX, boundaryPositions[lowerComponent].x)\n : boundaryPositions[lowerComponent].x\n break\n case EAST:\n var upperX = unionBounds.left + unionBounds.width\n var lowerX = upperX\n break\n case NORTH:\n var upperX =\n centerX !== undefined\n ? Math.max(centerX, boundaryPositions[lowerComponent].x)\n : unionBounds.left + unionBounds.width\n var lowerX = upperX\n break\n case SOUTH:\n var upperX = boundaryPositions[upperComponent].x\n var lowerX = Math.max(\n fromToBounds[lowerComponent].left + fromToBounds[lowerComponent].width,\n boundaryPositions[upperComponent].x\n )\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: boundaryPositions[lowerComponent].y\n })\n break\n case WEST:\n switch (upperComponentDirection) {\n case WEST:\n var upperX = unionBounds.left\n var lowerX = upperX\n\n break\n case EAST:\n var upperX =\n centerX !== undefined\n ? Math.max(centerX, boundaryPositions[upperComponent].x)\n : boundaryPositions[upperComponent].x\n var lowerX =\n centerX !== undefined\n ? Math.min(centerX, boundaryPositions[lowerComponent].x)\n : boundaryPositions[lowerComponent].x\n break\n\n case NORTH:\n var upperX = unionBounds.left\n var lowerX = upperX\n\n break\n case SOUTH:\n var upperX =\n boundaryPositions[upperComponent].x < boundaryPositions[lowerComponent].x\n ? Math.min(fromToBounds[lowerComponent].left, boundaryPositions[upperComponent].x)\n : boundaryPositions[upperComponent].x\n var lowerX = Math.min(upperX, boundaryPositions[lowerComponent].x)\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: boundaryPositions[lowerComponent].y\n })\n break\n default:\n return this.path\n }\n\n path.push(...(upperComponent === FROM ? lpath : lpath.reverse()))\n } else {\n switch (fromDirection) {\n case NORTH:\n switch (toDirection) {\n case NORTH:\n var y = unionBounds.top\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case SOUTH:\n var x = unionBounds.left + unionBounds.width\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n\n path.push({\n x,\n y: unionBounds.top + unionBounds.height\n })\n\n path.push({\n x: boundaryPositions[TO].x,\n y: unionBounds.top + unionBounds.height\n })\n break\n case EAST:\n var x =\n boundaryPositions[TO].y < boundaryPositions[FROM].y &&\n boundaryPositions[TO].x < boundaryPositions[FROM].x\n ? boundaryPositions[FROM].x\n : unionBounds.left + unionBounds.width\n\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y: boundaryPositions[TO].y\n })\n break\n case WEST:\n var x = unionBounds.left\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y: boundaryPositions[TO].y\n })\n\n break\n default:\n return this.path\n }\n break\n case SOUTH:\n switch (toDirection) {\n case NORTH:\n var x = unionBounds.left + unionBounds.width\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n\n path.push({\n x,\n y: unionBounds.top\n })\n\n path.push({\n x: boundaryPositions[TO].x,\n y: unionBounds.top\n })\n break\n case SOUTH:\n var y = unionBounds.top + unionBounds.height\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case EAST:\n var y = unionBounds.top + unionBounds.height\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case WEST:\n var y = unionBounds.top + unionBounds.height\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n default:\n return this.path\n }\n break\n case WEST:\n switch (toDirection) {\n case NORTH:\n var x =\n boundaryPositions[FROM].x > boundaryPositions[TO].x &&\n boundaryPositions[FROM].y < boundaryPositions[TO].y\n ? boundaryPositions[TO].x\n : unionBounds.left\n var y =\n boundaryPositions[FROM].x > boundaryPositions[TO].x &&\n boundaryPositions[FROM].y < boundaryPositions[TO].y\n ? boundaryPositions[TO].y\n : Math.min(unionBounds.top, boundaryPositions[FROM].y)\n\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case SOUTH:\n var x = unionBounds.left\n var y = Math.max(unionBounds.top + unionBounds.height, boundaryPositions[FROM].y)\n\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case EAST:\n var x = unionBounds.left + unionBounds.width\n path.push({\n x: boundaryPositions[FROM].x,\n y: unionBounds.top\n })\n path.push({\n x,\n y: unionBounds.top\n })\n path.push({\n x,\n y: boundaryPositions[TO].y\n })\n break\n case WEST:\n var x = unionBounds.left\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y: boundaryPositions[TO].y\n })\n break\n default:\n return this.path\n }\n break\n case EAST:\n switch (toDirection) {\n case NORTH:\n var y =\n boundaryPositions[FROM].y < boundaryPositions[TO].y &&\n boundaryPositions[FROM].x < boundaryPositions[TO].x\n ? boundaryPositions[FROM].y\n : unionBounds.top\n\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case SOUTH:\n var y =\n boundaryPositions[FROM].y > boundaryPositions[TO].y &&\n boundaryPositions[FROM].x < boundaryPositions[TO].x\n ? boundaryPositions[FROM].y\n : unionBounds.top + unionBounds.height\n\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case EAST:\n var y = unionBounds.top + unionBounds.height\n\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n\n case WEST:\n var y = unionBounds.top + unionBounds.height\n\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n default:\n return this.path\n }\n break\n default:\n return this.path\n }\n }\n\n if (toBoundaryPosition) {\n path.push(toBoundaryPosition)\n }\n\n /* following 2 filters not to be merged */\n return [fromPosition, ...path, toPosition]\n .filter((p, idx, path) => {\n if (idx === 0) {\n return true\n }\n\n const prev = path[idx - 1]\n if (p.x === prev.x && p.y === prev.y) {\n return false\n }\n\n return true\n })\n .filter((p, idx, path) => {\n if (idx === 0 || idx >= path.length - 1) {\n return true\n }\n\n const prev = path[idx - 1]\n const next = path[idx + 1]\n\n if ((p.x === prev.x && p.x === next.x) || (p.y === prev.y && p.y === next.y)) {\n return false\n }\n\n return true\n })\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('ortholine', OrthoLine)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = ellipseOutline;
|
|
7
|
-
/*
|
|
8
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
function ellipseOutline(component, progress) {
|
|
12
|
-
var {
|
|
13
|
-
cx,
|
|
14
|
-
cy,
|
|
15
|
-
rx,
|
|
16
|
-
ry
|
|
17
|
-
} = component.model;
|
|
18
|
-
var theta = Math.PI * 2 * progress;
|
|
19
|
-
var x = cx + rx * Math.cos(theta);
|
|
20
|
-
var y = cy + ry * Math.sin(theta);
|
|
21
|
-
return component.transcoordS2T(x, y);
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=ellipse-outline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ellipse-outline.js","names":["ellipseOutline","component","progress","cx","cy","rx","ry","model","theta","Math","PI","x","cos","y","sin","transcoordS2T"],"sources":["../../../src/components/outline/ellipse-outline.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport default function ellipseOutline(component, progress) {\n var { cx, cy, rx, ry } = component.model\n var theta = Math.PI * 2 * progress\n\n var x = cx + rx * Math.cos(theta)\n var y = cy + ry * Math.sin(theta)\n\n return component.transcoordS2T(x, y)\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEe,SAASA,cAAcA,CAACC,SAAS,EAAEC,QAAQ,EAAE;EAC1D,IAAI;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC;EAAG,CAAC,GAAGL,SAAS,CAACM,KAAK;EACxC,IAAIC,KAAK,GAAGC,IAAI,CAACC,EAAE,GAAG,CAAC,GAAGR,QAAQ;EAElC,IAAIS,CAAC,GAAGR,EAAE,GAAGE,EAAE,GAAGI,IAAI,CAACG,GAAG,CAACJ,KAAK,CAAC;EACjC,IAAIK,CAAC,GAAGT,EAAE,GAAGE,EAAE,GAAGG,IAAI,CAACK,GAAG,CAACN,KAAK,CAAC;EAEjC,OAAOP,SAAS,CAACc,aAAa,CAACJ,CAAC,EAAEE,CAAC,CAAC;AACtC","ignoreList":[]}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = pathOutline;
|
|
7
|
-
var _logger = require("../../core/logger.js");
|
|
8
|
-
/*
|
|
9
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
function pathOutline(component, progress) {
|
|
13
|
-
var path = component.path.slice();
|
|
14
|
-
if (!path || !path.length) {
|
|
15
|
-
(0, _logger.error)('path should not be empty');
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
var i = 1;
|
|
19
|
-
var lengths = [];
|
|
20
|
-
if (!component.isLine()) path.push(path[0]);
|
|
21
|
-
if (progress <= 0) return component.transcoordS2T(path[0].x, path[0].y);
|
|
22
|
-
if (progress >= 1) return component.transcoordS2T(path[path.length - 1].x, path[path.length - 1].y);
|
|
23
|
-
while (path[i]) {
|
|
24
|
-
let prev = path[i - 1];
|
|
25
|
-
let curr = path[i];
|
|
26
|
-
let diffx = curr.x - prev.x;
|
|
27
|
-
let diffy = curr.y - prev.y;
|
|
28
|
-
lengths.push(Math.sqrt(diffx * diffx + diffy * diffy));
|
|
29
|
-
i++;
|
|
30
|
-
}
|
|
31
|
-
var total = lengths.reduce(function (total, curr) {
|
|
32
|
-
return total + curr;
|
|
33
|
-
}, 0);
|
|
34
|
-
i = 0;
|
|
35
|
-
var len = 0;
|
|
36
|
-
do {
|
|
37
|
-
len += lengths[i++];
|
|
38
|
-
} while (len / total < progress);
|
|
39
|
-
len -= lengths[--i];
|
|
40
|
-
var begin = len / total;
|
|
41
|
-
progress = (progress - begin) * (total / lengths[i]);
|
|
42
|
-
var from = path[i % path.length];
|
|
43
|
-
var to = path[(i + 1) % path.length];
|
|
44
|
-
var x = from.x + Math.round((to.x - from.x) * progress);
|
|
45
|
-
var y = from.y + Math.round((to.y - from.y) * progress);
|
|
46
|
-
return component.transcoordS2T(x, y);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=path-outline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-outline.js","names":["_logger","require","pathOutline","component","progress","path","slice","length","error","i","lengths","isLine","push","transcoordS2T","x","y","prev","curr","diffx","diffy","Math","sqrt","total","reduce","len","begin","from","to","round"],"sources":["../../../src/components/outline/path-outline.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { error } from '../../core/logger.js'\n\nexport default function pathOutline(component, progress) {\n var path = component.path.slice()\n\n if (!path || !path.length) {\n error('path should not be empty')\n return\n }\n\n var i = 1\n var lengths = []\n\n if (!component.isLine()) path.push(path[0])\n\n if (progress <= 0) return component.transcoordS2T(path[0].x, path[0].y)\n if (progress >= 1) return component.transcoordS2T(path[path.length - 1].x, path[path.length - 1].y)\n\n while (path[i]) {\n let prev = path[i - 1]\n let curr = path[i]\n\n let diffx = curr.x - prev.x\n let diffy = curr.y - prev.y\n\n lengths.push(Math.sqrt(diffx * diffx + diffy * diffy))\n\n i++\n }\n\n var total = lengths.reduce(function (total, curr) {\n return total + curr\n }, 0)\n\n i = 0\n\n var len = 0\n\n do {\n len += lengths[i++]\n } while (len / total < progress)\n len -= lengths[--i]\n\n var begin = len / total\n\n progress = (progress - begin) * (total / lengths[i])\n\n var from = path[i % path.length]\n var to = path[(i + 1) % path.length]\n\n var x = from.x + Math.round((to.x - from.x) * progress)\n var y = from.y + Math.round((to.y - from.y) * progress)\n\n return component.transcoordS2T(x, y)\n}\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAIe,SAASC,WAAWA,CAACC,SAAS,EAAEC,QAAQ,EAAE;EACvD,IAAIC,IAAI,GAAGF,SAAS,CAACE,IAAI,CAACC,KAAK,CAAC,CAAC;EAEjC,IAAI,CAACD,IAAI,IAAI,CAACA,IAAI,CAACE,MAAM,EAAE;IACzB,IAAAC,aAAK,EAAC,0BAA0B,CAAC;IACjC;EACF;EAEA,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,OAAO,GAAG,EAAE;EAEhB,IAAI,CAACP,SAAS,CAACQ,MAAM,CAAC,CAAC,EAAEN,IAAI,CAACO,IAAI,CAACP,IAAI,CAAC,CAAC,CAAC,CAAC;EAE3C,IAAID,QAAQ,IAAI,CAAC,EAAE,OAAOD,SAAS,CAACU,aAAa,CAACR,IAAI,CAAC,CAAC,CAAC,CAACS,CAAC,EAAET,IAAI,CAAC,CAAC,CAAC,CAACU,CAAC,CAAC;EACvE,IAAIX,QAAQ,IAAI,CAAC,EAAE,OAAOD,SAAS,CAACU,aAAa,CAACR,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC,CAACO,CAAC,EAAET,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC,CAACQ,CAAC,CAAC;EAEnG,OAAOV,IAAI,CAACI,CAAC,CAAC,EAAE;IACd,IAAIO,IAAI,GAAGX,IAAI,CAACI,CAAC,GAAG,CAAC,CAAC;IACtB,IAAIQ,IAAI,GAAGZ,IAAI,CAACI,CAAC,CAAC;IAElB,IAAIS,KAAK,GAAGD,IAAI,CAACH,CAAC,GAAGE,IAAI,CAACF,CAAC;IAC3B,IAAIK,KAAK,GAAGF,IAAI,CAACF,CAAC,GAAGC,IAAI,CAACD,CAAC;IAE3BL,OAAO,CAACE,IAAI,CAACQ,IAAI,CAACC,IAAI,CAACH,KAAK,GAAGA,KAAK,GAAGC,KAAK,GAAGA,KAAK,CAAC,CAAC;IAEtDV,CAAC,EAAE;EACL;EAEA,IAAIa,KAAK,GAAGZ,OAAO,CAACa,MAAM,CAAC,UAAUD,KAAK,EAAEL,IAAI,EAAE;IAChD,OAAOK,KAAK,GAAGL,IAAI;EACrB,CAAC,EAAE,CAAC,CAAC;EAELR,CAAC,GAAG,CAAC;EAEL,IAAIe,GAAG,GAAG,CAAC;EAEX,GAAG;IACDA,GAAG,IAAId,OAAO,CAACD,CAAC,EAAE,CAAC;EACrB,CAAC,QAAQe,GAAG,GAAGF,KAAK,GAAGlB,QAAQ;EAC/BoB,GAAG,IAAId,OAAO,CAAC,EAAED,CAAC,CAAC;EAEnB,IAAIgB,KAAK,GAAGD,GAAG,GAAGF,KAAK;EAEvBlB,QAAQ,GAAG,CAACA,QAAQ,GAAGqB,KAAK,KAAKH,KAAK,GAAGZ,OAAO,CAACD,CAAC,CAAC,CAAC;EAEpD,IAAIiB,IAAI,GAAGrB,IAAI,CAACI,CAAC,GAAGJ,IAAI,CAACE,MAAM,CAAC;EAChC,IAAIoB,EAAE,GAAGtB,IAAI,CAAC,CAACI,CAAC,GAAG,CAAC,IAAIJ,IAAI,CAACE,MAAM,CAAC;EAEpC,IAAIO,CAAC,GAAGY,IAAI,CAACZ,CAAC,GAAGM,IAAI,CAACQ,KAAK,CAAC,CAACD,EAAE,CAACb,CAAC,GAAGY,IAAI,CAACZ,CAAC,IAAIV,QAAQ,CAAC;EACvD,IAAIW,CAAC,GAAGW,IAAI,CAACX,CAAC,GAAGK,IAAI,CAACQ,KAAK,CAAC,CAACD,EAAE,CAACZ,CAAC,GAAGW,IAAI,CAACX,CAAC,IAAIX,QAAQ,CAAC;EAEvD,OAAOD,SAAS,CAACU,aAAa,CAACC,CAAC,EAAEC,CAAC,CAAC;AACtC","ignoreList":[]}
|
package/dist/components/path.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _component = _interopRequireDefault(require("./component.js"));
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
/*
|
|
10
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
class Path extends _component.default {
|
|
14
|
-
render(ctx) {
|
|
15
|
-
var {
|
|
16
|
-
path = []
|
|
17
|
-
} = this.state;
|
|
18
|
-
if (path.length <= 1) return;
|
|
19
|
-
|
|
20
|
-
// Polyline을 그린다.
|
|
21
|
-
ctx.beginPath();
|
|
22
|
-
ctx.moveTo(path[0].x, path[0].y);
|
|
23
|
-
for (let i = 1; i < path.length; i++) ctx.lineTo(path[i].x, path[i].y);
|
|
24
|
-
ctx.closePath();
|
|
25
|
-
this.drawStroke(ctx);
|
|
26
|
-
}
|
|
27
|
-
get path() {
|
|
28
|
-
return this.model.path;
|
|
29
|
-
}
|
|
30
|
-
set path(path) {
|
|
31
|
-
this.set('path', path);
|
|
32
|
-
}
|
|
33
|
-
contains(x, y) {
|
|
34
|
-
var path = this.state.path;
|
|
35
|
-
var result = false;
|
|
36
|
-
path.forEach((p, idx) => {
|
|
37
|
-
let j = (idx + path.length + 1) % path.length;
|
|
38
|
-
let x1 = p.x;
|
|
39
|
-
let y1 = p.y;
|
|
40
|
-
let x2 = path[j].x;
|
|
41
|
-
let y2 = path[j].y;
|
|
42
|
-
if (y1 > y != y2 > y && x < (x2 - x1) * (y - y1) / (y2 - y1) + x1) result = !result;
|
|
43
|
-
});
|
|
44
|
-
return result;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.default = Path;
|
|
48
|
-
_component.default.register('path', Path);
|
|
49
|
-
//# sourceMappingURL=path.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","names":["_component","_interopRequireDefault","require","e","__esModule","default","Path","Component","render","ctx","path","state","length","beginPath","moveTo","x","y","i","lineTo","closePath","drawStroke","model","set","contains","result","forEach","p","idx","j","x1","y1","x2","y2","exports","register"],"sources":["../../src/components/path.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\n\nexport default class Path extends Component {\n render(ctx) {\n var { path = [] } = this.state\n\n if (path.length <= 1) return\n\n // Polyline을 그린다.\n ctx.beginPath()\n\n ctx.moveTo(path[0].x, path[0].y)\n\n for (let i = 1; i < path.length; i++) ctx.lineTo(path[i].x, path[i].y)\n\n ctx.closePath()\n\n this.drawStroke(ctx)\n }\n\n get path() {\n return this.model.path\n }\n\n set path(path) {\n this.set('path', path)\n }\n\n contains(x, y) {\n var path = this.state.path\n var result = false\n\n path.forEach((p, idx) => {\n let j = (idx + path.length + 1) % path.length\n\n let x1 = p.x\n let y1 = p.y\n let x2 = path[j].x\n let y2 = path[j].y\n\n if (y1 > y != y2 > y && x < ((x2 - x1) * (y - y1)) / (y2 - y1) + x1) result = !result\n })\n\n return result\n }\n}\n\nComponent.register('path', Path)\n"],"mappings":";;;;;;AAIA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAsC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJtC;AACA;AACA;;AAIe,MAAMG,IAAI,SAASC,kBAAS,CAAC;EAC1CC,MAAMA,CAACC,GAAG,EAAE;IACV,IAAI;MAAEC,IAAI,GAAG;IAAG,CAAC,GAAG,IAAI,CAACC,KAAK;IAE9B,IAAID,IAAI,CAACE,MAAM,IAAI,CAAC,EAAE;;IAEtB;IACAH,GAAG,CAACI,SAAS,CAAC,CAAC;IAEfJ,GAAG,CAACK,MAAM,CAACJ,IAAI,CAAC,CAAC,CAAC,CAACK,CAAC,EAAEL,IAAI,CAAC,CAAC,CAAC,CAACM,CAAC,CAAC;IAEhC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,IAAI,CAACE,MAAM,EAAEK,CAAC,EAAE,EAAER,GAAG,CAACS,MAAM,CAACR,IAAI,CAACO,CAAC,CAAC,CAACF,CAAC,EAAEL,IAAI,CAACO,CAAC,CAAC,CAACD,CAAC,CAAC;IAEtEP,GAAG,CAACU,SAAS,CAAC,CAAC;IAEf,IAAI,CAACC,UAAU,CAACX,GAAG,CAAC;EACtB;EAEA,IAAIC,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACW,KAAK,CAACX,IAAI;EACxB;EAEA,IAAIA,IAAIA,CAACA,IAAI,EAAE;IACb,IAAI,CAACY,GAAG,CAAC,MAAM,EAAEZ,IAAI,CAAC;EACxB;EAEAa,QAAQA,CAACR,CAAC,EAAEC,CAAC,EAAE;IACb,IAAIN,IAAI,GAAG,IAAI,CAACC,KAAK,CAACD,IAAI;IAC1B,IAAIc,MAAM,GAAG,KAAK;IAElBd,IAAI,CAACe,OAAO,CAAC,CAACC,CAAC,EAAEC,GAAG,KAAK;MACvB,IAAIC,CAAC,GAAG,CAACD,GAAG,GAAGjB,IAAI,CAACE,MAAM,GAAG,CAAC,IAAIF,IAAI,CAACE,MAAM;MAE7C,IAAIiB,EAAE,GAAGH,CAAC,CAACX,CAAC;MACZ,IAAIe,EAAE,GAAGJ,CAAC,CAACV,CAAC;MACZ,IAAIe,EAAE,GAAGrB,IAAI,CAACkB,CAAC,CAAC,CAACb,CAAC;MAClB,IAAIiB,EAAE,GAAGtB,IAAI,CAACkB,CAAC,CAAC,CAACZ,CAAC;MAElB,IAAIc,EAAE,GAAGd,CAAC,IAAIgB,EAAE,GAAGhB,CAAC,IAAID,CAAC,GAAI,CAACgB,EAAE,GAAGF,EAAE,KAAKb,CAAC,GAAGc,EAAE,CAAC,IAAKE,EAAE,GAAGF,EAAE,CAAC,GAAGD,EAAE,EAAEL,MAAM,GAAG,CAACA,MAAM;IACvF,CAAC,CAAC;IAEF,OAAOA,MAAM;EACf;AACF;AAACS,OAAA,CAAA5B,OAAA,GAAAC,IAAA;AAEDC,kBAAS,CAAC2B,QAAQ,CAAC,MAAM,EAAE5B,IAAI,CAAC","ignoreList":[]}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _component = _interopRequireDefault(require("./component.js"));
|
|
8
|
-
var _shape = _interopRequireDefault(require("./shape.js"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
/*
|
|
11
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
var controlHandler = {
|
|
15
|
-
ondragstart: function (point, index, component) {
|
|
16
|
-
component.mutatePath(null, function (path) {
|
|
17
|
-
path.splice(index + 1, 0, point);
|
|
18
|
-
});
|
|
19
|
-
},
|
|
20
|
-
ondragmove: function (point, index, component) {
|
|
21
|
-
component.mutatePath(null, function (path) {
|
|
22
|
-
path[index + 1] = point;
|
|
23
|
-
});
|
|
24
|
-
},
|
|
25
|
-
ondragend: function (point, index, component) {}
|
|
26
|
-
};
|
|
27
|
-
const NATURE = {
|
|
28
|
-
mutable: true,
|
|
29
|
-
resizable: false,
|
|
30
|
-
rotatable: true,
|
|
31
|
-
properties: [{
|
|
32
|
-
type: 'number',
|
|
33
|
-
label: 'round',
|
|
34
|
-
name: 'round',
|
|
35
|
-
property: {
|
|
36
|
-
min: 0,
|
|
37
|
-
max: 100,
|
|
38
|
-
step: 1
|
|
39
|
-
}
|
|
40
|
-
}],
|
|
41
|
-
help: 'scene/component/polygon'
|
|
42
|
-
};
|
|
43
|
-
class Polygon extends _shape.default {
|
|
44
|
-
is3dish() {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
get mutable() {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
get pathExtendable() {
|
|
51
|
-
return true;
|
|
52
|
-
}
|
|
53
|
-
get path() {
|
|
54
|
-
return this.state.path;
|
|
55
|
-
}
|
|
56
|
-
set path(path) {
|
|
57
|
-
this.set('path', path);
|
|
58
|
-
}
|
|
59
|
-
contains(x, y) {
|
|
60
|
-
var path = this.state.path;
|
|
61
|
-
var result = false;
|
|
62
|
-
path.forEach((p, idx) => {
|
|
63
|
-
let j = (idx + path.length + 1) % path.length;
|
|
64
|
-
let x1 = p.x;
|
|
65
|
-
let y1 = p.y;
|
|
66
|
-
let x2 = path[j].x;
|
|
67
|
-
let y2 = path[j].y;
|
|
68
|
-
if (y1 > y != y2 > y && x < (x2 - x1) * (y - y1) / (y2 - y1) + x1) result = !result;
|
|
69
|
-
});
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
72
|
-
get controls() {
|
|
73
|
-
// 폴리곤에서의 control은 새로운 path를 추가하는 포인트이다.
|
|
74
|
-
var path = this.path;
|
|
75
|
-
return path.map((p1, i) => {
|
|
76
|
-
let p2 = path[i + 1 >= path.length ? 0 : i + 1];
|
|
77
|
-
return {
|
|
78
|
-
x: (p1.x + p2.x) / 2,
|
|
79
|
-
y: (p1.y + p2.y) / 2,
|
|
80
|
-
handler: controlHandler
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
get nature() {
|
|
85
|
-
return NATURE;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.default = Polygon;
|
|
89
|
-
_component.default.memoize(Polygon.prototype, 'controls', false);
|
|
90
|
-
_component.default.register('polygon', Polygon);
|
|
91
|
-
//# sourceMappingURL=polygon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.js","names":["_component","_interopRequireDefault","require","_shape","e","__esModule","default","controlHandler","ondragstart","point","index","component","mutatePath","path","splice","ondragmove","ondragend","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","min","max","step","help","Polygon","Shape","is3dish","pathExtendable","state","set","contains","x","y","result","forEach","p","idx","j","length","x1","y1","x2","y2","controls","map","p1","i","p2","handler","nature","exports","Component","memoize","prototype","register"],"sources":["../../src/components/polygon.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Shape from './shape.js'\n\nvar controlHandler = {\n ondragstart: function (point, index, component) {\n component.mutatePath(null, function (path) {\n path.splice(index + 1, 0, point)\n })\n },\n\n ondragmove: function (point, index, component) {\n component.mutatePath(null, function (path) {\n path[index + 1] = point\n })\n },\n\n ondragend: function (point, index, component) {}\n}\n\nconst NATURE = {\n mutable: true,\n resizable: false,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n }\n ],\n help: 'scene/component/polygon'\n}\n\nexport default class Polygon extends Shape {\n is3dish() {\n return true\n }\n\n get mutable() {\n return true\n }\n\n get pathExtendable() {\n return true\n }\n\n get path() {\n return this.state.path\n }\n\n set path(path) {\n this.set('path', path)\n }\n\n contains(x, y) {\n var path = this.state.path\n var result = false\n\n path.forEach((p, idx) => {\n let j = (idx + path.length + 1) % path.length\n\n let x1 = p.x\n let y1 = p.y\n let x2 = path[j].x\n let y2 = path[j].y\n\n if (y1 > y != y2 > y && x < ((x2 - x1) * (y - y1)) / (y2 - y1) + x1) result = !result\n })\n\n return result\n }\n\n get controls() {\n // 폴리곤에서의 control은 새로운 path를 추가하는 포인트이다.\n var path = this.path\n\n return path.map((p1, i) => {\n let p2 = path[i + 1 >= path.length ? 0 : i + 1]\n\n return {\n x: (p1.x + p2.x) / 2,\n y: (p1.y + p2.y) / 2,\n handler: controlHandler\n }\n })\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.memoize(Polygon.prototype, 'controls', false)\n\nComponent.register('polygon', Polygon)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,114 +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 _line = _interopRequireDefault(require("./line.js"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
/*
|
|
11
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
var controlHandler = {
|
|
15
|
-
ondragstart: function (point, index, component) {
|
|
16
|
-
component.mutatePath(null, function (path) {
|
|
17
|
-
path.splice(index, 0, point); // array.insert(index, point) 의 의미임.
|
|
18
|
-
});
|
|
19
|
-
},
|
|
20
|
-
ondragmove: function (point, index, component) {
|
|
21
|
-
component.mutatePath(null, function (path) {
|
|
22
|
-
path[index] = point;
|
|
23
|
-
});
|
|
24
|
-
},
|
|
25
|
-
ondragend: function (point, index, component) {}
|
|
26
|
-
};
|
|
27
|
-
const NATURE = {
|
|
28
|
-
mutable: false,
|
|
29
|
-
resizable: false,
|
|
30
|
-
rotatable: false,
|
|
31
|
-
properties: [{
|
|
32
|
-
type: 'number',
|
|
33
|
-
label: 'round',
|
|
34
|
-
name: 'round',
|
|
35
|
-
property: {
|
|
36
|
-
min: 0,
|
|
37
|
-
max: 100,
|
|
38
|
-
step: 1
|
|
39
|
-
}
|
|
40
|
-
}],
|
|
41
|
-
help: 'scene/component/polyline'
|
|
42
|
-
};
|
|
43
|
-
class Polyline extends _line.default {
|
|
44
|
-
get pathExtendable() {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
get path() {
|
|
48
|
-
const {
|
|
49
|
-
from,
|
|
50
|
-
to
|
|
51
|
-
} = this.state;
|
|
52
|
-
const {
|
|
53
|
-
path
|
|
54
|
-
} = this.state;
|
|
55
|
-
return [this.fromEnd?.position || from?.position || path[0], ...path.slice(1, -1), this.toEnd?.position || to?.position || path[path.length - 1]];
|
|
56
|
-
}
|
|
57
|
-
set path(path) {
|
|
58
|
-
const {
|
|
59
|
-
from,
|
|
60
|
-
to
|
|
61
|
-
} = this.state;
|
|
62
|
-
delete this._fromEnd;
|
|
63
|
-
delete this._toEnd;
|
|
64
|
-
this.set({
|
|
65
|
-
from: {
|
|
66
|
-
...from,
|
|
67
|
-
position: path[0]
|
|
68
|
-
},
|
|
69
|
-
to: {
|
|
70
|
-
...to,
|
|
71
|
-
position: path[path.length - 1]
|
|
72
|
-
},
|
|
73
|
-
path
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
get controls() {
|
|
77
|
-
// 폴리라인에서의 control은 새로운 path를 추가하는 포인트이다.
|
|
78
|
-
var path = this.path;
|
|
79
|
-
var controls = [];
|
|
80
|
-
for (let i = 0; i < path.length - 1; i++) {
|
|
81
|
-
let p1 = path[i];
|
|
82
|
-
let p2 = path[i + 1];
|
|
83
|
-
if (i == 0) {
|
|
84
|
-
controls.push({
|
|
85
|
-
x: p1.x,
|
|
86
|
-
y: p1.y,
|
|
87
|
-
handler: controlHandler
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
controls.push({
|
|
91
|
-
x: (p1.x + p2.x) / 2,
|
|
92
|
-
y: (p1.y + p2.y) / 2,
|
|
93
|
-
handler: controlHandler
|
|
94
|
-
});
|
|
95
|
-
if (i == path.length - 2) {
|
|
96
|
-
controls.push({
|
|
97
|
-
x: p2.x,
|
|
98
|
-
y: p2.y,
|
|
99
|
-
handler: controlHandler
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return controls;
|
|
104
|
-
}
|
|
105
|
-
get nature() {
|
|
106
|
-
return NATURE;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/* target anchor의 움직임이 반영되지 못하므로, 일단 controls memoize를 제거함. */
|
|
111
|
-
// Component.memoize(Polyline.prototype, 'controls', false)
|
|
112
|
-
exports.default = Polyline;
|
|
113
|
-
_component.default.register('polyline', Polyline);
|
|
114
|
-
//# sourceMappingURL=polyline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polyline.js","names":["_component","_interopRequireDefault","require","_line","e","__esModule","default","controlHandler","ondragstart","point","index","component","mutatePath","path","splice","ondragmove","ondragend","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","min","max","step","help","Polyline","Line","pathExtendable","from","to","state","fromEnd","position","slice","toEnd","length","_fromEnd","_toEnd","set","controls","i","p1","p2","push","x","y","handler","nature","exports","Component","register"],"sources":["../../src/components/polyline.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Line from './line.js'\n\nvar controlHandler = {\n ondragstart: function (point, index, component) {\n component.mutatePath(null, function (path) {\n path.splice(index, 0, point) // array.insert(index, point) 의 의미임.\n })\n },\n\n ondragmove: function (point, index, component) {\n component.mutatePath(null, function (path) {\n path[index] = point\n })\n },\n\n ondragend: function (point, index, component) {}\n}\n\nconst NATURE = {\n mutable: false,\n resizable: false,\n rotatable: false,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n }\n ],\n help: 'scene/component/polyline'\n}\n\nexport default class Polyline extends Line {\n get pathExtendable() {\n return true\n }\n\n get path() {\n const { from, to } = this.state\n const { path } = this.state\n\n return [\n this.fromEnd?.position || from?.position || path[0],\n ...path.slice(1, -1),\n this.toEnd?.position || to?.position || path[path.length - 1]\n ]\n }\n\n set path(path) {\n const { from, to } = this.state\n\n delete this._fromEnd\n delete this._toEnd\n\n this.set({\n from: {\n ...from,\n position: path[0]\n },\n to: {\n ...to,\n position: path[path.length - 1]\n },\n path\n })\n }\n\n get controls() {\n // 폴리라인에서의 control은 새로운 path를 추가하는 포인트이다.\n var path = this.path\n var controls = []\n\n for (let i = 0; i < path.length - 1; i++) {\n let p1 = path[i]\n let p2 = path[i + 1]\n\n if (i == 0) {\n controls.push({\n x: p1.x,\n y: p1.y,\n handler: controlHandler\n })\n }\n\n controls.push({\n x: (p1.x + p2.x) / 2,\n y: (p1.y + p2.y) / 2,\n handler: controlHandler\n })\n\n if (i == path.length - 2) {\n controls.push({\n x: p2.x,\n y: p2.y,\n handler: controlHandler\n })\n }\n }\n\n return controls\n }\n\n get nature() {\n return NATURE\n }\n}\n\n/* target anchor의 움직임이 반영되지 못하므로, 일단 controls memoize를 제거함. */\n// Component.memoize(Polyline.prototype, 'controls', false)\n\nComponent.register('polyline', Polyline)\n"],"mappings":"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","ignoreList":[]}
|