@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.
- package/babel.config.js +4 -3
- package/db.sqlite +0 -0
- package/dist/animation/animate.js +63 -0
- package/dist/animation/animate.js.map +1 -0
- package/dist/animation/animations/animation.js +122 -0
- package/dist/animation/animations/animation.js.map +1 -0
- package/dist/animation/animations/fade.js +28 -0
- package/dist/animation/animations/fade.js.map +1 -0
- package/dist/animation/animations/heartbeat.js +28 -0
- package/dist/animation/animations/heartbeat.js.map +1 -0
- package/dist/animation/animations/moving.js +24 -0
- package/dist/animation/animations/moving.js.map +1 -0
- package/dist/animation/animations/outline.js +47 -0
- package/dist/animation/animations/outline.js.map +1 -0
- package/dist/animation/animations/rotation.js +22 -0
- package/dist/animation/animations/rotation.js.map +1 -0
- package/dist/animation/animations/vibration.js +31 -0
- package/dist/animation/animations/vibration.js.map +1 -0
- package/dist/animation/compile.js +31 -0
- package/dist/animation/compile.js.map +1 -0
- package/dist/animation/delta.js +51 -0
- package/dist/animation/delta.js.map +1 -0
- package/dist/animation/index.js +14 -0
- package/dist/animation/index.js.map +1 -0
- package/dist/command/command-change.js +33 -0
- package/dist/command/command-change.js.map +1 -0
- package/dist/command/command-migrate.js +103 -0
- package/dist/command/command-migrate.js.map +1 -0
- package/dist/command/command.js +18 -0
- package/dist/command/command.js.map +1 -0
- package/dist/command/snapshot-commander.js +84 -0
- package/dist/command/snapshot-commander.js.map +1 -0
- package/dist/components/anchor/anchor.js +105 -0
- package/dist/components/anchor/anchor.js.map +1 -0
- package/dist/components/anchor/ellipse-anchors.js +53 -0
- package/dist/components/anchor/ellipse-anchors.js.map +1 -0
- package/dist/components/anchor/rect-anchors.js +53 -0
- package/dist/components/anchor/rect-anchors.js.map +1 -0
- package/dist/components/audio.js +154 -0
- package/dist/components/audio.js.map +1 -0
- package/dist/components/cloud.js +44 -0
- package/dist/components/cloud.js.map +1 -0
- package/dist/components/component.js +1086 -0
- package/dist/components/component.js.map +1 -0
- package/dist/components/container-abstract.js +387 -0
- package/dist/components/container-abstract.js.map +1 -0
- package/dist/components/container.js +331 -0
- package/dist/components/container.js.map +1 -0
- package/dist/components/data/data-mapping.js +82 -0
- package/dist/components/data/data-mapping.js.map +1 -0
- package/dist/components/data/data.js +166 -0
- package/dist/components/data/data.js.map +1 -0
- package/dist/components/data/evaluator.js +103 -0
- package/dist/components/data/evaluator.js.map +1 -0
- package/dist/components/donut.js +104 -0
- package/dist/components/donut.js.map +1 -0
- package/dist/components/drawer/draw-image-pendable.js +20 -0
- package/dist/components/drawer/draw-image-pendable.js.map +1 -0
- package/dist/components/drawer/effect.js +19 -0
- package/dist/components/drawer/effect.js.map +1 -0
- package/dist/components/drawer/fill.js +228 -0
- package/dist/components/drawer/fill.js.map +1 -0
- package/dist/components/drawer/format.js +115 -0
- package/dist/components/drawer/format.js.map +1 -0
- package/dist/components/drawer/line.js +191 -0
- package/dist/components/drawer/line.js.map +1 -0
- package/dist/components/drawer/stroke.js +62 -0
- package/dist/components/drawer/stroke.js.map +1 -0
- package/dist/components/drawer/text-wrapper.js +51 -0
- package/dist/components/drawer/text-wrapper.js.map +1 -0
- package/dist/components/drawer/text.js +269 -0
- package/dist/components/drawer/text.js.map +1 -0
- package/dist/components/ellipse.js +110 -0
- package/dist/components/ellipse.js.map +1 -0
- package/dist/components/file/ondropfile.js +19 -0
- package/dist/components/file/ondropfile.js.map +1 -0
- package/dist/components/fit/fit.js +137 -0
- package/dist/components/fit/fit.js.map +1 -0
- package/dist/components/geometry/transcoord.js +339 -0
- package/dist/components/geometry/transcoord.js.map +1 -0
- package/dist/components/geometry/union.js +35 -0
- package/dist/components/geometry/union.js.map +1 -0
- package/dist/components/gif-view.js +128 -0
- package/dist/components/gif-view.js.map +1 -0
- package/dist/components/global-ref.js +154 -0
- package/dist/components/global-ref.js.map +1 -0
- package/dist/components/group.js +171 -0
- package/dist/components/group.js.map +1 -0
- package/dist/components/html/elements.js +24 -0
- package/dist/components/html/elements.js.map +1 -0
- package/dist/components/html/fill.js +126 -0
- package/dist/components/html/fill.js.map +1 -0
- package/dist/components/html/reposition.js +119 -0
- package/dist/components/html/reposition.js.map +1 -0
- package/dist/components/html/shadow.js +24 -0
- package/dist/components/html/shadow.js.map +1 -0
- package/dist/components/html-overlay-container.js +27 -0
- package/dist/components/html-overlay-container.js.map +1 -0
- package/dist/components/html-overlay-element.js +22 -0
- package/dist/components/html-overlay-element.js.map +1 -0
- package/dist/components/image-view.js +193 -0
- package/dist/components/image-view.js.map +1 -0
- package/dist/components/index.js +231 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/info-window.js +416 -0
- package/dist/components/info-window.js.map +1 -0
- package/dist/components/line.js +374 -0
- package/dist/components/line.js.map +1 -0
- package/dist/components/local-ref.js +114 -0
- package/dist/components/local-ref.js.map +1 -0
- package/dist/components/mixins/connectable.js +128 -0
- package/dist/components/mixins/connectable.js.map +1 -0
- package/dist/components/mixins/data-source.js +34 -0
- package/dist/components/mixins/data-source.js.map +1 -0
- package/dist/components/mixins/html-element.js +107 -0
- package/dist/components/mixins/html-element.js.map +1 -0
- package/dist/components/mixins/move-handle.js +73 -0
- package/dist/components/mixins/move-handle.js.map +1 -0
- package/dist/components/mixins/rect-path.js +113 -0
- package/dist/components/mixins/rect-path.js.map +1 -0
- package/dist/components/mixins/value-holder.js +81 -0
- package/dist/components/mixins/value-holder.js.map +1 -0
- package/dist/components/mutater/bounds.js +68 -0
- package/dist/components/mutater/bounds.js.map +1 -0
- package/dist/components/mutater/path.js +73 -0
- package/dist/components/mutater/path.js.map +1 -0
- package/dist/components/ortholine.js +763 -0
- package/dist/components/ortholine.js.map +1 -0
- package/dist/components/outline/ellipse-outline.js +23 -0
- package/dist/components/outline/ellipse-outline.js.map +1 -0
- package/dist/components/outline/path-outline.js +48 -0
- package/dist/components/outline/path-outline.js.map +1 -0
- package/dist/components/path.js +49 -0
- package/dist/components/path.js.map +1 -0
- package/dist/components/polygon.js +91 -0
- package/dist/components/polygon.js.map +1 -0
- package/dist/components/polyline.js +114 -0
- package/dist/components/polyline.js.map +1 -0
- package/dist/components/popup.js +160 -0
- package/dist/components/popup.js.map +1 -0
- package/dist/components/rect.js +72 -0
- package/dist/components/rect.js.map +1 -0
- package/dist/components/retention/retention-manager.js +81 -0
- package/dist/components/retention/retention-manager.js.map +1 -0
- package/dist/components/root-container.js +519 -0
- package/dist/components/root-container.js.map +1 -0
- package/dist/components/ruler.js +103 -0
- package/dist/components/ruler.js.map +1 -0
- package/dist/components/shape.js +97 -0
- package/dist/components/shape.js.map +1 -0
- package/dist/components/star.js +103 -0
- package/dist/components/star.js.map +1 -0
- package/dist/components/text/substitutor.js +92 -0
- package/dist/components/text/substitutor.js.map +1 -0
- package/dist/components/text.js +21 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/triangle.js +92 -0
- package/dist/components/triangle.js.map +1 -0
- package/dist/const.js +71 -0
- package/dist/const.js.map +1 -0
- package/dist/core/collection.js +28 -0
- package/dist/core/collection.js.map +1 -0
- package/dist/core/debug.js +12 -0
- package/dist/core/debug.js.map +1 -0
- package/dist/core/deep-equals.js +112 -0
- package/dist/core/deep-equals.js.map +1 -0
- package/dist/core/dom-to-image.js +617 -0
- package/dist/core/dom-to-image.js.map +1 -0
- package/dist/core/event.js +205 -0
- package/dist/core/event.js.map +1 -0
- package/dist/core/index.js +21 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/list.js +87 -0
- package/dist/core/list.js.map +1 -0
- package/dist/core/logger.js +29 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/memoize.js +40 -0
- package/dist/core/memoize.js.map +1 -0
- package/dist/core/mixin.js +26 -0
- package/dist/core/mixin.js.map +1 -0
- package/dist/core/obj-accessor.js +26 -0
- package/dist/core/obj-accessor.js.map +1 -0
- package/dist/core/reference-map.js +147 -0
- package/dist/core/reference-map.js.map +1 -0
- package/dist/core/round-rect.js +62 -0
- package/dist/core/round-rect.js.map +1 -0
- package/dist/core/safe-round.js +10 -0
- package/dist/core/safe-round.js.map +1 -0
- package/dist/core/script-loader.js +148 -0
- package/dist/core/script-loader.js.map +1 -0
- package/dist/core/snapshot-taker.js +59 -0
- package/dist/core/snapshot-taker.js.map +1 -0
- package/dist/core/stack.js +18 -0
- package/dist/core/stack.js.map +1 -0
- package/dist/core/timecapsule.js +88 -0
- package/dist/core/timecapsule.js.map +1 -0
- package/dist/core/utils.js +309 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/decorator/anchors-decorator.js +53 -0
- package/dist/decorator/anchors-decorator.js.map +1 -0
- package/dist/decorator/bouncing-arrow-decorator.js +52 -0
- package/dist/decorator/bouncing-arrow-decorator.js.map +1 -0
- package/dist/decorator/data-spread-decorator.js +69 -0
- package/dist/decorator/data-spread-decorator.js.map +1 -0
- package/dist/decorator/decotag-decorator.js +33 -0
- package/dist/decorator/decotag-decorator.js.map +1 -0
- package/dist/decorator/index.js +31 -0
- package/dist/decorator/index.js.map +1 -0
- package/dist/decorator/link-decorator.js +66 -0
- package/dist/decorator/link-decorator.js.map +1 -0
- package/dist/effect/gradation.js +37 -0
- package/dist/effect/gradation.js.map +1 -0
- package/dist/effect/index.js +23 -0
- package/dist/effect/index.js.map +1 -0
- package/dist/effect/shadow.js +33 -0
- package/dist/effect/shadow.js.map +1 -0
- package/dist/effect/turn.js +25 -0
- package/dist/effect/turn.js.map +1 -0
- package/dist/event/event-engine.js +76 -0
- package/dist/event/event-engine.js.map +1 -0
- package/dist/event/event-pump.js +92 -0
- package/dist/event/event-pump.js.map +1 -0
- package/dist/event/event-tracker.js +97 -0
- package/dist/event/event-tracker.js.map +1 -0
- package/dist/event/index.js +21 -0
- package/dist/event/index.js.map +1 -0
- package/dist/event/ua-event-handler.js +453 -0
- package/dist/event/ua-event-handler.js.map +1 -0
- package/dist/event-map/animator-handler.js +225 -0
- package/dist/event-map/animator-handler.js.map +1 -0
- package/dist/event-map/animators/animated-icon.js +265 -0
- package/dist/event-map/animators/animated-icon.js.map +1 -0
- package/dist/event-map/animators/border-highlighting.js +476 -0
- package/dist/event-map/animators/border-highlighting.js.map +1 -0
- package/dist/event-map/animators/bouncing-arrow.js +226 -0
- package/dist/event-map/animators/bouncing-arrow.js.map +1 -0
- package/dist/event-map/event-map.js +36 -0
- package/dist/event-map/event-map.js.map +1 -0
- package/dist/event-map/index.js +20 -0
- package/dist/event-map/index.js.map +1 -0
- package/dist/event-map/move-handler.js +233 -0
- package/dist/event-map/move-handler.js.map +1 -0
- package/dist/event-map/paste-handler.js +176 -0
- package/dist/event-map/paste-handler.js.map +1 -0
- package/dist/event-map/shift-handler.js +55 -0
- package/dist/event-map/shift-handler.js.map +1 -0
- package/dist/event-map/text-editor-lite.js +276 -0
- package/dist/event-map/text-editor-lite.js.map +1 -0
- package/dist/event-map/zoom-handler.js +49 -0
- package/dist/event-map/zoom-handler.js.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/layer/action/emphasize.js +42 -0
- package/dist/layer/action/emphasize.js.map +1 -0
- package/dist/layer/action/popup.js +461 -0
- package/dist/layer/action/popup.js.map +1 -0
- package/dist/layer/action/pressed.js +31 -0
- package/dist/layer/action/pressed.js.map +1 -0
- package/dist/layer/add-layer.js +180 -0
- package/dist/layer/add-layer.js.map +1 -0
- package/dist/layer/decotag-layer.js +121 -0
- package/dist/layer/decotag-layer.js.map +1 -0
- package/dist/layer/guide-layer.js +292 -0
- package/dist/layer/guide-layer.js.map +1 -0
- package/dist/layer/index.js +70 -0
- package/dist/layer/index.js.map +1 -0
- package/dist/layer/layer.js +230 -0
- package/dist/layer/layer.js.map +1 -0
- package/dist/layer/minimap-layer.js +84 -0
- package/dist/layer/minimap-layer.js.map +1 -0
- package/dist/layer/model-layer.js +465 -0
- package/dist/layer/model-layer.js.map +1 -0
- package/dist/layer/modeler/anchor-handler.js +193 -0
- package/dist/layer/modeler/anchor-handler.js.map +1 -0
- package/dist/layer/modeler/control-handler.js +95 -0
- package/dist/layer/modeler/control-handler.js.map +1 -0
- package/dist/layer/modeler/focus-outline.js +41 -0
- package/dist/layer/modeler/focus-outline.js.map +1 -0
- package/dist/layer/modeler/group-outline.js +30 -0
- package/dist/layer/modeler/group-outline.js.map +1 -0
- package/dist/layer/modeler/index.js +56 -0
- package/dist/layer/modeler/index.js.map +1 -0
- package/dist/layer/modeler/path-handler.js +300 -0
- package/dist/layer/modeler/path-handler.js.map +1 -0
- package/dist/layer/modeler/resizer.js +333 -0
- package/dist/layer/modeler/resizer.js.map +1 -0
- package/dist/layer/modeler/rotator.js +134 -0
- package/dist/layer/modeler/rotator.js.map +1 -0
- package/dist/layer/modeling-layer.js +491 -0
- package/dist/layer/modeling-layer.js.map +1 -0
- package/dist/layer/reaction-layer.js +111 -0
- package/dist/layer/reaction-layer.js.map +1 -0
- package/dist/layer/scroll-layer.js +191 -0
- package/dist/layer/scroll-layer.js.map +1 -0
- package/dist/layer/selection/selected-finder.js +96 -0
- package/dist/layer/selection/selected-finder.js.map +1 -0
- package/dist/layer/selection-layer.js +373 -0
- package/dist/layer/selection-layer.js.map +1 -0
- package/dist/layer/shift-layer.js +83 -0
- package/dist/layer/shift-layer.js.map +1 -0
- package/dist/layout/absolute.js +30 -0
- package/dist/layout/absolute.js.map +1 -0
- package/dist/layout/card.js +52 -0
- package/dist/layout/card.js.map +1 -0
- package/dist/layout/html-absolute.js +32 -0
- package/dist/layout/html-absolute.js.map +1 -0
- package/dist/layout/index.js +56 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/layout.js +36 -0
- package/dist/layout/layout.js.map +1 -0
- package/dist/layout/linear-horizontal.js +56 -0
- package/dist/layout/linear-horizontal.js.map +1 -0
- package/dist/layout/linear-vertical.js +56 -0
- package/dist/layout/linear-vertical.js.map +1 -0
- package/dist/layout/table.js +106 -0
- package/dist/layout/table.js.map +1 -0
- package/dist/license/license.js +170 -0
- package/dist/license/license.js.map +1 -0
- package/dist/model/compile.js +40 -0
- package/dist/model/compile.js.map +1 -0
- package/dist/model/duplicate.js +19 -0
- package/dist/model/duplicate.js.map +1 -0
- package/dist/model/index.js +34 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/selector.js +104 -0
- package/dist/model/selector.js.map +1 -0
- package/dist/style/compile.js +14 -0
- package/dist/style/compile.js.map +1 -0
- package/dist/style/index.js +14 -0
- package/dist/style/index.js.map +1 -0
- package/dist/things-scene/api/add-start.js +18 -0
- package/dist/things-scene/api/add-start.js.map +1 -0
- package/dist/things-scene/api/add.js +71 -0
- package/dist/things-scene/api/add.js.map +1 -0
- package/dist/things-scene/api/align.js +116 -0
- package/dist/things-scene/api/align.js.map +1 -0
- package/dist/things-scene/api/center-to.js +50 -0
- package/dist/things-scene/api/center-to.js.map +1 -0
- package/dist/things-scene/api/change.js +27 -0
- package/dist/things-scene/api/change.js.map +1 -0
- package/dist/things-scene/api/clipboard.js +45 -0
- package/dist/things-scene/api/clipboard.js.map +1 -0
- package/dist/things-scene/api/distribute.js +57 -0
- package/dist/things-scene/api/distribute.js.map +1 -0
- package/dist/things-scene/api/duplicate.js +47 -0
- package/dist/things-scene/api/duplicate.js.map +1 -0
- package/dist/things-scene/api/fullscreen.js +26 -0
- package/dist/things-scene/api/fullscreen.js.map +1 -0
- package/dist/things-scene/api/group.js +91 -0
- package/dist/things-scene/api/group.js.map +1 -0
- package/dist/things-scene/api/ids.js +28 -0
- package/dist/things-scene/api/ids.js.map +1 -0
- package/dist/things-scene/api/index.js +192 -0
- package/dist/things-scene/api/index.js.map +1 -0
- package/dist/things-scene/api/listener.js +69 -0
- package/dist/things-scene/api/listener.js.map +1 -0
- package/dist/things-scene/api/paste-start.js +27 -0
- package/dist/things-scene/api/paste-start.js.map +1 -0
- package/dist/things-scene/api/place.js +98 -0
- package/dist/things-scene/api/place.js.map +1 -0
- package/dist/things-scene/api/remove.js +57 -0
- package/dist/things-scene/api/remove.js.map +1 -0
- package/dist/things-scene/api/symmetry.js +47 -0
- package/dist/things-scene/api/symmetry.js.map +1 -0
- package/dist/things-scene/api/to-data-url.js +76 -0
- package/dist/things-scene/api/to-data-url.js.map +1 -0
- package/dist/things-scene/api/zorder.js +68 -0
- package/dist/things-scene/api/zorder.js.map +1 -0
- package/dist/things-scene/application-context.js +168 -0
- package/dist/things-scene/application-context.js.map +1 -0
- package/dist/things-scene/config.js +18 -0
- package/dist/things-scene/config.js.map +1 -0
- package/dist/things-scene/create.js +67 -0
- package/dist/things-scene/create.js.map +1 -0
- package/dist/things-scene/fps.js +26 -0
- package/dist/things-scene/fps.js.map +1 -0
- package/dist/things-scene/index.js +152 -0
- package/dist/things-scene/index.js.map +1 -0
- package/dist/things-scene/polyfill.js +111 -0
- package/dist/things-scene/polyfill.js.map +1 -0
- package/dist/things-scene/scene.js +442 -0
- package/dist/things-scene/scene.js.map +1 -0
- package/dist/things-scene/version.js +12 -0
- package/dist/things-scene/version.js.map +1 -0
- package/package.json +8 -6
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _command = _interopRequireDefault(require("./command.js"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
/*
|
|
10
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
function calculate_bounds_on_root(component) {
|
|
14
|
+
if (component.isRootModel()) return component.bounds;
|
|
15
|
+
var {
|
|
16
|
+
bounds,
|
|
17
|
+
rotatePoint
|
|
18
|
+
} = component;
|
|
19
|
+
var pointOnTop = rotatePoint;
|
|
20
|
+
// if(component.parent && !component.parent.isRootModel())
|
|
21
|
+
// pointOnTop = recursive_transcoordS2P(pointOnTop, component.parent)
|
|
22
|
+
// TODO 목적상 아래 로직으로 대체 가능할 것이다. 검토하라. (스케일된 컴포넌트에 대해서 이상작동한다.)
|
|
23
|
+
pointOnTop = component.transcoordS2T(pointOnTop.x, pointOnTop.y);
|
|
24
|
+
return {
|
|
25
|
+
left: pointOnTop.x - (rotatePoint.x - bounds.left),
|
|
26
|
+
top: pointOnTop.y - (rotatePoint.y - bounds.top),
|
|
27
|
+
width: bounds.width,
|
|
28
|
+
height: bounds.height
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function calculate_bounds_on_container(component, container) {
|
|
32
|
+
if (container.isRootModel()) return component.bounds;
|
|
33
|
+
var {
|
|
34
|
+
bounds,
|
|
35
|
+
rotatePoint
|
|
36
|
+
} = component;
|
|
37
|
+
var pointOnContainer = container.transcoordT2S(rotatePoint.x, rotatePoint.y);
|
|
38
|
+
var container_bounds = container.bounds;
|
|
39
|
+
return {
|
|
40
|
+
left: pointOnContainer.x - (rotatePoint.x - bounds.left) - container_bounds.left,
|
|
41
|
+
top: pointOnContainer.y - (rotatePoint.y - bounds.top) - container_bounds.top,
|
|
42
|
+
width: bounds.width,
|
|
43
|
+
height: bounds.height
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function calculate_rotation_on_root(component) {
|
|
47
|
+
var rotation = 0;
|
|
48
|
+
while (component && !component.isRootModel()) {
|
|
49
|
+
rotation += component.get('rotation') || 0;
|
|
50
|
+
component = component.parent;
|
|
51
|
+
}
|
|
52
|
+
return rotation % (Math.PI * 2);
|
|
53
|
+
}
|
|
54
|
+
function calculate_rotation_on_container(component, container) {
|
|
55
|
+
var rotation = component.get('rotation') || 0;
|
|
56
|
+
var container_rotation = calculate_rotation_on_root(container);
|
|
57
|
+
return (rotation - container_rotation) % (Math.PI * 2);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
* 컴포넌트가 추가, 삭제되거나 부모컨테이너를 바꿔서 이동하는 경우.
|
|
62
|
+
* 새로운 그룹을 만들거나, 그룹해제 되는 경우도 포함됨.
|
|
63
|
+
*
|
|
64
|
+
* to_container, component, to_index
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
class CommandMigrate extends _command.default {
|
|
68
|
+
execute() {
|
|
69
|
+
var changes = this.params.changes;
|
|
70
|
+
changes.forEach(change => {
|
|
71
|
+
let {
|
|
72
|
+
component,
|
|
73
|
+
to_container,
|
|
74
|
+
to_index,
|
|
75
|
+
to_left,
|
|
76
|
+
to_top,
|
|
77
|
+
hint
|
|
78
|
+
} = change;
|
|
79
|
+
let bounds = calculate_bounds_on_root(component);
|
|
80
|
+
let rotation = calculate_rotation_on_root(component);
|
|
81
|
+
|
|
82
|
+
/* to_container가 없으면, 완전히 제거함 */
|
|
83
|
+
component.removeSelf(!to_container);
|
|
84
|
+
component.bounds = bounds;
|
|
85
|
+
component.set('rotation', rotation);
|
|
86
|
+
if (to_container) {
|
|
87
|
+
component.set('rotation', calculate_rotation_on_container(component, to_container));
|
|
88
|
+
let bounds = calculate_bounds_on_container(component, to_container);
|
|
89
|
+
change.to_left = to_left !== undefined ? to_left : bounds.left;
|
|
90
|
+
change.to_top = to_top !== undefined ? to_top : bounds.top;
|
|
91
|
+
component.bounds = {
|
|
92
|
+
left: change.to_left,
|
|
93
|
+
top: change.to_top,
|
|
94
|
+
width: bounds.width,
|
|
95
|
+
height: bounds.height
|
|
96
|
+
};
|
|
97
|
+
if (typeof to_index === 'undefined') to_container.addComponent(component);else to_container.insertComponentAt(component, to_index);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.default = CommandMigrate;
|
|
103
|
+
//# sourceMappingURL=command-migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-migrate.js","names":["_command","_interopRequireDefault","require","e","__esModule","default","calculate_bounds_on_root","component","isRootModel","bounds","rotatePoint","pointOnTop","transcoordS2T","x","y","left","top","width","height","calculate_bounds_on_container","container","pointOnContainer","transcoordT2S","container_bounds","calculate_rotation_on_root","rotation","get","parent","Math","PI","calculate_rotation_on_container","container_rotation","CommandMigrate","Command","execute","changes","params","forEach","change","to_container","to_index","to_left","to_top","hint","removeSelf","set","undefined","addComponent","insertComponentAt","exports"],"sources":["../../src/command/command-migrate.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Command from './command.js'\n\nfunction calculate_bounds_on_root(component) {\n if (component.isRootModel()) return component.bounds\n\n var { bounds, rotatePoint } = component\n\n var pointOnTop = rotatePoint\n // if(component.parent && !component.parent.isRootModel())\n // pointOnTop = recursive_transcoordS2P(pointOnTop, component.parent)\n // TODO 목적상 아래 로직으로 대체 가능할 것이다. 검토하라. (스케일된 컴포넌트에 대해서 이상작동한다.)\n pointOnTop = component.transcoordS2T(pointOnTop.x, pointOnTop.y)\n\n return {\n left: pointOnTop.x - (rotatePoint.x - bounds.left),\n top: pointOnTop.y - (rotatePoint.y - bounds.top),\n width: bounds.width,\n height: bounds.height\n }\n}\n\nfunction calculate_bounds_on_container(component, container) {\n if (container.isRootModel()) return component.bounds\n\n var { bounds, rotatePoint } = component\n\n var pointOnContainer = container.transcoordT2S(rotatePoint.x, rotatePoint.y)\n\n var container_bounds = container.bounds\n\n return {\n left: pointOnContainer.x - (rotatePoint.x - bounds.left) - container_bounds.left,\n top: pointOnContainer.y - (rotatePoint.y - bounds.top) - container_bounds.top,\n width: bounds.width,\n height: bounds.height\n }\n}\n\nfunction calculate_rotation_on_root(component) {\n var rotation = 0\n\n while (component && !component.isRootModel()) {\n rotation += component.get('rotation') || 0\n\n component = component.parent\n }\n\n return rotation % (Math.PI * 2)\n}\n\nfunction calculate_rotation_on_container(component, container) {\n var rotation = component.get('rotation') || 0\n var container_rotation = calculate_rotation_on_root(container)\n\n return (rotation - container_rotation) % (Math.PI * 2)\n}\n\n/*\n * 컴포넌트가 추가, 삭제되거나 부모컨테이너를 바꿔서 이동하는 경우.\n * 새로운 그룹을 만들거나, 그룹해제 되는 경우도 포함됨.\n *\n * to_container, component, to_index\n *\n */\nexport default class CommandMigrate extends Command {\n execute() {\n var changes = this.params.changes\n\n changes.forEach(change => {\n let { component, to_container, to_index, to_left, to_top, hint } = change\n\n let bounds = calculate_bounds_on_root(component)\n let rotation = calculate_rotation_on_root(component)\n\n /* to_container가 없으면, 완전히 제거함 */\n component.removeSelf(!to_container)\n\n component.bounds = bounds\n component.set('rotation', rotation)\n\n if (to_container) {\n component.set('rotation', calculate_rotation_on_container(component, to_container))\n let bounds = calculate_bounds_on_container(component, to_container)\n\n change.to_left = to_left !== undefined ? to_left : bounds.left\n change.to_top = to_top !== undefined ? to_top : bounds.top\n\n component.bounds = {\n left: change.to_left,\n top: change.to_top,\n width: bounds.width,\n height: bounds.height\n }\n\n if (typeof to_index === 'undefined') to_container.addComponent(component)\n else to_container.insertComponentAt(component, to_index)\n }\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
/*
|
|
8
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
class Command {
|
|
12
|
+
constructor(params) {
|
|
13
|
+
this.params = Object.assign({}, params);
|
|
14
|
+
}
|
|
15
|
+
excute() {}
|
|
16
|
+
}
|
|
17
|
+
exports.default = Command;
|
|
18
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","names":["Command","constructor","params","Object","assign","excute","exports","default"],"sources":["../../src/command/command.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport default class Command {\n constructor(params) {\n this.params = Object.assign({}, params)\n }\n\n excute() {}\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEe,MAAMA,OAAO,CAAC;EAC3BC,WAAWA,CAACC,MAAM,EAAE;IAClB,IAAI,CAACA,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEF,MAAM,CAAC;EACzC;EAEAG,MAAMA,CAAA,EAAG,CAAC;AACZ;AAACC,OAAA,CAAAC,OAAA,GAAAP,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var core = _interopRequireWildcard(require("../core/index.js"));
|
|
8
|
+
var _timecapsule = _interopRequireDefault(require("../core/timecapsule.js"));
|
|
9
|
+
var _snapshotTaker = _interopRequireDefault(require("../core/snapshot-taker.js"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
/*
|
|
14
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function recovery(state, container) {
|
|
18
|
+
var scale = container.model_layer.get('scale');
|
|
19
|
+
var translate = container.model_layer.get('translate');
|
|
20
|
+
if (state) {
|
|
21
|
+
let parsed = JSON.parse(state);
|
|
22
|
+
parsed.scale = scale;
|
|
23
|
+
parsed.translate = translate;
|
|
24
|
+
container.rebuildContentModel(parsed);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class SnapshotCommander {
|
|
28
|
+
constructor(container) {
|
|
29
|
+
this.container = container;
|
|
30
|
+
this.timecapsule = new _timecapsule.default(20);
|
|
31
|
+
var self = this;
|
|
32
|
+
this.snapshot_taker = new _snapshotTaker.default({
|
|
33
|
+
get state() {
|
|
34
|
+
let model = self.container.model_layer.hierarchy;
|
|
35
|
+
return JSON.stringify(model);
|
|
36
|
+
}
|
|
37
|
+
}, this.timecapsule);
|
|
38
|
+
this.snapshot_taker.take(true);
|
|
39
|
+
this.timecapsule.preserve();
|
|
40
|
+
}
|
|
41
|
+
dispose() {
|
|
42
|
+
this.reset();
|
|
43
|
+
this.timecapsule && this.timecapsule.dispose();
|
|
44
|
+
this.snapshot_taker && this.snapshot_taker.dispose();
|
|
45
|
+
delete this.container;
|
|
46
|
+
delete this.timecapsule;
|
|
47
|
+
delete this.snapshot_taker;
|
|
48
|
+
}
|
|
49
|
+
preserve() {
|
|
50
|
+
this.timecapsule.preserve();
|
|
51
|
+
}
|
|
52
|
+
hasUnpreservedChanges() {
|
|
53
|
+
return this.timecapsule.hasUnpreservedChanges();
|
|
54
|
+
}
|
|
55
|
+
execute(command, doit) {
|
|
56
|
+
/* doit 파라미터가 명시적으로 false가 아니면, 실행한다. */
|
|
57
|
+
if (doit !== false && command) command.execute();
|
|
58
|
+
this.snapshot_taker.touch();
|
|
59
|
+
this.trigger('execute', command, /* undoable */true, /* redoable */false);
|
|
60
|
+
}
|
|
61
|
+
undo() {
|
|
62
|
+
if (!this.timecapsule.backwardable) return;
|
|
63
|
+
recovery(this.timecapsule.backward(), this.container);
|
|
64
|
+
this.trigger('undo', this.undoable(), this.redoable());
|
|
65
|
+
}
|
|
66
|
+
redo() {
|
|
67
|
+
if (!this.timecapsule.forwardable) return;
|
|
68
|
+
recovery(this.timecapsule.forward(), this.container);
|
|
69
|
+
this.trigger('redo', this.undoable(), this.redoable());
|
|
70
|
+
}
|
|
71
|
+
undoable() {
|
|
72
|
+
return this.timecapsule.backwardable;
|
|
73
|
+
}
|
|
74
|
+
redoable() {
|
|
75
|
+
return this.timecapsule.forwardable;
|
|
76
|
+
}
|
|
77
|
+
reset() {
|
|
78
|
+
this.timecapsule && this.timecapsule.reset();
|
|
79
|
+
this.trigger('command-reset');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.default = SnapshotCommander;
|
|
83
|
+
core.mixin(SnapshotCommander.prototype, core.event.withEvent);
|
|
84
|
+
//# sourceMappingURL=snapshot-commander.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-commander.js","names":["core","_interopRequireWildcard","require","_timecapsule","_interopRequireDefault","_snapshotTaker","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","recovery","state","container","scale","model_layer","translate","parsed","JSON","parse","rebuildContentModel","SnapshotCommander","constructor","timecapsule","TimeCapsule","self","snapshot_taker","SnapshotTaker","model","hierarchy","stringify","take","preserve","dispose","reset","hasUnpreservedChanges","execute","command","doit","touch","trigger","undo","backwardable","backward","undoable","redoable","redo","forwardable","forward","exports","mixin","prototype","event","withEvent"],"sources":["../../src/command/snapshot-commander.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as core from '../core/index.js'\nimport TimeCapsule from '../core/timecapsule.js'\nimport SnapshotTaker from '../core/snapshot-taker.js'\n\nfunction recovery(state, container) {\n var scale = container.model_layer.get('scale')\n var translate = container.model_layer.get('translate')\n\n if (state) {\n let parsed = JSON.parse(state)\n parsed.scale = scale\n parsed.translate = translate\n container.rebuildContentModel(parsed)\n }\n}\n\nexport default class SnapshotCommander {\n constructor(container) {\n this.container = container\n this.timecapsule = new TimeCapsule(20)\n var self = this\n this.snapshot_taker = new SnapshotTaker(\n {\n get state() {\n let model = self.container.model_layer.hierarchy\n return JSON.stringify(model)\n }\n },\n this.timecapsule\n )\n\n this.snapshot_taker.take(true)\n this.timecapsule.preserve()\n }\n\n dispose() {\n this.reset()\n this.timecapsule && this.timecapsule.dispose()\n this.snapshot_taker && this.snapshot_taker.dispose()\n\n delete this.container\n delete this.timecapsule\n delete this.snapshot_taker\n }\n\n preserve() {\n this.timecapsule.preserve()\n }\n\n hasUnpreservedChanges() {\n return this.timecapsule.hasUnpreservedChanges()\n }\n\n execute(command, doit) {\n /* doit 파라미터가 명시적으로 false가 아니면, 실행한다. */\n if (doit !== false && command) command.execute()\n\n this.snapshot_taker.touch()\n\n this.trigger('execute', command, /* undoable */ true, /* redoable */ false)\n }\n\n undo() {\n if (!this.timecapsule.backwardable) return\n\n recovery(this.timecapsule.backward(), this.container)\n\n this.trigger('undo', this.undoable(), this.redoable())\n }\n\n redo() {\n if (!this.timecapsule.forwardable) return\n\n recovery(this.timecapsule.forward(), this.container)\n\n this.trigger('redo', this.undoable(), this.redoable())\n }\n\n undoable() {\n return this.timecapsule.backwardable\n }\n\n redoable() {\n return this.timecapsule.forwardable\n }\n\n reset() {\n this.timecapsule && this.timecapsule.reset()\n this.trigger('command-reset')\n }\n}\n\ncore.mixin(SnapshotCommander.prototype, core.event.withEvent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.findInOutLines = findInOutLines;
|
|
7
|
+
exports.findInletEnds = findInletEnds;
|
|
8
|
+
exports.findInletLines = findInletLines;
|
|
9
|
+
exports.findOutletEnds = findOutletEnds;
|
|
10
|
+
exports.findOutletLines = findOutletLines;
|
|
11
|
+
/**
|
|
12
|
+
* Position definition
|
|
13
|
+
* @typedef {Object} Position
|
|
14
|
+
* @property {number} x - x position
|
|
15
|
+
* @property {number} y - y position
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Bounds definition
|
|
20
|
+
* @typedef {Object} Bounds
|
|
21
|
+
* @property {number} left - left position
|
|
22
|
+
* @property {number} top - top position
|
|
23
|
+
* @property {number} width - width
|
|
24
|
+
* @property {number} height - height
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* anchorDrawFunction
|
|
29
|
+
* @param {CanvasRenderingContext2D} context
|
|
30
|
+
* @param {Component} component
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Anchor definition
|
|
35
|
+
* @typedef {Object} Anchor
|
|
36
|
+
* @property {string} name - name of the anchor
|
|
37
|
+
* @property {string} type - type of the anchor
|
|
38
|
+
* @property {string} inout - inout direction of the anchor 'in', 'out', 'inout'
|
|
39
|
+
* @property {Position} position - position of the anchor
|
|
40
|
+
* @property {Bounds} bounds - bounds of the anchor
|
|
41
|
+
* @property {boolean} multiplicity - multiplicity
|
|
42
|
+
* @property {anchorDrawFunction} draw
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @function findInOutLines
|
|
47
|
+
* @param {Component} component
|
|
48
|
+
* @param {string} anchorName
|
|
49
|
+
* @return {Line[]}
|
|
50
|
+
*/
|
|
51
|
+
function findInOutLines(component, anchorName) {
|
|
52
|
+
const refid = component.state.refid;
|
|
53
|
+
return component.root.findAll(target => {
|
|
54
|
+
if (!target.isLine()) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return target.from.component === refid && (!anchorName || target.from.anchor === anchorName) || target.to.component === refid && (!anchorName || target.to.anchor === anchorName);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @function findOutletLines
|
|
63
|
+
* @param {Component} component
|
|
64
|
+
* @param {string} anchorName
|
|
65
|
+
* @return {Line[]}
|
|
66
|
+
*/
|
|
67
|
+
function findOutletLines(component, anchorName) {
|
|
68
|
+
const refid = component.state.refid;
|
|
69
|
+
return component.root.findAll(target => {
|
|
70
|
+
return target.isLine() && target.from.component === refid && (anchorName ? target.from.anchor === anchorName : true);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @function findOutletEnds
|
|
76
|
+
* @param {Component} component
|
|
77
|
+
* @param {string} anchorName
|
|
78
|
+
* @return {Component[]}
|
|
79
|
+
*/
|
|
80
|
+
function findOutletEnds(component, anchorName) {
|
|
81
|
+
return findOutletLines(component, anchorName).map(line => line.toEnd?.component).filter(Boolean);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @function findInletLines
|
|
86
|
+
* @param {Component} component
|
|
87
|
+
* @return {Line[]}
|
|
88
|
+
*/
|
|
89
|
+
function findInletLines(component, anchorName) {
|
|
90
|
+
const refid = component.state.refid;
|
|
91
|
+
return component.root.findAll(target => {
|
|
92
|
+
return target.isLine() && target.to.component === refid && (anchorName ? target.to.anchor === anchorName : true);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @function findInletEnds
|
|
98
|
+
* @param {Component} component
|
|
99
|
+
* @param {string} anchorName
|
|
100
|
+
* @return {Component[]}
|
|
101
|
+
*/
|
|
102
|
+
function findInletEnds(component, anchorName) {
|
|
103
|
+
return findInletLines(component, anchorName).map(line => line.fromEnd?.component).filter(Boolean);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=anchor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor.js","names":["findInOutLines","component","anchorName","refid","state","root","findAll","target","isLine","from","anchor","to","findOutletLines","findOutletEnds","map","line","toEnd","filter","Boolean","findInletLines","findInletEnds","fromEnd"],"sources":["../../../src/components/anchor/anchor.js"],"sourcesContent":["/**\n * Position definition\n * @typedef {Object} Position\n * @property {number} x - x position\n * @property {number} y - y position\n */\n\n/**\n * Bounds definition\n * @typedef {Object} Bounds\n * @property {number} left - left position\n * @property {number} top - top position\n * @property {number} width - width\n * @property {number} height - height\n */\n\n/**\n * anchorDrawFunction\n * @param {CanvasRenderingContext2D} context\n * @param {Component} component\n */\n\n/**\n * Anchor definition\n * @typedef {Object} Anchor\n * @property {string} name - name of the anchor\n * @property {string} type - type of the anchor\n * @property {string} inout - inout direction of the anchor 'in', 'out', 'inout'\n * @property {Position} position - position of the anchor\n * @property {Bounds} bounds - bounds of the anchor\n * @property {boolean} multiplicity - multiplicity\n * @property {anchorDrawFunction} draw\n */\n\n/**\n * @function findInOutLines\n * @param {Component} component\n * @param {string} anchorName\n * @return {Line[]}\n */\nexport function findInOutLines(component, anchorName) {\n const refid = component.state.refid\n\n return component.root.findAll(target => {\n if (!target.isLine()) {\n return false\n }\n\n return (\n (target.from.component === refid && (!anchorName || target.from.anchor === anchorName)) ||\n (target.to.component === refid && (!anchorName || target.to.anchor === anchorName))\n )\n })\n}\n\n/**\n * @function findOutletLines\n * @param {Component} component\n * @param {string} anchorName\n * @return {Line[]}\n */\nexport function findOutletLines(component, anchorName) {\n const refid = component.state.refid\n\n return component.root.findAll(target => {\n return target.isLine() && target.from.component === refid && (anchorName ? target.from.anchor === anchorName : true)\n })\n}\n\n/**\n * @function findOutletEnds\n * @param {Component} component\n * @param {string} anchorName\n * @return {Component[]}\n */\nexport function findOutletEnds(component, anchorName) {\n return findOutletLines(component, anchorName)\n .map(line => line.toEnd?.component)\n .filter(Boolean)\n}\n\n/**\n * @function findInletLines\n * @param {Component} component\n * @return {Line[]}\n */\nexport function findInletLines(component, anchorName) {\n const refid = component.state.refid\n\n return component.root.findAll(target => {\n return target.isLine() && target.to.component === refid && (anchorName ? target.to.anchor === anchorName : true)\n })\n}\n\n/**\n * @function findInletEnds\n * @param {Component} component\n * @param {string} anchorName\n * @return {Component[]}\n */\nexport function findInletEnds(component, anchorName) {\n return findInletLines(component, anchorName)\n .map(line => line.fromEnd?.component)\n .filter(Boolean)\n}\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAcA,CAACC,SAAS,EAAEC,UAAU,EAAE;EACpD,MAAMC,KAAK,GAAGF,SAAS,CAACG,KAAK,CAACD,KAAK;EAEnC,OAAOF,SAAS,CAACI,IAAI,CAACC,OAAO,CAACC,MAAM,IAAI;IACtC,IAAI,CAACA,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,OACGD,MAAM,CAACE,IAAI,CAACR,SAAS,KAAKE,KAAK,KAAK,CAACD,UAAU,IAAIK,MAAM,CAACE,IAAI,CAACC,MAAM,KAAKR,UAAU,CAAC,IACrFK,MAAM,CAACI,EAAE,CAACV,SAAS,KAAKE,KAAK,KAAK,CAACD,UAAU,IAAIK,MAAM,CAACI,EAAE,CAACD,MAAM,KAAKR,UAAU,CAAE;EAEvF,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASU,eAAeA,CAACX,SAAS,EAAEC,UAAU,EAAE;EACrD,MAAMC,KAAK,GAAGF,SAAS,CAACG,KAAK,CAACD,KAAK;EAEnC,OAAOF,SAAS,CAACI,IAAI,CAACC,OAAO,CAACC,MAAM,IAAI;IACtC,OAAOA,MAAM,CAACC,MAAM,CAAC,CAAC,IAAID,MAAM,CAACE,IAAI,CAACR,SAAS,KAAKE,KAAK,KAAKD,UAAU,GAAGK,MAAM,CAACE,IAAI,CAACC,MAAM,KAAKR,UAAU,GAAG,IAAI,CAAC;EACtH,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,cAAcA,CAACZ,SAAS,EAAEC,UAAU,EAAE;EACpD,OAAOU,eAAe,CAACX,SAAS,EAAEC,UAAU,CAAC,CAC1CY,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,KAAK,EAAEf,SAAS,CAAC,CAClCgB,MAAM,CAACC,OAAO,CAAC;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAClB,SAAS,EAAEC,UAAU,EAAE;EACpD,MAAMC,KAAK,GAAGF,SAAS,CAACG,KAAK,CAACD,KAAK;EAEnC,OAAOF,SAAS,CAACI,IAAI,CAACC,OAAO,CAACC,MAAM,IAAI;IACtC,OAAOA,MAAM,CAACC,MAAM,CAAC,CAAC,IAAID,MAAM,CAACI,EAAE,CAACV,SAAS,KAAKE,KAAK,KAAKD,UAAU,GAAGK,MAAM,CAACI,EAAE,CAACD,MAAM,KAAKR,UAAU,GAAG,IAAI,CAAC;EAClH,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkB,aAAaA,CAACnB,SAAS,EAAEC,UAAU,EAAE;EACnD,OAAOiB,cAAc,CAAClB,SAAS,EAAEC,UAAU,CAAC,CACzCY,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACM,OAAO,EAAEpB,SAAS,CAAC,CACpCgB,MAAM,CAACC,OAAO,CAAC;AACpB","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = ellipseAnchors;
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {import('./anchor.js').Anchor} Anchor
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @function ellipseAnchors
|
|
13
|
+
* @param {import('../../../things-scene').Component} component
|
|
14
|
+
* @return {import('./anchor.js').Anchor[]}
|
|
15
|
+
*/
|
|
16
|
+
function ellipseAnchors(component) {
|
|
17
|
+
var {
|
|
18
|
+
left,
|
|
19
|
+
top,
|
|
20
|
+
width,
|
|
21
|
+
height
|
|
22
|
+
} = component.bounds;
|
|
23
|
+
var centerx = left + width / 2;
|
|
24
|
+
var centery = top + height / 2;
|
|
25
|
+
var right = left + width;
|
|
26
|
+
var bottom = top + height;
|
|
27
|
+
return [{
|
|
28
|
+
name: 'TOP',
|
|
29
|
+
position: {
|
|
30
|
+
x: centerx,
|
|
31
|
+
y: top
|
|
32
|
+
}
|
|
33
|
+
}, {
|
|
34
|
+
name: 'RIGHT',
|
|
35
|
+
position: {
|
|
36
|
+
x: right,
|
|
37
|
+
y: centery
|
|
38
|
+
}
|
|
39
|
+
}, {
|
|
40
|
+
name: 'BOTTOM',
|
|
41
|
+
position: {
|
|
42
|
+
x: centerx,
|
|
43
|
+
y: bottom
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
name: 'LEFT',
|
|
47
|
+
position: {
|
|
48
|
+
x: left,
|
|
49
|
+
y: centery
|
|
50
|
+
}
|
|
51
|
+
}];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=ellipse-anchors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ellipse-anchors.js","names":["ellipseAnchors","component","left","top","width","height","bounds","centerx","centery","right","bottom","name","position","x","y"],"sources":["../../../src/components/anchor/ellipse-anchors.js"],"sourcesContent":["/**\n * @typedef {import('./anchor.js').Anchor} Anchor\n */\n\n/**\n * @function ellipseAnchors\n * @param {import('../../../things-scene').Component} component\n * @return {import('./anchor.js').Anchor[]}\n */\nexport default function ellipseAnchors(component) {\n var { left, top, width, height } = component.bounds\n\n var centerx = left + width / 2\n var centery = top + height / 2\n var right = left + width\n var bottom = top + height\n\n return [\n {\n name: 'TOP',\n position: {\n x: centerx,\n y: top\n }\n },\n {\n name: 'RIGHT',\n position: {\n x: right,\n y: centery\n }\n },\n {\n name: 'BOTTOM',\n position: {\n x: centerx,\n y: bottom\n }\n },\n {\n name: 'LEFT',\n position: {\n x: left,\n y: centery\n }\n }\n ]\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACe,SAASA,cAAcA,CAACC,SAAS,EAAE;EAChD,IAAI;IAAEC,IAAI;IAAEC,GAAG;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGJ,SAAS,CAACK,MAAM;EAEnD,IAAIC,OAAO,GAAGL,IAAI,GAAGE,KAAK,GAAG,CAAC;EAC9B,IAAII,OAAO,GAAGL,GAAG,GAAGE,MAAM,GAAG,CAAC;EAC9B,IAAII,KAAK,GAAGP,IAAI,GAAGE,KAAK;EACxB,IAAIM,MAAM,GAAGP,GAAG,GAAGE,MAAM;EAEzB,OAAO,CACL;IACEM,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE;MACRC,CAAC,EAAEN,OAAO;MACVO,CAAC,EAAEX;IACL;EACF,CAAC,EACD;IACEQ,IAAI,EAAE,OAAO;IACbC,QAAQ,EAAE;MACRC,CAAC,EAAEJ,KAAK;MACRK,CAAC,EAAEN;IACL;EACF,CAAC,EACD;IACEG,IAAI,EAAE,QAAQ;IACdC,QAAQ,EAAE;MACRC,CAAC,EAAEN,OAAO;MACVO,CAAC,EAAEJ;IACL;EACF,CAAC,EACD;IACEC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE;MACRC,CAAC,EAAEX,IAAI;MACPY,CAAC,EAAEN;IACL;EACF,CAAC,CACF;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = rectAnchors;
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {import('./anchor.js').Anchor} Anchor
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @function rectAnchors
|
|
13
|
+
* @param {Component} component
|
|
14
|
+
* @return {Anchor[]}
|
|
15
|
+
*/
|
|
16
|
+
function rectAnchors(component) {
|
|
17
|
+
var {
|
|
18
|
+
left,
|
|
19
|
+
top,
|
|
20
|
+
width,
|
|
21
|
+
height
|
|
22
|
+
} = component.bounds;
|
|
23
|
+
var centerx = left + width / 2;
|
|
24
|
+
var centery = top + height / 2;
|
|
25
|
+
var right = left + width;
|
|
26
|
+
var bottom = top + height;
|
|
27
|
+
return [{
|
|
28
|
+
name: 'TOP',
|
|
29
|
+
position: {
|
|
30
|
+
x: centerx,
|
|
31
|
+
y: top
|
|
32
|
+
}
|
|
33
|
+
}, {
|
|
34
|
+
name: 'RIGHT',
|
|
35
|
+
position: {
|
|
36
|
+
x: right,
|
|
37
|
+
y: centery
|
|
38
|
+
}
|
|
39
|
+
}, {
|
|
40
|
+
name: 'BOTTOM',
|
|
41
|
+
position: {
|
|
42
|
+
x: centerx,
|
|
43
|
+
y: bottom
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
name: 'LEFT',
|
|
47
|
+
position: {
|
|
48
|
+
x: left,
|
|
49
|
+
y: centery
|
|
50
|
+
}
|
|
51
|
+
}];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=rect-anchors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rect-anchors.js","names":["rectAnchors","component","left","top","width","height","bounds","centerx","centery","right","bottom","name","position","x","y"],"sources":["../../../src/components/anchor/rect-anchors.js"],"sourcesContent":["/**\n * @typedef {import('./anchor.js').Anchor} Anchor\n */\n\n/**\n * @function rectAnchors\n * @param {Component} component\n * @return {Anchor[]}\n */\nexport default function rectAnchors(component) {\n var { left, top, width, height } = component.bounds\n\n var centerx = left + width / 2\n var centery = top + height / 2\n var right = left + width\n var bottom = top + height\n\n return [\n {\n name: 'TOP',\n position: {\n x: centerx,\n y: top\n }\n },\n {\n name: 'RIGHT',\n position: {\n x: right,\n y: centery\n }\n },\n {\n name: 'BOTTOM',\n position: {\n x: centerx,\n y: bottom\n }\n },\n {\n name: 'LEFT',\n position: {\n x: left,\n y: centery\n }\n }\n ]\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACe,SAASA,WAAWA,CAACC,SAAS,EAAE;EAC7C,IAAI;IAAEC,IAAI;IAAEC,GAAG;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGJ,SAAS,CAACK,MAAM;EAEnD,IAAIC,OAAO,GAAGL,IAAI,GAAGE,KAAK,GAAG,CAAC;EAC9B,IAAII,OAAO,GAAGL,GAAG,GAAGE,MAAM,GAAG,CAAC;EAC9B,IAAII,KAAK,GAAGP,IAAI,GAAGE,KAAK;EACxB,IAAIM,MAAM,GAAGP,GAAG,GAAGE,MAAM;EAEzB,OAAO,CACL;IACEM,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE;MACRC,CAAC,EAAEN,OAAO;MACVO,CAAC,EAAEX;IACL;EACF,CAAC,EACD;IACEQ,IAAI,EAAE,OAAO;IACbC,QAAQ,EAAE;MACRC,CAAC,EAAEJ,KAAK;MACRK,CAAC,EAAEN;IACL;EACF,CAAC,EACD;IACEG,IAAI,EAAE,QAAQ;IACdC,QAAQ,EAAE;MACRC,CAAC,EAAEN,OAAO;MACVO,CAAC,EAAEJ;IACL;EACF,CAAC,EACD;IACEC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE;MACRC,CAAC,EAAEX,IAAI;MACPY,CAAC,EAAEN;IACL;EACF,CAAC,CACF;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _component = _interopRequireDefault(require("./component.js"));
|
|
8
|
+
var _shape = _interopRequireDefault(require("./shape.js"));
|
|
9
|
+
var _rectPath = _interopRequireDefault(require("./mixins/rect-path.js"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
/*
|
|
12
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const NATURE = {
|
|
16
|
+
mutable: false,
|
|
17
|
+
resizable: true,
|
|
18
|
+
rotatable: true,
|
|
19
|
+
properties: [{
|
|
20
|
+
type: 'attachment-selector',
|
|
21
|
+
label: 'src',
|
|
22
|
+
name: 'src',
|
|
23
|
+
property: {
|
|
24
|
+
category: 'audio'
|
|
25
|
+
}
|
|
26
|
+
}, {
|
|
27
|
+
type: 'checkbox',
|
|
28
|
+
label: 'started',
|
|
29
|
+
name: 'started'
|
|
30
|
+
}, {
|
|
31
|
+
type: 'checkbox',
|
|
32
|
+
label: 'loop',
|
|
33
|
+
name: 'loop'
|
|
34
|
+
}],
|
|
35
|
+
'value-property': 'src',
|
|
36
|
+
help: 'scene/component/audio'
|
|
37
|
+
};
|
|
38
|
+
const AUDIO_IMAGE = 'data:image/png;base64,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';
|
|
39
|
+
class AudioPlayer extends (0, _rectPath.default)(_shape.default) {
|
|
40
|
+
static get image() {
|
|
41
|
+
if (!AudioPlayer.IMAGE) {
|
|
42
|
+
AudioPlayer.IMAGE = new Image();
|
|
43
|
+
AudioPlayer.IMAGE.src = AUDIO_IMAGE;
|
|
44
|
+
}
|
|
45
|
+
return AudioPlayer.IMAGE;
|
|
46
|
+
}
|
|
47
|
+
dispose() {
|
|
48
|
+
super.dispose();
|
|
49
|
+
this.started = false;
|
|
50
|
+
delete this._audio;
|
|
51
|
+
}
|
|
52
|
+
ready() {
|
|
53
|
+
super.ready();
|
|
54
|
+
this._audio = new Audio();
|
|
55
|
+
this._audio.addEventListener('canplay', () => {
|
|
56
|
+
this.started && this._audio.play();
|
|
57
|
+
});
|
|
58
|
+
var {
|
|
59
|
+
src = '',
|
|
60
|
+
loop = false,
|
|
61
|
+
started = false
|
|
62
|
+
} = this.state;
|
|
63
|
+
this.onchangeSrc(src);
|
|
64
|
+
this.onchangeLoop(loop);
|
|
65
|
+
this.onchangeStarted(started);
|
|
66
|
+
}
|
|
67
|
+
render(ctx) {
|
|
68
|
+
var {
|
|
69
|
+
left,
|
|
70
|
+
top,
|
|
71
|
+
width,
|
|
72
|
+
height,
|
|
73
|
+
src
|
|
74
|
+
} = this.state;
|
|
75
|
+
ctx.beginPath();
|
|
76
|
+
this.drawImage(ctx, AudioPlayer.image, left, top, width, height);
|
|
77
|
+
}
|
|
78
|
+
get nature() {
|
|
79
|
+
return NATURE;
|
|
80
|
+
}
|
|
81
|
+
get hasTextProperty() {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
get src() {
|
|
85
|
+
return this.get('src');
|
|
86
|
+
}
|
|
87
|
+
set src(src) {
|
|
88
|
+
this.set('src', src);
|
|
89
|
+
}
|
|
90
|
+
get started() {
|
|
91
|
+
return !!this.get('started');
|
|
92
|
+
}
|
|
93
|
+
set started(started) {
|
|
94
|
+
this.set('started', started);
|
|
95
|
+
}
|
|
96
|
+
start() {
|
|
97
|
+
if (!this._audio) return;
|
|
98
|
+
this._audio.classList.add('active');
|
|
99
|
+
this._audio.play();
|
|
100
|
+
}
|
|
101
|
+
pause() {
|
|
102
|
+
if (!this._audio) return;
|
|
103
|
+
this._audio.classList.remove('active');
|
|
104
|
+
this._audio.pause();
|
|
105
|
+
}
|
|
106
|
+
onchangeSrc(src) {
|
|
107
|
+
try {
|
|
108
|
+
// this._audio.crossOrigin = "anonymous";
|
|
109
|
+
if (String(src).substring(0, 4) !== 'data') this._audio.crossOrigin = 'use-credentials';else this._audio.crossOrigin = null;
|
|
110
|
+
this._audio.src = typeof src === 'string' ? this.app.url(src) : src;
|
|
111
|
+
} catch (e) {
|
|
112
|
+
console.error(e);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
onchangeStarted(started) {
|
|
117
|
+
const audio = this._audio;
|
|
118
|
+
if (started) {
|
|
119
|
+
/*
|
|
120
|
+
[ audio/video.readyState ]
|
|
121
|
+
0 = HAVE_NOTHING - no information whether or not the audio/video is ready
|
|
122
|
+
1 = HAVE_METADATA - metadata for the audio/video is ready
|
|
123
|
+
2 = HAVE_CURRENT_DATA - data for the current playback position is available, but not enough data to play next frame/millisecond
|
|
124
|
+
3 = HAVE_FUTURE_DATA - data for the current and at least the next frame is available
|
|
125
|
+
4 = HAVE_ENOUGH_DATA - enough data available to start playing
|
|
126
|
+
*/
|
|
127
|
+
audio.readyState == 4 && audio.play();
|
|
128
|
+
} else {
|
|
129
|
+
audio.pause();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
onchangeLoop(loop) {
|
|
133
|
+
this._audio.loop = loop;
|
|
134
|
+
}
|
|
135
|
+
onchange(after, before) {
|
|
136
|
+
'src' in after && this.onchangeSrc(after.src);
|
|
137
|
+
'started' in after && this.onchangeStarted(after.started);
|
|
138
|
+
'loop' in after && this.onchangeLoop(after.loop);
|
|
139
|
+
}
|
|
140
|
+
ondblclick(e) {
|
|
141
|
+
this.started = !this.started;
|
|
142
|
+
}
|
|
143
|
+
ondropfile(transfered, files) {
|
|
144
|
+
for (let i = 0; i < transfered.length; i++) {
|
|
145
|
+
if (transfered[i].type.startsWith('audio/')) {
|
|
146
|
+
this.src = files[i];
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.default = AudioPlayer;
|
|
153
|
+
_component.default.register('audio', AudioPlayer);
|
|
154
|
+
//# sourceMappingURL=audio.js.map
|