@hatiolab/things-scene 9.0.0-beta.34 → 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
- package/things-scene.d.ts +1 -0
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _lit = require("lit");
|
|
8
|
+
var _index = require("../layout/index.js");
|
|
9
|
+
var _component = _interopRequireDefault(require("./component.js"));
|
|
10
|
+
var _containerAbstract = _interopRequireDefault(require("./container-abstract.js"));
|
|
11
|
+
var _htmlElement = _interopRequireDefault(require("./mixins/html-element.js"));
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
15
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /*
|
|
16
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
17
|
+
*/
|
|
18
|
+
const SCALE_DEFAULT = {
|
|
19
|
+
x: 1,
|
|
20
|
+
y: 1
|
|
21
|
+
};
|
|
22
|
+
const DEFAULT_STYLE = {
|
|
23
|
+
boxSizing: 'border-box',
|
|
24
|
+
margin: '0px',
|
|
25
|
+
position: 'absolute',
|
|
26
|
+
outline: 'none'
|
|
27
|
+
};
|
|
28
|
+
const NATURE = {
|
|
29
|
+
mutable: false,
|
|
30
|
+
resizable: true,
|
|
31
|
+
rotatable: true,
|
|
32
|
+
properties: [{
|
|
33
|
+
type: 'layout',
|
|
34
|
+
label: 'layout',
|
|
35
|
+
name: 'layoutOption'
|
|
36
|
+
}, {
|
|
37
|
+
type: 'checkbox',
|
|
38
|
+
label: 'closable',
|
|
39
|
+
name: 'closable'
|
|
40
|
+
}, {
|
|
41
|
+
type: 'checkbox',
|
|
42
|
+
label: 'draggable',
|
|
43
|
+
name: 'draggable'
|
|
44
|
+
}, {
|
|
45
|
+
type: 'checkbox',
|
|
46
|
+
label: 'minimizable',
|
|
47
|
+
name: 'minimizable'
|
|
48
|
+
}, {
|
|
49
|
+
type: 'checkbox',
|
|
50
|
+
label: 'minimized',
|
|
51
|
+
name: 'minimized'
|
|
52
|
+
}],
|
|
53
|
+
help: 'scene/component/container'
|
|
54
|
+
};
|
|
55
|
+
class Container extends (0, _htmlElement.default)(_containerAbstract.default) {
|
|
56
|
+
constructor(...args) {
|
|
57
|
+
super(...args);
|
|
58
|
+
_defineProperty(this, "startDragging", e => {
|
|
59
|
+
if (!this.state.draggable) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
e.preventDefault();
|
|
63
|
+
e.stopPropagation();
|
|
64
|
+
let startX = e.clientX;
|
|
65
|
+
let startY = e.clientY;
|
|
66
|
+
const {
|
|
67
|
+
left,
|
|
68
|
+
top
|
|
69
|
+
} = this.bounds;
|
|
70
|
+
const transform = this.rootModel.overlay.style.transform;
|
|
71
|
+
const scaleMatch = transform.match(/scale\(([^,]+),\s*([^)]+)\)/);
|
|
72
|
+
const sx = scaleMatch ? parseFloat(scaleMatch[1]) : 1;
|
|
73
|
+
const sy = scaleMatch ? parseFloat(scaleMatch[2]) : sx;
|
|
74
|
+
const onMouseMove = e => {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
e.stopPropagation();
|
|
77
|
+
const dx = (e.clientX - startX) / sx;
|
|
78
|
+
const dy = (e.clientY - startY) / sy;
|
|
79
|
+
this.setState({
|
|
80
|
+
left: left + dx,
|
|
81
|
+
top: top + dy
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
const onMouseUp = e => {
|
|
85
|
+
e.preventDefault();
|
|
86
|
+
e.stopPropagation();
|
|
87
|
+
document.removeEventListener('mousemove', onMouseMove, true);
|
|
88
|
+
document.removeEventListener('mouseup', onMouseUp, true);
|
|
89
|
+
};
|
|
90
|
+
document.addEventListener('mousemove', onMouseMove, true);
|
|
91
|
+
document.addEventListener('mouseup', onMouseUp, true);
|
|
92
|
+
});
|
|
93
|
+
_defineProperty(this, "toggleMinimizable", () => {
|
|
94
|
+
const {
|
|
95
|
+
minimized
|
|
96
|
+
} = this.state;
|
|
97
|
+
this.setState('minimized', !minimized);
|
|
98
|
+
});
|
|
99
|
+
_defineProperty(this, "closeContainer", () => {
|
|
100
|
+
this.setState('hidden', true);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
get tagName() {
|
|
104
|
+
return 'div';
|
|
105
|
+
}
|
|
106
|
+
get nature() {
|
|
107
|
+
return NATURE;
|
|
108
|
+
}
|
|
109
|
+
setElementProperties(element) {}
|
|
110
|
+
get layout() {
|
|
111
|
+
return _index.Layout.get(this.get('layout')) || _index.HTMLAbsoluteLayout;
|
|
112
|
+
}
|
|
113
|
+
reposition() {
|
|
114
|
+
if (!this.element) return;
|
|
115
|
+
var component = this;
|
|
116
|
+
var {
|
|
117
|
+
id,
|
|
118
|
+
class: className,
|
|
119
|
+
scale = SCALE_DEFAULT
|
|
120
|
+
} = component.state;
|
|
121
|
+
var {
|
|
122
|
+
rotation = 0,
|
|
123
|
+
hidden
|
|
124
|
+
} = component;
|
|
125
|
+
var {
|
|
126
|
+
left,
|
|
127
|
+
top,
|
|
128
|
+
width,
|
|
129
|
+
height
|
|
130
|
+
} = component.bounds;
|
|
131
|
+
var cx = width / 2;
|
|
132
|
+
var cy = height / 2;
|
|
133
|
+
|
|
134
|
+
// element의 기본 속성을 설정한다.
|
|
135
|
+
var element = component.element;
|
|
136
|
+
element.hidden = hidden;
|
|
137
|
+
if (id) element.id = id;
|
|
138
|
+
if (className) element.className = className;
|
|
139
|
+
|
|
140
|
+
// element의 기본 style을 설정한다.
|
|
141
|
+
Object.assign(element.style, DEFAULT_STYLE, {
|
|
142
|
+
left: left + 'px',
|
|
143
|
+
top: top + 'px',
|
|
144
|
+
width: '0px',
|
|
145
|
+
height: '0px',
|
|
146
|
+
backgroundColor: 'transparent'
|
|
147
|
+
});
|
|
148
|
+
var delta = component.delta();
|
|
149
|
+
var sx = (scale && scale.x || 1) * delta.sx;
|
|
150
|
+
var sy = (scale && scale.y || 1) * delta.sy;
|
|
151
|
+
var theta = (rotation || 0) + delta.theta;
|
|
152
|
+
var tx = delta.tx || 0;
|
|
153
|
+
var ty = delta.ty || 0;
|
|
154
|
+
|
|
155
|
+
/* CONFIRM-ME `transform: perspective(1px)` 스타일 설정은 scaling된 dom element를 좀 더 선명하게 보이도록 해준다. (Chrome 브라우저에서) */
|
|
156
|
+
element.style.transform = `translate(${tx + cx}px, ${ty + cy}px) rotate(${theta}rad) translate(${-cx}px, ${-cy}px) scale(${sx}, ${sy}) perspective(1px)`;
|
|
157
|
+
}
|
|
158
|
+
set path(path) {
|
|
159
|
+
const {
|
|
160
|
+
minimized
|
|
161
|
+
} = this.state;
|
|
162
|
+
var left_top = path[0];
|
|
163
|
+
var right_bottom = path[2];
|
|
164
|
+
if (minimized) {
|
|
165
|
+
this.set({
|
|
166
|
+
left: left_top.x,
|
|
167
|
+
top: left_top.y,
|
|
168
|
+
width: right_bottom.x - left_top.x
|
|
169
|
+
});
|
|
170
|
+
} else {
|
|
171
|
+
this.set({
|
|
172
|
+
left: left_top.x,
|
|
173
|
+
top: left_top.y,
|
|
174
|
+
width: right_bottom.x - left_top.x,
|
|
175
|
+
height: right_bottom.y - left_top.y
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
get path() {
|
|
180
|
+
var {
|
|
181
|
+
left = 0,
|
|
182
|
+
top = 0,
|
|
183
|
+
width = 0,
|
|
184
|
+
height = 0
|
|
185
|
+
} = this.state;
|
|
186
|
+
return [{
|
|
187
|
+
x: left,
|
|
188
|
+
y: top
|
|
189
|
+
}, {
|
|
190
|
+
x: left + width,
|
|
191
|
+
y: top
|
|
192
|
+
}, {
|
|
193
|
+
x: left + width,
|
|
194
|
+
y: top + height
|
|
195
|
+
}, {
|
|
196
|
+
x: left,
|
|
197
|
+
y: top + height
|
|
198
|
+
}];
|
|
199
|
+
}
|
|
200
|
+
get bounds() {
|
|
201
|
+
const {
|
|
202
|
+
left = 0,
|
|
203
|
+
top = 0,
|
|
204
|
+
width = 0,
|
|
205
|
+
height = 0
|
|
206
|
+
} = this.state;
|
|
207
|
+
return {
|
|
208
|
+
left,
|
|
209
|
+
top,
|
|
210
|
+
width,
|
|
211
|
+
height
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
set bounds(bounds) {
|
|
215
|
+
const {
|
|
216
|
+
minimized
|
|
217
|
+
} = this.state;
|
|
218
|
+
const {
|
|
219
|
+
left = 0,
|
|
220
|
+
top = 0,
|
|
221
|
+
width = 0,
|
|
222
|
+
height = 0
|
|
223
|
+
} = bounds;
|
|
224
|
+
if (minimized) {
|
|
225
|
+
this.set({
|
|
226
|
+
left,
|
|
227
|
+
top,
|
|
228
|
+
width
|
|
229
|
+
});
|
|
230
|
+
} else {
|
|
231
|
+
this.set({
|
|
232
|
+
left,
|
|
233
|
+
top,
|
|
234
|
+
width,
|
|
235
|
+
height
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
onchange(after, before) {
|
|
240
|
+
super.onchange(after, before);
|
|
241
|
+
if ('draggable' in after || 'minimizable' in after || 'closable' in after || 'minimized' in after || 'width' in after || 'height' in after) {
|
|
242
|
+
this.onchangeButtons();
|
|
243
|
+
}
|
|
244
|
+
if ('minimized' in after) {
|
|
245
|
+
this.onchangeMinimized();
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
createElement() {
|
|
249
|
+
super.createElement();
|
|
250
|
+
this.onchangeButtons();
|
|
251
|
+
this.onchangeMinimized();
|
|
252
|
+
}
|
|
253
|
+
onchangeButtons() {
|
|
254
|
+
if (!this.element) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
console.log('element', this.getState('id'));
|
|
258
|
+
const {
|
|
259
|
+
draggable,
|
|
260
|
+
minimizable,
|
|
261
|
+
closable,
|
|
262
|
+
minimized
|
|
263
|
+
} = this.state;
|
|
264
|
+
const {
|
|
265
|
+
width
|
|
266
|
+
} = this.bounds;
|
|
267
|
+
this.element.style.setProperty('--container-width', `${width}px`);
|
|
268
|
+
(0, _lit.render)((0, _lit.html)`
|
|
269
|
+
<style>
|
|
270
|
+
.buttons {
|
|
271
|
+
position: absolute;
|
|
272
|
+
display: flex;
|
|
273
|
+
flex-direction: row;
|
|
274
|
+
top: 0;
|
|
275
|
+
left: 0;
|
|
276
|
+
width: var(--container-width);
|
|
277
|
+
padding: 2px;
|
|
278
|
+
margin: 0;
|
|
279
|
+
gap: 2px;
|
|
280
|
+
box-sizing: border-box;
|
|
281
|
+
background-color: transparent;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
span {
|
|
285
|
+
flex: 1;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.buttons button {
|
|
289
|
+
background: transparent;
|
|
290
|
+
border: none;
|
|
291
|
+
cursor: pointer;
|
|
292
|
+
font-family: Material Symbols Outlined;
|
|
293
|
+
font-size: 16px;
|
|
294
|
+
border-radius: 4px;
|
|
295
|
+
color: white;
|
|
296
|
+
background-color: black;
|
|
297
|
+
opacity: 0.3;
|
|
298
|
+
width: 20px;
|
|
299
|
+
height: 20px;
|
|
300
|
+
z-index: 1;
|
|
301
|
+
padding: 0;
|
|
302
|
+
margin: 0;
|
|
303
|
+
border: 0px;
|
|
304
|
+
text-align: center;
|
|
305
|
+
}
|
|
306
|
+
</style>
|
|
307
|
+
|
|
308
|
+
<div class="buttons" @mousedown=${this.startDragging}>
|
|
309
|
+
<span></span>
|
|
310
|
+
${draggable ? (0, _lit.html)`<button class="draggable">drag_pan</button>` : _lit.nothing}
|
|
311
|
+
${minimizable ? (0, _lit.html)`<button class="minimizable" @click=${this.toggleMinimizable}>
|
|
312
|
+
${minimized ? 'crop_square' : 'minimize'}
|
|
313
|
+
</button>` : _lit.nothing}
|
|
314
|
+
${closable ? (0, _lit.html)`<button class="closable" @click=${this.closeContainer}>close</button>` : _lit.nothing}
|
|
315
|
+
</div>
|
|
316
|
+
`, this.element);
|
|
317
|
+
}
|
|
318
|
+
onchangeMinimized() {
|
|
319
|
+
const {
|
|
320
|
+
minimized
|
|
321
|
+
} = this.state;
|
|
322
|
+
if (minimized) {
|
|
323
|
+
this.setState('height', 24);
|
|
324
|
+
} else {
|
|
325
|
+
this.setState('height', this.get('height'));
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
exports.default = Container;
|
|
330
|
+
_component.default.register('container', Container);
|
|
331
|
+
//# sourceMappingURL=container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container.js","names":["_lit","require","_index","_component","_interopRequireDefault","_containerAbstract","_htmlElement","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SCALE_DEFAULT","x","y","DEFAULT_STYLE","boxSizing","margin","position","outline","NATURE","mutable","resizable","rotatable","properties","type","label","name","help","Container","MixinHTMLElement","ContainerAbstract","constructor","args","state","draggable","preventDefault","stopPropagation","startX","clientX","startY","clientY","left","top","bounds","transform","rootModel","overlay","style","scaleMatch","match","sx","parseFloat","sy","onMouseMove","dx","dy","setState","onMouseUp","document","removeEventListener","addEventListener","minimized","tagName","nature","setElementProperties","element","layout","Layout","get","HTMLAbsoluteLayout","reposition","component","id","class","className","scale","rotation","hidden","width","height","cx","cy","assign","backgroundColor","delta","theta","tx","ty","path","left_top","right_bottom","set","onchange","after","before","onchangeButtons","onchangeMinimized","createElement","console","log","getState","minimizable","closable","setProperty","render","html","startDragging","nothing","toggleMinimizable","closeContainer","exports","Component","register"],"sources":["../../src/components/container.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { html, nothing, render } from 'lit'\n\nimport { HTMLAbsoluteLayout, Layout } from '../layout/index.js'\n\nimport Component from './component.js'\nimport ContainerAbstract from './container-abstract.js'\nimport MixinHTMLElement from './mixins/html-element.js'\n\nconst SCALE_DEFAULT = { x: 1, y: 1 }\nconst DEFAULT_STYLE = {\n boxSizing: 'border-box',\n margin: '0px',\n position: 'absolute',\n outline: 'none'\n}\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'layout',\n label: 'layout',\n name: 'layoutOption'\n },\n {\n type: 'checkbox',\n label: 'closable',\n name: 'closable'\n },\n {\n type: 'checkbox',\n label: 'draggable',\n name: 'draggable'\n },\n {\n type: 'checkbox',\n label: 'minimizable',\n name: 'minimizable'\n },\n {\n type: 'checkbox',\n label: 'minimized',\n name: 'minimized'\n }\n ],\n help: 'scene/component/container'\n}\n\nexport default class Container extends MixinHTMLElement(ContainerAbstract) {\n get tagName() {\n return 'div'\n }\n\n get nature() {\n return NATURE\n }\n\n setElementProperties(element) {}\n\n get layout() {\n return Layout.get(this.get('layout')) || HTMLAbsoluteLayout\n }\n\n reposition() {\n if (!this.element) return\n\n var component = this\n\n var { id, class: className, scale = SCALE_DEFAULT } = component.state\n\n var { rotation = 0, hidden } = component\n\n var { left, top, width, height } = component.bounds\n var cx = width / 2\n var cy = height / 2\n\n // element의 기본 속성을 설정한다.\n var element = component.element\n\n element.hidden = hidden\n if (id) element.id = id\n if (className) element.className = className\n\n // element의 기본 style을 설정한다.\n Object.assign(element.style, DEFAULT_STYLE, {\n left: left + 'px',\n top: top + 'px',\n width: '0px',\n height: '0px',\n backgroundColor: 'transparent'\n })\n\n var delta = component.delta()\n var sx = ((scale && scale.x) || 1) * delta.sx\n var sy = ((scale && scale.y) || 1) * delta.sy\n var theta = (rotation || 0) + delta.theta\n var tx = delta.tx || 0\n var ty = delta.ty || 0\n\n /* CONFIRM-ME `transform: perspective(1px)` 스타일 설정은 scaling된 dom element를 좀 더 선명하게 보이도록 해준다. (Chrome 브라우저에서) */\n element.style.transform = `translate(${tx + cx}px, ${\n ty + cy\n }px) rotate(${theta}rad) translate(${-cx}px, ${-cy}px) scale(${sx}, ${sy}) perspective(1px)`\n }\n\n set path(path) {\n const { minimized } = this.state\n\n var left_top = path[0]\n var right_bottom = path[2]\n\n if (minimized) {\n this.set({\n left: left_top.x,\n top: left_top.y,\n width: right_bottom.x - left_top.x\n })\n } else {\n this.set({\n left: left_top.x,\n top: left_top.y,\n width: right_bottom.x - left_top.x,\n height: right_bottom.y - left_top.y\n })\n }\n }\n\n get path() {\n var { left = 0, top = 0, width = 0, height = 0 } = this.state\n\n return [\n {\n x: left,\n y: top\n },\n {\n x: left + width,\n y: top\n },\n {\n x: left + width,\n y: top + height\n },\n {\n x: left,\n y: top + height\n }\n ]\n }\n\n get bounds() {\n const { left = 0, top = 0, width = 0, height = 0 } = this.state\n\n return {\n left,\n top,\n width,\n height\n }\n }\n\n set bounds(bounds) {\n const { minimized } = this.state\n const { left = 0, top = 0, width = 0, height = 0 } = bounds\n\n if (minimized) {\n this.set({\n left,\n top,\n width\n })\n } else {\n this.set({\n left,\n top,\n width,\n height\n })\n }\n }\n\n onchange(after, before) {\n super.onchange(after, before)\n\n if (\n 'draggable' in after ||\n 'minimizable' in after ||\n 'closable' in after ||\n 'minimized' in after ||\n 'width' in after ||\n 'height' in after\n ) {\n this.onchangeButtons()\n }\n\n if ('minimized' in after) {\n this.onchangeMinimized()\n }\n }\n\n createElement() {\n super.createElement()\n\n this.onchangeButtons()\n this.onchangeMinimized()\n }\n\n onchangeButtons() {\n if (!this.element) {\n return\n }\n\n console.log('element', this.getState('id'))\n\n const { draggable, minimizable, closable, minimized } = this.state\n const { width } = this.bounds\n\n this.element.style.setProperty('--container-width', `${width}px`)\n\n render(\n html`\n <style>\n .buttons {\n position: absolute;\n display: flex;\n flex-direction: row;\n top: 0;\n left: 0;\n width: var(--container-width);\n padding: 2px;\n margin: 0;\n gap: 2px;\n box-sizing: border-box;\n background-color: transparent;\n }\n\n span {\n flex: 1;\n }\n\n .buttons button {\n background: transparent;\n border: none;\n cursor: pointer;\n font-family: Material Symbols Outlined;\n font-size: 16px;\n border-radius: 4px;\n color: white;\n background-color: black;\n opacity: 0.3;\n width: 20px;\n height: 20px;\n z-index: 1;\n padding: 0;\n margin: 0;\n border: 0px;\n text-align: center;\n }\n </style>\n\n <div class=\"buttons\" @mousedown=${this.startDragging}>\n <span></span>\n ${draggable ? html`<button class=\"draggable\">drag_pan</button>` : nothing}\n ${minimizable\n ? html`<button class=\"minimizable\" @click=${this.toggleMinimizable}>\n ${minimized ? 'crop_square' : 'minimize'}\n </button>`\n : nothing}\n ${closable ? html`<button class=\"closable\" @click=${this.closeContainer}>close</button>` : nothing}\n </div>\n `,\n this.element\n )\n }\n\n startDragging = e => {\n if (!this.state.draggable) {\n return\n }\n\n e.preventDefault()\n e.stopPropagation()\n\n let startX = e.clientX\n let startY = e.clientY\n\n const { left, top } = this.bounds\n\n const transform = this.rootModel.overlay.style.transform\n const scaleMatch = transform.match(/scale\\(([^,]+),\\s*([^)]+)\\)/)\n\n const sx = scaleMatch ? parseFloat(scaleMatch[1]) : 1\n const sy = scaleMatch ? parseFloat(scaleMatch[2]) : sx\n\n const onMouseMove = e => {\n e.preventDefault()\n e.stopPropagation()\n\n const dx = (e.clientX - startX) / sx\n const dy = (e.clientY - startY) / sy\n\n this.setState({\n left: left + dx,\n top: top + dy\n })\n }\n\n const onMouseUp = e => {\n e.preventDefault()\n e.stopPropagation()\n\n document.removeEventListener('mousemove', onMouseMove, true)\n document.removeEventListener('mouseup', onMouseUp, true)\n }\n\n document.addEventListener('mousemove', onMouseMove, true)\n document.addEventListener('mouseup', onMouseUp, true)\n }\n\n toggleMinimizable = () => {\n const { minimized } = this.state\n this.setState('minimized', !minimized)\n }\n\n onchangeMinimized() {\n const { minimized } = this.state\n\n if (minimized) {\n this.setState('height', 24)\n } else {\n this.setState('height', this.get('height'))\n }\n }\n\n closeContainer = () => {\n this.setState('hidden', true)\n }\n}\n\nComponent.register('container', Container)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _objAccessor = _interopRequireDefault(require("../../core/obj-accessor.js"));
|
|
8
|
+
var _evaluator = _interopRequireDefault(require("./evaluator.js"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/*
|
|
11
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
function propType(property) {
|
|
15
|
+
switch (property) {
|
|
16
|
+
// case 'text':
|
|
17
|
+
// case 'fontColor':
|
|
18
|
+
case 'ref':
|
|
19
|
+
case 'fillStyle':
|
|
20
|
+
case 'strokeStyle':
|
|
21
|
+
return 'string';
|
|
22
|
+
// case 'value':
|
|
23
|
+
// case 'rotation':
|
|
24
|
+
// return 'number';
|
|
25
|
+
default:
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
class DataMapping {
|
|
30
|
+
constructor(model, owner) {
|
|
31
|
+
this.owner = owner;
|
|
32
|
+
this.model = model;
|
|
33
|
+
}
|
|
34
|
+
dispose() {
|
|
35
|
+
delete this._model;
|
|
36
|
+
delete this.owner;
|
|
37
|
+
delete this.evaluator;
|
|
38
|
+
delete this.accessor;
|
|
39
|
+
delete this.source;
|
|
40
|
+
}
|
|
41
|
+
get model() {
|
|
42
|
+
return this._model;
|
|
43
|
+
}
|
|
44
|
+
set model(model) {
|
|
45
|
+
var {
|
|
46
|
+
target,
|
|
47
|
+
property,
|
|
48
|
+
rule,
|
|
49
|
+
param,
|
|
50
|
+
accessor
|
|
51
|
+
} = model;
|
|
52
|
+
this._model = model;
|
|
53
|
+
this.evaluator = (0, _evaluator.default)(this, this.owner, rule, param, propType(property));
|
|
54
|
+
this.accessor = (0, _objAccessor.default)(accessor);
|
|
55
|
+
const matches = target.match(/\[(.*?)\]/);
|
|
56
|
+
if (matches) {
|
|
57
|
+
var [propAccessor, partAccessor] = matches[1].split(':');
|
|
58
|
+
this.propAccessor = (0, _objAccessor.default)(propAccessor);
|
|
59
|
+
this.partAccessor = (0, _objAccessor.default)(partAccessor);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
get target() {
|
|
63
|
+
return this.model.target;
|
|
64
|
+
}
|
|
65
|
+
get property() {
|
|
66
|
+
return this.model.property;
|
|
67
|
+
}
|
|
68
|
+
get source() {
|
|
69
|
+
return this.model.source;
|
|
70
|
+
}
|
|
71
|
+
get param() {
|
|
72
|
+
return this.model.param;
|
|
73
|
+
}
|
|
74
|
+
get ndnsp() {
|
|
75
|
+
return !!this.model.ndnsp; /* no data no spreading */
|
|
76
|
+
}
|
|
77
|
+
get partial() {
|
|
78
|
+
return !!this.model.partial; /* partial spreading */
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.default = DataMapping;
|
|
82
|
+
//# sourceMappingURL=data-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-mapping.js","names":["_objAccessor","_interopRequireDefault","require","_evaluator","e","__esModule","default","propType","property","DataMapping","constructor","model","owner","dispose","_model","evaluator","accessor","source","target","rule","param","buildEvaluator","buildAccessor","matches","match","propAccessor","partAccessor","split","ndnsp","partial","exports"],"sources":["../../../src/components/data/data-mapping.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport buildAccessor from '../../core/obj-accessor.js'\nimport buildEvaluator from './evaluator.js'\n\nfunction propType(property) {\n switch (property) {\n // case 'text':\n // case 'fontColor':\n case 'ref':\n case 'fillStyle':\n case 'strokeStyle':\n return 'string'\n // case 'value':\n // case 'rotation':\n // return 'number';\n default:\n return\n }\n}\n\nexport default class DataMapping {\n constructor(model, owner) {\n this.owner = owner\n this.model = model\n }\n\n dispose() {\n delete this._model\n delete this.owner\n delete this.evaluator\n delete this.accessor\n delete this.source\n }\n\n get model() {\n return this._model\n }\n\n set model(model) {\n var { target, property, rule, param, accessor } = model\n\n this._model = model\n\n this.evaluator = buildEvaluator(this, this.owner, rule, param, propType(property))\n this.accessor = buildAccessor(accessor)\n\n const matches = target.match(/\\[(.*?)\\]/)\n if (matches) {\n var [propAccessor, partAccessor] = matches[1].split(':')\n\n this.propAccessor = buildAccessor(propAccessor)\n this.partAccessor = buildAccessor(partAccessor)\n }\n }\n\n get target() {\n return this.model.target\n }\n\n get property() {\n return this.model.property\n }\n\n get source() {\n return this.model.source\n }\n\n get param() {\n return this.model.param\n }\n\n get ndnsp() {\n return !!this.model.ndnsp /* no data no spreading */\n }\n\n get partial() {\n return !!this.model.partial /* partial spreading */\n }\n}\n"],"mappings":";;;;;;AAIA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA2C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAL3C;AACA;AACA;;AAKA,SAASG,QAAQA,CAACC,QAAQ,EAAE;EAC1B,QAAQA,QAAQ;IACd;IACA;IACA,KAAK,KAAK;IACV,KAAK,WAAW;IAChB,KAAK,aAAa;MAChB,OAAO,QAAQ;IACjB;IACA;IACA;IACA;MACE;EACJ;AACF;AAEe,MAAMC,WAAW,CAAC;EAC/BC,WAAWA,CAACC,KAAK,EAAEC,KAAK,EAAE;IACxB,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACD,KAAK,GAAGA,KAAK;EACpB;EAEAE,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACC,MAAM;IAClB,OAAO,IAAI,CAACF,KAAK;IACjB,OAAO,IAAI,CAACG,SAAS;IACrB,OAAO,IAAI,CAACC,QAAQ;IACpB,OAAO,IAAI,CAACC,MAAM;EACpB;EAEA,IAAIN,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACG,MAAM;EACpB;EAEA,IAAIH,KAAKA,CAACA,KAAK,EAAE;IACf,IAAI;MAAEO,MAAM;MAAEV,QAAQ;MAAEW,IAAI;MAAEC,KAAK;MAAEJ;IAAS,CAAC,GAAGL,KAAK;IAEvD,IAAI,CAACG,MAAM,GAAGH,KAAK;IAEnB,IAAI,CAACI,SAAS,GAAG,IAAAM,kBAAc,EAAC,IAAI,EAAE,IAAI,CAACT,KAAK,EAAEO,IAAI,EAAEC,KAAK,EAAEb,QAAQ,CAACC,QAAQ,CAAC,CAAC;IAClF,IAAI,CAACQ,QAAQ,GAAG,IAAAM,oBAAa,EAACN,QAAQ,CAAC;IAEvC,MAAMO,OAAO,GAAGL,MAAM,CAACM,KAAK,CAAC,WAAW,CAAC;IACzC,IAAID,OAAO,EAAE;MACX,IAAI,CAACE,YAAY,EAAEC,YAAY,CAAC,GAAGH,OAAO,CAAC,CAAC,CAAC,CAACI,KAAK,CAAC,GAAG,CAAC;MAExD,IAAI,CAACF,YAAY,GAAG,IAAAH,oBAAa,EAACG,YAAY,CAAC;MAC/C,IAAI,CAACC,YAAY,GAAG,IAAAJ,oBAAa,EAACI,YAAY,CAAC;IACjD;EACF;EAEA,IAAIR,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACP,KAAK,CAACO,MAAM;EAC1B;EAEA,IAAIV,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACG,KAAK,CAACH,QAAQ;EAC5B;EAEA,IAAIS,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACN,KAAK,CAACM,MAAM;EAC1B;EAEA,IAAIG,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACT,KAAK,CAACS,KAAK;EACzB;EAEA,IAAIQ,KAAKA,CAAA,EAAG;IACV,OAAO,CAAC,CAAC,IAAI,CAACjB,KAAK,CAACiB,KAAK,EAAC;EAC5B;EAEA,IAAIC,OAAOA,CAAA,EAAG;IACZ,OAAO,CAAC,CAAC,IAAI,CAAClB,KAAK,CAACkB,OAAO,EAAC;EAC9B;AACF;AAACC,OAAA,CAAAxB,OAAA,GAAAG,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildMappings = buildMappings;
|
|
7
|
+
exports.disposeMappings = disposeMappings;
|
|
8
|
+
exports.executeMappings = executeMappings;
|
|
9
|
+
exports.onchangeData = onchangeData;
|
|
10
|
+
exports.onchangeMappings = onchangeMappings;
|
|
11
|
+
var _logger = require("../../core/logger.js");
|
|
12
|
+
var _dataMapping = _interopRequireDefault(require("./data-mapping.js"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
/*
|
|
15
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
function setTargetsProperty(targets, property, value, partial) {
|
|
19
|
+
if (partial) {
|
|
20
|
+
targets.forEach(component => component[property] = {
|
|
21
|
+
...component[property],
|
|
22
|
+
...value
|
|
23
|
+
});
|
|
24
|
+
} else {
|
|
25
|
+
targets.forEach(component => component[property] = value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function executeMappings(force = false) {
|
|
29
|
+
if (!force && this.data === undefined) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.mappings && this.mappings.forEach(mapping => {
|
|
33
|
+
try {
|
|
34
|
+
var {
|
|
35
|
+
source,
|
|
36
|
+
target,
|
|
37
|
+
property,
|
|
38
|
+
accessor,
|
|
39
|
+
propAccessor,
|
|
40
|
+
partAccessor,
|
|
41
|
+
ndnsp = false,
|
|
42
|
+
partial = false
|
|
43
|
+
} = mapping;
|
|
44
|
+
var data;
|
|
45
|
+
if (source && source != '(self)') {
|
|
46
|
+
if (source.startsWith('#')) {
|
|
47
|
+
source = source.substring(1);
|
|
48
|
+
}
|
|
49
|
+
data = this.root.findById(source)?.data || {};
|
|
50
|
+
} else {
|
|
51
|
+
data = this.data;
|
|
52
|
+
}
|
|
53
|
+
var accessive = accessor(data);
|
|
54
|
+
/*
|
|
55
|
+
accessive : accessor에 의해서 한정된 대상 데이터
|
|
56
|
+
accessive가 undefined 라면,
|
|
57
|
+
target 설정이 '()', '(key)', '[prop]' 형태인 경우에는 데이타 전달 타겟을 설정할 수 없으므로 더 이상 진행할 필요가 없다.
|
|
58
|
+
target 설정이 '#id', '.class' 인 경우에는 undefined 값도 스프레드(전파) 되어야 한다.
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
target = target.trim();
|
|
62
|
+
if (target == '(root)' || target == '(key)') {
|
|
63
|
+
if (accessive == undefined) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// TODO (root) 제거.
|
|
67
|
+
let targets = Object.keys(accessive || {}).map(key => this.root.findOrCreate(key)).filter(Boolean).flat();
|
|
68
|
+
if (targets.length > 0) {
|
|
69
|
+
targets.forEach(component => {
|
|
70
|
+
let value = mapping.evaluator(accessive[component.get('id')], [component]);
|
|
71
|
+
if (property && property !== '(action)' && (!ndnsp || value || value === 0 || value === false)) {
|
|
72
|
+
if (partial) {
|
|
73
|
+
component[property] = {
|
|
74
|
+
...component[property],
|
|
75
|
+
...value
|
|
76
|
+
};
|
|
77
|
+
} else {
|
|
78
|
+
component[property] = value;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
} else if (target.startsWith('[')) {
|
|
84
|
+
if (accessive == undefined) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// const matches = target.match(/\[(.*?)\]/)
|
|
88
|
+
|
|
89
|
+
// if (!matches) {
|
|
90
|
+
// throw String("mapping target should end with ']' to designate property-id.(" + target + ')')
|
|
91
|
+
// }
|
|
92
|
+
|
|
93
|
+
// var id_prop = matches[1].split(':')[0]
|
|
94
|
+
|
|
95
|
+
if (accessive instanceof Array) {
|
|
96
|
+
accessive.forEach(data => {
|
|
97
|
+
let id = propAccessor(data);
|
|
98
|
+
if (id) {
|
|
99
|
+
let components = this.root.findOrCreate(id);
|
|
100
|
+
if (components) {
|
|
101
|
+
let value = mapping.evaluator(partAccessor(data), components);
|
|
102
|
+
if (property && property !== '(action)' && (!ndnsp || value || value === 0 || value === false)) {
|
|
103
|
+
setTargetsProperty(components, property, value, partial);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
} else if (accessive instanceof Object) {
|
|
109
|
+
let id = propAccessor(accessive);
|
|
110
|
+
if (id) {
|
|
111
|
+
let components = this.root.findOrCreate(id);
|
|
112
|
+
if (components) {
|
|
113
|
+
let value = mapping.evaluator(partAccessor(accessive), components);
|
|
114
|
+
if (property && property !== '(action)' && (!ndnsp || value || value === 0 || value === false)) {
|
|
115
|
+
setTargetsProperty(components, property, value, partial);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
} else {
|
|
120
|
+
throw String('mapping data should be an object to target property-id.(' + accessive + ')');
|
|
121
|
+
}
|
|
122
|
+
} else {
|
|
123
|
+
let targets = this.root.findAll(target, this);
|
|
124
|
+
if (targets.length > 0) {
|
|
125
|
+
let value = mapping.evaluator(accessive, targets);
|
|
126
|
+
if (property && property !== '(action)' && (!ndnsp || value || value === 0 || value === false)) {
|
|
127
|
+
setTargetsProperty(targets, property, value, partial);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
} catch (e) {
|
|
132
|
+
(0, _logger.error)(e, this, mapping);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function onchangeData(after, before) {
|
|
137
|
+
if (this.state.persistent) {
|
|
138
|
+
this.app?.isViewMode && this.app?.dataStorage.save(this, after.data);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* excuteMappings forcely */
|
|
142
|
+
executeMappings.call(this, [true]);
|
|
143
|
+
}
|
|
144
|
+
function buildMappings() {
|
|
145
|
+
if (!this._model.mappings) {
|
|
146
|
+
this._mappings = [];
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (!this._model.mappings instanceof Array) {
|
|
150
|
+
(0, _logger.error)('Mappings model is invalid (should be a Array) ..', this._model.mappings);
|
|
151
|
+
this._mappings = [];
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
this._mappings = (this._model.mappings || []).filter(mapping => mapping.rule && mapping.target).map(mapping => {
|
|
155
|
+
return new _dataMapping.default(mapping, this);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function disposeMappings() {
|
|
159
|
+
this._mappings && this._mappings.forEach(mapping => mapping.dispose());
|
|
160
|
+
delete this._mappings;
|
|
161
|
+
}
|
|
162
|
+
function onchangeMappings(after, before) {
|
|
163
|
+
this.disposeMappings();
|
|
164
|
+
executeMappings.call(this);
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","names":["_logger","require","_dataMapping","_interopRequireDefault","e","__esModule","default","setTargetsProperty","targets","property","value","partial","forEach","component","executeMappings","force","data","undefined","mappings","mapping","source","target","accessor","propAccessor","partAccessor","ndnsp","startsWith","substring","root","findById","accessive","trim","Object","keys","map","key","findOrCreate","filter","Boolean","flat","length","evaluator","get","Array","id","components","String","findAll","error","onchangeData","after","before","state","persistent","app","isViewMode","dataStorage","save","call","buildMappings","_model","_mappings","rule","DataMapping","disposeMappings","dispose","onchangeMappings"],"sources":["../../../src/components/data/data.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { error } from '../../core/logger.js'\nimport DataMapping from './data-mapping.js'\n\nfunction setTargetsProperty(targets, property, value, partial) {\n if (partial) {\n targets.forEach(component => (component[property] = { ...component[property], ...value }))\n } else {\n targets.forEach(component => (component[property] = value))\n }\n}\n\nexport function executeMappings(force = false) {\n if (!force && this.data === undefined) {\n return\n }\n\n this.mappings &&\n this.mappings.forEach(mapping => {\n try {\n var { source, target, property, accessor, propAccessor, partAccessor, ndnsp = false, partial = false } = mapping\n\n var data\n\n if (source && source != '(self)') {\n if (source.startsWith('#')) {\n source = source.substring(1)\n }\n data = this.root.findById(source)?.data || {}\n } else {\n data = this.data\n }\n\n var accessive = accessor(data)\n /*\n accessive : accessor에 의해서 한정된 대상 데이터\n accessive가 undefined 라면,\n target 설정이 '()', '(key)', '[prop]' 형태인 경우에는 데이타 전달 타겟을 설정할 수 없으므로 더 이상 진행할 필요가 없다.\n target 설정이 '#id', '.class' 인 경우에는 undefined 값도 스프레드(전파) 되어야 한다.\n */\n\n target = target.trim()\n\n if (target == '(root)' || target == '(key)') {\n if (accessive == undefined) {\n return\n }\n // TODO (root) 제거.\n let targets = Object.keys(accessive || {})\n .map(key => this.root.findOrCreate(key))\n .filter(Boolean)\n .flat()\n\n if (targets.length > 0) {\n targets.forEach(component => {\n let value = mapping.evaluator(accessive[component.get('id')], [component])\n if (property && property !== '(action)' && (!ndnsp || value || value === 0 || value === false)) {\n if (partial) {\n component[property] = { ...component[property], ...value }\n } else {\n component[property] = value\n }\n }\n })\n }\n } else if (target.startsWith('[')) {\n if (accessive == undefined) {\n return\n }\n // const matches = target.match(/\\[(.*?)\\]/)\n\n // if (!matches) {\n // throw String(\"mapping target should end with ']' to designate property-id.(\" + target + ')')\n // }\n\n // var id_prop = matches[1].split(':')[0]\n\n if (accessive instanceof Array) {\n accessive.forEach(data => {\n let id = propAccessor(data)\n if (id) {\n let components = this.root.findOrCreate(id)\n\n if (components) {\n let value = mapping.evaluator(partAccessor(data), components)\n if (property && property !== '(action)' && (!ndnsp || value || value === 0 || value === false)) {\n setTargetsProperty(components, property, value, partial)\n }\n }\n }\n })\n } else if (accessive instanceof Object) {\n let id = propAccessor(accessive)\n if (id) {\n let components = this.root.findOrCreate(id)\n\n if (components) {\n let value = mapping.evaluator(partAccessor(accessive), components)\n if (property && property !== '(action)' && (!ndnsp || value || value === 0 || value === false)) {\n setTargetsProperty(components, property, value, partial)\n }\n }\n }\n } else {\n throw String('mapping data should be an object to target property-id.(' + accessive + ')')\n }\n } else {\n let targets = this.root.findAll(target, this)\n\n if (targets.length > 0) {\n let value = mapping.evaluator(accessive, targets)\n if (property && property !== '(action)' && (!ndnsp || value || value === 0 || value === false)) {\n setTargetsProperty(targets, property, value, partial)\n }\n }\n }\n } catch (e) {\n error(e, this, mapping)\n }\n })\n}\n\nexport function onchangeData(after, before) {\n if (this.state.persistent) {\n this.app?.isViewMode && this.app?.dataStorage.save(this, after.data)\n }\n\n /* excuteMappings forcely */\n executeMappings.call(this, [true])\n}\n\nexport function buildMappings() {\n if (!this._model.mappings) {\n this._mappings = []\n return\n }\n\n if (!this._model.mappings instanceof Array) {\n error('Mappings model is invalid (should be a Array) ..', this._model.mappings)\n this._mappings = []\n return\n }\n\n this._mappings = (this._model.mappings || [])\n .filter(mapping => mapping.rule && mapping.target)\n .map(mapping => {\n return new DataMapping(mapping, this)\n })\n}\n\nexport function disposeMappings() {\n this._mappings && this._mappings.forEach(mapping => mapping.dispose())\n delete this._mappings\n}\n\nexport function onchangeMappings(after, before) {\n this.disposeMappings()\n\n executeMappings.call(this)\n}\n"],"mappings":"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","ignoreList":[]}
|