@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,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = linkDecorator;
|
|
7
|
+
var _roundRect = require("../core/round-rect.js");
|
|
8
|
+
// class Line extends Component {
|
|
9
|
+
// get fromEnd(): LinkEnd | undefined
|
|
10
|
+
// get toEnd(): LinkEnd | undefined
|
|
11
|
+
// get from(): LinkEndConfig
|
|
12
|
+
// get to(): LinkEndConfig
|
|
13
|
+
// }
|
|
14
|
+
|
|
15
|
+
// class LinkEnd {
|
|
16
|
+
// component: Component
|
|
17
|
+
// anchor: Anchor
|
|
18
|
+
// position: POSITION
|
|
19
|
+
// fromto: 'from' | 'to'
|
|
20
|
+
// }
|
|
21
|
+
|
|
22
|
+
function linkDecorator(component, context, delta /* 1 to 0 */) {
|
|
23
|
+
var rendered = false;
|
|
24
|
+
if (!component.isLine()) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const {
|
|
28
|
+
fromEnd,
|
|
29
|
+
toEnd
|
|
30
|
+
} = component;
|
|
31
|
+
[fromEnd, toEnd].filter(Boolean).forEach(end => {
|
|
32
|
+
const {
|
|
33
|
+
component,
|
|
34
|
+
anchor
|
|
35
|
+
} = end;
|
|
36
|
+
if (!anchor) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const {
|
|
40
|
+
name,
|
|
41
|
+
position
|
|
42
|
+
} = anchor || {};
|
|
43
|
+
if (!name || !position) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
var {
|
|
47
|
+
x,
|
|
48
|
+
y
|
|
49
|
+
} = position || {};
|
|
50
|
+
var {
|
|
51
|
+
x,
|
|
52
|
+
y
|
|
53
|
+
} = component.transcoordS2C(x, y, component.rootModel);
|
|
54
|
+
x += 8;
|
|
55
|
+
y += 20;
|
|
56
|
+
context.font = '12px Arial';
|
|
57
|
+
let metrics = context.measureText(name);
|
|
58
|
+
context.fillStyle = '#FF0000';
|
|
59
|
+
(0, _roundRect.roundRect)(context, x - metrics.actualBoundingBoxLeft - 4, y - metrics.actualBoundingBoxAscent - 4, metrics.actualBoundingBoxLeft + metrics.actualBoundingBoxRight + 4 * 2, metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + 4 * 2, 4 /* round */, true /* fill */, false /* stroke */);
|
|
60
|
+
context.fillStyle = 'white';
|
|
61
|
+
context.fillText(name, x, y);
|
|
62
|
+
rendered = true;
|
|
63
|
+
});
|
|
64
|
+
return rendered;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=link-decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-decorator.js","names":["_roundRect","require","linkDecorator","component","context","delta","rendered","isLine","fromEnd","toEnd","filter","Boolean","forEach","end","anchor","name","position","x","y","transcoordS2C","rootModel","font","metrics","measureText","fillStyle","roundRect","actualBoundingBoxLeft","actualBoundingBoxAscent","actualBoundingBoxRight","actualBoundingBoxDescent","fillText"],"sources":["../../src/decorator/link-decorator.js"],"sourcesContent":["// class Line extends Component {\n// get fromEnd(): LinkEnd | undefined\n// get toEnd(): LinkEnd | undefined\n// get from(): LinkEndConfig\n// get to(): LinkEndConfig\n// }\n\n// class LinkEnd {\n// component: Component\n// anchor: Anchor\n// position: POSITION\n// fromto: 'from' | 'to'\n// }\n\nimport { roundRect } from '../core/round-rect.js'\n\nexport default function linkDecorator(component, context, delta /* 1 to 0 */) {\n var rendered = false\n\n if (!component.isLine()) {\n return\n }\n\n const { fromEnd, toEnd } = component\n\n ;[fromEnd, toEnd].filter(Boolean).forEach(end => {\n const { component, anchor } = end\n\n if (!anchor) {\n return\n }\n\n const { name, position } = anchor || {}\n\n if (!name || !position) {\n return\n }\n\n var { x, y } = position || {}\n\n var { x, y } = component.transcoordS2C(x, y, component.rootModel)\n x += 8\n y += 20\n\n context.font = '12px Arial'\n let metrics = context.measureText(name)\n\n context.fillStyle = '#FF0000'\n roundRect(\n context,\n x - metrics.actualBoundingBoxLeft - 4,\n y - metrics.actualBoundingBoxAscent - 4,\n metrics.actualBoundingBoxLeft + metrics.actualBoundingBoxRight + 4 * 2,\n metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + 4 * 2,\n 4 /* round */,\n true /* fill */,\n false /* stroke */\n )\n\n context.fillStyle = 'white'\n context.fillText(name, x, y)\n\n rendered = true\n })\n\n return rendered\n}\n"],"mappings":";;;;;;AAcA,IAAAA,UAAA,GAAAC,OAAA;AAdA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAIe,SAASC,aAAaA,CAACC,SAAS,EAAEC,OAAO,EAAEC,KAAK,CAAC,cAAc;EAC5E,IAAIC,QAAQ,GAAG,KAAK;EAEpB,IAAI,CAACH,SAAS,CAACI,MAAM,CAAC,CAAC,EAAE;IACvB;EACF;EAEA,MAAM;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGN,SAAS;EAEnC,CAACK,OAAO,EAAEC,KAAK,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,OAAO,CAACC,GAAG,IAAI;IAC/C,MAAM;MAAEV,SAAS;MAAEW;IAAO,CAAC,GAAGD,GAAG;IAEjC,IAAI,CAACC,MAAM,EAAE;MACX;IACF;IAEA,MAAM;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGF,MAAM,IAAI,CAAC,CAAC;IAEvC,IAAI,CAACC,IAAI,IAAI,CAACC,QAAQ,EAAE;MACtB;IACF;IAEA,IAAI;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGF,QAAQ,IAAI,CAAC,CAAC;IAE7B,IAAI;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGf,SAAS,CAACgB,aAAa,CAACF,CAAC,EAAEC,CAAC,EAAEf,SAAS,CAACiB,SAAS,CAAC;IACjEH,CAAC,IAAI,CAAC;IACNC,CAAC,IAAI,EAAE;IAEPd,OAAO,CAACiB,IAAI,GAAG,YAAY;IAC3B,IAAIC,OAAO,GAAGlB,OAAO,CAACmB,WAAW,CAACR,IAAI,CAAC;IAEvCX,OAAO,CAACoB,SAAS,GAAG,SAAS;IAC7B,IAAAC,oBAAS,EACPrB,OAAO,EACPa,CAAC,GAAGK,OAAO,CAACI,qBAAqB,GAAG,CAAC,EACrCR,CAAC,GAAGI,OAAO,CAACK,uBAAuB,GAAG,CAAC,EACvCL,OAAO,CAACI,qBAAqB,GAAGJ,OAAO,CAACM,sBAAsB,GAAG,CAAC,GAAG,CAAC,EACtEN,OAAO,CAACK,uBAAuB,GAAGL,OAAO,CAACO,wBAAwB,GAAG,CAAC,GAAG,CAAC,EAC1E,CAAC,CAAC,aACF,IAAI,CAAC,YACL,KAAK,CAAC,YACR,CAAC;IAEDzB,OAAO,CAACoB,SAAS,GAAG,OAAO;IAC3BpB,OAAO,CAAC0B,QAAQ,CAACf,IAAI,EAAEE,CAAC,EAAEC,CAAC,CAAC;IAE5BZ,QAAQ,GAAG,IAAI;EACjB,CAAC,CAAC;EAEF,OAAOA,QAAQ;AACjB","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = gradation;
|
|
7
|
+
/*
|
|
8
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
function gradation(client, ctx, model) {
|
|
12
|
+
var {
|
|
13
|
+
type,
|
|
14
|
+
subType,
|
|
15
|
+
from,
|
|
16
|
+
to,
|
|
17
|
+
colors
|
|
18
|
+
} = model;
|
|
19
|
+
switch (subType) {
|
|
20
|
+
case 'linear':
|
|
21
|
+
var grad = ctx.createLinearGradient(from.x, from.y, to.x, to.y);
|
|
22
|
+
break;
|
|
23
|
+
case 'radial':
|
|
24
|
+
var grad = ctx.createRadialGradient(from.x, from.y, from.r, to.x, to.y, to.r);
|
|
25
|
+
break;
|
|
26
|
+
default:
|
|
27
|
+
var grad = ctx.createLinearGradient(from.x, from.y, to.x, to.y);
|
|
28
|
+
}
|
|
29
|
+
if (colors) {
|
|
30
|
+
colors.forEach(function (obj) {
|
|
31
|
+
grad.addColorStop(obj.endPoint, obj.color);
|
|
32
|
+
});
|
|
33
|
+
ctx.fillStyle = grad;
|
|
34
|
+
ctx.fill();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=gradation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradation.js","names":["gradation","client","ctx","model","type","subType","from","to","colors","grad","createLinearGradient","x","y","createRadialGradient","r","forEach","obj","addColorStop","endPoint","color","fillStyle","fill"],"sources":["../../src/effect/gradation.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport default function gradation(client, ctx, model) {\n var { type, subType, from, to, colors } = model\n\n switch (subType) {\n case 'linear':\n var grad = ctx.createLinearGradient(from.x, from.y, to.x, to.y)\n break\n case 'radial':\n var grad = ctx.createRadialGradient(from.x, from.y, from.r, to.x, to.y, to.r)\n break\n default:\n var grad = ctx.createLinearGradient(from.x, from.y, to.x, to.y)\n }\n\n if (colors) {\n colors.forEach(function(obj) {\n grad.addColorStop(obj.endPoint, obj.color)\n })\n\n ctx.fillStyle = grad\n ctx.fill()\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEe,SAASA,SAASA,CAACC,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE;EACpD,IAAI;IAAEC,IAAI;IAAEC,OAAO;IAAEC,IAAI;IAAEC,EAAE;IAAEC;EAAO,CAAC,GAAGL,KAAK;EAE/C,QAAQE,OAAO;IACb,KAAK,QAAQ;MACX,IAAII,IAAI,GAAGP,GAAG,CAACQ,oBAAoB,CAACJ,IAAI,CAACK,CAAC,EAAEL,IAAI,CAACM,CAAC,EAAEL,EAAE,CAACI,CAAC,EAAEJ,EAAE,CAACK,CAAC,CAAC;MAC/D;IACF,KAAK,QAAQ;MACX,IAAIH,IAAI,GAAGP,GAAG,CAACW,oBAAoB,CAACP,IAAI,CAACK,CAAC,EAAEL,IAAI,CAACM,CAAC,EAAEN,IAAI,CAACQ,CAAC,EAAEP,EAAE,CAACI,CAAC,EAAEJ,EAAE,CAACK,CAAC,EAAEL,EAAE,CAACO,CAAC,CAAC;MAC7E;IACF;MACE,IAAIL,IAAI,GAAGP,GAAG,CAACQ,oBAAoB,CAACJ,IAAI,CAACK,CAAC,EAAEL,IAAI,CAACM,CAAC,EAAEL,EAAE,CAACI,CAAC,EAAEJ,EAAE,CAACK,CAAC,CAAC;EACnE;EAEA,IAAIJ,MAAM,EAAE;IACVA,MAAM,CAACO,OAAO,CAAC,UAASC,GAAG,EAAE;MAC3BP,IAAI,CAACQ,YAAY,CAACD,GAAG,CAACE,QAAQ,EAAEF,GAAG,CAACG,KAAK,CAAC;IAC5C,CAAC,CAAC;IAEFjB,GAAG,CAACkB,SAAS,GAAGX,IAAI;IACpBP,GAAG,CAACmB,IAAI,CAAC,CAAC;EACZ;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = effect;
|
|
7
|
+
var _gradation = _interopRequireDefault(require("./gradation.js"));
|
|
8
|
+
var _shadow = require("./shadow.js");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/*
|
|
11
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
var registry = {
|
|
15
|
+
gradation: _gradation.default,
|
|
16
|
+
shadow: _shadow.setShadow
|
|
17
|
+
};
|
|
18
|
+
function effect(client, context, model) {
|
|
19
|
+
var effect = registry[model.type];
|
|
20
|
+
if (!effect) return;
|
|
21
|
+
effect(client, context, model);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_gradation","_interopRequireDefault","require","_shadow","e","__esModule","default","registry","gradation","shadow","setShadow","effect","client","context","model","type"],"sources":["../../src/effect/index.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport gradation from './gradation.js'\nimport { setShadow } from './shadow.js'\n\nvar registry = {\n gradation,\n shadow: setShadow\n}\n\nexport default function effect(client, context, model) {\n var effect = registry[model.type]\n if (!effect) return\n\n effect(client, context, model)\n}\n"],"mappings":";;;;;;AAIA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAAuC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AALvC;AACA;AACA;;AAKA,IAAIG,QAAQ,GAAG;EACbC,SAAS,EAATA,kBAAS;EACTC,MAAM,EAAEC;AACV,CAAC;AAEc,SAASC,MAAMA,CAACC,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAAE;EACrD,IAAIH,MAAM,GAAGJ,QAAQ,CAACO,KAAK,CAACC,IAAI,CAAC;EACjC,IAAI,CAACJ,MAAM,EAAE;EAEbA,MAAM,CAACC,MAAM,EAAEC,OAAO,EAAEC,KAAK,CAAC;AAChC","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resetShadow = resetShadow;
|
|
7
|
+
exports.setShadow = setShadow;
|
|
8
|
+
var _const = require("../const.js");
|
|
9
|
+
/*
|
|
10
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const DEFAULT_SCALE = {
|
|
14
|
+
x: 1,
|
|
15
|
+
y: 1
|
|
16
|
+
};
|
|
17
|
+
function setShadow(context, shadow, component) {
|
|
18
|
+
var {
|
|
19
|
+
left = 0,
|
|
20
|
+
top = 0,
|
|
21
|
+
blurSize = 0,
|
|
22
|
+
color = 'transparent'
|
|
23
|
+
} = shadow;
|
|
24
|
+
var scale = component.rootModel.get('scale') || DEFAULT_SCALE;
|
|
25
|
+
context.shadowOffsetX = left * scale.x * _const.DPPX;
|
|
26
|
+
context.shadowOffsetY = top * scale.y * _const.DPPX;
|
|
27
|
+
context.shadowBlur = blurSize * scale.x * _const.DPPX;
|
|
28
|
+
context.shadowColor = color;
|
|
29
|
+
}
|
|
30
|
+
function resetShadow(context) {
|
|
31
|
+
context.shadowColor = 'transparent';
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=shadow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.js","names":["_const","require","DEFAULT_SCALE","x","y","setShadow","context","shadow","component","left","top","blurSize","color","scale","rootModel","get","shadowOffsetX","DPPX","shadowOffsetY","shadowBlur","shadowColor","resetShadow"],"sources":["../../src/effect/shadow.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst DEFAULT_SCALE = {\n x: 1,\n y: 1\n}\n\nimport { DPPX } from '../const.js'\n\nexport function setShadow(context, shadow, component) {\n var { left = 0, top = 0, blurSize = 0, color = 'transparent' } = shadow\n\n var scale = component.rootModel.get('scale') || DEFAULT_SCALE\n\n context.shadowOffsetX = left * scale.x * DPPX\n context.shadowOffsetY = top * scale.y * DPPX\n context.shadowBlur = blurSize * scale.x * DPPX\n context.shadowColor = color\n}\n\nexport function resetShadow(context) {\n context.shadowColor = 'transparent'\n}\n"],"mappings":";;;;;;;AASA,IAAAA,MAAA,GAAAC,OAAA;AATA;AACA;AACA;;AAEA,MAAMC,aAAa,GAAG;EACpBC,CAAC,EAAE,CAAC;EACJC,CAAC,EAAE;AACL,CAAC;AAIM,SAASC,SAASA,CAACC,OAAO,EAAEC,MAAM,EAAEC,SAAS,EAAE;EACpD,IAAI;IAAEC,IAAI,GAAG,CAAC;IAAEC,GAAG,GAAG,CAAC;IAAEC,QAAQ,GAAG,CAAC;IAAEC,KAAK,GAAG;EAAc,CAAC,GAAGL,MAAM;EAEvE,IAAIM,KAAK,GAAGL,SAAS,CAACM,SAAS,CAACC,GAAG,CAAC,OAAO,CAAC,IAAIb,aAAa;EAE7DI,OAAO,CAACU,aAAa,GAAGP,IAAI,GAAGI,KAAK,CAACV,CAAC,GAAGc,WAAI;EAC7CX,OAAO,CAACY,aAAa,GAAGR,GAAG,GAAGG,KAAK,CAACT,CAAC,GAAGa,WAAI;EAC5CX,OAAO,CAACa,UAAU,GAAGR,QAAQ,GAAGE,KAAK,CAACV,CAAC,GAAGc,WAAI;EAC9CX,OAAO,CAACc,WAAW,GAAGR,KAAK;AAC7B;AAEO,SAASS,WAAWA,CAACf,OAAO,EAAE;EACnCA,OAAO,CAACc,WAAW,GAAG,aAAa;AACrC","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.turn = turn;
|
|
7
|
+
/*
|
|
8
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
function turn(component, params) {
|
|
12
|
+
component.set({
|
|
13
|
+
rotation: params.speed
|
|
14
|
+
});
|
|
15
|
+
t(component, params);
|
|
16
|
+
}
|
|
17
|
+
function t(component, params) {
|
|
18
|
+
component.set({
|
|
19
|
+
rotation: component.get('rotation') + params.speed
|
|
20
|
+
});
|
|
21
|
+
setTimeout(() => {
|
|
22
|
+
t(component, params);
|
|
23
|
+
}, 100);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=turn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn.js","names":["turn","component","params","set","rotation","speed","t","get","setTimeout"],"sources":["../../src/effect/turn.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport function turn(component, params) {\n component.set({ rotation: params.speed })\n t(component, params)\n}\n\nfunction t(component, params) {\n component.set({ rotation: component.get('rotation') + params.speed })\n setTimeout(() => {\n t(component, params)\n }, 100)\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEO,SAASA,IAAIA,CAACC,SAAS,EAAEC,MAAM,EAAE;EACtCD,SAAS,CAACE,GAAG,CAAC;IAAEC,QAAQ,EAAEF,MAAM,CAACG;EAAM,CAAC,CAAC;EACzCC,CAAC,CAACL,SAAS,EAAEC,MAAM,CAAC;AACtB;AAEA,SAASI,CAACA,CAACL,SAAS,EAAEC,MAAM,EAAE;EAC5BD,SAAS,CAACE,GAAG,CAAC;IAAEC,QAAQ,EAAEH,SAAS,CAACM,GAAG,CAAC,UAAU,CAAC,GAAGL,MAAM,CAACG;EAAM,CAAC,CAAC;EACrEG,UAAU,CAAC,MAAM;IACfF,CAAC,CAACL,SAAS,EAAEC,MAAM,CAAC;EACtB,CAAC,EAAE,GAAG,CAAC;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _eventPump = _interopRequireDefault(require("./event-pump.js"));
|
|
8
|
+
var ComponentSelector = _interopRequireWildcard(require("../model/selector.js"));
|
|
9
|
+
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); }
|
|
10
|
+
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; }
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
/*
|
|
13
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
class EventEngine {
|
|
17
|
+
constructor(root) {
|
|
18
|
+
this.eventMaps = [];
|
|
19
|
+
this.root = root;
|
|
20
|
+
if (root.eventMap) {
|
|
21
|
+
this.add(root, root.eventMap);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
set root(root) {
|
|
25
|
+
this._root = root;
|
|
26
|
+
}
|
|
27
|
+
get root() {
|
|
28
|
+
return this._root;
|
|
29
|
+
}
|
|
30
|
+
stop() {
|
|
31
|
+
this.eventMaps.forEach(map => map.eventPump.stop());
|
|
32
|
+
}
|
|
33
|
+
add(listener, handlerMap) {
|
|
34
|
+
if (!this.root) return;
|
|
35
|
+
for (let selector in handlerMap) {
|
|
36
|
+
let handlers = handlerMap[selector];
|
|
37
|
+
|
|
38
|
+
/* 리스너가 이벤트를 핸들링하는 오브젝트가 아닌 경우 '(self)' 선택자는 사용할 수 없다. */
|
|
39
|
+
if (selector === '(self)' && typeof listener.on === 'undefined') throw new Error('(self) selector not available when deliverer is not a event handlable object.');
|
|
40
|
+
let deliverers = ComponentSelector.select(selector, this.root, listener);
|
|
41
|
+
deliverers.forEach(deliverer => {
|
|
42
|
+
var eventPump = new _eventPump.default(deliverer);
|
|
43
|
+
eventPump.on(listener, handlers);
|
|
44
|
+
eventPump.start();
|
|
45
|
+
this.eventMaps.push({
|
|
46
|
+
eventPump,
|
|
47
|
+
listener,
|
|
48
|
+
handlerMap,
|
|
49
|
+
deliverer
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
remove(listener, handlerMap) {
|
|
55
|
+
var maps = this.eventMaps.slice(0); // Clone Array
|
|
56
|
+
for (let i = 0; i < maps.length; i++) {
|
|
57
|
+
let item = maps[i];
|
|
58
|
+
if (item.listener === listener && (!handlerMap || item.handlerMap === handlerMap)) {
|
|
59
|
+
this.eventMaps.splice(i, 1);
|
|
60
|
+
item.eventPump.dispose();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
clear() {
|
|
65
|
+
var maps = this.eventMaps.slice(0); // Clone Array
|
|
66
|
+
|
|
67
|
+
maps.forEach(map => map.eventPump.dispose());
|
|
68
|
+
this.eventMaps = [];
|
|
69
|
+
}
|
|
70
|
+
dispose() {
|
|
71
|
+
this.stop();
|
|
72
|
+
this.clear();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.default = EventEngine;
|
|
76
|
+
//# sourceMappingURL=event-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-engine.js","names":["_eventPump","_interopRequireDefault","require","ComponentSelector","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","EventEngine","constructor","root","eventMaps","eventMap","add","_root","stop","forEach","map","eventPump","listener","handlerMap","selector","handlers","on","Error","deliverers","select","deliverer","EventPump","start","push","remove","maps","slice","length","item","splice","dispose","clear","exports"],"sources":["../../src/event/event-engine.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport EventPump from './event-pump.js'\nimport * as ComponentSelector from '../model/selector.js'\n\nexport default class EventEngine {\n constructor(root) {\n this.eventMaps = []\n this.root = root\n\n if (root.eventMap) {\n this.add(root, root.eventMap)\n }\n }\n\n set root(root) {\n this._root = root\n }\n\n get root() {\n return this._root\n }\n\n stop() {\n this.eventMaps.forEach(map => map.eventPump.stop())\n }\n\n add(listener, handlerMap) {\n if (!this.root) return\n\n for (let selector in handlerMap) {\n let handlers = handlerMap[selector]\n\n /* 리스너가 이벤트를 핸들링하는 오브젝트가 아닌 경우 '(self)' 선택자는 사용할 수 없다. */\n if (selector === '(self)' && typeof listener.on === 'undefined')\n throw new Error('(self) selector not available when deliverer is not a event handlable object.')\n\n let deliverers = ComponentSelector.select(selector, this.root, listener)\n\n deliverers.forEach(deliverer => {\n var eventPump = new EventPump(deliverer)\n eventPump.on(listener, handlers)\n eventPump.start()\n\n this.eventMaps.push({\n eventPump,\n listener,\n handlerMap,\n deliverer\n })\n })\n }\n }\n\n remove(listener, handlerMap) {\n var maps = this.eventMaps.slice(0) // Clone Array\n for (let i = 0; i < maps.length; i++) {\n let item = maps[i]\n if (item.listener === listener && (!handlerMap || item.handlerMap === handlerMap)) {\n this.eventMaps.splice(i, 1)\n item.eventPump.dispose()\n }\n }\n }\n\n clear() {\n var maps = this.eventMaps.slice(0) // Clone Array\n\n maps.forEach(map => map.eventPump.dispose())\n\n this.eventMaps = []\n }\n\n dispose() {\n this.stop()\n this.clear()\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var Selector = _interopRequireWildcard(require("../model/selector.js"));
|
|
8
|
+
var _logger = require("../core/logger.js");
|
|
9
|
+
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); }
|
|
10
|
+
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; }
|
|
11
|
+
/*
|
|
12
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
function control(root, listener, handlers, event, args) {
|
|
16
|
+
for (let selector in handlers) {
|
|
17
|
+
let event_map = handlers[selector];
|
|
18
|
+
if (Selector.match(selector, event.origin, listener, root)) {
|
|
19
|
+
for (let event_name in event_map) {
|
|
20
|
+
let handler = event_map[event_name];
|
|
21
|
+
if (event_name == event.name) {
|
|
22
|
+
event.listener = listener;
|
|
23
|
+
|
|
24
|
+
/* 실행컨텍스트는 리스너가 되도록 한다. */
|
|
25
|
+
handler.apply(listener, args);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function event_handler_fn() {
|
|
32
|
+
var args = arguments;
|
|
33
|
+
var e = args[args.length - 1];
|
|
34
|
+
var event_pump = this.event_pump;
|
|
35
|
+
event_pump.listeners.forEach(listener => {
|
|
36
|
+
control(event_pump.deliverer, listener.listener, listener.cloned_handlers, e, args);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
class EventPump {
|
|
40
|
+
/*
|
|
41
|
+
* Construct a new event pump.
|
|
42
|
+
*
|
|
43
|
+
* param [Object] deliverer target object to listen events that the object fires or delegates
|
|
44
|
+
*/
|
|
45
|
+
constructor(deliverer) {
|
|
46
|
+
if (typeof deliverer.on === 'undefined') throw new Error('Deliverer should be a event handlable object.');
|
|
47
|
+
this.deliverer = deliverer;
|
|
48
|
+
this.listeners = [];
|
|
49
|
+
}
|
|
50
|
+
start() {
|
|
51
|
+
this.deliverer.on('(all)', event_handler_fn, {
|
|
52
|
+
event_pump: this
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
stop() {
|
|
56
|
+
this.deliverer.off('(all)', event_handler_fn);
|
|
57
|
+
}
|
|
58
|
+
on(listener, handlers) {
|
|
59
|
+
var cloned_handlers = Object.assign({}, handlers); // clone object
|
|
60
|
+
|
|
61
|
+
var selectors = Object.keys(cloned_handlers);
|
|
62
|
+
selectors.forEach(selector => {
|
|
63
|
+
if (selector.indexOf('?') == 0) {
|
|
64
|
+
let handler = cloned_handlers[selector];
|
|
65
|
+
let variable = selector.substr(1);
|
|
66
|
+
let value = listener.get(variable);
|
|
67
|
+
delete cloned_handlers[selector];
|
|
68
|
+
if (value) cloned_handlers[value] = handler;else (0, _logger.warn)('EventPump#on', `variable #{selector} is not evaluated on listener`);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
this.listeners.push({
|
|
72
|
+
listener: listener,
|
|
73
|
+
handlers: handlers,
|
|
74
|
+
cloned_handlers: cloned_handlers
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
off(listener, handlers) {
|
|
78
|
+
for (let i = 0; i < this.listeners.length; i++) {
|
|
79
|
+
let item = this.listeners[i];
|
|
80
|
+
if (item.listener === listener && (!handlers || item.handlers === handlers)) this.listeners.splice(i, 1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
clear() {
|
|
84
|
+
this.listeners = [];
|
|
85
|
+
}
|
|
86
|
+
dispose() {
|
|
87
|
+
this.stop();
|
|
88
|
+
this.clear();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.default = EventPump;
|
|
92
|
+
//# sourceMappingURL=event-pump.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-pump.js","names":["Selector","_interopRequireWildcard","require","_logger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","control","root","listener","handlers","event","args","selector","event_map","match","origin","event_name","handler","name","apply","event_handler_fn","arguments","length","event_pump","listeners","forEach","deliverer","cloned_handlers","EventPump","constructor","on","Error","start","stop","off","assign","selectors","keys","indexOf","variable","substr","value","warn","push","item","splice","clear","dispose","exports"],"sources":["../../src/event/event-pump.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as Selector from '../model/selector.js'\nimport { warn } from '../core/logger.js'\n\nfunction control(root, listener, handlers, event, args) {\n for (let selector in handlers) {\n let event_map = handlers[selector]\n\n if (Selector.match(selector, event.origin, listener, root)) {\n for (let event_name in event_map) {\n let handler = event_map[event_name]\n\n if (event_name == event.name) {\n event.listener = listener\n\n /* 실행컨텍스트는 리스너가 되도록 한다. */\n handler.apply(listener, args)\n }\n }\n }\n }\n}\n\nfunction event_handler_fn() {\n var args = arguments\n var e = args[args.length - 1]\n var event_pump = this.event_pump\n\n event_pump.listeners.forEach(listener => {\n control(event_pump.deliverer, listener.listener, listener.cloned_handlers, e, args)\n })\n}\n\nexport default class EventPump {\n /*\n * Construct a new event pump.\n *\n * param [Object] deliverer target object to listen events that the object fires or delegates\n */\n constructor(deliverer) {\n if (typeof deliverer.on === 'undefined') throw new Error('Deliverer should be a event handlable object.')\n\n this.deliverer = deliverer\n this.listeners = []\n }\n\n start() {\n this.deliverer.on('(all)', event_handler_fn, {\n event_pump: this\n })\n }\n\n stop() {\n this.deliverer.off('(all)', event_handler_fn)\n }\n\n on(listener, handlers) {\n var cloned_handlers = Object.assign({}, handlers) // clone object\n\n var selectors = Object.keys(cloned_handlers)\n\n selectors.forEach(selector => {\n if (selector.indexOf('?') == 0) {\n let handler = cloned_handlers[selector]\n let variable = selector.substr(1)\n let value = listener.get(variable)\n delete cloned_handlers[selector]\n\n if (value) cloned_handlers[value] = handler\n else warn('EventPump#on', `variable #{selector} is not evaluated on listener`)\n }\n })\n\n this.listeners.push({\n listener: listener,\n handlers: handlers,\n cloned_handlers: cloned_handlers\n })\n }\n\n off(listener, handlers) {\n for (let i = 0; i < this.listeners.length; i++) {\n let item = this.listeners[i]\n if (item.listener === listener && (!handlers || item.handlers === handlers)) this.listeners.splice(i, 1)\n }\n }\n\n clear() {\n this.listeners = []\n }\n\n dispose() {\n this.stop()\n this.clear()\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,97 @@
|
|
|
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 StandAloneTracker {
|
|
12
|
+
constructor(target, handlers, self) {
|
|
13
|
+
this.started = false;
|
|
14
|
+
if (target) this.target = target;
|
|
15
|
+
this.handlers = handlers;
|
|
16
|
+
var self = self || this.target || this;
|
|
17
|
+
this.boundhandler = {};
|
|
18
|
+
for (let ev in handlers) {
|
|
19
|
+
let handler = handlers[ev];
|
|
20
|
+
if (typeof handler == 'function') {
|
|
21
|
+
this.boundhandler[ev] = handler.bind(self);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
dispose() {
|
|
26
|
+
this.off();
|
|
27
|
+
}
|
|
28
|
+
on() {
|
|
29
|
+
if (this.started) return;
|
|
30
|
+
for (let ev in this.boundhandler) {
|
|
31
|
+
let handler = this.boundhandler[ev];
|
|
32
|
+
this.target.on(ev, handler);
|
|
33
|
+
}
|
|
34
|
+
this.started = true;
|
|
35
|
+
}
|
|
36
|
+
off() {
|
|
37
|
+
for (let ev in this.boundhandler) {
|
|
38
|
+
let handler = this.boundhandler[ev];
|
|
39
|
+
this.target.off(ev, handler);
|
|
40
|
+
}
|
|
41
|
+
this.started = false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
class EventTracker {
|
|
45
|
+
static get StandAlone() {
|
|
46
|
+
return StandAloneTracker;
|
|
47
|
+
}
|
|
48
|
+
constructor() {
|
|
49
|
+
this.trackers = [];
|
|
50
|
+
}
|
|
51
|
+
set selector(selector) {
|
|
52
|
+
this._selector = selector;
|
|
53
|
+
}
|
|
54
|
+
on(target, handlers, listener, context) {
|
|
55
|
+
var deliverers = null;
|
|
56
|
+
switch (typeof target) {
|
|
57
|
+
case 'object':
|
|
58
|
+
deliverers = [target];
|
|
59
|
+
break;
|
|
60
|
+
case 'string':
|
|
61
|
+
deliverers = this._selector.select(target, listener);
|
|
62
|
+
break;
|
|
63
|
+
default:
|
|
64
|
+
deliverers = [];
|
|
65
|
+
}
|
|
66
|
+
if (!(deliverers instanceof Array)) deliverers = [deliverers];
|
|
67
|
+
deliverers.forEach(deliverer => {
|
|
68
|
+
let tracker = new StandAloneTracker(deliverer, handlers, {
|
|
69
|
+
listener,
|
|
70
|
+
deliverer,
|
|
71
|
+
context: context || deliverer
|
|
72
|
+
});
|
|
73
|
+
this.trackers.push(tracker);
|
|
74
|
+
tracker.on();
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
off(target, handlers) {
|
|
78
|
+
var idxs = [];
|
|
79
|
+
for (let i = 0; i < this.trackers.length; i++) {
|
|
80
|
+
let tracker = this.trackers[i];
|
|
81
|
+
if (target === tracker.target && (!handlers || handlers === tracker.handlers)) idxs.push(i);
|
|
82
|
+
}
|
|
83
|
+
idxs.reverse().forEach(idx => this.trackers.splice(idx, 1)[0].off());
|
|
84
|
+
}
|
|
85
|
+
all() {
|
|
86
|
+
return this.trackers.map(tracker => {
|
|
87
|
+
return tracker;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
dispose() {
|
|
91
|
+
this.trackers.forEach(tracker => tracker.dispose());
|
|
92
|
+
this.trackers = [];
|
|
93
|
+
this.selector = null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.default = EventTracker;
|
|
97
|
+
//# sourceMappingURL=event-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-tracker.js","names":["StandAloneTracker","constructor","target","handlers","self","started","boundhandler","ev","handler","bind","dispose","off","on","EventTracker","StandAlone","trackers","selector","_selector","listener","context","deliverers","select","Array","forEach","deliverer","tracker","push","idxs","i","length","reverse","idx","splice","all","map","exports","default"],"sources":["../../src/event/event-tracker.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nclass StandAloneTracker {\n constructor(target, handlers, self) {\n this.started = false\n\n if (target) this.target = target\n\n this.handlers = handlers\n\n var self = self || this.target || this\n\n this.boundhandler = {}\n\n for (let ev in handlers) {\n let handler = handlers[ev]\n\n if (typeof handler == 'function') {\n this.boundhandler[ev] = handler.bind(self)\n }\n }\n }\n\n dispose() {\n this.off()\n }\n\n on() {\n if (this.started) return\n\n for (let ev in this.boundhandler) {\n let handler = this.boundhandler[ev]\n\n this.target.on(ev, handler)\n }\n\n this.started = true\n }\n\n off() {\n for (let ev in this.boundhandler) {\n let handler = this.boundhandler[ev]\n\n this.target.off(ev, handler)\n }\n\n this.started = false\n }\n}\n\nexport default class EventTracker {\n static get StandAlone() {\n return StandAloneTracker\n }\n\n constructor() {\n this.trackers = []\n }\n\n set selector(selector) {\n this._selector = selector\n }\n\n on(target, handlers, listener, context) {\n var deliverers = null\n\n switch (typeof target) {\n case 'object':\n deliverers = [target]\n break\n case 'string':\n deliverers = this._selector.select(target, listener)\n break\n default:\n deliverers = []\n }\n\n if (!(deliverers instanceof Array)) deliverers = [deliverers]\n\n deliverers.forEach(deliverer => {\n let tracker = new StandAloneTracker(deliverer, handlers, {\n listener,\n deliverer,\n context: context || deliverer\n })\n\n this.trackers.push(tracker)\n tracker.on()\n })\n }\n\n off(target, handlers) {\n var idxs = []\n\n for (let i = 0; i < this.trackers.length; i++) {\n let tracker = this.trackers[i]\n\n if (target === tracker.target && (!handlers || handlers === tracker.handlers)) idxs.push(i)\n }\n\n idxs.reverse().forEach(idx => this.trackers.splice(idx, 1)[0].off())\n }\n\n all() {\n return this.trackers.map(tracker => {\n return tracker\n })\n }\n\n dispose() {\n this.trackers.forEach(tracker => tracker.dispose())\n this.trackers = []\n this.selector = null\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Engine", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _eventEngine.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "UAEventHandler", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _uaEventHandler.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _eventEngine = _interopRequireDefault(require("./event-engine.js"));
|
|
19
|
+
var _uaEventHandler = _interopRequireDefault(require("./ua-event-handler.js"));
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_eventEngine","_interopRequireDefault","require","_uaEventHandler","e","__esModule","default"],"sources":["../../src/event/index.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport { default as Engine } from './event-engine.js'\nexport { default as UAEventHandler } from './ua-event-handler.js'\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAiE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|