@hatiolab/things-scene 9.0.0-beta.36 → 9.0.0-beta.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/things-scene-min.js +11 -11
- package/things-scene-min.js.map +1 -1
- package/things-scene.mjs +11 -11
- package/things-scene.mjs.map +1 -1
- package/.cursorignore +0 -62
- package/.prettierrc +0 -21
- package/assets/icon-audio.png +0 -0
- package/assets/icon-gif-viewer.png +0 -0
- package/assets/images/spinner.png +0 -0
- package/babel.config.js +0 -23
- package/db.sqlite +0 -0
- package/dist/animation/animate.js +0 -63
- package/dist/animation/animate.js.map +0 -1
- package/dist/animation/animations/animation.js +0 -122
- package/dist/animation/animations/animation.js.map +0 -1
- package/dist/animation/animations/fade.js +0 -28
- package/dist/animation/animations/fade.js.map +0 -1
- package/dist/animation/animations/heartbeat.js +0 -28
- package/dist/animation/animations/heartbeat.js.map +0 -1
- package/dist/animation/animations/moving.js +0 -24
- package/dist/animation/animations/moving.js.map +0 -1
- package/dist/animation/animations/outline.js +0 -47
- package/dist/animation/animations/outline.js.map +0 -1
- package/dist/animation/animations/rotation.js +0 -22
- package/dist/animation/animations/rotation.js.map +0 -1
- package/dist/animation/animations/vibration.js +0 -31
- package/dist/animation/animations/vibration.js.map +0 -1
- package/dist/animation/compile.js +0 -31
- package/dist/animation/compile.js.map +0 -1
- package/dist/animation/delta.js +0 -51
- package/dist/animation/delta.js.map +0 -1
- package/dist/animation/index.js +0 -14
- package/dist/animation/index.js.map +0 -1
- package/dist/command/command-change.js +0 -33
- package/dist/command/command-change.js.map +0 -1
- package/dist/command/command-migrate.js +0 -103
- package/dist/command/command-migrate.js.map +0 -1
- package/dist/command/command.js +0 -18
- package/dist/command/command.js.map +0 -1
- package/dist/command/snapshot-commander.js +0 -84
- package/dist/command/snapshot-commander.js.map +0 -1
- package/dist/components/anchor/anchor.js +0 -105
- package/dist/components/anchor/anchor.js.map +0 -1
- package/dist/components/anchor/ellipse-anchors.js +0 -53
- package/dist/components/anchor/ellipse-anchors.js.map +0 -1
- package/dist/components/anchor/rect-anchors.js +0 -53
- package/dist/components/anchor/rect-anchors.js.map +0 -1
- package/dist/components/audio.js +0 -154
- package/dist/components/audio.js.map +0 -1
- package/dist/components/cloud.js +0 -44
- package/dist/components/cloud.js.map +0 -1
- package/dist/components/component.js +0 -1086
- package/dist/components/component.js.map +0 -1
- package/dist/components/container-abstract.js +0 -387
- package/dist/components/container-abstract.js.map +0 -1
- package/dist/components/container.js +0 -331
- package/dist/components/container.js.map +0 -1
- package/dist/components/data/data-mapping.js +0 -82
- package/dist/components/data/data-mapping.js.map +0 -1
- package/dist/components/data/data.js +0 -166
- package/dist/components/data/data.js.map +0 -1
- package/dist/components/data/evaluator.js +0 -103
- package/dist/components/data/evaluator.js.map +0 -1
- package/dist/components/donut.js +0 -104
- package/dist/components/donut.js.map +0 -1
- package/dist/components/drawer/draw-image-pendable.js +0 -20
- package/dist/components/drawer/draw-image-pendable.js.map +0 -1
- package/dist/components/drawer/effect.js +0 -19
- package/dist/components/drawer/effect.js.map +0 -1
- package/dist/components/drawer/fill.js +0 -228
- package/dist/components/drawer/fill.js.map +0 -1
- package/dist/components/drawer/format.js +0 -115
- package/dist/components/drawer/format.js.map +0 -1
- package/dist/components/drawer/line.js +0 -191
- package/dist/components/drawer/line.js.map +0 -1
- package/dist/components/drawer/stroke.js +0 -62
- package/dist/components/drawer/stroke.js.map +0 -1
- package/dist/components/drawer/text-wrapper.js +0 -51
- package/dist/components/drawer/text-wrapper.js.map +0 -1
- package/dist/components/drawer/text.js +0 -269
- package/dist/components/drawer/text.js.map +0 -1
- package/dist/components/ellipse.js +0 -110
- package/dist/components/ellipse.js.map +0 -1
- package/dist/components/file/ondropfile.js +0 -19
- package/dist/components/file/ondropfile.js.map +0 -1
- package/dist/components/fit/fit.js +0 -137
- package/dist/components/fit/fit.js.map +0 -1
- package/dist/components/geometry/transcoord.js +0 -339
- package/dist/components/geometry/transcoord.js.map +0 -1
- package/dist/components/geometry/union.js +0 -35
- package/dist/components/geometry/union.js.map +0 -1
- package/dist/components/gif-view.js +0 -128
- package/dist/components/gif-view.js.map +0 -1
- package/dist/components/global-ref.js +0 -154
- package/dist/components/global-ref.js.map +0 -1
- package/dist/components/group.js +0 -171
- package/dist/components/group.js.map +0 -1
- package/dist/components/html/elements.js +0 -24
- package/dist/components/html/elements.js.map +0 -1
- package/dist/components/html/fill.js +0 -126
- package/dist/components/html/fill.js.map +0 -1
- package/dist/components/html/reposition.js +0 -119
- package/dist/components/html/reposition.js.map +0 -1
- package/dist/components/html/shadow.js +0 -24
- package/dist/components/html/shadow.js.map +0 -1
- package/dist/components/html-overlay-container.js +0 -27
- package/dist/components/html-overlay-container.js.map +0 -1
- package/dist/components/html-overlay-element.js +0 -22
- package/dist/components/html-overlay-element.js.map +0 -1
- package/dist/components/image-view.js +0 -193
- package/dist/components/image-view.js.map +0 -1
- package/dist/components/index.js +0 -231
- package/dist/components/index.js.map +0 -1
- package/dist/components/info-window.js +0 -416
- package/dist/components/info-window.js.map +0 -1
- package/dist/components/line.js +0 -374
- package/dist/components/line.js.map +0 -1
- package/dist/components/local-ref.js +0 -114
- package/dist/components/local-ref.js.map +0 -1
- package/dist/components/mixins/connectable.js +0 -128
- package/dist/components/mixins/connectable.js.map +0 -1
- package/dist/components/mixins/data-source.js +0 -34
- package/dist/components/mixins/data-source.js.map +0 -1
- package/dist/components/mixins/html-element.js +0 -107
- package/dist/components/mixins/html-element.js.map +0 -1
- package/dist/components/mixins/move-handle.js +0 -73
- package/dist/components/mixins/move-handle.js.map +0 -1
- package/dist/components/mixins/rect-path.js +0 -113
- package/dist/components/mixins/rect-path.js.map +0 -1
- package/dist/components/mixins/value-holder.js +0 -81
- package/dist/components/mixins/value-holder.js.map +0 -1
- package/dist/components/mutater/bounds.js +0 -68
- package/dist/components/mutater/bounds.js.map +0 -1
- package/dist/components/mutater/path.js +0 -73
- package/dist/components/mutater/path.js.map +0 -1
- package/dist/components/ortholine.js +0 -763
- package/dist/components/ortholine.js.map +0 -1
- package/dist/components/outline/ellipse-outline.js +0 -23
- package/dist/components/outline/ellipse-outline.js.map +0 -1
- package/dist/components/outline/path-outline.js +0 -48
- package/dist/components/outline/path-outline.js.map +0 -1
- package/dist/components/path.js +0 -49
- package/dist/components/path.js.map +0 -1
- package/dist/components/polygon.js +0 -91
- package/dist/components/polygon.js.map +0 -1
- package/dist/components/polyline.js +0 -114
- package/dist/components/polyline.js.map +0 -1
- package/dist/components/popup.js +0 -160
- package/dist/components/popup.js.map +0 -1
- package/dist/components/rect.js +0 -72
- package/dist/components/rect.js.map +0 -1
- package/dist/components/retention/retention-manager.js +0 -81
- package/dist/components/retention/retention-manager.js.map +0 -1
- package/dist/components/root-container.js +0 -519
- package/dist/components/root-container.js.map +0 -1
- package/dist/components/ruler.js +0 -103
- package/dist/components/ruler.js.map +0 -1
- package/dist/components/shape.js +0 -97
- package/dist/components/shape.js.map +0 -1
- package/dist/components/star.js +0 -103
- package/dist/components/star.js.map +0 -1
- package/dist/components/text/substitutor.js +0 -92
- package/dist/components/text/substitutor.js.map +0 -1
- package/dist/components/text.js +0 -21
- package/dist/components/text.js.map +0 -1
- package/dist/components/triangle.js +0 -92
- package/dist/components/triangle.js.map +0 -1
- package/dist/const.js +0 -71
- package/dist/const.js.map +0 -1
- package/dist/core/collection.js +0 -28
- package/dist/core/collection.js.map +0 -1
- package/dist/core/debug.js +0 -12
- package/dist/core/debug.js.map +0 -1
- package/dist/core/deep-equals.js +0 -112
- package/dist/core/deep-equals.js.map +0 -1
- package/dist/core/dom-to-image.js +0 -617
- package/dist/core/dom-to-image.js.map +0 -1
- package/dist/core/event.js +0 -205
- package/dist/core/event.js.map +0 -1
- package/dist/core/index.js +0 -21
- package/dist/core/index.js.map +0 -1
- package/dist/core/list.js +0 -87
- package/dist/core/list.js.map +0 -1
- package/dist/core/logger.js +0 -29
- package/dist/core/logger.js.map +0 -1
- package/dist/core/memoize.js +0 -40
- package/dist/core/memoize.js.map +0 -1
- package/dist/core/mixin.js +0 -26
- package/dist/core/mixin.js.map +0 -1
- package/dist/core/obj-accessor.js +0 -26
- package/dist/core/obj-accessor.js.map +0 -1
- package/dist/core/reference-map.js +0 -147
- package/dist/core/reference-map.js.map +0 -1
- package/dist/core/round-rect.js +0 -62
- package/dist/core/round-rect.js.map +0 -1
- package/dist/core/safe-round.js +0 -10
- package/dist/core/safe-round.js.map +0 -1
- package/dist/core/script-loader.js +0 -148
- package/dist/core/script-loader.js.map +0 -1
- package/dist/core/snapshot-taker.js +0 -59
- package/dist/core/snapshot-taker.js.map +0 -1
- package/dist/core/stack.js +0 -18
- package/dist/core/stack.js.map +0 -1
- package/dist/core/timecapsule.js +0 -88
- package/dist/core/timecapsule.js.map +0 -1
- package/dist/core/utils.js +0 -309
- package/dist/core/utils.js.map +0 -1
- package/dist/decorator/anchors-decorator.js +0 -53
- package/dist/decorator/anchors-decorator.js.map +0 -1
- package/dist/decorator/bouncing-arrow-decorator.js +0 -52
- package/dist/decorator/bouncing-arrow-decorator.js.map +0 -1
- package/dist/decorator/data-spread-decorator.js +0 -69
- package/dist/decorator/data-spread-decorator.js.map +0 -1
- package/dist/decorator/decotag-decorator.js +0 -33
- package/dist/decorator/decotag-decorator.js.map +0 -1
- package/dist/decorator/index.js +0 -31
- package/dist/decorator/index.js.map +0 -1
- package/dist/decorator/link-decorator.js +0 -66
- package/dist/decorator/link-decorator.js.map +0 -1
- package/dist/effect/gradation.js +0 -37
- package/dist/effect/gradation.js.map +0 -1
- package/dist/effect/index.js +0 -23
- package/dist/effect/index.js.map +0 -1
- package/dist/effect/shadow.js +0 -33
- package/dist/effect/shadow.js.map +0 -1
- package/dist/effect/turn.js +0 -25
- package/dist/effect/turn.js.map +0 -1
- package/dist/event/event-engine.js +0 -76
- package/dist/event/event-engine.js.map +0 -1
- package/dist/event/event-pump.js +0 -92
- package/dist/event/event-pump.js.map +0 -1
- package/dist/event/event-tracker.js +0 -97
- package/dist/event/event-tracker.js.map +0 -1
- package/dist/event/index.js +0 -21
- package/dist/event/index.js.map +0 -1
- package/dist/event/ua-event-handler.js +0 -453
- package/dist/event/ua-event-handler.js.map +0 -1
- package/dist/event-map/animator-handler.js +0 -225
- package/dist/event-map/animator-handler.js.map +0 -1
- package/dist/event-map/animators/animated-icon.js +0 -265
- package/dist/event-map/animators/animated-icon.js.map +0 -1
- package/dist/event-map/animators/border-highlighting.js +0 -476
- package/dist/event-map/animators/border-highlighting.js.map +0 -1
- package/dist/event-map/animators/bouncing-arrow.js +0 -226
- package/dist/event-map/animators/bouncing-arrow.js.map +0 -1
- package/dist/event-map/event-map.js +0 -36
- package/dist/event-map/event-map.js.map +0 -1
- package/dist/event-map/index.js +0 -20
- package/dist/event-map/index.js.map +0 -1
- package/dist/event-map/move-handler.js +0 -233
- package/dist/event-map/move-handler.js.map +0 -1
- package/dist/event-map/paste-handler.js +0 -176
- package/dist/event-map/paste-handler.js.map +0 -1
- package/dist/event-map/shift-handler.js +0 -55
- package/dist/event-map/shift-handler.js.map +0 -1
- package/dist/event-map/text-editor-lite.js +0 -276
- package/dist/event-map/text-editor-lite.js.map +0 -1
- package/dist/event-map/zoom-handler.js +0 -49
- package/dist/event-map/zoom-handler.js.map +0 -1
- package/dist/index.js +0 -20
- package/dist/index.js.map +0 -1
- package/dist/layer/action/emphasize.js +0 -42
- package/dist/layer/action/emphasize.js.map +0 -1
- package/dist/layer/action/popup.js +0 -461
- package/dist/layer/action/popup.js.map +0 -1
- package/dist/layer/action/pressed.js +0 -31
- package/dist/layer/action/pressed.js.map +0 -1
- package/dist/layer/add-layer.js +0 -180
- package/dist/layer/add-layer.js.map +0 -1
- package/dist/layer/decotag-layer.js +0 -121
- package/dist/layer/decotag-layer.js.map +0 -1
- package/dist/layer/guide-layer.js +0 -292
- package/dist/layer/guide-layer.js.map +0 -1
- package/dist/layer/index.js +0 -70
- package/dist/layer/index.js.map +0 -1
- package/dist/layer/layer.js +0 -230
- package/dist/layer/layer.js.map +0 -1
- package/dist/layer/minimap-layer.js +0 -84
- package/dist/layer/minimap-layer.js.map +0 -1
- package/dist/layer/model-layer.js +0 -465
- package/dist/layer/model-layer.js.map +0 -1
- package/dist/layer/modeler/anchor-handler.js +0 -193
- package/dist/layer/modeler/anchor-handler.js.map +0 -1
- package/dist/layer/modeler/control-handler.js +0 -95
- package/dist/layer/modeler/control-handler.js.map +0 -1
- package/dist/layer/modeler/focus-outline.js +0 -41
- package/dist/layer/modeler/focus-outline.js.map +0 -1
- package/dist/layer/modeler/group-outline.js +0 -30
- package/dist/layer/modeler/group-outline.js.map +0 -1
- package/dist/layer/modeler/index.js +0 -56
- package/dist/layer/modeler/index.js.map +0 -1
- package/dist/layer/modeler/path-handler.js +0 -300
- package/dist/layer/modeler/path-handler.js.map +0 -1
- package/dist/layer/modeler/resizer.js +0 -333
- package/dist/layer/modeler/resizer.js.map +0 -1
- package/dist/layer/modeler/rotator.js +0 -134
- package/dist/layer/modeler/rotator.js.map +0 -1
- package/dist/layer/modeling-layer.js +0 -491
- package/dist/layer/modeling-layer.js.map +0 -1
- package/dist/layer/reaction-layer.js +0 -111
- package/dist/layer/reaction-layer.js.map +0 -1
- package/dist/layer/scroll-layer.js +0 -191
- package/dist/layer/scroll-layer.js.map +0 -1
- package/dist/layer/selection/selected-finder.js +0 -96
- package/dist/layer/selection/selected-finder.js.map +0 -1
- package/dist/layer/selection-layer.js +0 -373
- package/dist/layer/selection-layer.js.map +0 -1
- package/dist/layer/shift-layer.js +0 -83
- package/dist/layer/shift-layer.js.map +0 -1
- package/dist/layout/absolute.js +0 -30
- package/dist/layout/absolute.js.map +0 -1
- package/dist/layout/card.js +0 -52
- package/dist/layout/card.js.map +0 -1
- package/dist/layout/html-absolute.js +0 -32
- package/dist/layout/html-absolute.js.map +0 -1
- package/dist/layout/index.js +0 -56
- package/dist/layout/index.js.map +0 -1
- package/dist/layout/layout.js +0 -36
- package/dist/layout/layout.js.map +0 -1
- package/dist/layout/linear-horizontal.js +0 -56
- package/dist/layout/linear-horizontal.js.map +0 -1
- package/dist/layout/linear-vertical.js +0 -56
- package/dist/layout/linear-vertical.js.map +0 -1
- package/dist/layout/table.js +0 -106
- package/dist/layout/table.js.map +0 -1
- package/dist/license/license.js +0 -170
- package/dist/license/license.js.map +0 -1
- package/dist/model/compile.js +0 -40
- package/dist/model/compile.js.map +0 -1
- package/dist/model/duplicate.js +0 -19
- package/dist/model/duplicate.js.map +0 -1
- package/dist/model/index.js +0 -34
- package/dist/model/index.js.map +0 -1
- package/dist/model/selector.js +0 -104
- package/dist/model/selector.js.map +0 -1
- package/dist/style/compile.js +0 -14
- package/dist/style/compile.js.map +0 -1
- package/dist/style/index.js +0 -14
- package/dist/style/index.js.map +0 -1
- package/dist/things-scene/api/add-start.js +0 -18
- package/dist/things-scene/api/add-start.js.map +0 -1
- package/dist/things-scene/api/add.js +0 -71
- package/dist/things-scene/api/add.js.map +0 -1
- package/dist/things-scene/api/align.js +0 -116
- package/dist/things-scene/api/align.js.map +0 -1
- package/dist/things-scene/api/center-to.js +0 -50
- package/dist/things-scene/api/center-to.js.map +0 -1
- package/dist/things-scene/api/change.js +0 -27
- package/dist/things-scene/api/change.js.map +0 -1
- package/dist/things-scene/api/clipboard.js +0 -45
- package/dist/things-scene/api/clipboard.js.map +0 -1
- package/dist/things-scene/api/distribute.js +0 -57
- package/dist/things-scene/api/distribute.js.map +0 -1
- package/dist/things-scene/api/duplicate.js +0 -47
- package/dist/things-scene/api/duplicate.js.map +0 -1
- package/dist/things-scene/api/fullscreen.js +0 -26
- package/dist/things-scene/api/fullscreen.js.map +0 -1
- package/dist/things-scene/api/group.js +0 -91
- package/dist/things-scene/api/group.js.map +0 -1
- package/dist/things-scene/api/ids.js +0 -28
- package/dist/things-scene/api/ids.js.map +0 -1
- package/dist/things-scene/api/index.js +0 -192
- package/dist/things-scene/api/index.js.map +0 -1
- package/dist/things-scene/api/listener.js +0 -69
- package/dist/things-scene/api/listener.js.map +0 -1
- package/dist/things-scene/api/paste-start.js +0 -27
- package/dist/things-scene/api/paste-start.js.map +0 -1
- package/dist/things-scene/api/place.js +0 -98
- package/dist/things-scene/api/place.js.map +0 -1
- package/dist/things-scene/api/remove.js +0 -57
- package/dist/things-scene/api/remove.js.map +0 -1
- package/dist/things-scene/api/symmetry.js +0 -47
- package/dist/things-scene/api/symmetry.js.map +0 -1
- package/dist/things-scene/api/to-data-url.js +0 -76
- package/dist/things-scene/api/to-data-url.js.map +0 -1
- package/dist/things-scene/api/zorder.js +0 -68
- package/dist/things-scene/api/zorder.js.map +0 -1
- package/dist/things-scene/application-context.js +0 -168
- package/dist/things-scene/application-context.js.map +0 -1
- package/dist/things-scene/config.js +0 -18
- package/dist/things-scene/config.js.map +0 -1
- package/dist/things-scene/create.js +0 -67
- package/dist/things-scene/create.js.map +0 -1
- package/dist/things-scene/fps.js +0 -26
- package/dist/things-scene/fps.js.map +0 -1
- package/dist/things-scene/index.js +0 -152
- package/dist/things-scene/index.js.map +0 -1
- package/dist/things-scene/polyfill.js +0 -111
- package/dist/things-scene/polyfill.js.map +0 -1
- package/dist/things-scene/scene.js +0 -442
- package/dist/things-scene/scene.js.map +0 -1
- package/dist/things-scene/version.js +0 -12
- package/dist/things-scene/version.js.map +0 -1
- package/rollup.config.js +0 -67
- package/schema.graphql +0 -4606
- package/tsconfig.json +0 -31
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _component = _interopRequireDefault(require("../components/component.js"));
|
|
8
|
-
var _logger = require("../core/logger.js");
|
|
9
|
-
var _layer = _interopRequireDefault(require("./layer.js"));
|
|
10
|
-
var _selectedFinder = require("./selection/selected-finder.js");
|
|
11
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
-
/*
|
|
13
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
function unselectAllAncester(component, selected) {
|
|
17
|
-
var ancester = component.parent;
|
|
18
|
-
while (ancester) {
|
|
19
|
-
let idx = selected.indexOf(ancester);
|
|
20
|
-
if (idx != -1) {
|
|
21
|
-
selected.splice(idx, 1);
|
|
22
|
-
}
|
|
23
|
-
ancester = ancester.parent;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function unselectAllDecendant(component, selected) {
|
|
27
|
-
var children = component.components || [];
|
|
28
|
-
for (let child of children) {
|
|
29
|
-
unselectAllDecendant(child, selected);
|
|
30
|
-
let idx = selected.indexOf(child);
|
|
31
|
-
if (idx != -1) {
|
|
32
|
-
selected.splice(idx, 1);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
class SelectionLayer extends _layer.default {
|
|
37
|
-
// Lifecycle
|
|
38
|
-
ready() {
|
|
39
|
-
super.ready();
|
|
40
|
-
var rootModel = this.rootModel;
|
|
41
|
-
var translate = rootModel.get('translate');
|
|
42
|
-
var scale = rootModel.get('scale');
|
|
43
|
-
this.set('translate', translate);
|
|
44
|
-
this.set('scale', scale);
|
|
45
|
-
}
|
|
46
|
-
contains(x, y) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
render(ctx) {
|
|
50
|
-
var selbox = this.selbox;
|
|
51
|
-
if (selbox) {
|
|
52
|
-
let {
|
|
53
|
-
sx,
|
|
54
|
-
sy,
|
|
55
|
-
ex,
|
|
56
|
-
ey
|
|
57
|
-
} = selbox;
|
|
58
|
-
let scale = this.get('scale') || {
|
|
59
|
-
x: 1,
|
|
60
|
-
y: 1
|
|
61
|
-
};
|
|
62
|
-
ctx.beginPath();
|
|
63
|
-
ctx.rect(sx, sy, ex - sx, ey - sy);
|
|
64
|
-
ctx.setLineDash([2 / scale.x, 4 / scale.y]);
|
|
65
|
-
ctx.lineWidth = 1 / scale.x;
|
|
66
|
-
ctx.strokeStyle = 'black';
|
|
67
|
-
ctx.stroke();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
get eventMap() {
|
|
71
|
-
return {
|
|
72
|
-
'(root)': {
|
|
73
|
-
'(self)': {
|
|
74
|
-
keydown: this.onkeydown
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
'model-layer': {
|
|
78
|
-
'(self)': {
|
|
79
|
-
change: this.onchange_root_model
|
|
80
|
-
},
|
|
81
|
-
'(all)': {
|
|
82
|
-
dragstart: this.ondragstart_selbox,
|
|
83
|
-
dragmove: this.ondragmove_selbox,
|
|
84
|
-
dragend: this.ondragend_selbox,
|
|
85
|
-
mousedown: this.onmousedown_comp,
|
|
86
|
-
mouseup: this.onmouseup_comp
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
onkeydown(e, hint) {
|
|
92
|
-
var {
|
|
93
|
-
origin,
|
|
94
|
-
deliverer
|
|
95
|
-
} = hint; /* deliverer should be RootContainer */
|
|
96
|
-
|
|
97
|
-
var selected = deliverer.selected;
|
|
98
|
-
if (selected.length !== 1) {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
var component = selected[0];
|
|
102
|
-
var container = component.parent;
|
|
103
|
-
if (!container || container === deliverer) {
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
if (e.code === 'Tab') {
|
|
107
|
-
var capturables = container.layout.capturables(container);
|
|
108
|
-
var idx = capturables.indexOf(component);
|
|
109
|
-
if (idx == -1) {
|
|
110
|
-
if (container.indexOf(component)) {
|
|
111
|
-
idx = 0;
|
|
112
|
-
} else {
|
|
113
|
-
(0, _logger.warn)('Container not contains [', component, '] as a component');
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
var length = capturables.length;
|
|
118
|
-
if (e.shiftKey) idx--;else idx++;
|
|
119
|
-
component = capturables[(idx + length) % length];
|
|
120
|
-
} else if (container.layout.keyNavigate) {
|
|
121
|
-
component = container.layout.keyNavigate(container, component, e) || component;
|
|
122
|
-
} else {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
deliverer.selected = [component];
|
|
126
|
-
e.preventDefault();
|
|
127
|
-
}
|
|
128
|
-
onchange_root_model(after, before, hint) {
|
|
129
|
-
if (after.translate) {
|
|
130
|
-
// Model Base 레이어와 동일한 translate를 유지하도록 한다.
|
|
131
|
-
this.set('translate', after.translate);
|
|
132
|
-
}
|
|
133
|
-
if (after.scale) {
|
|
134
|
-
// Model Base 레이어와 동일한 scale 유지하도록 한다.
|
|
135
|
-
this.set('scale', after.scale);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
_pendingDecision(e) {
|
|
139
|
-
/* MouseUP에서 결정하도록 마우스가 눌린 위치를 기억한다. */
|
|
140
|
-
this.downpoint = {
|
|
141
|
-
x: e.offsetX,
|
|
142
|
-
y: e.offsetY
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
_selectGroupItem(origin, e) {
|
|
146
|
-
var idx = this.selected.indexOf(origin);
|
|
147
|
-
|
|
148
|
-
/*
|
|
149
|
-
* 기존에 선택된 아이템 중에서 그룹내에 있는 아이템이 있다면, 바로 선택되도록 한다.
|
|
150
|
-
* 그렇지 않으면, MouseUP에서 결정하도록 한다.
|
|
151
|
-
*/
|
|
152
|
-
let parentOfOrigin = origin.parent;
|
|
153
|
-
|
|
154
|
-
// 최상위 그룹을 찾는다.
|
|
155
|
-
while (parentOfOrigin.parent.isGroup()) {
|
|
156
|
-
parentOfOrigin = parentOfOrigin.parent;
|
|
157
|
-
}
|
|
158
|
-
let selectedSiblings = [];
|
|
159
|
-
let foundSibling = false;
|
|
160
|
-
let foundGroup = false;
|
|
161
|
-
this.selected.forEach(item => {
|
|
162
|
-
let parent = item.parent;
|
|
163
|
-
if (item === parentOfOrigin) {
|
|
164
|
-
foundGroup = true;
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
while (parent.parent && parent.parent.isGroup()) {
|
|
168
|
-
parent = parent.parent;
|
|
169
|
-
}
|
|
170
|
-
if (parent === parentOfOrigin) {
|
|
171
|
-
/* 최상위 그룹이 동일한 경우 sibling으로 판단한다. */
|
|
172
|
-
|
|
173
|
-
selectedSiblings.push(item);
|
|
174
|
-
foundSibling = true;
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
if (foundSibling) {
|
|
178
|
-
if (e.shiftKey) {
|
|
179
|
-
if (idx == -1) {
|
|
180
|
-
selectedSiblings.push(origin);
|
|
181
|
-
} else {
|
|
182
|
-
this._pendingDecision(e);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
} else {
|
|
186
|
-
if (idx == -1) {
|
|
187
|
-
selectedSiblings = [origin];
|
|
188
|
-
} else {
|
|
189
|
-
this._pendingDecision(e);
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
} /* no siblinig */else {
|
|
194
|
-
if (!foundGroup) {
|
|
195
|
-
/* 기존에 선택된 컴포넌트의 부모 그룹을 찾지 못했다면, 공통부모 여부를 판단해서, 최상위 그룹이 선택된다. */
|
|
196
|
-
if (e.shiftKey) {
|
|
197
|
-
/* (sibling이 없고) 이미 선택된 컴포넌트들이 있다면, ... */
|
|
198
|
-
if (this.selected.length > 0) {
|
|
199
|
-
if (this.selected.indexOf(parentOfOrigin) == -1) {
|
|
200
|
-
/* 멀티 선택 리스트에 최상위 그룹을 추가한다. */
|
|
201
|
-
selectedSiblings = [...this.selected, parentOfOrigin];
|
|
202
|
-
} else {
|
|
203
|
-
/* 멀티 선택 조건에 맞지 않아서, 아무 동작도 하지 않는다 */
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
} else {
|
|
207
|
-
/* (sibling이 없고) 이미 선택된 컴포넌트들이 없다면, 최상위 부모 그룹이 선택된다. */
|
|
208
|
-
selectedSiblings = [parentOfOrigin];
|
|
209
|
-
}
|
|
210
|
-
} else {
|
|
211
|
-
selectedSiblings = [parentOfOrigin];
|
|
212
|
-
}
|
|
213
|
-
} else {
|
|
214
|
-
/* 기존에 선택된 컴포넌트의 부모 그룹을 찾았다면, 드래깅일 수도 있으므로, 결정을 지연시킨다. */
|
|
215
|
-
this._pendingDecision(e);
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
this.selected = selectedSiblings;
|
|
220
|
-
}
|
|
221
|
-
onmousedown_comp(e, hint) {
|
|
222
|
-
var {
|
|
223
|
-
origin
|
|
224
|
-
} = hint;
|
|
225
|
-
this.downpoint = null;
|
|
226
|
-
if (e.shiftKey) {
|
|
227
|
-
// shiftKey 상태에서는 선택은 mousedown에서 처리하고, 선택의 해제는 mouseup 이벤트에서 처리한다.
|
|
228
|
-
|
|
229
|
-
// 선택된 대상의 부모가 group인 경우
|
|
230
|
-
if (origin.parent.isGroup()) {
|
|
231
|
-
this._selectGroupItem(origin, e);
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
if (this.selected.indexOf(origin) == -1) {
|
|
235
|
-
// 선택된 컴포넌트와 같은 부모를 가진 컴포넌트들로 선택리스트를 재구성한다.
|
|
236
|
-
// 모델 노드에서 제외된 컴포넌트와 Root Model은 제외한다.
|
|
237
|
-
let selected = this.selected.filter(c => !c.isRootModel() && !!c.parent);
|
|
238
|
-
let parent = selected.length > 0 && selected[0].parent;
|
|
239
|
-
if (parent && parent !== origin.parent) {
|
|
240
|
-
// origin의 부모가 그룹이라면, 그 그룹은 분명히 선택된 상태이다.
|
|
241
|
-
// if (origin.parent.isGroup()) {
|
|
242
|
-
// this._pendingDecision(e)
|
|
243
|
-
|
|
244
|
-
// return
|
|
245
|
-
// }
|
|
246
|
-
|
|
247
|
-
// 편집의 편의상, shift + mouseclick 하는 경우에만, 조상이 다르더라도 선택될 수 있도록 한다.
|
|
248
|
-
// 새로선택된 컴포넌트의 조상과 자손들은 모두 선택취소한다.
|
|
249
|
-
unselectAllAncester(origin, selected);
|
|
250
|
-
unselectAllDecendant(origin, selected);
|
|
251
|
-
}
|
|
252
|
-
selected.push(origin);
|
|
253
|
-
this.selected = selected;
|
|
254
|
-
} else {
|
|
255
|
-
this._pendingDecision(e);
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
} else {
|
|
259
|
-
/* no shift-key */
|
|
260
|
-
|
|
261
|
-
// 선택된 대상의 부모가 group인 경우
|
|
262
|
-
if (origin.parent.isGroup()) {
|
|
263
|
-
this._selectGroupItem(origin, e);
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
if (this.selected.indexOf(origin) == -1) {
|
|
267
|
-
this.selected = [origin];
|
|
268
|
-
this.sameParent = true;
|
|
269
|
-
} else {
|
|
270
|
-
return; // 변화된 것이 없다.
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
onmouseup_comp(e, hint) {
|
|
275
|
-
/*
|
|
276
|
-
* mouse-down 이벤트에서 결정이 pending된 경우 (this.downpoint에 값이 설정된 경우임)
|
|
277
|
-
* 선택은 mousedown에서 처리하고, 선택의 해제는 mouseup 이벤트에서 처리한다.
|
|
278
|
-
* 만약에, 부모가 그룹이라면, mouseup이벤트에서 선택이 처리된다.
|
|
279
|
-
*/
|
|
280
|
-
|
|
281
|
-
if (!this.downpoint) {
|
|
282
|
-
return;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
/*
|
|
286
|
-
* 마우스가 눌린 위치와 동일한 위치에서 버튼릴리즈 된 경우만 처리한다.
|
|
287
|
-
* 선택해제 또는 그룹내 컴포넌트 선택을 위한 행동으로 간주한다.
|
|
288
|
-
*/
|
|
289
|
-
if (this.downpoint.x !== e.offsetX || this.downpoint.y !== e.offsetY) return;
|
|
290
|
-
var {
|
|
291
|
-
origin
|
|
292
|
-
} = hint;
|
|
293
|
-
let idx = this.selected.indexOf(origin);
|
|
294
|
-
if (idx == -1 && origin.parent.isGroup()) {
|
|
295
|
-
idx = this.selected.indexOf(origin.parent);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/* 이미 선택되어 있는 컴포넌트를 선택리스트에서 제거 */
|
|
299
|
-
if (idx !== -1 && e.shiftKey) {
|
|
300
|
-
let selected = this.selected.slice();
|
|
301
|
-
if (idx > -1) {
|
|
302
|
-
selected.splice(idx, 1); // remove
|
|
303
|
-
}
|
|
304
|
-
this.selected = selected;
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
// 선택된 대상의 부모가 group인 경우
|
|
309
|
-
if (origin.parent.isGroup()) {
|
|
310
|
-
this.selected = [origin];
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/* 영역을 그려서 다중 선택을 하는 기능을 위한 이벤트 핸들러들임 */
|
|
316
|
-
|
|
317
|
-
ondragstart_selbox(e, hint) {
|
|
318
|
-
var {
|
|
319
|
-
origin
|
|
320
|
-
} = hint;
|
|
321
|
-
if (!origin.stuck) return;
|
|
322
|
-
var {
|
|
323
|
-
x,
|
|
324
|
-
y
|
|
325
|
-
} = this.transcoordC2S(e.offsetX, e.offsetY);
|
|
326
|
-
|
|
327
|
-
// Model Base 레이어에서 드래깅이 시작되면, 멀티선택 영역을 시작한다.
|
|
328
|
-
// 만일, origin이 stuck된 컴포넌트이면, 선택리스트에서 제외한다.
|
|
329
|
-
|
|
330
|
-
this.selbox = {
|
|
331
|
-
sx: x,
|
|
332
|
-
sy: y,
|
|
333
|
-
selected: []
|
|
334
|
-
};
|
|
335
|
-
}
|
|
336
|
-
ondragmove_selbox(e, hint) {
|
|
337
|
-
var {
|
|
338
|
-
origin
|
|
339
|
-
} = hint;
|
|
340
|
-
if (!origin.stuck) return;
|
|
341
|
-
var {
|
|
342
|
-
x,
|
|
343
|
-
y
|
|
344
|
-
} = this.transcoordC2S(e.offsetX, e.offsetY);
|
|
345
|
-
var {
|
|
346
|
-
deliverer
|
|
347
|
-
} = hint; /* should be rootModel */
|
|
348
|
-
|
|
349
|
-
// 드래그 해제 이전에 컨트롤 키를 릴리즈 하는 경우, selbox가 없을 수 있으므로 확인한다.
|
|
350
|
-
// selbox는 여러 컴포넌트를 선택하기 위해서 마우스로 드래깅해서 만들어내는 영역임.
|
|
351
|
-
// 드래그로는 stuck 되어있는 컨테이너의 1차 자식 컴포넌트들만 선택할 수 있다.
|
|
352
|
-
if (this.selbox) {
|
|
353
|
-
this.selbox.ex = x;
|
|
354
|
-
this.selbox.ey = y;
|
|
355
|
-
let container = origin;
|
|
356
|
-
(0, _selectedFinder.selectedFinder)(this, origin, this.selbox, e.shiftKey);
|
|
357
|
-
this.invalidate();
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
ondragend_selbox(e, hint) {
|
|
361
|
-
var {
|
|
362
|
-
origin
|
|
363
|
-
} = hint;
|
|
364
|
-
if (!origin.stuck) return;
|
|
365
|
-
this.last_pos = null;
|
|
366
|
-
this.selbox = null;
|
|
367
|
-
(0, _selectedFinder.selectedFinder)(this, null, null, false, true);
|
|
368
|
-
this.invalidate();
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
exports.default = SelectionLayer;
|
|
372
|
-
_component.default.register('selection-layer', SelectionLayer);
|
|
373
|
-
//# sourceMappingURL=selection-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection-layer.js","names":["_component","_interopRequireDefault","require","_logger","_layer","_selectedFinder","e","__esModule","default","unselectAllAncester","component","selected","ancester","parent","idx","indexOf","splice","unselectAllDecendant","children","components","child","SelectionLayer","Layer","ready","rootModel","translate","get","scale","set","contains","x","y","render","ctx","selbox","sx","sy","ex","ey","beginPath","rect","setLineDash","lineWidth","strokeStyle","stroke","eventMap","keydown","onkeydown","change","onchange_root_model","dragstart","ondragstart_selbox","dragmove","ondragmove_selbox","dragend","ondragend_selbox","mousedown","onmousedown_comp","mouseup","onmouseup_comp","hint","origin","deliverer","length","container","code","capturables","layout","warn","shiftKey","keyNavigate","preventDefault","after","before","_pendingDecision","downpoint","offsetX","offsetY","_selectGroupItem","parentOfOrigin","isGroup","selectedSiblings","foundSibling","foundGroup","forEach","item","push","filter","c","isRootModel","sameParent","slice","stuck","transcoordC2S","selectedFinder","invalidate","last_pos","exports","Component","register"],"sources":["../../src/layer/selection-layer.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from '../components/component.js'\nimport { warn } from '../core/logger.js'\nimport Layer from './layer.js'\nimport { selectedFinder } from './selection/selected-finder.js'\n\nfunction unselectAllAncester(component, selected) {\n var ancester = component.parent\n while (ancester) {\n let idx = selected.indexOf(ancester)\n if (idx != -1) {\n selected.splice(idx, 1)\n }\n ancester = ancester.parent\n }\n}\n\nfunction unselectAllDecendant(component, selected) {\n var children = component.components || []\n for (let child of children) {\n unselectAllDecendant(child, selected)\n\n let idx = selected.indexOf(child)\n if (idx != -1) {\n selected.splice(idx, 1)\n }\n }\n}\n\nexport default class SelectionLayer extends Layer {\n // Lifecycle\n ready() {\n super.ready()\n var rootModel = this.rootModel\n\n var translate = rootModel.get('translate')\n var scale = rootModel.get('scale')\n\n this.set('translate', translate)\n this.set('scale', scale)\n }\n\n contains(x, y) {\n return false\n }\n\n render(ctx) {\n var selbox = this.selbox\n\n if (selbox) {\n let { sx, sy, ex, ey } = selbox\n let scale = this.get('scale') || { x: 1, y: 1 }\n\n ctx.beginPath()\n\n ctx.rect(sx, sy, ex - sx, ey - sy)\n\n ctx.setLineDash([2 / scale.x, 4 / scale.y])\n ctx.lineWidth = 1 / scale.x\n ctx.strokeStyle = 'black'\n\n ctx.stroke()\n }\n }\n\n get eventMap() {\n return {\n '(root)': {\n '(self)': {\n keydown: this.onkeydown\n }\n },\n 'model-layer': {\n '(self)': {\n change: this.onchange_root_model\n },\n '(all)': {\n dragstart: this.ondragstart_selbox,\n dragmove: this.ondragmove_selbox,\n dragend: this.ondragend_selbox,\n\n mousedown: this.onmousedown_comp,\n mouseup: this.onmouseup_comp\n }\n }\n }\n }\n\n onkeydown(e, hint) {\n var { origin, deliverer } = hint /* deliverer should be RootContainer */\n\n var selected = deliverer.selected\n\n if (selected.length !== 1) {\n return false\n }\n\n var component = selected[0]\n var container = component.parent\n\n if (!container || container === deliverer) {\n return false\n }\n\n if (e.code === 'Tab') {\n var capturables = container.layout.capturables(container)\n\n var idx = capturables.indexOf(component)\n\n if (idx == -1) {\n if (container.indexOf(component)) {\n idx = 0\n } else {\n warn('Container not contains [', component, '] as a component')\n return false\n }\n }\n\n var length = capturables.length\n\n if (e.shiftKey) idx--\n else idx++\n\n component = capturables[(idx + length) % length]\n } else if (container.layout.keyNavigate) {\n component = container.layout.keyNavigate(container, component, e) || component\n } else {\n return false\n }\n\n deliverer.selected = [component]\n e.preventDefault()\n }\n\n onchange_root_model(after, before, hint) {\n if (after.translate) {\n // Model Base 레이어와 동일한 translate를 유지하도록 한다.\n this.set('translate', after.translate)\n }\n\n if (after.scale) {\n // Model Base 레이어와 동일한 scale 유지하도록 한다.\n this.set('scale', after.scale)\n }\n }\n\n _pendingDecision(e) {\n /* MouseUP에서 결정하도록 마우스가 눌린 위치를 기억한다. */\n this.downpoint = {\n x: e.offsetX,\n y: e.offsetY\n }\n }\n\n _selectGroupItem(origin, e) {\n var idx = this.selected.indexOf(origin)\n\n /*\n * 기존에 선택된 아이템 중에서 그룹내에 있는 아이템이 있다면, 바로 선택되도록 한다.\n * 그렇지 않으면, MouseUP에서 결정하도록 한다.\n */\n let parentOfOrigin = origin.parent\n\n // 최상위 그룹을 찾는다.\n while (parentOfOrigin.parent.isGroup()) {\n parentOfOrigin = parentOfOrigin.parent\n }\n\n let selectedSiblings = []\n let foundSibling = false\n let foundGroup = false\n\n this.selected.forEach(item => {\n let parent = item.parent\n\n if (item === parentOfOrigin) {\n foundGroup = true\n return\n }\n\n while (parent.parent && parent.parent.isGroup()) {\n parent = parent.parent\n }\n\n if (parent === parentOfOrigin) {\n /* 최상위 그룹이 동일한 경우 sibling으로 판단한다. */\n\n selectedSiblings.push(item)\n foundSibling = true\n }\n })\n\n if (foundSibling) {\n if (e.shiftKey) {\n if (idx == -1) {\n selectedSiblings.push(origin)\n } else {\n this._pendingDecision(e)\n return\n }\n } else {\n if (idx == -1) {\n selectedSiblings = [origin]\n } else {\n this._pendingDecision(e)\n return\n }\n }\n } /* no siblinig */ else {\n if (!foundGroup) {\n /* 기존에 선택된 컴포넌트의 부모 그룹을 찾지 못했다면, 공통부모 여부를 판단해서, 최상위 그룹이 선택된다. */\n if (e.shiftKey) {\n /* (sibling이 없고) 이미 선택된 컴포넌트들이 있다면, ... */\n if (this.selected.length > 0) {\n if (this.selected.indexOf(parentOfOrigin) == -1) {\n /* 멀티 선택 리스트에 최상위 그룹을 추가한다. */\n selectedSiblings = [...this.selected, parentOfOrigin]\n } else {\n /* 멀티 선택 조건에 맞지 않아서, 아무 동작도 하지 않는다 */\n return\n }\n } else {\n /* (sibling이 없고) 이미 선택된 컴포넌트들이 없다면, 최상위 부모 그룹이 선택된다. */\n selectedSiblings = [parentOfOrigin]\n }\n } else {\n selectedSiblings = [parentOfOrigin]\n }\n } else {\n /* 기존에 선택된 컴포넌트의 부모 그룹을 찾았다면, 드래깅일 수도 있으므로, 결정을 지연시킨다. */\n this._pendingDecision(e)\n return\n }\n }\n\n this.selected = selectedSiblings\n }\n\n onmousedown_comp(e, hint) {\n var { origin } = hint\n this.downpoint = null\n\n if (e.shiftKey) {\n // shiftKey 상태에서는 선택은 mousedown에서 처리하고, 선택의 해제는 mouseup 이벤트에서 처리한다.\n\n // 선택된 대상의 부모가 group인 경우\n if (origin.parent.isGroup()) {\n this._selectGroupItem(origin, e)\n return\n }\n\n if (this.selected.indexOf(origin) == -1) {\n // 선택된 컴포넌트와 같은 부모를 가진 컴포넌트들로 선택리스트를 재구성한다.\n // 모델 노드에서 제외된 컴포넌트와 Root Model은 제외한다.\n let selected = this.selected.filter(c => !c.isRootModel() && !!c.parent)\n\n let parent = selected.length > 0 && selected[0].parent\n if (parent && parent !== origin.parent) {\n // origin의 부모가 그룹이라면, 그 그룹은 분명히 선택된 상태이다.\n // if (origin.parent.isGroup()) {\n // this._pendingDecision(e)\n\n // return\n // }\n\n // 편집의 편의상, shift + mouseclick 하는 경우에만, 조상이 다르더라도 선택될 수 있도록 한다.\n // 새로선택된 컴포넌트의 조상과 자손들은 모두 선택취소한다.\n unselectAllAncester(origin, selected)\n unselectAllDecendant(origin, selected)\n }\n\n selected.push(origin)\n\n this.selected = selected\n } else {\n this._pendingDecision(e)\n return\n }\n } else {\n /* no shift-key */\n\n // 선택된 대상의 부모가 group인 경우\n if (origin.parent.isGroup()) {\n this._selectGroupItem(origin, e)\n return\n }\n\n if (this.selected.indexOf(origin) == -1) {\n this.selected = [origin]\n this.sameParent = true\n } else {\n return // 변화된 것이 없다.\n }\n }\n }\n\n onmouseup_comp(e, hint) {\n /*\n * mouse-down 이벤트에서 결정이 pending된 경우 (this.downpoint에 값이 설정된 경우임)\n * 선택은 mousedown에서 처리하고, 선택의 해제는 mouseup 이벤트에서 처리한다.\n * 만약에, 부모가 그룹이라면, mouseup이벤트에서 선택이 처리된다.\n */\n\n if (!this.downpoint) {\n return\n }\n\n /*\n * 마우스가 눌린 위치와 동일한 위치에서 버튼릴리즈 된 경우만 처리한다.\n * 선택해제 또는 그룹내 컴포넌트 선택을 위한 행동으로 간주한다.\n */\n if (this.downpoint.x !== e.offsetX || this.downpoint.y !== e.offsetY) return\n\n var { origin } = hint\n let idx = this.selected.indexOf(origin)\n if (idx == -1 && origin.parent.isGroup()) {\n idx = this.selected.indexOf(origin.parent)\n }\n\n /* 이미 선택되어 있는 컴포넌트를 선택리스트에서 제거 */\n if (idx !== -1 && e.shiftKey) {\n let selected = this.selected.slice()\n\n if (idx > -1) {\n selected.splice(idx, 1) // remove\n }\n\n this.selected = selected\n\n return\n }\n\n // 선택된 대상의 부모가 group인 경우\n if (origin.parent.isGroup()) {\n this.selected = [origin]\n return\n }\n }\n\n /* 영역을 그려서 다중 선택을 하는 기능을 위한 이벤트 핸들러들임 */\n\n ondragstart_selbox(e, hint) {\n var { origin } = hint\n\n if (!origin.stuck) return\n\n var { x, y } = this.transcoordC2S(e.offsetX, e.offsetY)\n\n // Model Base 레이어에서 드래깅이 시작되면, 멀티선택 영역을 시작한다.\n // 만일, origin이 stuck된 컴포넌트이면, 선택리스트에서 제외한다.\n\n this.selbox = {\n sx: x,\n sy: y,\n selected: []\n }\n }\n\n ondragmove_selbox(e, hint) {\n var { origin } = hint\n\n if (!origin.stuck) return\n\n var { x, y } = this.transcoordC2S(e.offsetX, e.offsetY)\n var { deliverer } = hint /* should be rootModel */\n\n // 드래그 해제 이전에 컨트롤 키를 릴리즈 하는 경우, selbox가 없을 수 있으므로 확인한다.\n // selbox는 여러 컴포넌트를 선택하기 위해서 마우스로 드래깅해서 만들어내는 영역임.\n // 드래그로는 stuck 되어있는 컨테이너의 1차 자식 컴포넌트들만 선택할 수 있다.\n if (this.selbox) {\n this.selbox.ex = x\n this.selbox.ey = y\n\n let container = origin\n\n selectedFinder(this, origin, this.selbox, e.shiftKey)\n\n this.invalidate()\n }\n }\n\n ondragend_selbox(e, hint) {\n var { origin } = hint\n\n if (!origin.stuck) return\n\n this.last_pos = null\n this.selbox = null\n\n selectedFinder(this, null, null, false, true)\n\n this.invalidate()\n }\n}\n\nComponent.register('selection-layer', SelectionLayer)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _component = _interopRequireDefault(require("../components/component.js"));
|
|
8
|
-
var Const = _interopRequireWildcard(require("../const.js"));
|
|
9
|
-
var _layer = _interopRequireDefault(require("./layer.js"));
|
|
10
|
-
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); }
|
|
11
|
-
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; }
|
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
/*
|
|
14
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
class ShiftLayer extends _layer.default {
|
|
18
|
-
// Lifecycle
|
|
19
|
-
ready() {
|
|
20
|
-
super.ready();
|
|
21
|
-
var translate = this.rootModel.get('translate');
|
|
22
|
-
this.set('translate', translate);
|
|
23
|
-
}
|
|
24
|
-
render(ctx) {
|
|
25
|
-
/* render nothing */
|
|
26
|
-
}
|
|
27
|
-
get pointerEvents() {
|
|
28
|
-
return 'none';
|
|
29
|
-
}
|
|
30
|
-
contains(x, y) {
|
|
31
|
-
return !!(this.app.mode == Const.MODE_SHIFT);
|
|
32
|
-
}
|
|
33
|
-
get eventMap() {
|
|
34
|
-
return {
|
|
35
|
-
'(root)': {
|
|
36
|
-
'(self)': {
|
|
37
|
-
keydown: this.onkeydown,
|
|
38
|
-
keyup: this.onkeyup
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
onkeydown(e) {
|
|
44
|
-
if (e.code === 'Space' && this.before_mode === undefined) {
|
|
45
|
-
this.before_mode = this.app.mode;
|
|
46
|
-
this.app.mode = Const.MODE_SHIFT;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
onkeyup(e) {
|
|
50
|
-
if (e.code === 'Space') {
|
|
51
|
-
if (this.before_mode !== undefined) {
|
|
52
|
-
this.app.mode = this.before_mode;
|
|
53
|
-
}
|
|
54
|
-
delete this.before_mode;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/* default UI Event Handlers. */
|
|
59
|
-
|
|
60
|
-
ondragstart(e) {
|
|
61
|
-
this.last_position = this.transcoordC2S(e.offsetX, e.offsetY);
|
|
62
|
-
}
|
|
63
|
-
ondragmove(e) {
|
|
64
|
-
var {
|
|
65
|
-
x,
|
|
66
|
-
y
|
|
67
|
-
} = this.transcoordC2S(e.offsetX, e.offsetY);
|
|
68
|
-
|
|
69
|
-
// 모델레이어의 원점을 움직인다.
|
|
70
|
-
this.rootModel.move({
|
|
71
|
-
x: x - this.last_position.x,
|
|
72
|
-
y: y - this.last_position.y
|
|
73
|
-
}, false);
|
|
74
|
-
|
|
75
|
-
// 모델레이어의 translate 값이 바뀌었으므로, 이 레이어의 translate도 변경되었을 것이다.
|
|
76
|
-
// 따라서, transcoord을 다시 해주어야 한다.
|
|
77
|
-
|
|
78
|
-
this.last_position = this.transcoordC2S(e.offsetX, e.offsetY);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.default = ShiftLayer;
|
|
82
|
-
_component.default.register('shift-layer', ShiftLayer);
|
|
83
|
-
//# sourceMappingURL=shift-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shift-layer.js","names":["_component","_interopRequireDefault","require","Const","_interopRequireWildcard","_layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShiftLayer","Layer","ready","translate","rootModel","render","ctx","pointerEvents","contains","x","y","app","mode","MODE_SHIFT","eventMap","keydown","onkeydown","keyup","onkeyup","code","before_mode","undefined","ondragstart","last_position","transcoordC2S","offsetX","offsetY","ondragmove","move","exports","Component","register"],"sources":["../../src/layer/shift-layer.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from '../components/component.js'\nimport * as Const from '../const.js'\nimport Layer from './layer.js'\n\nexport default class ShiftLayer extends Layer {\n // Lifecycle\n ready() {\n super.ready()\n var translate = this.rootModel.get('translate')\n this.set('translate', translate)\n }\n\n render(ctx) {\n /* render nothing */\n }\n\n get pointerEvents() {\n return 'none'\n }\n\n contains(x, y) {\n return !!(this.app.mode == Const.MODE_SHIFT)\n }\n\n get eventMap() {\n return {\n '(root)': {\n '(self)': {\n keydown: this.onkeydown,\n keyup: this.onkeyup\n }\n }\n }\n }\n\n onkeydown(e) {\n if (e.code === 'Space' && this.before_mode === undefined) {\n this.before_mode = this.app.mode\n this.app.mode = Const.MODE_SHIFT\n }\n }\n\n onkeyup(e) {\n if (e.code === 'Space') {\n if (this.before_mode !== undefined) {\n this.app.mode = this.before_mode\n }\n delete this.before_mode\n }\n }\n\n /* default UI Event Handlers. */\n\n ondragstart(e) {\n this.last_position = this.transcoordC2S(e.offsetX, e.offsetY)\n }\n\n ondragmove(e) {\n var { x, y } = this.transcoordC2S(e.offsetX, e.offsetY)\n\n // 모델레이어의 원점을 움직인다.\n this.rootModel.move(\n {\n x: x - this.last_position.x,\n y: y - this.last_position.y\n },\n false\n )\n\n // 모델레이어의 translate 값이 바뀌었으므로, 이 레이어의 translate도 변경되었을 것이다.\n // 따라서, transcoord을 다시 해주어야 한다.\n\n this.last_position = this.transcoordC2S(e.offsetX, e.offsetY)\n }\n}\n\nComponent.register('shift-layer', ShiftLayer)\n"],"mappings":"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","ignoreList":[]}
|
package/dist/layout/absolute.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _layout = _interopRequireDefault(require("./layout.js"));
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
/*
|
|
10
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/* 대상 컴포넌트의 bounds를 계산한다. */
|
|
14
|
-
var AbsoluteLayout = {
|
|
15
|
-
reflow: function (container, component) {},
|
|
16
|
-
capturables: function (container) {
|
|
17
|
-
return container.components;
|
|
18
|
-
},
|
|
19
|
-
drawables: function (container) {
|
|
20
|
-
if (!container.app.isViewMode) return container.components;
|
|
21
|
-
return container.components.filter(c => !c.hidden);
|
|
22
|
-
},
|
|
23
|
-
isStuck: function (component) {
|
|
24
|
-
return false;
|
|
25
|
-
},
|
|
26
|
-
ABSOLUTE: true
|
|
27
|
-
};
|
|
28
|
-
_layout.default.register('absolute', AbsoluteLayout);
|
|
29
|
-
var _default = exports.default = AbsoluteLayout;
|
|
30
|
-
//# sourceMappingURL=absolute.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"absolute.js","names":["_layout","_interopRequireDefault","require","e","__esModule","default","AbsoluteLayout","reflow","container","component","capturables","components","drawables","app","isViewMode","filter","c","hidden","isStuck","ABSOLUTE","Layout","register","_default","exports"],"sources":["../../src/layout/absolute.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Layout from './layout.js'\n\n/* 대상 컴포넌트의 bounds를 계산한다. */\nvar AbsoluteLayout = {\n reflow: function (container, component) {},\n\n capturables: function (container) {\n return container.components\n },\n\n drawables: function (container) {\n if (!container.app.isViewMode) return container.components\n return container.components.filter(c => !c.hidden)\n },\n\n isStuck: function (component) {\n return false\n },\n\n ABSOLUTE: true\n}\n\nLayout.register('absolute', AbsoluteLayout)\n\nexport default AbsoluteLayout\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAgC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJhC;AACA;AACA;;AAIA;AACA,IAAIG,cAAc,GAAG;EACnBC,MAAM,EAAE,SAAAA,CAAUC,SAAS,EAAEC,SAAS,EAAE,CAAC,CAAC;EAE1CC,WAAW,EAAE,SAAAA,CAAUF,SAAS,EAAE;IAChC,OAAOA,SAAS,CAACG,UAAU;EAC7B,CAAC;EAEDC,SAAS,EAAE,SAAAA,CAAUJ,SAAS,EAAE;IAC9B,IAAI,CAACA,SAAS,CAACK,GAAG,CAACC,UAAU,EAAE,OAAON,SAAS,CAACG,UAAU;IAC1D,OAAOH,SAAS,CAACG,UAAU,CAACI,MAAM,CAACC,CAAC,IAAI,CAACA,CAAC,CAACC,MAAM,CAAC;EACpD,CAAC;EAEDC,OAAO,EAAE,SAAAA,CAAUT,SAAS,EAAE;IAC5B,OAAO,KAAK;EACd,CAAC;EAEDU,QAAQ,EAAE;AACZ,CAAC;AAEDC,eAAM,CAACC,QAAQ,CAAC,UAAU,EAAEf,cAAc,CAAC;AAAA,IAAAgB,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GAE5BC,cAAc","ignoreList":[]}
|
package/dist/layout/card.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _layout = _interopRequireDefault(require("./layout.js"));
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
/*
|
|
10
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
function getActiveArrayFromContainer(container) {
|
|
14
|
-
var components = container.components.filter(c => !c.hidden);
|
|
15
|
-
var config = container.getState('layoutConfig') || {};
|
|
16
|
-
var active = components[config && config.activeIndex || 0];
|
|
17
|
-
return active && [active] || [];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* 대상 컴포넌트의 bounds를 계산한다. */
|
|
21
|
-
var CardLayout = {
|
|
22
|
-
reflow: function (container) {
|
|
23
|
-
var container_bounds = container.bounds;
|
|
24
|
-
var config = container.getState('layoutConfig') || {};
|
|
25
|
-
var bounds = {
|
|
26
|
-
left: 0,
|
|
27
|
-
top: 0,
|
|
28
|
-
width: container_bounds.width,
|
|
29
|
-
height: container_bounds.height
|
|
30
|
-
};
|
|
31
|
-
container.forEach((component, i) => {
|
|
32
|
-
let hidden = i != (config.activeIndex || 0);
|
|
33
|
-
component.bounds = bounds;
|
|
34
|
-
component.setState('rotation', 0);
|
|
35
|
-
if (component.element) {
|
|
36
|
-
component.element.style.visibility = hidden ? 'hidden' : 'visible';
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
},
|
|
40
|
-
capturables: function (container) {
|
|
41
|
-
return getActiveArrayFromContainer(container);
|
|
42
|
-
},
|
|
43
|
-
drawables: function (container) {
|
|
44
|
-
return getActiveArrayFromContainer(container);
|
|
45
|
-
},
|
|
46
|
-
isStuck: function (component) {
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
_layout.default.register('card', CardLayout);
|
|
51
|
-
var _default = exports.default = CardLayout;
|
|
52
|
-
//# sourceMappingURL=card.js.map
|
package/dist/layout/card.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","names":["_layout","_interopRequireDefault","require","e","__esModule","default","getActiveArrayFromContainer","container","components","filter","c","hidden","config","getState","active","activeIndex","CardLayout","reflow","container_bounds","bounds","left","top","width","height","forEach","component","i","setState","element","style","visibility","capturables","drawables","isStuck","Layout","register","_default","exports"],"sources":["../../src/layout/card.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Layout from './layout.js'\n\nfunction getActiveArrayFromContainer(container) {\n var components = container.components.filter(c => !c.hidden)\n var config = container.getState('layoutConfig') || {}\n\n var active = components[(config && config.activeIndex) || 0]\n\n return (active && [active]) || []\n}\n\n/* 대상 컴포넌트의 bounds를 계산한다. */\nvar CardLayout = {\n reflow: function (container) {\n var container_bounds = container.bounds\n var config = container.getState('layoutConfig') || {}\n\n var bounds = {\n left: 0,\n top: 0,\n width: container_bounds.width,\n height: container_bounds.height\n }\n\n container.forEach((component, i) => {\n let hidden = i != (config.activeIndex || 0)\n component.bounds = bounds\n component.setState('rotation', 0)\n if (component.element) {\n component.element.style.visibility = hidden ? 'hidden' : 'visible'\n }\n })\n },\n\n capturables: function (container) {\n return getActiveArrayFromContainer(container)\n },\n\n drawables: function (container) {\n return getActiveArrayFromContainer(container)\n },\n\n isStuck: function (component) {\n return true\n }\n}\n\nLayout.register('card', CardLayout)\n\nexport default CardLayout\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAgC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJhC;AACA;AACA;;AAIA,SAASG,2BAA2BA,CAACC,SAAS,EAAE;EAC9C,IAAIC,UAAU,GAAGD,SAAS,CAACC,UAAU,CAACC,MAAM,CAACC,CAAC,IAAI,CAACA,CAAC,CAACC,MAAM,CAAC;EAC5D,IAAIC,MAAM,GAAGL,SAAS,CAACM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;EAErD,IAAIC,MAAM,GAAGN,UAAU,CAAEI,MAAM,IAAIA,MAAM,CAACG,WAAW,IAAK,CAAC,CAAC;EAE5D,OAAQD,MAAM,IAAI,CAACA,MAAM,CAAC,IAAK,EAAE;AACnC;;AAEA;AACA,IAAIE,UAAU,GAAG;EACfC,MAAM,EAAE,SAAAA,CAAUV,SAAS,EAAE;IAC3B,IAAIW,gBAAgB,GAAGX,SAAS,CAACY,MAAM;IACvC,IAAIP,MAAM,GAAGL,SAAS,CAACM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAErD,IAAIM,MAAM,GAAG;MACXC,IAAI,EAAE,CAAC;MACPC,GAAG,EAAE,CAAC;MACNC,KAAK,EAAEJ,gBAAgB,CAACI,KAAK;MAC7BC,MAAM,EAAEL,gBAAgB,CAACK;IAC3B,CAAC;IAEDhB,SAAS,CAACiB,OAAO,CAAC,CAACC,SAAS,EAAEC,CAAC,KAAK;MAClC,IAAIf,MAAM,GAAGe,CAAC,KAAKd,MAAM,CAACG,WAAW,IAAI,CAAC,CAAC;MAC3CU,SAAS,CAACN,MAAM,GAAGA,MAAM;MACzBM,SAAS,CAACE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;MACjC,IAAIF,SAAS,CAACG,OAAO,EAAE;QACrBH,SAAS,CAACG,OAAO,CAACC,KAAK,CAACC,UAAU,GAAGnB,MAAM,GAAG,QAAQ,GAAG,SAAS;MACpE;IACF,CAAC,CAAC;EACJ,CAAC;EAEDoB,WAAW,EAAE,SAAAA,CAAUxB,SAAS,EAAE;IAChC,OAAOD,2BAA2B,CAACC,SAAS,CAAC;EAC/C,CAAC;EAEDyB,SAAS,EAAE,SAAAA,CAAUzB,SAAS,EAAE;IAC9B,OAAOD,2BAA2B,CAACC,SAAS,CAAC;EAC/C,CAAC;EAED0B,OAAO,EAAE,SAAAA,CAAUR,SAAS,EAAE;IAC5B,OAAO,IAAI;EACb;AACF,CAAC;AAEDS,eAAM,CAACC,QAAQ,CAAC,MAAM,EAAEnB,UAAU,CAAC;AAAA,IAAAoB,QAAA,GAAAC,OAAA,CAAAhC,OAAA,GAEpBW,UAAU","ignoreList":[]}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _layout = _interopRequireDefault(require("./layout.js"));
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
/*
|
|
10
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/* 대상 컴포넌트의 bounds를 계산한다. */
|
|
14
|
-
var HTMLAbsoluteLayout = {
|
|
15
|
-
reflow: function (container, component) {
|
|
16
|
-
var components = this.drawables(container);
|
|
17
|
-
components.filter(component => component.isHTMLElement()).forEach(component => component.reposition());
|
|
18
|
-
},
|
|
19
|
-
capturables: function (container) {
|
|
20
|
-
return container.components;
|
|
21
|
-
},
|
|
22
|
-
drawables: function (container) {
|
|
23
|
-
return container.app && !container.app.isViewMode ? container.components : container.components.filter(c => !c.hidden);
|
|
24
|
-
},
|
|
25
|
-
isStuck: function (component) {
|
|
26
|
-
return false;
|
|
27
|
-
},
|
|
28
|
-
ABSOLUTE: true
|
|
29
|
-
};
|
|
30
|
-
_layout.default.register('html-absolute', HTMLAbsoluteLayout);
|
|
31
|
-
var _default = exports.default = HTMLAbsoluteLayout;
|
|
32
|
-
//# sourceMappingURL=html-absolute.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"html-absolute.js","names":["_layout","_interopRequireDefault","require","e","__esModule","default","HTMLAbsoluteLayout","reflow","container","component","components","drawables","filter","isHTMLElement","forEach","reposition","capturables","app","isViewMode","c","hidden","isStuck","ABSOLUTE","Layout","register","_default","exports"],"sources":["../../src/layout/html-absolute.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Layout from './layout.js'\n\n/* 대상 컴포넌트의 bounds를 계산한다. */\nvar HTMLAbsoluteLayout = {\n reflow: function (container, component) {\n var components = this.drawables(container)\n\n components.filter(component => component.isHTMLElement()).forEach(component => component.reposition())\n },\n\n capturables: function (container) {\n return container.components\n },\n\n drawables: function (container) {\n return container.app && !container.app.isViewMode\n ? container.components\n : container.components.filter(c => !c.hidden)\n },\n\n isStuck: function (component) {\n return false\n },\n\n ABSOLUTE: true\n}\n\nLayout.register('html-absolute', HTMLAbsoluteLayout)\n\nexport default HTMLAbsoluteLayout\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAgC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJhC;AACA;AACA;;AAIA;AACA,IAAIG,kBAAkB,GAAG;EACvBC,MAAM,EAAE,SAAAA,CAAUC,SAAS,EAAEC,SAAS,EAAE;IACtC,IAAIC,UAAU,GAAG,IAAI,CAACC,SAAS,CAACH,SAAS,CAAC;IAE1CE,UAAU,CAACE,MAAM,CAACH,SAAS,IAAIA,SAAS,CAACI,aAAa,CAAC,CAAC,CAAC,CAACC,OAAO,CAACL,SAAS,IAAIA,SAAS,CAACM,UAAU,CAAC,CAAC,CAAC;EACxG,CAAC;EAEDC,WAAW,EAAE,SAAAA,CAAUR,SAAS,EAAE;IAChC,OAAOA,SAAS,CAACE,UAAU;EAC7B,CAAC;EAEDC,SAAS,EAAE,SAAAA,CAAUH,SAAS,EAAE;IAC9B,OAAOA,SAAS,CAACS,GAAG,IAAI,CAACT,SAAS,CAACS,GAAG,CAACC,UAAU,GAC7CV,SAAS,CAACE,UAAU,GACpBF,SAAS,CAACE,UAAU,CAACE,MAAM,CAACO,CAAC,IAAI,CAACA,CAAC,CAACC,MAAM,CAAC;EACjD,CAAC;EAEDC,OAAO,EAAE,SAAAA,CAAUZ,SAAS,EAAE;IAC5B,OAAO,KAAK;EACd,CAAC;EAEDa,QAAQ,EAAE;AACZ,CAAC;AAEDC,eAAM,CAACC,QAAQ,CAAC,eAAe,EAAElB,kBAAkB,CAAC;AAAA,IAAAmB,QAAA,GAAAC,OAAA,CAAArB,OAAA,GAErCC,kBAAkB","ignoreList":[]}
|