@hatiolab/things-scene 9.0.0-beta.35 → 9.0.0-beta.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/babel.config.js +4 -3
- package/db.sqlite +0 -0
- package/dist/animation/animate.js +63 -0
- package/dist/animation/animate.js.map +1 -0
- package/dist/animation/animations/animation.js +122 -0
- package/dist/animation/animations/animation.js.map +1 -0
- package/dist/animation/animations/fade.js +28 -0
- package/dist/animation/animations/fade.js.map +1 -0
- package/dist/animation/animations/heartbeat.js +28 -0
- package/dist/animation/animations/heartbeat.js.map +1 -0
- package/dist/animation/animations/moving.js +24 -0
- package/dist/animation/animations/moving.js.map +1 -0
- package/dist/animation/animations/outline.js +47 -0
- package/dist/animation/animations/outline.js.map +1 -0
- package/dist/animation/animations/rotation.js +22 -0
- package/dist/animation/animations/rotation.js.map +1 -0
- package/dist/animation/animations/vibration.js +31 -0
- package/dist/animation/animations/vibration.js.map +1 -0
- package/dist/animation/compile.js +31 -0
- package/dist/animation/compile.js.map +1 -0
- package/dist/animation/delta.js +51 -0
- package/dist/animation/delta.js.map +1 -0
- package/dist/animation/index.js +14 -0
- package/dist/animation/index.js.map +1 -0
- package/dist/command/command-change.js +33 -0
- package/dist/command/command-change.js.map +1 -0
- package/dist/command/command-migrate.js +103 -0
- package/dist/command/command-migrate.js.map +1 -0
- package/dist/command/command.js +18 -0
- package/dist/command/command.js.map +1 -0
- package/dist/command/snapshot-commander.js +84 -0
- package/dist/command/snapshot-commander.js.map +1 -0
- package/dist/components/anchor/anchor.js +105 -0
- package/dist/components/anchor/anchor.js.map +1 -0
- package/dist/components/anchor/ellipse-anchors.js +53 -0
- package/dist/components/anchor/ellipse-anchors.js.map +1 -0
- package/dist/components/anchor/rect-anchors.js +53 -0
- package/dist/components/anchor/rect-anchors.js.map +1 -0
- package/dist/components/audio.js +154 -0
- package/dist/components/audio.js.map +1 -0
- package/dist/components/cloud.js +44 -0
- package/dist/components/cloud.js.map +1 -0
- package/dist/components/component.js +1086 -0
- package/dist/components/component.js.map +1 -0
- package/dist/components/container-abstract.js +387 -0
- package/dist/components/container-abstract.js.map +1 -0
- package/dist/components/container.js +331 -0
- package/dist/components/container.js.map +1 -0
- package/dist/components/data/data-mapping.js +82 -0
- package/dist/components/data/data-mapping.js.map +1 -0
- package/dist/components/data/data.js +166 -0
- package/dist/components/data/data.js.map +1 -0
- package/dist/components/data/evaluator.js +103 -0
- package/dist/components/data/evaluator.js.map +1 -0
- package/dist/components/donut.js +104 -0
- package/dist/components/donut.js.map +1 -0
- package/dist/components/drawer/draw-image-pendable.js +20 -0
- package/dist/components/drawer/draw-image-pendable.js.map +1 -0
- package/dist/components/drawer/effect.js +19 -0
- package/dist/components/drawer/effect.js.map +1 -0
- package/dist/components/drawer/fill.js +228 -0
- package/dist/components/drawer/fill.js.map +1 -0
- package/dist/components/drawer/format.js +115 -0
- package/dist/components/drawer/format.js.map +1 -0
- package/dist/components/drawer/line.js +191 -0
- package/dist/components/drawer/line.js.map +1 -0
- package/dist/components/drawer/stroke.js +62 -0
- package/dist/components/drawer/stroke.js.map +1 -0
- package/dist/components/drawer/text-wrapper.js +51 -0
- package/dist/components/drawer/text-wrapper.js.map +1 -0
- package/dist/components/drawer/text.js +269 -0
- package/dist/components/drawer/text.js.map +1 -0
- package/dist/components/ellipse.js +110 -0
- package/dist/components/ellipse.js.map +1 -0
- package/dist/components/file/ondropfile.js +19 -0
- package/dist/components/file/ondropfile.js.map +1 -0
- package/dist/components/fit/fit.js +137 -0
- package/dist/components/fit/fit.js.map +1 -0
- package/dist/components/geometry/transcoord.js +339 -0
- package/dist/components/geometry/transcoord.js.map +1 -0
- package/dist/components/geometry/union.js +35 -0
- package/dist/components/geometry/union.js.map +1 -0
- package/dist/components/gif-view.js +128 -0
- package/dist/components/gif-view.js.map +1 -0
- package/dist/components/global-ref.js +154 -0
- package/dist/components/global-ref.js.map +1 -0
- package/dist/components/group.js +171 -0
- package/dist/components/group.js.map +1 -0
- package/dist/components/html/elements.js +24 -0
- package/dist/components/html/elements.js.map +1 -0
- package/dist/components/html/fill.js +126 -0
- package/dist/components/html/fill.js.map +1 -0
- package/dist/components/html/reposition.js +119 -0
- package/dist/components/html/reposition.js.map +1 -0
- package/dist/components/html/shadow.js +24 -0
- package/dist/components/html/shadow.js.map +1 -0
- package/dist/components/html-overlay-container.js +27 -0
- package/dist/components/html-overlay-container.js.map +1 -0
- package/dist/components/html-overlay-element.js +22 -0
- package/dist/components/html-overlay-element.js.map +1 -0
- package/dist/components/image-view.js +193 -0
- package/dist/components/image-view.js.map +1 -0
- package/dist/components/index.js +231 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/info-window.js +416 -0
- package/dist/components/info-window.js.map +1 -0
- package/dist/components/line.js +374 -0
- package/dist/components/line.js.map +1 -0
- package/dist/components/local-ref.js +114 -0
- package/dist/components/local-ref.js.map +1 -0
- package/dist/components/mixins/connectable.js +128 -0
- package/dist/components/mixins/connectable.js.map +1 -0
- package/dist/components/mixins/data-source.js +34 -0
- package/dist/components/mixins/data-source.js.map +1 -0
- package/dist/components/mixins/html-element.js +107 -0
- package/dist/components/mixins/html-element.js.map +1 -0
- package/dist/components/mixins/move-handle.js +73 -0
- package/dist/components/mixins/move-handle.js.map +1 -0
- package/dist/components/mixins/rect-path.js +113 -0
- package/dist/components/mixins/rect-path.js.map +1 -0
- package/dist/components/mixins/value-holder.js +81 -0
- package/dist/components/mixins/value-holder.js.map +1 -0
- package/dist/components/mutater/bounds.js +68 -0
- package/dist/components/mutater/bounds.js.map +1 -0
- package/dist/components/mutater/path.js +73 -0
- package/dist/components/mutater/path.js.map +1 -0
- package/dist/components/ortholine.js +763 -0
- package/dist/components/ortholine.js.map +1 -0
- package/dist/components/outline/ellipse-outline.js +23 -0
- package/dist/components/outline/ellipse-outline.js.map +1 -0
- package/dist/components/outline/path-outline.js +48 -0
- package/dist/components/outline/path-outline.js.map +1 -0
- package/dist/components/path.js +49 -0
- package/dist/components/path.js.map +1 -0
- package/dist/components/polygon.js +91 -0
- package/dist/components/polygon.js.map +1 -0
- package/dist/components/polyline.js +114 -0
- package/dist/components/polyline.js.map +1 -0
- package/dist/components/popup.js +160 -0
- package/dist/components/popup.js.map +1 -0
- package/dist/components/rect.js +72 -0
- package/dist/components/rect.js.map +1 -0
- package/dist/components/retention/retention-manager.js +81 -0
- package/dist/components/retention/retention-manager.js.map +1 -0
- package/dist/components/root-container.js +519 -0
- package/dist/components/root-container.js.map +1 -0
- package/dist/components/ruler.js +103 -0
- package/dist/components/ruler.js.map +1 -0
- package/dist/components/shape.js +97 -0
- package/dist/components/shape.js.map +1 -0
- package/dist/components/star.js +103 -0
- package/dist/components/star.js.map +1 -0
- package/dist/components/text/substitutor.js +92 -0
- package/dist/components/text/substitutor.js.map +1 -0
- package/dist/components/text.js +21 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/triangle.js +92 -0
- package/dist/components/triangle.js.map +1 -0
- package/dist/const.js +71 -0
- package/dist/const.js.map +1 -0
- package/dist/core/collection.js +28 -0
- package/dist/core/collection.js.map +1 -0
- package/dist/core/debug.js +12 -0
- package/dist/core/debug.js.map +1 -0
- package/dist/core/deep-equals.js +112 -0
- package/dist/core/deep-equals.js.map +1 -0
- package/dist/core/dom-to-image.js +617 -0
- package/dist/core/dom-to-image.js.map +1 -0
- package/dist/core/event.js +205 -0
- package/dist/core/event.js.map +1 -0
- package/dist/core/index.js +21 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/list.js +87 -0
- package/dist/core/list.js.map +1 -0
- package/dist/core/logger.js +29 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/memoize.js +40 -0
- package/dist/core/memoize.js.map +1 -0
- package/dist/core/mixin.js +26 -0
- package/dist/core/mixin.js.map +1 -0
- package/dist/core/obj-accessor.js +26 -0
- package/dist/core/obj-accessor.js.map +1 -0
- package/dist/core/reference-map.js +147 -0
- package/dist/core/reference-map.js.map +1 -0
- package/dist/core/round-rect.js +62 -0
- package/dist/core/round-rect.js.map +1 -0
- package/dist/core/safe-round.js +10 -0
- package/dist/core/safe-round.js.map +1 -0
- package/dist/core/script-loader.js +148 -0
- package/dist/core/script-loader.js.map +1 -0
- package/dist/core/snapshot-taker.js +59 -0
- package/dist/core/snapshot-taker.js.map +1 -0
- package/dist/core/stack.js +18 -0
- package/dist/core/stack.js.map +1 -0
- package/dist/core/timecapsule.js +88 -0
- package/dist/core/timecapsule.js.map +1 -0
- package/dist/core/utils.js +309 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/decorator/anchors-decorator.js +53 -0
- package/dist/decorator/anchors-decorator.js.map +1 -0
- package/dist/decorator/bouncing-arrow-decorator.js +52 -0
- package/dist/decorator/bouncing-arrow-decorator.js.map +1 -0
- package/dist/decorator/data-spread-decorator.js +69 -0
- package/dist/decorator/data-spread-decorator.js.map +1 -0
- package/dist/decorator/decotag-decorator.js +33 -0
- package/dist/decorator/decotag-decorator.js.map +1 -0
- package/dist/decorator/index.js +31 -0
- package/dist/decorator/index.js.map +1 -0
- package/dist/decorator/link-decorator.js +66 -0
- package/dist/decorator/link-decorator.js.map +1 -0
- package/dist/effect/gradation.js +37 -0
- package/dist/effect/gradation.js.map +1 -0
- package/dist/effect/index.js +23 -0
- package/dist/effect/index.js.map +1 -0
- package/dist/effect/shadow.js +33 -0
- package/dist/effect/shadow.js.map +1 -0
- package/dist/effect/turn.js +25 -0
- package/dist/effect/turn.js.map +1 -0
- package/dist/event/event-engine.js +76 -0
- package/dist/event/event-engine.js.map +1 -0
- package/dist/event/event-pump.js +92 -0
- package/dist/event/event-pump.js.map +1 -0
- package/dist/event/event-tracker.js +97 -0
- package/dist/event/event-tracker.js.map +1 -0
- package/dist/event/index.js +21 -0
- package/dist/event/index.js.map +1 -0
- package/dist/event/ua-event-handler.js +453 -0
- package/dist/event/ua-event-handler.js.map +1 -0
- package/dist/event-map/animator-handler.js +225 -0
- package/dist/event-map/animator-handler.js.map +1 -0
- package/dist/event-map/animators/animated-icon.js +265 -0
- package/dist/event-map/animators/animated-icon.js.map +1 -0
- package/dist/event-map/animators/border-highlighting.js +476 -0
- package/dist/event-map/animators/border-highlighting.js.map +1 -0
- package/dist/event-map/animators/bouncing-arrow.js +226 -0
- package/dist/event-map/animators/bouncing-arrow.js.map +1 -0
- package/dist/event-map/event-map.js +36 -0
- package/dist/event-map/event-map.js.map +1 -0
- package/dist/event-map/index.js +20 -0
- package/dist/event-map/index.js.map +1 -0
- package/dist/event-map/move-handler.js +233 -0
- package/dist/event-map/move-handler.js.map +1 -0
- package/dist/event-map/paste-handler.js +176 -0
- package/dist/event-map/paste-handler.js.map +1 -0
- package/dist/event-map/shift-handler.js +55 -0
- package/dist/event-map/shift-handler.js.map +1 -0
- package/dist/event-map/text-editor-lite.js +276 -0
- package/dist/event-map/text-editor-lite.js.map +1 -0
- package/dist/event-map/zoom-handler.js +49 -0
- package/dist/event-map/zoom-handler.js.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/layer/action/emphasize.js +42 -0
- package/dist/layer/action/emphasize.js.map +1 -0
- package/dist/layer/action/popup.js +461 -0
- package/dist/layer/action/popup.js.map +1 -0
- package/dist/layer/action/pressed.js +31 -0
- package/dist/layer/action/pressed.js.map +1 -0
- package/dist/layer/add-layer.js +180 -0
- package/dist/layer/add-layer.js.map +1 -0
- package/dist/layer/decotag-layer.js +121 -0
- package/dist/layer/decotag-layer.js.map +1 -0
- package/dist/layer/guide-layer.js +292 -0
- package/dist/layer/guide-layer.js.map +1 -0
- package/dist/layer/index.js +70 -0
- package/dist/layer/index.js.map +1 -0
- package/dist/layer/layer.js +230 -0
- package/dist/layer/layer.js.map +1 -0
- package/dist/layer/minimap-layer.js +84 -0
- package/dist/layer/minimap-layer.js.map +1 -0
- package/dist/layer/model-layer.js +465 -0
- package/dist/layer/model-layer.js.map +1 -0
- package/dist/layer/modeler/anchor-handler.js +193 -0
- package/dist/layer/modeler/anchor-handler.js.map +1 -0
- package/dist/layer/modeler/control-handler.js +95 -0
- package/dist/layer/modeler/control-handler.js.map +1 -0
- package/dist/layer/modeler/focus-outline.js +41 -0
- package/dist/layer/modeler/focus-outline.js.map +1 -0
- package/dist/layer/modeler/group-outline.js +30 -0
- package/dist/layer/modeler/group-outline.js.map +1 -0
- package/dist/layer/modeler/index.js +56 -0
- package/dist/layer/modeler/index.js.map +1 -0
- package/dist/layer/modeler/path-handler.js +300 -0
- package/dist/layer/modeler/path-handler.js.map +1 -0
- package/dist/layer/modeler/resizer.js +333 -0
- package/dist/layer/modeler/resizer.js.map +1 -0
- package/dist/layer/modeler/rotator.js +134 -0
- package/dist/layer/modeler/rotator.js.map +1 -0
- package/dist/layer/modeling-layer.js +491 -0
- package/dist/layer/modeling-layer.js.map +1 -0
- package/dist/layer/reaction-layer.js +111 -0
- package/dist/layer/reaction-layer.js.map +1 -0
- package/dist/layer/scroll-layer.js +191 -0
- package/dist/layer/scroll-layer.js.map +1 -0
- package/dist/layer/selection/selected-finder.js +96 -0
- package/dist/layer/selection/selected-finder.js.map +1 -0
- package/dist/layer/selection-layer.js +373 -0
- package/dist/layer/selection-layer.js.map +1 -0
- package/dist/layer/shift-layer.js +83 -0
- package/dist/layer/shift-layer.js.map +1 -0
- package/dist/layout/absolute.js +30 -0
- package/dist/layout/absolute.js.map +1 -0
- package/dist/layout/card.js +52 -0
- package/dist/layout/card.js.map +1 -0
- package/dist/layout/html-absolute.js +32 -0
- package/dist/layout/html-absolute.js.map +1 -0
- package/dist/layout/index.js +56 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/layout.js +36 -0
- package/dist/layout/layout.js.map +1 -0
- package/dist/layout/linear-horizontal.js +56 -0
- package/dist/layout/linear-horizontal.js.map +1 -0
- package/dist/layout/linear-vertical.js +56 -0
- package/dist/layout/linear-vertical.js.map +1 -0
- package/dist/layout/table.js +106 -0
- package/dist/layout/table.js.map +1 -0
- package/dist/license/license.js +170 -0
- package/dist/license/license.js.map +1 -0
- package/dist/model/compile.js +40 -0
- package/dist/model/compile.js.map +1 -0
- package/dist/model/duplicate.js +19 -0
- package/dist/model/duplicate.js.map +1 -0
- package/dist/model/index.js +34 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/selector.js +104 -0
- package/dist/model/selector.js.map +1 -0
- package/dist/style/compile.js +14 -0
- package/dist/style/compile.js.map +1 -0
- package/dist/style/index.js +14 -0
- package/dist/style/index.js.map +1 -0
- package/dist/things-scene/api/add-start.js +18 -0
- package/dist/things-scene/api/add-start.js.map +1 -0
- package/dist/things-scene/api/add.js +71 -0
- package/dist/things-scene/api/add.js.map +1 -0
- package/dist/things-scene/api/align.js +116 -0
- package/dist/things-scene/api/align.js.map +1 -0
- package/dist/things-scene/api/center-to.js +50 -0
- package/dist/things-scene/api/center-to.js.map +1 -0
- package/dist/things-scene/api/change.js +27 -0
- package/dist/things-scene/api/change.js.map +1 -0
- package/dist/things-scene/api/clipboard.js +45 -0
- package/dist/things-scene/api/clipboard.js.map +1 -0
- package/dist/things-scene/api/distribute.js +57 -0
- package/dist/things-scene/api/distribute.js.map +1 -0
- package/dist/things-scene/api/duplicate.js +47 -0
- package/dist/things-scene/api/duplicate.js.map +1 -0
- package/dist/things-scene/api/fullscreen.js +26 -0
- package/dist/things-scene/api/fullscreen.js.map +1 -0
- package/dist/things-scene/api/group.js +91 -0
- package/dist/things-scene/api/group.js.map +1 -0
- package/dist/things-scene/api/ids.js +28 -0
- package/dist/things-scene/api/ids.js.map +1 -0
- package/dist/things-scene/api/index.js +192 -0
- package/dist/things-scene/api/index.js.map +1 -0
- package/dist/things-scene/api/listener.js +69 -0
- package/dist/things-scene/api/listener.js.map +1 -0
- package/dist/things-scene/api/paste-start.js +27 -0
- package/dist/things-scene/api/paste-start.js.map +1 -0
- package/dist/things-scene/api/place.js +98 -0
- package/dist/things-scene/api/place.js.map +1 -0
- package/dist/things-scene/api/remove.js +57 -0
- package/dist/things-scene/api/remove.js.map +1 -0
- package/dist/things-scene/api/symmetry.js +47 -0
- package/dist/things-scene/api/symmetry.js.map +1 -0
- package/dist/things-scene/api/to-data-url.js +76 -0
- package/dist/things-scene/api/to-data-url.js.map +1 -0
- package/dist/things-scene/api/zorder.js +68 -0
- package/dist/things-scene/api/zorder.js.map +1 -0
- package/dist/things-scene/application-context.js +168 -0
- package/dist/things-scene/application-context.js.map +1 -0
- package/dist/things-scene/config.js +18 -0
- package/dist/things-scene/config.js.map +1 -0
- package/dist/things-scene/create.js +67 -0
- package/dist/things-scene/create.js.map +1 -0
- package/dist/things-scene/fps.js +26 -0
- package/dist/things-scene/fps.js.map +1 -0
- package/dist/things-scene/index.js +152 -0
- package/dist/things-scene/index.js.map +1 -0
- package/dist/things-scene/polyfill.js +111 -0
- package/dist/things-scene/polyfill.js.map +1 -0
- package/dist/things-scene/scene.js +442 -0
- package/dist/things-scene/scene.js.map +1 -0
- package/dist/things-scene/version.js +12 -0
- package/dist/things-scene/version.js.map +1 -0
- package/package.json +8 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"place.js","names":["_commandChange","_interopRequireDefault","require","e","__esModule","default","LEFT","RIGHT","CENTER","TOP","BOTTOM","MIDDLE","ALIGN_COMMANDS","_place","type","selected","parent","width","height","bounds","i","length","left","top","place","hasSameParentForAllSelected","indexOf","filter","c","stuck","commander","app","CommandChange","around"],"sources":["../../../src/things-scene/api/place.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport CommandChange from '../../command/command-change.js'\n\nconst LEFT = 'left'\nconst RIGHT = 'right'\nconst CENTER = 'center'\nconst TOP = 'top'\nconst BOTTOM = 'bottom'\nconst MIDDLE = 'middle'\n\nconst ALIGN_COMMANDS = [LEFT, RIGHT, CENTER, TOP, MIDDLE, BOTTOM]\n\nfunction _place(type, selected) {\n const parent = selected[0].parent\n const { width, height } = parent.bounds\n\n switch (type) {\n case LEFT:\n for (let i = 0; i < selected.length; i++) {\n let bounds = selected[i].bounds\n selected[i].bounds = {\n ...bounds,\n left: 0\n }\n }\n\n break\n case CENTER:\n for (let i = 0; i < selected.length; i++) {\n let bounds = selected[i].bounds\n selected[i].bounds = {\n ...bounds,\n left: width / 2 - bounds.width / 2\n }\n }\n break\n case RIGHT:\n for (let i = 0; i < selected.length; i++) {\n let bounds = selected[i].bounds\n selected[i].bounds = {\n ...bounds,\n left: width - bounds.width\n }\n }\n break\n case TOP:\n for (let i = 0; i < selected.length; i++) {\n let bounds = selected[i].bounds\n selected[i].bounds = {\n ...bounds,\n top: 0\n }\n }\n break\n case MIDDLE:\n for (let i = 0; i < selected.length; i++) {\n let bounds = selected[i].bounds\n selected[i].bounds = {\n ...bounds,\n top: height / 2 - bounds.height / 2\n }\n }\n break\n case BOTTOM:\n for (let i = 0; i < selected.length; i++) {\n let bounds = selected[i].bounds\n selected[i].bounds = {\n ...bounds,\n top: height - bounds.height\n }\n }\n break\n\n default:\n return\n }\n}\n\n/* this should be root-container */\nexport default function place(type) {\n if (!this.hasSameParentForAllSelected || ALIGN_COMMANDS.indexOf(type) == -1) {\n return\n }\n\n var selected = this.selected.filter(c => !c.stuck)\n\n var commander = this.app.commander\n\n CommandChange.around(commander, function () {\n // 선택된 컴포넌트들을 움직인다.\n _place(type, selected)\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = remove;
|
|
7
|
+
var _commandMigrate = _interopRequireDefault(require("../../command/command-migrate.js"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
/*
|
|
10
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/* this should be root-container */
|
|
14
|
+
function remove() {
|
|
15
|
+
var oldSelected = this.selected;
|
|
16
|
+
this.selected = [];
|
|
17
|
+
var parent = null;
|
|
18
|
+
var changes = oldSelected.filter(component => !component.isRootModel() && (component.parent.focusible || component.parent.isGroup())).map(component => {
|
|
19
|
+
if (!parent) parent = component.parent;
|
|
20
|
+
return {
|
|
21
|
+
component: component,
|
|
22
|
+
to_container: null
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* 부모가 group인 경우, 하위 컴포넌트들이 삭제되고, 최종 한개 이하의 컴포넌트가 남는 경우
|
|
28
|
+
* 남은 컴포넌트는 group의 부모 아래로 옮겨지고,
|
|
29
|
+
* group은 사라지도록 한다.
|
|
30
|
+
* group이 사라지게 되면, group의 부모부터 바운드를 재계산한다.
|
|
31
|
+
*/
|
|
32
|
+
while (parent && parent.isGroup()) {
|
|
33
|
+
let remains = [];
|
|
34
|
+
parent.components.filter(component => !changes.find(change => change.component === component)).forEach(component => remains.push(component));
|
|
35
|
+
if (remains.length > 1) break;
|
|
36
|
+
let grandfa = parent.parent;
|
|
37
|
+
remains.forEach(component => changes.push({
|
|
38
|
+
component,
|
|
39
|
+
to_container: grandfa
|
|
40
|
+
}));
|
|
41
|
+
changes.push({
|
|
42
|
+
component: parent,
|
|
43
|
+
to_container: null
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
/*
|
|
47
|
+
* 부모가 사라질 것이므로, 부모의 부모로 parent 참조를 변경한다.
|
|
48
|
+
* 부모의 부모가 다시 그룹이라면, 위 과정을 반복한다.
|
|
49
|
+
*/
|
|
50
|
+
parent = grandfa;
|
|
51
|
+
}
|
|
52
|
+
if (changes.length > 0) this.app.commander.execute(new _commandMigrate.default({
|
|
53
|
+
changes
|
|
54
|
+
}));
|
|
55
|
+
parent && parent.calculateBounds && parent.calculateBounds();
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","names":["_commandMigrate","_interopRequireDefault","require","e","__esModule","default","remove","oldSelected","selected","parent","changes","filter","component","isRootModel","focusible","isGroup","map","to_container","remains","components","find","change","forEach","push","length","grandfa","app","commander","execute","CommandMigrate","calculateBounds"],"sources":["../../../src/things-scene/api/remove.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport CommandMigrate from '../../command/command-migrate.js'\n\n/* this should be root-container */\nexport default function remove() {\n var oldSelected = this.selected\n\n this.selected = []\n\n var parent = null\n\n var changes = oldSelected\n .filter(component => !component.isRootModel() && (component.parent.focusible || component.parent.isGroup()))\n .map(component => {\n if (!parent) parent = component.parent\n return {\n component: component,\n to_container: null\n }\n })\n\n /*\n * 부모가 group인 경우, 하위 컴포넌트들이 삭제되고, 최종 한개 이하의 컴포넌트가 남는 경우\n * 남은 컴포넌트는 group의 부모 아래로 옮겨지고,\n * group은 사라지도록 한다.\n * group이 사라지게 되면, group의 부모부터 바운드를 재계산한다.\n */\n while (parent && parent.isGroup()) {\n let remains = []\n\n parent.components\n .filter(component => !changes.find(change => change.component === component))\n .forEach(component => remains.push(component))\n\n if (remains.length > 1) break\n\n let grandfa = parent.parent\n remains.forEach(component => changes.push({ component, to_container: grandfa }))\n\n changes.push({\n component: parent,\n to_container: null\n })\n\n /*\n * 부모가 사라질 것이므로, 부모의 부모로 parent 참조를 변경한다.\n * 부모의 부모가 다시 그룹이라면, 위 과정을 반복한다.\n */\n parent = grandfa\n }\n\n if (changes.length > 0) this.app.commander.execute(new CommandMigrate({ changes }))\n\n parent && parent.calculateBounds && parent.calculateBounds()\n}\n"],"mappings":";;;;;;AAIA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6D,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJ7D;AACA;AACA;;AAIA;AACe,SAASG,MAAMA,CAAA,EAAG;EAC/B,IAAIC,WAAW,GAAG,IAAI,CAACC,QAAQ;EAE/B,IAAI,CAACA,QAAQ,GAAG,EAAE;EAElB,IAAIC,MAAM,GAAG,IAAI;EAEjB,IAAIC,OAAO,GAAGH,WAAW,CACtBI,MAAM,CAACC,SAAS,IAAI,CAACA,SAAS,CAACC,WAAW,CAAC,CAAC,KAAKD,SAAS,CAACH,MAAM,CAACK,SAAS,IAAIF,SAAS,CAACH,MAAM,CAACM,OAAO,CAAC,CAAC,CAAC,CAAC,CAC3GC,GAAG,CAACJ,SAAS,IAAI;IAChB,IAAI,CAACH,MAAM,EAAEA,MAAM,GAAGG,SAAS,CAACH,MAAM;IACtC,OAAO;MACLG,SAAS,EAAEA,SAAS;MACpBK,YAAY,EAAE;IAChB,CAAC;EACH,CAAC,CAAC;;EAEJ;AACF;AACA;AACA;AACA;AACA;EACE,OAAOR,MAAM,IAAIA,MAAM,CAACM,OAAO,CAAC,CAAC,EAAE;IACjC,IAAIG,OAAO,GAAG,EAAE;IAEhBT,MAAM,CAACU,UAAU,CACdR,MAAM,CAACC,SAAS,IAAI,CAACF,OAAO,CAACU,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACT,SAAS,KAAKA,SAAS,CAAC,CAAC,CAC5EU,OAAO,CAACV,SAAS,IAAIM,OAAO,CAACK,IAAI,CAACX,SAAS,CAAC,CAAC;IAEhD,IAAIM,OAAO,CAACM,MAAM,GAAG,CAAC,EAAE;IAExB,IAAIC,OAAO,GAAGhB,MAAM,CAACA,MAAM;IAC3BS,OAAO,CAACI,OAAO,CAACV,SAAS,IAAIF,OAAO,CAACa,IAAI,CAAC;MAAEX,SAAS;MAAEK,YAAY,EAAEQ;IAAQ,CAAC,CAAC,CAAC;IAEhFf,OAAO,CAACa,IAAI,CAAC;MACXX,SAAS,EAAEH,MAAM;MACjBQ,YAAY,EAAE;IAChB,CAAC,CAAC;;IAEF;AACJ;AACA;AACA;IACIR,MAAM,GAAGgB,OAAO;EAClB;EAEA,IAAIf,OAAO,CAACc,MAAM,GAAG,CAAC,EAAE,IAAI,CAACE,GAAG,CAACC,SAAS,CAACC,OAAO,CAAC,IAAIC,uBAAc,CAAC;IAAEnB;EAAQ,CAAC,CAAC,CAAC;EAEnFD,MAAM,IAAIA,MAAM,CAACqB,eAAe,IAAIrB,MAAM,CAACqB,eAAe,CAAC,CAAC;AAC9D","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.symmetryX = symmetryX;
|
|
7
|
+
exports.symmetryY = symmetryY;
|
|
8
|
+
var _component = _interopRequireDefault(require("../../components/component.js"));
|
|
9
|
+
var _commandChange = _interopRequireDefault(require("../../command/command-change.js"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
/*
|
|
12
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/* this should be root-container */
|
|
16
|
+
|
|
17
|
+
function _symmetryX() {
|
|
18
|
+
var selected = this.selected;
|
|
19
|
+
if (selected.length == 0) return;
|
|
20
|
+
var boundsList = selected.map(component => {
|
|
21
|
+
return component.bounds;
|
|
22
|
+
});
|
|
23
|
+
var bounds = _component.default.union(boundsList);
|
|
24
|
+
var x = bounds.left + bounds.width / 2;
|
|
25
|
+
selected.map(component => {
|
|
26
|
+
component.symmetryX(x);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function _symmetryY() {
|
|
30
|
+
var selected = this.selected;
|
|
31
|
+
if (selected.length == 0) return;
|
|
32
|
+
var boundsList = selected.map(component => {
|
|
33
|
+
return component.bounds;
|
|
34
|
+
});
|
|
35
|
+
var bounds = _component.default.union(boundsList);
|
|
36
|
+
var y = bounds.top + bounds.height / 2;
|
|
37
|
+
selected.map(component => {
|
|
38
|
+
component.symmetryY(y);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function symmetryX() {
|
|
42
|
+
_commandChange.default.around(this.app.commander, _symmetryX, this);
|
|
43
|
+
}
|
|
44
|
+
function symmetryY() {
|
|
45
|
+
_commandChange.default.around(this.app.commander, _symmetryY, this);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=symmetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symmetry.js","names":["_component","_interopRequireDefault","require","_commandChange","e","__esModule","default","_symmetryX","selected","length","boundsList","map","component","bounds","Component","union","x","left","width","symmetryX","_symmetryY","y","top","height","symmetryY","CommandChange","around","app","commander"],"sources":["../../../src/things-scene/api/symmetry.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from '../../components/component.js'\nimport CommandChange from '../../command/command-change.js'\n\n/* this should be root-container */\n\nfunction _symmetryX() {\n var selected = this.selected\n\n if (selected.length == 0) return\n\n var boundsList = selected.map(component => {\n return component.bounds\n })\n var bounds = Component.union(boundsList)\n var x = bounds.left + bounds.width / 2\n\n selected.map(component => {\n component.symmetryX(x)\n })\n}\n\nfunction _symmetryY() {\n var selected = this.selected\n\n if (selected.length == 0) return\n\n var boundsList = selected.map(component => {\n return component.bounds\n })\n var bounds = Component.union(boundsList)\n var y = bounds.top + bounds.height / 2\n\n selected.map(component => {\n component.symmetryY(y)\n })\n}\n\nexport function symmetryX() {\n CommandChange.around(this.app.commander, _symmetryX, this)\n}\n\nexport function symmetryY() {\n CommandChange.around(this.app.commander, _symmetryY, this)\n}\n"],"mappings":";;;;;;;AAIA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA2D,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAL3D;AACA;AACA;;AAKA;;AAEA,SAASG,UAAUA,CAAA,EAAG;EACpB,IAAIC,QAAQ,GAAG,IAAI,CAACA,QAAQ;EAE5B,IAAIA,QAAQ,CAACC,MAAM,IAAI,CAAC,EAAE;EAE1B,IAAIC,UAAU,GAAGF,QAAQ,CAACG,GAAG,CAACC,SAAS,IAAI;IACzC,OAAOA,SAAS,CAACC,MAAM;EACzB,CAAC,CAAC;EACF,IAAIA,MAAM,GAAGC,kBAAS,CAACC,KAAK,CAACL,UAAU,CAAC;EACxC,IAAIM,CAAC,GAAGH,MAAM,CAACI,IAAI,GAAGJ,MAAM,CAACK,KAAK,GAAG,CAAC;EAEtCV,QAAQ,CAACG,GAAG,CAACC,SAAS,IAAI;IACxBA,SAAS,CAACO,SAAS,CAACH,CAAC,CAAC;EACxB,CAAC,CAAC;AACJ;AAEA,SAASI,UAAUA,CAAA,EAAG;EACpB,IAAIZ,QAAQ,GAAG,IAAI,CAACA,QAAQ;EAE5B,IAAIA,QAAQ,CAACC,MAAM,IAAI,CAAC,EAAE;EAE1B,IAAIC,UAAU,GAAGF,QAAQ,CAACG,GAAG,CAACC,SAAS,IAAI;IACzC,OAAOA,SAAS,CAACC,MAAM;EACzB,CAAC,CAAC;EACF,IAAIA,MAAM,GAAGC,kBAAS,CAACC,KAAK,CAACL,UAAU,CAAC;EACxC,IAAIW,CAAC,GAAGR,MAAM,CAACS,GAAG,GAAGT,MAAM,CAACU,MAAM,GAAG,CAAC;EAEtCf,QAAQ,CAACG,GAAG,CAACC,SAAS,IAAI;IACxBA,SAAS,CAACY,SAAS,CAACH,CAAC,CAAC;EACxB,CAAC,CAAC;AACJ;AAEO,SAASF,SAASA,CAAA,EAAG;EAC1BM,sBAAa,CAACC,MAAM,CAAC,IAAI,CAACC,GAAG,CAACC,SAAS,EAAErB,UAAU,EAAE,IAAI,CAAC;AAC5D;AAEO,SAASiB,SAASA,CAAA,EAAG;EAC1BC,sBAAa,CAACC,MAAM,CAAC,IAAI,CAACC,GAAG,CAACC,SAAS,EAAER,UAAU,EAAE,IAAI,CAAC;AAC5D","ignoreList":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.toDataURL = toDataURL;
|
|
7
|
+
var _component = _interopRequireDefault(require("../../components/component.js"));
|
|
8
|
+
var Const = _interopRequireWildcard(require("../../const.js"));
|
|
9
|
+
var _domToImage = _interopRequireDefault(require("../../core/dom-to-image.js"));
|
|
10
|
+
var _logger = require("../../core/logger.js");
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
/*
|
|
15
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
function toDataURL(type, encoderOptions, width, height) {
|
|
19
|
+
var layer = this.model_layer;
|
|
20
|
+
var overlay = layer._overlay;
|
|
21
|
+
return new Promise(function (resolve, reject) {
|
|
22
|
+
if (!layer) {
|
|
23
|
+
reject('No target model');
|
|
24
|
+
} else {
|
|
25
|
+
var origin_width = layer.get('width');
|
|
26
|
+
var origin_height = layer.get('height');
|
|
27
|
+
width = width || origin_width;
|
|
28
|
+
height = height || origin_height;
|
|
29
|
+
var translate = layer.get('translate');
|
|
30
|
+
var scale = layer.get('scale');
|
|
31
|
+
var minscale = Math.min(width / origin_width, height / origin_height);
|
|
32
|
+
width = origin_width * minscale;
|
|
33
|
+
height = origin_height * minscale;
|
|
34
|
+
layer.set('translate', {
|
|
35
|
+
x: 0,
|
|
36
|
+
y: 0
|
|
37
|
+
});
|
|
38
|
+
layer.set('scale', {
|
|
39
|
+
x: minscale / Const.DPPX,
|
|
40
|
+
y: minscale / Const.DPPX
|
|
41
|
+
});
|
|
42
|
+
var canvas = _component.default.createCanvas(width, height);
|
|
43
|
+
var context = canvas.getContext('2d');
|
|
44
|
+
layer.draw(context);
|
|
45
|
+
layer.set('translate', translate);
|
|
46
|
+
layer.set('scale', scale);
|
|
47
|
+
if (!overlay) {
|
|
48
|
+
resolve(canvas.toDataURL(type, encoderOptions));
|
|
49
|
+
canvas = null;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
_domToImage.default.toPng(overlay, {
|
|
53
|
+
sx: minscale,
|
|
54
|
+
sy: minscale,
|
|
55
|
+
width: width,
|
|
56
|
+
height: height
|
|
57
|
+
// filter: function(node) {
|
|
58
|
+
// return (node.tagName !== 'IFRAME');
|
|
59
|
+
// }
|
|
60
|
+
}).then(function (pngUrl) {
|
|
61
|
+
var img = new Image();
|
|
62
|
+
img.onload = function () {
|
|
63
|
+
context.drawImage(img, 0, 0, width, height);
|
|
64
|
+
resolve(canvas.toDataURL(type, encoderOptions));
|
|
65
|
+
canvas = null;
|
|
66
|
+
};
|
|
67
|
+
img.src = pngUrl;
|
|
68
|
+
}, function (err) {
|
|
69
|
+
(0, _logger.error)(err);
|
|
70
|
+
resolve(canvas.toDataURL(type, encoderOptions));
|
|
71
|
+
canvas = null;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=to-data-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-data-url.js","names":["_component","_interopRequireDefault","require","Const","_interopRequireWildcard","_domToImage","_logger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","toDataURL","type","encoderOptions","width","height","layer","model_layer","overlay","_overlay","Promise","resolve","reject","origin_width","origin_height","translate","scale","minscale","Math","min","x","y","DPPX","canvas","Component","createCanvas","context","getContext","draw","domtoimage","toPng","sx","sy","then","pngUrl","img","Image","onload","drawImage","src","err","error"],"sources":["../../../src/things-scene/api/to-data-url.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from '../../components/component.js'\nimport * as Const from '../../const.js'\nimport domtoimage from '../../core/dom-to-image.js'\nimport { error } from '../../core/logger.js'\n\nexport function toDataURL(type, encoderOptions, width, height) {\n var layer = this.model_layer\n var overlay = layer._overlay\n\n return new Promise(function (resolve, reject) {\n if (!layer) {\n reject('No target model')\n } else {\n var origin_width = layer.get('width')\n var origin_height = layer.get('height')\n\n width = width || origin_width\n height = height || origin_height\n\n var translate = layer.get('translate')\n var scale = layer.get('scale')\n\n var minscale = Math.min(width / origin_width, height / origin_height)\n width = origin_width * minscale\n height = origin_height * minscale\n\n layer.set('translate', {\n x: 0,\n y: 0\n })\n layer.set('scale', {\n x: minscale / Const.DPPX,\n y: minscale / Const.DPPX\n })\n\n var canvas = Component.createCanvas(width, height)\n\n var context = canvas.getContext('2d')\n layer.draw(context)\n\n layer.set('translate', translate)\n layer.set('scale', scale)\n\n if (!overlay) {\n resolve(canvas.toDataURL(type, encoderOptions))\n canvas = null\n return\n }\n\n domtoimage\n .toPng(overlay, {\n sx: minscale,\n sy: minscale,\n width: width,\n height: height\n // filter: function(node) {\n // return (node.tagName !== 'IFRAME');\n // }\n })\n .then(\n function (pngUrl) {\n var img = new Image()\n\n img.onload = function () {\n context.drawImage(img, 0, 0, width, height)\n\n resolve(canvas.toDataURL(type, encoderOptions))\n\n canvas = null\n }\n\n img.src = pngUrl\n },\n function (err) {\n error(err)\n\n resolve(canvas.toDataURL(type, encoderOptions))\n\n canvas = null\n }\n )\n }\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.move = move;
|
|
7
|
+
exports.zorder = zorder;
|
|
8
|
+
var _commandMigrate = _interopRequireDefault(require("../../command/command-migrate.js"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/*
|
|
11
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/* this should be root-container */
|
|
15
|
+
|
|
16
|
+
function move(component, to_container, to_index) {
|
|
17
|
+
this.app.commander.execute(new _commandMigrate.default({
|
|
18
|
+
changes: [{
|
|
19
|
+
component,
|
|
20
|
+
to_container,
|
|
21
|
+
to_index
|
|
22
|
+
}]
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
function zorder(type) {
|
|
26
|
+
var selected = this.selected.filter(c => !c.stuck);
|
|
27
|
+
if (selected.length == 0 || selected[0].isRootModel()) return;
|
|
28
|
+
if (selected.length > 1 && (type == 'forward' || type == 'backward')) return;
|
|
29
|
+
var parent = selected[0].parent;
|
|
30
|
+
var changes;
|
|
31
|
+
if (type == 'forward') {
|
|
32
|
+
let index = parent.indexOf(selected[0]);
|
|
33
|
+
changes = [{
|
|
34
|
+
component: selected[0],
|
|
35
|
+
from_container: parent,
|
|
36
|
+
to_container: parent,
|
|
37
|
+
from_index: index,
|
|
38
|
+
to_index: index + 1
|
|
39
|
+
}];
|
|
40
|
+
} else if (type == 'backward') {
|
|
41
|
+
let index = parent.indexOf(selected[0]);
|
|
42
|
+
changes = [{
|
|
43
|
+
component: selected[0],
|
|
44
|
+
from_container: parent,
|
|
45
|
+
to_container: parent,
|
|
46
|
+
from_index: index,
|
|
47
|
+
to_index: index - 1
|
|
48
|
+
}];
|
|
49
|
+
} else {
|
|
50
|
+
/* case of front or back */
|
|
51
|
+
changes = selected.filter(component => component.parent === parent).sort((c1, c2) => {
|
|
52
|
+
let ret = parent.indexOf(c1) < parent.indexOf(c2);
|
|
53
|
+
return type == 'front' ? ret : !ret;
|
|
54
|
+
}).map((component, i) => {
|
|
55
|
+
let index = parent.indexOf(component);
|
|
56
|
+
return {
|
|
57
|
+
component: component,
|
|
58
|
+
to_container: parent,
|
|
59
|
+
to_index: type == 'front' ? parent.components.length - i - 1 : i
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
var command = new _commandMigrate.default({
|
|
64
|
+
changes
|
|
65
|
+
});
|
|
66
|
+
this.app.commander.execute(command);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=zorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zorder.js","names":["_commandMigrate","_interopRequireDefault","require","e","__esModule","default","move","component","to_container","to_index","app","commander","execute","CommandMigrate","changes","zorder","type","selected","filter","c","stuck","length","isRootModel","parent","index","indexOf","from_container","from_index","sort","c1","c2","ret","map","i","components","command"],"sources":["../../../src/things-scene/api/zorder.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport CommandMigrate from '../../command/command-migrate.js'\n\n/* this should be root-container */\n\nexport function move(component, to_container, to_index) {\n this.app.commander.execute(\n new CommandMigrate({\n changes: [\n {\n component,\n to_container,\n to_index\n }\n ]\n })\n )\n}\n\nexport function zorder(type) {\n var selected = this.selected.filter(c => !c.stuck)\n\n if (selected.length == 0 || selected[0].isRootModel()) return\n\n if (selected.length > 1 && (type == 'forward' || type == 'backward')) return\n\n var parent = selected[0].parent\n\n var changes\n\n if (type == 'forward') {\n let index = parent.indexOf(selected[0])\n\n changes = [\n {\n component: selected[0],\n from_container: parent,\n to_container: parent,\n from_index: index,\n to_index: index + 1\n }\n ]\n } else if (type == 'backward') {\n let index = parent.indexOf(selected[0])\n\n changes = [\n {\n component: selected[0],\n from_container: parent,\n to_container: parent,\n from_index: index,\n to_index: index - 1\n }\n ]\n } else {\n /* case of front or back */\n changes = selected\n .filter(component => component.parent === parent)\n .sort((c1, c2) => {\n let ret = parent.indexOf(c1) < parent.indexOf(c2)\n return type == 'front' ? ret : !ret\n })\n .map((component, i) => {\n let index = parent.indexOf(component)\n\n return {\n component: component,\n to_container: parent,\n to_index: type == 'front' ? parent.components.length - i - 1 : i\n }\n })\n }\n\n var command = new CommandMigrate({ changes })\n this.app.commander.execute(command)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var Const = _interopRequireWildcard(require("../const.js"));
|
|
8
|
+
var core = _interopRequireWildcard(require("../core/index.js"));
|
|
9
|
+
var _logger = require("../core/logger.js");
|
|
10
|
+
var _config = _interopRequireDefault(require("./config.js"));
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
/*
|
|
15
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const BASE_URL = '$base_url';
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
* Calculate PPI/DPI
|
|
22
|
+
*
|
|
23
|
+
* w: 해상도 넓이 값
|
|
24
|
+
* h: 해상도 높이 값
|
|
25
|
+
* d: 길이 값(단위: inch)
|
|
26
|
+
* opt: d 값의 의미
|
|
27
|
+
* - 'd' : diagonal 대각선
|
|
28
|
+
* - 'w' :
|
|
29
|
+
*/
|
|
30
|
+
function calcPPI(w, h, d, opt) {
|
|
31
|
+
w > 0 || (w = 1);
|
|
32
|
+
h > 0 || (h = 1);
|
|
33
|
+
opt || (opt = 'd');
|
|
34
|
+
var dpi = (opt == 'd' ? Math.sqrt(w * w + h * h) : opt == 'w' ? w : h) / d;
|
|
35
|
+
return dpi > 0 ? Math.round(dpi) : 0;
|
|
36
|
+
}
|
|
37
|
+
const ROTATION_STEP = Math.PI / 12;
|
|
38
|
+
class ApplicationContext {
|
|
39
|
+
constructor(mode, refProvider) {
|
|
40
|
+
this._mode = mode;
|
|
41
|
+
this.screen = _config.default.screen();
|
|
42
|
+
this._baseUrl = typeof window != 'undefined' ? window.location.origin : null;
|
|
43
|
+
this._refProvider = refProvider;
|
|
44
|
+
if (this.isEditMode) {
|
|
45
|
+
this._rotateStep = ROTATION_STEP; // 모델러 설정임
|
|
46
|
+
this._rotateStepForced = false; // 모델러 설정임
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
dispose() {
|
|
50
|
+
if (this._dataSubscriptionProvider) {
|
|
51
|
+
this._dataSubscriptionProvider.dispose();
|
|
52
|
+
}
|
|
53
|
+
delete this._dataStorage;
|
|
54
|
+
}
|
|
55
|
+
_calcScreen() {
|
|
56
|
+
var physical_resolution = {
|
|
57
|
+
width: screen.width,
|
|
58
|
+
height: screen.height
|
|
59
|
+
};
|
|
60
|
+
this._PPI = calcPPI(physical_resolution.width, physical_resolution.height, this.screen);
|
|
61
|
+
this._PPM = this._PPI / 25.4;
|
|
62
|
+
}
|
|
63
|
+
subscribe(tag, component) {
|
|
64
|
+
return this._dataSubscriptionProvider?.subscribe(tag, component);
|
|
65
|
+
}
|
|
66
|
+
get refProvider() {
|
|
67
|
+
return this._refProvider;
|
|
68
|
+
}
|
|
69
|
+
set dataSubscriptionProvider(dataSubscriptionProvider) {
|
|
70
|
+
this._dataSubscriptionProvider = dataSubscriptionProvider;
|
|
71
|
+
}
|
|
72
|
+
get dataSubscriptionProvider() {
|
|
73
|
+
return this._dataSubscriptionProvider;
|
|
74
|
+
}
|
|
75
|
+
set commander(commander) {
|
|
76
|
+
this._commander = commander;
|
|
77
|
+
}
|
|
78
|
+
get commander() {
|
|
79
|
+
return this._commander;
|
|
80
|
+
}
|
|
81
|
+
get screen() {
|
|
82
|
+
return this._screen;
|
|
83
|
+
}
|
|
84
|
+
set screen(screen) {
|
|
85
|
+
this._screen = screen;
|
|
86
|
+
this._calcScreen();
|
|
87
|
+
}
|
|
88
|
+
get DPPX() {
|
|
89
|
+
return Const.DPPX;
|
|
90
|
+
}
|
|
91
|
+
get PPI() {
|
|
92
|
+
return this._PPI;
|
|
93
|
+
}
|
|
94
|
+
get PPM() {
|
|
95
|
+
return this._PPM;
|
|
96
|
+
}
|
|
97
|
+
get mode() {
|
|
98
|
+
return this._mode;
|
|
99
|
+
}
|
|
100
|
+
set mode(mode) {
|
|
101
|
+
var before = this._mode;
|
|
102
|
+
if (before === mode) return;
|
|
103
|
+
this._mode = mode;
|
|
104
|
+
this.trigger('mode', mode, before);
|
|
105
|
+
}
|
|
106
|
+
get isViewMode() {
|
|
107
|
+
return this._mode == Const.MODE_VIEW;
|
|
108
|
+
}
|
|
109
|
+
get isEditMode() {
|
|
110
|
+
return this._mode == Const.MODE_EDIT;
|
|
111
|
+
}
|
|
112
|
+
get baseUrl() {
|
|
113
|
+
return this._baseUrl;
|
|
114
|
+
}
|
|
115
|
+
set baseUrl(baseUrl) {
|
|
116
|
+
if (!baseUrl) return;
|
|
117
|
+
if (this._baseUrl == baseUrl) return;
|
|
118
|
+
this._baseUrl = baseUrl;
|
|
119
|
+
|
|
120
|
+
// visualizer에서 pop up 킬 경우 깜빡거리는 현상때문에 주석처리
|
|
121
|
+
// if (this.refProvider && this.refProvider.references)
|
|
122
|
+
// Object.values(this.refProvider.references).forEach(v => (v.model = v.model))
|
|
123
|
+
}
|
|
124
|
+
url(x) {
|
|
125
|
+
try {
|
|
126
|
+
var usingBaseUrl = x.includes(BASE_URL);
|
|
127
|
+
var cvt;
|
|
128
|
+
if (usingBaseUrl) cvt = new URL(x.replace(BASE_URL, this.baseUrl), this.baseUrl);else cvt = new URL(x, location.origin);
|
|
129
|
+
return cvt.href;
|
|
130
|
+
} catch (e) {
|
|
131
|
+
(0, _logger.warn)(e, x);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/*
|
|
136
|
+
* 스텝 회전시에 회전가능 단위를 설정함.
|
|
137
|
+
* (스텝 회전이란 모델링시 사용자 편의를 위해서 일정 단위로 회전을 할 수 있도록 하는 기능임)
|
|
138
|
+
*/
|
|
139
|
+
get rotateStep() {
|
|
140
|
+
return this._rotateStep;
|
|
141
|
+
}
|
|
142
|
+
set rotateStep(step) {
|
|
143
|
+
this._rotateStep = Number(step) || ROTATION_STEP;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/*
|
|
147
|
+
* 스텝 회전을 강제하는 설정임. 스텝 회전을 강제하면 설정된 rotateStep 단위로만 값을 설정할 수 있음.
|
|
148
|
+
* 일반적으로는 컴포넌트 회전시에 사용자가 shift키를 누른 상태인 경우 스텝회전이 되나,
|
|
149
|
+
* rotateStepForce을 true로 주어서 스텝회전을 강제하면 항상 스텝회전이 적용된다.
|
|
150
|
+
*/
|
|
151
|
+
get rotateStepForced() {
|
|
152
|
+
return this._rotateStepForced;
|
|
153
|
+
}
|
|
154
|
+
set rotateStepForced(force) {
|
|
155
|
+
this._rotateStepForced = !!force;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* persistent data storage */
|
|
159
|
+
get dataStorage() {
|
|
160
|
+
return this._dataStorage;
|
|
161
|
+
}
|
|
162
|
+
set dataStorage(dataStorage) {
|
|
163
|
+
this._dataStorage = dataStorage;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.default = ApplicationContext;
|
|
167
|
+
core.mixin(ApplicationContext.prototype, core.event.withEvent);
|
|
168
|
+
//# sourceMappingURL=application-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-context.js","names":["Const","_interopRequireWildcard","require","core","_logger","_config","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BASE_URL","calcPPI","w","h","d","opt","dpi","Math","sqrt","round","ROTATION_STEP","PI","ApplicationContext","constructor","mode","refProvider","_mode","screen","config","_baseUrl","window","location","origin","_refProvider","isEditMode","_rotateStep","_rotateStepForced","dispose","_dataSubscriptionProvider","_dataStorage","_calcScreen","physical_resolution","width","height","_PPI","_PPM","subscribe","tag","component","dataSubscriptionProvider","commander","_commander","_screen","DPPX","PPI","PPM","before","trigger","isViewMode","MODE_VIEW","MODE_EDIT","baseUrl","url","x","usingBaseUrl","includes","cvt","URL","replace","href","warn","rotateStep","step","Number","rotateStepForced","force","dataStorage","exports","mixin","prototype","event","withEvent"],"sources":["../../src/things-scene/application-context.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as Const from '../const.js'\nimport * as core from '../core/index.js'\nimport { warn } from '../core/logger.js'\nimport config from './config.js'\n\nconst BASE_URL = '$base_url'\n\n/*\n * Calculate PPI/DPI\n *\n * w: 해상도 넓이 값\n * h: 해상도 높이 값\n * d: 길이 값(단위: inch)\n * opt: d 값의 의미\n * - 'd' : diagonal 대각선\n * - 'w' :\n */\nfunction calcPPI(w, h, d, opt) {\n w > 0 || (w = 1)\n h > 0 || (h = 1)\n opt || (opt = 'd')\n var dpi = (opt == 'd' ? Math.sqrt(w * w + h * h) : opt == 'w' ? w : h) / d\n return dpi > 0 ? Math.round(dpi) : 0\n}\n\nconst ROTATION_STEP = Math.PI / 12\n\nexport default class ApplicationContext {\n constructor(mode, refProvider) {\n this._mode = mode\n this.screen = config.screen()\n this._baseUrl = typeof window != 'undefined' ? window.location.origin : null\n this._refProvider = refProvider\n\n if (this.isEditMode) {\n this._rotateStep = ROTATION_STEP // 모델러 설정임\n this._rotateStepForced = false // 모델러 설정임\n }\n }\n\n dispose() {\n if (this._dataSubscriptionProvider) {\n this._dataSubscriptionProvider.dispose()\n }\n delete this._dataStorage\n }\n\n _calcScreen() {\n var physical_resolution = {\n width: screen.width,\n height: screen.height\n }\n\n this._PPI = calcPPI(physical_resolution.width, physical_resolution.height, this.screen)\n this._PPM = this._PPI / 25.4\n }\n\n subscribe(tag, component) {\n return this._dataSubscriptionProvider?.subscribe(tag, component)\n }\n\n get refProvider() {\n return this._refProvider\n }\n\n set dataSubscriptionProvider(dataSubscriptionProvider) {\n this._dataSubscriptionProvider = dataSubscriptionProvider\n }\n\n get dataSubscriptionProvider() {\n return this._dataSubscriptionProvider\n }\n\n set commander(commander) {\n this._commander = commander\n }\n\n get commander() {\n return this._commander\n }\n\n get screen() {\n return this._screen\n }\n\n set screen(screen) {\n this._screen = screen\n this._calcScreen()\n }\n\n get DPPX() {\n return Const.DPPX\n }\n\n get PPI() {\n return this._PPI\n }\n\n get PPM() {\n return this._PPM\n }\n\n get mode() {\n return this._mode\n }\n\n set mode(mode) {\n var before = this._mode\n if (before === mode) return\n\n this._mode = mode\n this.trigger('mode', mode, before)\n }\n\n get isViewMode() {\n return this._mode == Const.MODE_VIEW\n }\n\n get isEditMode() {\n return this._mode == Const.MODE_EDIT\n }\n\n get baseUrl() {\n return this._baseUrl\n }\n\n set baseUrl(baseUrl) {\n if (!baseUrl) return\n if (this._baseUrl == baseUrl) return\n\n this._baseUrl = baseUrl\n\n // visualizer에서 pop up 킬 경우 깜빡거리는 현상때문에 주석처리\n // if (this.refProvider && this.refProvider.references)\n // Object.values(this.refProvider.references).forEach(v => (v.model = v.model))\n }\n\n url(x) {\n try {\n var usingBaseUrl = x.includes(BASE_URL)\n var cvt\n if (usingBaseUrl) cvt = new URL(x.replace(BASE_URL, this.baseUrl), this.baseUrl)\n else cvt = new URL(x, location.origin)\n\n return cvt.href\n } catch (e) {\n warn(e, x)\n }\n }\n\n /*\n * 스텝 회전시에 회전가능 단위를 설정함.\n * (스텝 회전이란 모델링시 사용자 편의를 위해서 일정 단위로 회전을 할 수 있도록 하는 기능임)\n */\n get rotateStep() {\n return this._rotateStep\n }\n\n set rotateStep(step) {\n this._rotateStep = Number(step) || ROTATION_STEP\n }\n\n /*\n * 스텝 회전을 강제하는 설정임. 스텝 회전을 강제하면 설정된 rotateStep 단위로만 값을 설정할 수 있음.\n * 일반적으로는 컴포넌트 회전시에 사용자가 shift키를 누른 상태인 경우 스텝회전이 되나,\n * rotateStepForce을 true로 주어서 스텝회전을 강제하면 항상 스텝회전이 적용된다.\n */\n get rotateStepForced() {\n return this._rotateStepForced\n }\n\n set rotateStepForced(force) {\n this._rotateStepForced = !!force\n }\n\n /* persistent data storage */\n get dataStorage() {\n return this._dataStorage\n }\n\n set dataStorage(dataStorage) {\n this._dataStorage = dataStorage\n }\n}\n\ncore.mixin(ApplicationContext.prototype, core.event.withEvent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
/*
|
|
8
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
var _screen = 13.3;
|
|
12
|
+
var _default = exports.default = {
|
|
13
|
+
screen: function (size) {
|
|
14
|
+
if (typeof size !== 'undefined') _screen = size;
|
|
15
|
+
return _screen;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","names":["_screen","_default","exports","default","screen","size"],"sources":["../../src/things-scene/config.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nvar _screen = 13.3\n\nexport default {\n screen: function(size) {\n if (typeof size !== 'undefined') _screen = size\n\n return _screen\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEA,IAAIA,OAAO,GAAG,IAAI;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEH;EACbC,MAAM,EAAE,SAAAA,CAASC,IAAI,EAAE;IACrB,IAAI,OAAOA,IAAI,KAAK,WAAW,EAAEL,OAAO,GAAGK,IAAI;IAE/C,OAAOL,OAAO;EAChB;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = create;
|
|
7
|
+
var _rootContainer = _interopRequireDefault(require("../components/root-container.js"));
|
|
8
|
+
var Const = _interopRequireWildcard(require("../const.js"));
|
|
9
|
+
var _applicationContext = _interopRequireDefault(require("./application-context.js"));
|
|
10
|
+
var _scene = _interopRequireDefault(require("./scene.js"));
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
/*
|
|
15
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
class DummyPersistentStorage {
|
|
19
|
+
load(key) {}
|
|
20
|
+
save(key, value) {}
|
|
21
|
+
clear(key) {}
|
|
22
|
+
}
|
|
23
|
+
const DEFAULT_DATA_STORAGE = new DummyPersistentStorage();
|
|
24
|
+
function create({
|
|
25
|
+
target,
|
|
26
|
+
model,
|
|
27
|
+
style,
|
|
28
|
+
layers = [],
|
|
29
|
+
handlers = [],
|
|
30
|
+
mode = Const.MODE_VIEW,
|
|
31
|
+
refProvider,
|
|
32
|
+
dataSubscriptionProvider,
|
|
33
|
+
dataStorage = DEFAULT_DATA_STORAGE,
|
|
34
|
+
baseUrl,
|
|
35
|
+
fitMode
|
|
36
|
+
}) {
|
|
37
|
+
// target이 없으면 안된다.
|
|
38
|
+
// target이 문자열이면, document에서 해당 id를 가진 DOM Element를 찾는다.
|
|
39
|
+
// target은 최종엔 DOM Element 이어야한다.
|
|
40
|
+
// target에 이미 다른 Scene이 붙어있는 지도 확인해라.
|
|
41
|
+
var target_element = null;
|
|
42
|
+
if (typeof target == 'string') {
|
|
43
|
+
target_element = document.getElementById(target);
|
|
44
|
+
if (!target_element) throw `target element '${target}' is not exist`;
|
|
45
|
+
if (target_element.firstChild) throw `target element '${target}' is not empty`;
|
|
46
|
+
} else {
|
|
47
|
+
target_element = target;
|
|
48
|
+
}
|
|
49
|
+
if (target_element && target_element.style) {
|
|
50
|
+
target_element.style.position = 'absolute';
|
|
51
|
+
target_element.style.cursor = 'default';
|
|
52
|
+
target_element.style.overflow = 'hidden';
|
|
53
|
+
}
|
|
54
|
+
var app = new _applicationContext.default(mode, refProvider);
|
|
55
|
+
app.baseUrl = baseUrl;
|
|
56
|
+
app.dataSubscriptionProvider = dataSubscriptionProvider;
|
|
57
|
+
app.dataStorage = dataStorage;
|
|
58
|
+
return new _scene.default(new _rootContainer.default({
|
|
59
|
+
target_element,
|
|
60
|
+
model,
|
|
61
|
+
style,
|
|
62
|
+
layers,
|
|
63
|
+
handlers,
|
|
64
|
+
fitMode
|
|
65
|
+
}, app));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","names":["_rootContainer","_interopRequireDefault","require","Const","_interopRequireWildcard","_applicationContext","_scene","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DummyPersistentStorage","load","key","save","value","clear","DEFAULT_DATA_STORAGE","create","target","model","style","layers","handlers","mode","MODE_VIEW","refProvider","dataSubscriptionProvider","dataStorage","baseUrl","fitMode","target_element","document","getElementById","firstChild","position","cursor","overflow","app","ApplicationContext","Scene","RootContainer"],"sources":["../../src/things-scene/create.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport RootContainer from '../components/root-container.js'\nimport * as Const from '../const.js'\nimport ApplicationContext from './application-context.js'\nimport Scene from './scene.js'\n\nclass DummyPersistentStorage {\n load(key) {}\n save(key, value) {}\n clear(key) {}\n}\n\nconst DEFAULT_DATA_STORAGE = new DummyPersistentStorage()\n\nexport default function create({\n target,\n model,\n style,\n layers = [],\n handlers = [],\n mode = Const.MODE_VIEW,\n refProvider,\n dataSubscriptionProvider,\n dataStorage = DEFAULT_DATA_STORAGE,\n baseUrl,\n fitMode\n}) {\n // target이 없으면 안된다.\n // target이 문자열이면, document에서 해당 id를 가진 DOM Element를 찾는다.\n // target은 최종엔 DOM Element 이어야한다.\n // target에 이미 다른 Scene이 붙어있는 지도 확인해라.\n var target_element = null\n\n if (typeof target == 'string') {\n target_element = document.getElementById(target)\n if (!target_element) throw `target element '${target}' is not exist`\n\n if (target_element.firstChild) throw `target element '${target}' is not empty`\n } else {\n target_element = target\n }\n\n if (target_element && target_element.style) {\n target_element.style.position = 'absolute'\n target_element.style.cursor = 'default'\n target_element.style.overflow = 'hidden'\n }\n\n var app = new ApplicationContext(mode, refProvider)\n app.baseUrl = baseUrl\n app.dataSubscriptionProvider = dataSubscriptionProvider\n app.dataStorage = dataStorage\n\n return new Scene(\n new RootContainer(\n {\n target_element,\n model,\n style,\n layers,\n handlers,\n fitMode\n },\n app\n )\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = FPS;
|
|
7
|
+
/*
|
|
8
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
9
|
+
*/
|
|
10
|
+
var fps = 0;
|
|
11
|
+
var last = performance.now();
|
|
12
|
+
var count = 0;
|
|
13
|
+
requestAnimationFrame(function measure() {
|
|
14
|
+
requestAnimationFrame(measure);
|
|
15
|
+
count++;
|
|
16
|
+
var now = performance.now();
|
|
17
|
+
var elapsed = now - last;
|
|
18
|
+
if (elapsed < 1000) return;
|
|
19
|
+
fps = Math.round(count * 1000 / elapsed);
|
|
20
|
+
last = now;
|
|
21
|
+
count = 0;
|
|
22
|
+
});
|
|
23
|
+
function FPS() {
|
|
24
|
+
return fps;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=fps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fps.js","names":["fps","last","performance","now","count","requestAnimationFrame","measure","elapsed","Math","round","FPS"],"sources":["../../src/things-scene/fps.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nvar fps = 0\n\nvar last = performance.now()\nvar count = 0\n\nrequestAnimationFrame(function measure() {\n requestAnimationFrame(measure)\n\n count++\n var now = performance.now()\n var elapsed = now - last\n\n if (elapsed < 1000) return\n\n fps = Math.round((count * 1000) / elapsed)\n last = now\n count = 0\n})\n\nexport default function FPS() {\n return fps\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA,IAAIA,GAAG,GAAG,CAAC;AAEX,IAAIC,IAAI,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;AAC5B,IAAIC,KAAK,GAAG,CAAC;AAEbC,qBAAqB,CAAC,SAASC,OAAOA,CAAA,EAAG;EACvCD,qBAAqB,CAACC,OAAO,CAAC;EAE9BF,KAAK,EAAE;EACP,IAAID,GAAG,GAAGD,WAAW,CAACC,GAAG,CAAC,CAAC;EAC3B,IAAII,OAAO,GAAGJ,GAAG,GAAGF,IAAI;EAExB,IAAIM,OAAO,GAAG,IAAI,EAAE;EAEpBP,GAAG,GAAGQ,IAAI,CAACC,KAAK,CAAEL,KAAK,GAAG,IAAI,GAAIG,OAAO,CAAC;EAC1CN,IAAI,GAAGE,GAAG;EACVC,KAAK,GAAG,CAAC;AACX,CAAC,CAAC;AAEa,SAASM,GAAGA,CAAA,EAAG;EAC5B,OAAOV,GAAG;AACZ","ignoreList":[]}
|