@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,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.emphasize = emphasize;
|
|
7
|
+
exports.normalize = normalize;
|
|
8
|
+
/*
|
|
9
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
function emphasize(component) {
|
|
13
|
+
const {
|
|
14
|
+
hover
|
|
15
|
+
} = component.state.event || {};
|
|
16
|
+
const {
|
|
17
|
+
emphasize
|
|
18
|
+
} = hover || {};
|
|
19
|
+
if (component.hasOwnProperty('_backupStrokeStyle')) return;
|
|
20
|
+
if ('__backup_emphasize' in component) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const {
|
|
24
|
+
strokeStyle,
|
|
25
|
+
lineWidth,
|
|
26
|
+
fillStyle
|
|
27
|
+
} = component.state;
|
|
28
|
+
component.__backup_emphasize = {
|
|
29
|
+
strokeStyle,
|
|
30
|
+
lineWidth,
|
|
31
|
+
fillStyle
|
|
32
|
+
};
|
|
33
|
+
component.setState(emphasize);
|
|
34
|
+
}
|
|
35
|
+
function normalize(component) {
|
|
36
|
+
if (!('__backup_emphasize' in component)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
component.setState(component.__backup_emphasize);
|
|
40
|
+
delete component.__backup_emphasize;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=emphasize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emphasize.js","names":["emphasize","component","hover","state","event","hasOwnProperty","strokeStyle","lineWidth","fillStyle","__backup_emphasize","setState","normalize"],"sources":["../../../src/layer/action/emphasize.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport function emphasize(component) {\n const { hover } = component.state.event || {}\n const { emphasize } = hover || {}\n\n if (component.hasOwnProperty('_backupStrokeStyle')) return\n\n if ('__backup_emphasize' in component) {\n return\n }\n\n const { strokeStyle, lineWidth, fillStyle } = component.state\n\n component.__backup_emphasize = { strokeStyle, lineWidth, fillStyle }\n component.setState(emphasize)\n}\n\nexport function normalize(component) {\n if (!('__backup_emphasize' in component)) {\n return\n }\n\n component.setState(component.__backup_emphasize)\n delete component.__backup_emphasize\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAEO,SAASA,SAASA,CAACC,SAAS,EAAE;EACnC,MAAM;IAAEC;EAAM,CAAC,GAAGD,SAAS,CAACE,KAAK,CAACC,KAAK,IAAI,CAAC,CAAC;EAC7C,MAAM;IAAEJ;EAAU,CAAC,GAAGE,KAAK,IAAI,CAAC,CAAC;EAEjC,IAAID,SAAS,CAACI,cAAc,CAAC,oBAAoB,CAAC,EAAE;EAEpD,IAAI,oBAAoB,IAAIJ,SAAS,EAAE;IACrC;EACF;EAEA,MAAM;IAAEK,WAAW;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGP,SAAS,CAACE,KAAK;EAE7DF,SAAS,CAACQ,kBAAkB,GAAG;IAAEH,WAAW;IAAEC,SAAS;IAAEC;EAAU,CAAC;EACpEP,SAAS,CAACS,QAAQ,CAACV,SAAS,CAAC;AAC/B;AAEO,SAASW,SAASA,CAACV,SAAS,EAAE;EACnC,IAAI,EAAE,oBAAoB,IAAIA,SAAS,CAAC,EAAE;IACxC;EACF;EAEAA,SAAS,CAACS,QAAQ,CAACT,SAAS,CAACQ,kBAAkB,CAAC;EAChD,OAAOR,SAAS,CAACQ,kBAAkB;AACrC","ignoreList":[]}
|
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _const = require("../../const.js");
|
|
8
|
+
/*
|
|
9
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const SCENE_EVENT = ['run', 'goto', 'goto-playlist', 'link-open', 'link-move', 'route-page', 'start-scenario', 'run-scenario', 'export-data', 'import-data'];
|
|
13
|
+
const CENTER = 'center';
|
|
14
|
+
const LEFTTOP = 'left-top';
|
|
15
|
+
const RIGHTTOP = 'right-top';
|
|
16
|
+
const LEFTBOTTOM = 'left-bottom';
|
|
17
|
+
const RIGHTBOTTOM = 'right-bottom';
|
|
18
|
+
const AUTO = 'auto';
|
|
19
|
+
const TEMPLATE_WITH_CLOSE_TITLE = `
|
|
20
|
+
<div class="popup-wrap">
|
|
21
|
+
<div class="popup-title-bar">
|
|
22
|
+
<div class="popup-title"></div>
|
|
23
|
+
<button class="draggable-1945">drag_pan</button>
|
|
24
|
+
<button class="minimizable-1945">minimize</button>
|
|
25
|
+
<button class="closable-1945">close</button>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="popup-content"></div>
|
|
28
|
+
</div>
|
|
29
|
+
`;
|
|
30
|
+
const TEMPLATE_WITH_CLOSE = `
|
|
31
|
+
<div class="popup-content">
|
|
32
|
+
<button class="draggable-1945">drag_pan</button>
|
|
33
|
+
<button class="minimizable-1945">minimize</button>
|
|
34
|
+
<button class="closable-1945">close</button>
|
|
35
|
+
</div>
|
|
36
|
+
`;
|
|
37
|
+
const POPUP_STYLE = `
|
|
38
|
+
.popup-title-bar {
|
|
39
|
+
display: flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
top: 0;
|
|
42
|
+
left: 0;
|
|
43
|
+
width: 100%;
|
|
44
|
+
height: 30px;
|
|
45
|
+
background-color: var(--md-sys-color-primary, #f1f1f1);
|
|
46
|
+
color: var(--md-sys-color-on-primary, black);
|
|
47
|
+
padding: 5px;
|
|
48
|
+
box-sizing: border-box;
|
|
49
|
+
border-bottom: 1px solid #ccc;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.popup-title {
|
|
53
|
+
flex: 1;
|
|
54
|
+
text-align: center;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
button.closable-1945, button.minimizable-1945, button.draggable-1945 {
|
|
58
|
+
position: absolute;
|
|
59
|
+
display: none;
|
|
60
|
+
color: white;
|
|
61
|
+
background-color: black;
|
|
62
|
+
opacity: .3;
|
|
63
|
+
width: 20px;
|
|
64
|
+
height: 20px;
|
|
65
|
+
top: 5px;
|
|
66
|
+
z-index: 1;
|
|
67
|
+
padding: 0;
|
|
68
|
+
margin: 0;
|
|
69
|
+
border: 0px;
|
|
70
|
+
text-align: center;
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
border-radius: 4px;
|
|
73
|
+
font-family: Material Symbols Outlined;
|
|
74
|
+
font-size: 12px;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
button.draggable-1945 {
|
|
78
|
+
right: 55px;
|
|
79
|
+
cursor: move;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
button.minimizable-1945 {
|
|
83
|
+
right: 30px;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
button.closable-1945 {
|
|
87
|
+
right: 5px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
button.closable-1945:hover, button.minimizable-1945:hover, button.draggable-1945:hover {
|
|
91
|
+
opacity: .6;
|
|
92
|
+
}
|
|
93
|
+
`;
|
|
94
|
+
const POPUP_GAP = 20;
|
|
95
|
+
const FADE_DURATION = 200;
|
|
96
|
+
function fadeIn(element, callback) {
|
|
97
|
+
element.style.opacity = 0;
|
|
98
|
+
element.style.transform = 'scale(0)';
|
|
99
|
+
element.style.display = 'block';
|
|
100
|
+
let last = +new Date();
|
|
101
|
+
const tick = () => {
|
|
102
|
+
const progress = Math.min((new Date() - last) / FADE_DURATION, 1);
|
|
103
|
+
element.style.opacity = progress;
|
|
104
|
+
element.style.transform = `scale(${progress})`;
|
|
105
|
+
if (progress < 1) {
|
|
106
|
+
requestAnimationFrame(tick);
|
|
107
|
+
} else if (callback) {
|
|
108
|
+
callback();
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
tick();
|
|
112
|
+
}
|
|
113
|
+
function fadeOut(element, callback) {
|
|
114
|
+
element.style.opacity = 1;
|
|
115
|
+
element.style.transform = 'scale(1)';
|
|
116
|
+
let last = +new Date();
|
|
117
|
+
const tick = () => {
|
|
118
|
+
const progress = Math.min((new Date() - last) / FADE_DURATION, 1);
|
|
119
|
+
element.style.opacity = 1 - progress;
|
|
120
|
+
element.style.transform = `scale(${1 - progress})`;
|
|
121
|
+
if (progress < 1) {
|
|
122
|
+
requestAnimationFrame(tick);
|
|
123
|
+
} else {
|
|
124
|
+
element.style.display = 'none';
|
|
125
|
+
if (callback) callback();
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
tick();
|
|
129
|
+
}
|
|
130
|
+
function makeDraggable(element, handle, component) {
|
|
131
|
+
let startX, startY, initialX, initialY;
|
|
132
|
+
handle.addEventListener('mousedown', e => {
|
|
133
|
+
e.preventDefault();
|
|
134
|
+
e.stopPropagation();
|
|
135
|
+
startX = e.clientX;
|
|
136
|
+
startY = e.clientY;
|
|
137
|
+
initialX = parseInt(element.style.left, 10) || 0;
|
|
138
|
+
initialY = parseInt(element.style.top, 10) || 0;
|
|
139
|
+
function onMouseMove(e) {
|
|
140
|
+
e.preventDefault();
|
|
141
|
+
e.stopPropagation();
|
|
142
|
+
const dx = e.clientX - startX;
|
|
143
|
+
const dy = e.clientY - startY;
|
|
144
|
+
const transform = component.rootModel.overlay.style.transform;
|
|
145
|
+
const scaleMatch = transform.match(/scale\(([^,]+),\s*([^)]+)\)/);
|
|
146
|
+
const sx = scaleMatch ? parseFloat(scaleMatch[1]) : 1;
|
|
147
|
+
const sy = scaleMatch ? parseFloat(scaleMatch[2]) : sx;
|
|
148
|
+
element.style.left = `${initialX + dx / sx}px`;
|
|
149
|
+
element.style.top = `${initialY + dy / sy}px`;
|
|
150
|
+
}
|
|
151
|
+
function onMouseUp(e) {
|
|
152
|
+
e.preventDefault();
|
|
153
|
+
e.stopPropagation();
|
|
154
|
+
document.removeEventListener('mousemove', onMouseMove, true);
|
|
155
|
+
document.removeEventListener('mouseup', onMouseUp, true);
|
|
156
|
+
}
|
|
157
|
+
document.addEventListener('mousemove', onMouseMove, true);
|
|
158
|
+
document.addEventListener('mouseup', onMouseUp, true);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
const popups = new WeakMap();
|
|
162
|
+
function addPopup(component, div, scene) {
|
|
163
|
+
const root = component.root;
|
|
164
|
+
if (root === component) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
removePopup(component);
|
|
168
|
+
let components = popups.get(root) || [];
|
|
169
|
+
components = [...components, [component, {
|
|
170
|
+
div,
|
|
171
|
+
scene
|
|
172
|
+
}]];
|
|
173
|
+
popups.set(root, components);
|
|
174
|
+
}
|
|
175
|
+
function removePopup(component) {
|
|
176
|
+
const root = component.root;
|
|
177
|
+
const components = popups.get(root);
|
|
178
|
+
if (!components) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (root === component) {
|
|
182
|
+
components.forEach(item => removePopup(item[0]));
|
|
183
|
+
popups.delete(root);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const idx = components.findIndex(item => item[0] === component);
|
|
187
|
+
if (idx === -1) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
const popup = components[idx][1];
|
|
191
|
+
popup.div.parentNode?.removeChild(popup.div);
|
|
192
|
+
popup.scene.target = null;
|
|
193
|
+
popup.scene.release?.();
|
|
194
|
+
components.splice(idx, 1);
|
|
195
|
+
}
|
|
196
|
+
function position(scene_root, popup_scene_root, point, options) {
|
|
197
|
+
const {
|
|
198
|
+
location = AUTO,
|
|
199
|
+
title = ''
|
|
200
|
+
} = options || {};
|
|
201
|
+
const scene_bounds = scene_root.bounds;
|
|
202
|
+
let popup_scene_bounds = popup_scene_root.bounds;
|
|
203
|
+
if (title) {
|
|
204
|
+
popup_scene_bounds.height += 30; // assuming title bar height is 30px
|
|
205
|
+
}
|
|
206
|
+
const left_side = Math.max(scene_bounds.width / 4 - popup_scene_bounds.width / 2, POPUP_GAP);
|
|
207
|
+
const right_side = Math.min(scene_bounds.width * 3 / 4 + popup_scene_bounds.width / 2, scene_bounds.width - POPUP_GAP) - popup_scene_bounds.width;
|
|
208
|
+
const top_side = Math.max(scene_bounds.height / 4 - popup_scene_bounds.height / 2, POPUP_GAP) + (title ? 30 : 0);
|
|
209
|
+
const bottom_side = Math.min(scene_bounds.height * 3 / 4 + popup_scene_bounds.height / 2, scene_bounds.height - POPUP_GAP) - popup_scene_bounds.height + (title ? 30 : 0);
|
|
210
|
+
switch (location) {
|
|
211
|
+
case AUTO:
|
|
212
|
+
return {
|
|
213
|
+
x: point.x < scene_bounds.width / 2 ? Math.min(right_side, point.x + 20) : Math.max(left_side, point.x - (popup_scene_bounds.width + 20)),
|
|
214
|
+
y: point.y < scene_bounds.height / 2 ? Math.min(bottom_side, point.y + 20 + (title ? 30 : 0)) : Math.max(top_side, point.y - (popup_scene_bounds.height + 20 + (title ? 30 : 0)))
|
|
215
|
+
};
|
|
216
|
+
case LEFTTOP:
|
|
217
|
+
return {
|
|
218
|
+
x: left_side,
|
|
219
|
+
y: top_side
|
|
220
|
+
};
|
|
221
|
+
case RIGHTTOP:
|
|
222
|
+
return {
|
|
223
|
+
x: right_side,
|
|
224
|
+
y: top_side
|
|
225
|
+
};
|
|
226
|
+
case LEFTBOTTOM:
|
|
227
|
+
return {
|
|
228
|
+
x: left_side,
|
|
229
|
+
y: bottom_side
|
|
230
|
+
};
|
|
231
|
+
case RIGHTBOTTOM:
|
|
232
|
+
return {
|
|
233
|
+
x: right_side,
|
|
234
|
+
y: bottom_side
|
|
235
|
+
};
|
|
236
|
+
case CENTER:
|
|
237
|
+
default:
|
|
238
|
+
return {
|
|
239
|
+
x: (scene_bounds.width - popup_scene_bounds.width) / 2,
|
|
240
|
+
y: (scene_bounds.height - popup_scene_bounds.height + (title ? 30 : 0)) / 2
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
function toggleMinimize(popup, isMinimized) {
|
|
245
|
+
const minimizeButton = popup.querySelector('.minimizable-1945');
|
|
246
|
+
if (isMinimized) {
|
|
247
|
+
minimizeButton.innerHTML = 'crop_square'; // maximize icon
|
|
248
|
+
popup.style.height = '30px';
|
|
249
|
+
popup.style.overflow = 'hidden';
|
|
250
|
+
} else {
|
|
251
|
+
minimizeButton.innerHTML = 'minimize'; // minimize icon
|
|
252
|
+
popup.style.height = '';
|
|
253
|
+
popup.style.overflow = 'visible';
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
class ScenePopup {
|
|
257
|
+
static hideAll(root) {
|
|
258
|
+
const popups4root = popups.get(root) || [];
|
|
259
|
+
popups4root.forEach(([component]) => removePopup(component));
|
|
260
|
+
}
|
|
261
|
+
static hide(component) {
|
|
262
|
+
const root = component.root;
|
|
263
|
+
const components = popups.get(root);
|
|
264
|
+
if (!components) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
const idx = components.findIndex(item => item[0] === component);
|
|
268
|
+
if (idx === -1) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
const popup = components[idx][1];
|
|
272
|
+
popup.div.style.backgroundColor = 'transparent';
|
|
273
|
+
fadeOut(popup.div, () => {
|
|
274
|
+
removePopup(component);
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
static show(component, ref, options = {}) {
|
|
278
|
+
const {
|
|
279
|
+
data,
|
|
280
|
+
modal = false,
|
|
281
|
+
closable = true,
|
|
282
|
+
minimizable = false,
|
|
283
|
+
draggable = false,
|
|
284
|
+
output = true,
|
|
285
|
+
title = ''
|
|
286
|
+
} = options;
|
|
287
|
+
const provider = component.app.refProvider;
|
|
288
|
+
provider?.get(ref, true).then(scene => {
|
|
289
|
+
const div = document.createElement('div');
|
|
290
|
+
const divStyle = div.style;
|
|
291
|
+
div.setAttribute('popup', '');
|
|
292
|
+
if (modal) {
|
|
293
|
+
const {
|
|
294
|
+
width,
|
|
295
|
+
height
|
|
296
|
+
} = component.rootModel.bounds;
|
|
297
|
+
Object.assign(divStyle, {
|
|
298
|
+
position: 'fixed',
|
|
299
|
+
zIndex: 1,
|
|
300
|
+
left: 0,
|
|
301
|
+
top: 0,
|
|
302
|
+
width: `${width}px`,
|
|
303
|
+
height: `${height}px`,
|
|
304
|
+
overflow: 'hidden',
|
|
305
|
+
backgroundColor: 'transparent'
|
|
306
|
+
});
|
|
307
|
+
} else {
|
|
308
|
+
Object.assign(divStyle, {
|
|
309
|
+
position: 'absolute',
|
|
310
|
+
display: 'inline-block',
|
|
311
|
+
overflow: 'hidden'
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
div.innerHTML = title ? TEMPLATE_WITH_CLOSE_TITLE : TEMPLATE_WITH_CLOSE;
|
|
315
|
+
const innerdiv = div.querySelector('.popup-content');
|
|
316
|
+
const {
|
|
317
|
+
width,
|
|
318
|
+
height
|
|
319
|
+
} = scene.root.model;
|
|
320
|
+
Object.assign(innerdiv.style, {
|
|
321
|
+
width: `${width}px`,
|
|
322
|
+
height: `${height}px`
|
|
323
|
+
});
|
|
324
|
+
const styleElement = document.createElement('style');
|
|
325
|
+
styleElement.type = 'text/css';
|
|
326
|
+
styleElement.appendChild(document.createTextNode(POPUP_STYLE));
|
|
327
|
+
div.appendChild(styleElement);
|
|
328
|
+
SCENE_EVENT.forEach(action => {
|
|
329
|
+
scene.on(action, (...args) => {
|
|
330
|
+
component.trigger(action, ...args);
|
|
331
|
+
});
|
|
332
|
+
});
|
|
333
|
+
const popup = div.querySelector('.popup-content');
|
|
334
|
+
const dragHandle = div.querySelector('.draggable-1945');
|
|
335
|
+
[..._const.GESTURES, ..._const.KEYEVENTS].forEach(event => {
|
|
336
|
+
popup.addEventListener(event, e => {
|
|
337
|
+
e.stopPropagation();
|
|
338
|
+
});
|
|
339
|
+
});
|
|
340
|
+
[..._const.GESTURES, ..._const.KEYEVENTS].forEach(event => {
|
|
341
|
+
div.addEventListener(event, e => {
|
|
342
|
+
e.stopPropagation();
|
|
343
|
+
});
|
|
344
|
+
});
|
|
345
|
+
if (modal && closable) {
|
|
346
|
+
div.addEventListener('click', e => {
|
|
347
|
+
if (e.target === div) ScenePopup.hide(component);
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
const targetElement = component.root.model_layer.overlay;
|
|
351
|
+
targetElement.appendChild(div);
|
|
352
|
+
addPopup(component, div, scene);
|
|
353
|
+
if (title) {
|
|
354
|
+
const titleDiv = div.querySelector('.popup-title-bar .popup-title');
|
|
355
|
+
titleDiv.textContent = title;
|
|
356
|
+
}
|
|
357
|
+
if (draggable) {
|
|
358
|
+
makeDraggable(modal ? div.querySelector('.popup-wrap') : div, div.querySelector('.popup-title-bar'), component);
|
|
359
|
+
if (!title) {
|
|
360
|
+
popup.addEventListener('mouseenter', () => {
|
|
361
|
+
if (dragHandle) dragHandle.style.display = 'block';
|
|
362
|
+
});
|
|
363
|
+
popup.addEventListener('mouseleave', () => {
|
|
364
|
+
if (dragHandle) dragHandle.style.display = 'none';
|
|
365
|
+
});
|
|
366
|
+
} else {
|
|
367
|
+
if (dragHandle) dragHandle.style.display = 'block';
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
if (minimizable) {
|
|
371
|
+
const minimizeButton = div.querySelector('.minimizable-1945');
|
|
372
|
+
let isMinimized = false;
|
|
373
|
+
minimizeButton.addEventListener('click', e => {
|
|
374
|
+
e.preventDefault();
|
|
375
|
+
isMinimized = !isMinimized;
|
|
376
|
+
const popupWrap = div.querySelector('.popup-wrap');
|
|
377
|
+
toggleMinimize(modal ? popupWrap : div, isMinimized);
|
|
378
|
+
});
|
|
379
|
+
if (!title) {
|
|
380
|
+
popup.addEventListener('mouseenter', () => {
|
|
381
|
+
if (minimizeButton) minimizeButton.style.display = 'block';
|
|
382
|
+
});
|
|
383
|
+
popup.addEventListener('mouseleave', () => {
|
|
384
|
+
if (minimizeButton) minimizeButton.style.display = 'none';
|
|
385
|
+
});
|
|
386
|
+
} else {
|
|
387
|
+
if (minimizeButton) minimizeButton.style.display = 'block';
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
if (closable) {
|
|
391
|
+
const closeButton = div.querySelector('.closable-1945');
|
|
392
|
+
if (!title) {
|
|
393
|
+
popup.addEventListener('mouseenter', () => {
|
|
394
|
+
if (closeButton) closeButton.style.display = 'block';
|
|
395
|
+
});
|
|
396
|
+
popup.addEventListener('mouseleave', () => {
|
|
397
|
+
if (closeButton) closeButton.style.display = 'none';
|
|
398
|
+
});
|
|
399
|
+
} else {
|
|
400
|
+
if (closeButton) closeButton.style.display = 'block';
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
div.querySelector('.closable-1945')?.addEventListener('click', e => {
|
|
404
|
+
e.preventDefault();
|
|
405
|
+
ScenePopup.hide(component);
|
|
406
|
+
});
|
|
407
|
+
div.addEventListener('close-scene', e => {
|
|
408
|
+
e.preventDefault();
|
|
409
|
+
e.stopPropagation();
|
|
410
|
+
ScenePopup.hide(component);
|
|
411
|
+
if (output) {
|
|
412
|
+
component.data = e.detail;
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
scene.target = innerdiv;
|
|
416
|
+
scene.data = data || component.data;
|
|
417
|
+
scene.fit('both');
|
|
418
|
+
const {
|
|
419
|
+
x,
|
|
420
|
+
y
|
|
421
|
+
} = component.center;
|
|
422
|
+
const point = component.transcoordS2T(x, y, component.rootModel);
|
|
423
|
+
const loc = position(component.rootModel, scene.root, point, options);
|
|
424
|
+
if (modal) {
|
|
425
|
+
if (title) {
|
|
426
|
+
const wrapdiv = div.querySelector('.popup-wrap');
|
|
427
|
+
Object.assign(wrapdiv.style, {
|
|
428
|
+
position: 'absolute',
|
|
429
|
+
left: `${loc.x}px`,
|
|
430
|
+
top: `${loc.y}px`,
|
|
431
|
+
width: `${width}px`,
|
|
432
|
+
height: `${height}px`
|
|
433
|
+
});
|
|
434
|
+
} else {
|
|
435
|
+
Object.assign(innerdiv.style, {
|
|
436
|
+
left: `${loc.x}px`,
|
|
437
|
+
top: `${loc.y}px`,
|
|
438
|
+
width: `${width}px`,
|
|
439
|
+
height: `${height}px`
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
} else {
|
|
443
|
+
Object.assign(div.style, {
|
|
444
|
+
left: `${loc.x}px`,
|
|
445
|
+
top: `${loc.y}px`,
|
|
446
|
+
width: `${width}px`,
|
|
447
|
+
height: `${title ? height + 30 : height}px`
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
fadeIn(div, () => {
|
|
451
|
+
if (modal) {
|
|
452
|
+
div.style.backgroundColor = 'rgba(0,0,0,0.3)';
|
|
453
|
+
}
|
|
454
|
+
});
|
|
455
|
+
}, e => {
|
|
456
|
+
console.error('cannot fetch board: ' + ref, e);
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
exports.default = ScenePopup;
|
|
461
|
+
//# sourceMappingURL=popup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup.js","names":["_const","require","SCENE_EVENT","CENTER","LEFTTOP","RIGHTTOP","LEFTBOTTOM","RIGHTBOTTOM","AUTO","TEMPLATE_WITH_CLOSE_TITLE","TEMPLATE_WITH_CLOSE","POPUP_STYLE","POPUP_GAP","FADE_DURATION","fadeIn","element","callback","style","opacity","transform","display","last","Date","tick","progress","Math","min","requestAnimationFrame","fadeOut","makeDraggable","handle","component","startX","startY","initialX","initialY","addEventListener","e","preventDefault","stopPropagation","clientX","clientY","parseInt","left","top","onMouseMove","dx","dy","rootModel","overlay","scaleMatch","match","sx","parseFloat","sy","onMouseUp","document","removeEventListener","popups","WeakMap","addPopup","div","scene","root","removePopup","components","get","set","forEach","item","delete","idx","findIndex","popup","parentNode","removeChild","target","release","splice","position","scene_root","popup_scene_root","point","options","location","title","scene_bounds","bounds","popup_scene_bounds","height","left_side","max","width","right_side","top_side","bottom_side","x","y","toggleMinimize","isMinimized","minimizeButton","querySelector","innerHTML","overflow","ScenePopup","hideAll","popups4root","hide","backgroundColor","show","ref","data","modal","closable","minimizable","draggable","output","provider","app","refProvider","then","createElement","divStyle","setAttribute","Object","assign","zIndex","innerdiv","model","styleElement","type","appendChild","createTextNode","action","on","args","trigger","dragHandle","GESTURES","KEYEVENTS","event","targetElement","model_layer","titleDiv","textContent","popupWrap","closeButton","detail","fit","center","transcoordS2T","loc","wrapdiv","console","error","exports","default"],"sources":["../../../src/layer/action/popup.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { GESTURES, KEYEVENTS } from '../../const.js'\n\nconst SCENE_EVENT = [\n 'run',\n 'goto',\n 'goto-playlist',\n 'link-open',\n 'link-move',\n 'route-page',\n 'start-scenario',\n 'run-scenario',\n 'export-data',\n 'import-data'\n]\n\nconst CENTER = 'center'\nconst LEFTTOP = 'left-top'\nconst RIGHTTOP = 'right-top'\nconst LEFTBOTTOM = 'left-bottom'\nconst RIGHTBOTTOM = 'right-bottom'\nconst AUTO = 'auto'\n\nconst TEMPLATE_WITH_CLOSE_TITLE = `\n<div class=\"popup-wrap\">\n <div class=\"popup-title-bar\">\n <div class=\"popup-title\"></div>\n <button class=\"draggable-1945\">drag_pan</button>\n <button class=\"minimizable-1945\">minimize</button>\n <button class=\"closable-1945\">close</button>\n </div>\n <div class=\"popup-content\"></div>\n</div>\n`\n\nconst TEMPLATE_WITH_CLOSE = `\n<div class=\"popup-content\">\n <button class=\"draggable-1945\">drag_pan</button>\n <button class=\"minimizable-1945\">minimize</button>\n <button class=\"closable-1945\">close</button>\n</div>\n`\n\nconst POPUP_STYLE = `\n.popup-title-bar {\n display: flex;\n align-items: center;\n top: 0;\n left: 0;\n width: 100%;\n height: 30px;\n background-color: var(--md-sys-color-primary, #f1f1f1);\n color: var(--md-sys-color-on-primary, black);\n padding: 5px;\n box-sizing: border-box;\n border-bottom: 1px solid #ccc;\n}\n\n.popup-title {\n flex: 1;\n text-align: center;\n}\n\nbutton.closable-1945, button.minimizable-1945, button.draggable-1945 {\n position: absolute;\n display: none;\n color: white; \n background-color: black; \n opacity: .3;\n width: 20px;\n height: 20px;\n top: 5px; \n z-index: 1;\n padding: 0;\n margin: 0;\n border: 0px;\n text-align: center;\n cursor: pointer;\n border-radius: 4px;\n font-family: Material Symbols Outlined;\n font-size: 12px;\n}\n\nbutton.draggable-1945 {\n right: 55px;\n cursor: move;\n}\n\nbutton.minimizable-1945 {\n right: 30px;\n}\n\nbutton.closable-1945 {\n right: 5px;\n}\n\nbutton.closable-1945:hover, button.minimizable-1945:hover, button.draggable-1945:hover {\n opacity: .6; \n}\n`\n\nconst POPUP_GAP = 20\nconst FADE_DURATION = 200\n\nfunction fadeIn(element, callback) {\n element.style.opacity = 0\n element.style.transform = 'scale(0)'\n element.style.display = 'block'\n\n let last = +new Date()\n const tick = () => {\n const progress = Math.min((new Date() - last) / FADE_DURATION, 1)\n element.style.opacity = progress\n element.style.transform = `scale(${progress})`\n\n if (progress < 1) {\n requestAnimationFrame(tick)\n } else if (callback) {\n callback()\n }\n }\n\n tick()\n}\n\nfunction fadeOut(element, callback) {\n element.style.opacity = 1\n element.style.transform = 'scale(1)'\n\n let last = +new Date()\n const tick = () => {\n const progress = Math.min((new Date() - last) / FADE_DURATION, 1)\n element.style.opacity = 1 - progress\n element.style.transform = `scale(${1 - progress})`\n\n if (progress < 1) {\n requestAnimationFrame(tick)\n } else {\n element.style.display = 'none'\n if (callback) callback()\n }\n }\n\n tick()\n}\n\nfunction makeDraggable(element, handle, component) {\n let startX, startY, initialX, initialY\n\n handle.addEventListener('mousedown', e => {\n e.preventDefault()\n e.stopPropagation()\n\n startX = e.clientX\n startY = e.clientY\n initialX = parseInt(element.style.left, 10) || 0\n initialY = parseInt(element.style.top, 10) || 0\n\n function onMouseMove(e) {\n e.preventDefault()\n e.stopPropagation()\n\n const dx = e.clientX - startX\n const dy = e.clientY - startY\n\n const transform = component.rootModel.overlay.style.transform\n const scaleMatch = transform.match(/scale\\(([^,]+),\\s*([^)]+)\\)/)\n\n const sx = scaleMatch ? parseFloat(scaleMatch[1]) : 1\n const sy = scaleMatch ? parseFloat(scaleMatch[2]) : sx\n\n element.style.left = `${initialX + dx / sx}px`\n element.style.top = `${initialY + dy / sy}px`\n }\n\n function onMouseUp(e) {\n e.preventDefault()\n e.stopPropagation()\n\n document.removeEventListener('mousemove', onMouseMove, true)\n document.removeEventListener('mouseup', onMouseUp, true)\n }\n\n document.addEventListener('mousemove', onMouseMove, true)\n document.addEventListener('mouseup', onMouseUp, true)\n })\n}\n\nconst popups = new WeakMap()\n\nfunction addPopup(component, div, scene) {\n const root = component.root\n\n if (root === component) {\n return\n }\n\n removePopup(component)\n\n let components = popups.get(root) || []\n components = [...components, [component, { div, scene }]]\n popups.set(root, components)\n}\n\nfunction removePopup(component) {\n const root = component.root\n const components = popups.get(root)\n\n if (!components) {\n return\n }\n\n if (root === component) {\n components.forEach(item => removePopup(item[0]))\n popups.delete(root)\n return\n }\n\n const idx = components.findIndex(item => item[0] === component)\n if (idx === -1) {\n return\n }\n\n const popup = components[idx][1]\n popup.div.parentNode?.removeChild(popup.div)\n popup.scene.target = null\n popup.scene.release?.()\n\n components.splice(idx, 1)\n}\n\nfunction position(scene_root, popup_scene_root, point, options) {\n const { location = AUTO, title = '' } = options || {}\n const scene_bounds = scene_root.bounds\n let popup_scene_bounds = popup_scene_root.bounds\n\n if (title) {\n popup_scene_bounds.height += 30 // assuming title bar height is 30px\n }\n\n const left_side = Math.max(scene_bounds.width / 4 - popup_scene_bounds.width / 2, POPUP_GAP)\n const right_side =\n Math.min((scene_bounds.width * 3) / 4 + popup_scene_bounds.width / 2, scene_bounds.width - POPUP_GAP) -\n popup_scene_bounds.width\n const top_side = Math.max(scene_bounds.height / 4 - popup_scene_bounds.height / 2, POPUP_GAP) + (title ? 30 : 0)\n const bottom_side =\n Math.min((scene_bounds.height * 3) / 4 + popup_scene_bounds.height / 2, scene_bounds.height - POPUP_GAP) -\n popup_scene_bounds.height +\n (title ? 30 : 0)\n\n switch (location) {\n case AUTO:\n return {\n x:\n point.x < scene_bounds.width / 2\n ? Math.min(right_side, point.x + 20)\n : Math.max(left_side, point.x - (popup_scene_bounds.width + 20)),\n y:\n point.y < scene_bounds.height / 2\n ? Math.min(bottom_side, point.y + 20 + (title ? 30 : 0))\n : Math.max(top_side, point.y - (popup_scene_bounds.height + 20 + (title ? 30 : 0)))\n }\n case LEFTTOP:\n return { x: left_side, y: top_side }\n case RIGHTTOP:\n return { x: right_side, y: top_side }\n case LEFTBOTTOM:\n return { x: left_side, y: bottom_side }\n case RIGHTBOTTOM:\n return { x: right_side, y: bottom_side }\n case CENTER:\n default:\n return {\n x: (scene_bounds.width - popup_scene_bounds.width) / 2,\n y: (scene_bounds.height - popup_scene_bounds.height + (title ? 30 : 0)) / 2\n }\n }\n}\n\nfunction toggleMinimize(popup, isMinimized) {\n const minimizeButton = popup.querySelector('.minimizable-1945')\n\n if (isMinimized) {\n minimizeButton.innerHTML = 'crop_square' // maximize icon\n popup.style.height = '30px'\n popup.style.overflow = 'hidden'\n } else {\n minimizeButton.innerHTML = 'minimize' // minimize icon\n popup.style.height = ''\n popup.style.overflow = 'visible'\n }\n}\n\nexport default class ScenePopup {\n static hideAll(root) {\n const popups4root = popups.get(root) || []\n popups4root.forEach(([component]) => removePopup(component))\n }\n\n static hide(component) {\n const root = component.root\n const components = popups.get(root)\n\n if (!components) {\n return\n }\n\n const idx = components.findIndex(item => item[0] === component)\n if (idx === -1) {\n return\n }\n\n const popup = components[idx][1]\n popup.div.style.backgroundColor = 'transparent'\n fadeOut(popup.div, () => {\n removePopup(component)\n })\n }\n\n static show(component, ref, options = {}) {\n const {\n data,\n modal = false,\n closable = true,\n minimizable = false,\n draggable = false,\n output = true,\n title = ''\n } = options\n const provider = component.app.refProvider\n\n provider?.get(ref, true).then(\n scene => {\n const div = document.createElement('div')\n const divStyle = div.style\n div.setAttribute('popup', '')\n\n if (modal) {\n const { width, height } = component.rootModel.bounds\n\n Object.assign(divStyle, {\n position: 'fixed',\n zIndex: 1,\n left: 0,\n top: 0,\n width: `${width}px`,\n height: `${height}px`,\n overflow: 'hidden',\n backgroundColor: 'transparent'\n })\n } else {\n Object.assign(divStyle, {\n position: 'absolute',\n display: 'inline-block',\n overflow: 'hidden'\n })\n }\n\n div.innerHTML = title ? TEMPLATE_WITH_CLOSE_TITLE : TEMPLATE_WITH_CLOSE\n\n const innerdiv = div.querySelector('.popup-content')\n const { width, height } = scene.root.model\n Object.assign(innerdiv.style, {\n width: `${width}px`,\n height: `${height}px`\n })\n\n const styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n styleElement.appendChild(document.createTextNode(POPUP_STYLE))\n div.appendChild(styleElement)\n\n SCENE_EVENT.forEach(action => {\n scene.on(action, (...args) => {\n component.trigger(action, ...args)\n })\n })\n\n const popup = div.querySelector('.popup-content')\n const dragHandle = div.querySelector('.draggable-1945')\n\n ;[...GESTURES, ...KEYEVENTS].forEach(event => {\n popup.addEventListener(event, e => {\n e.stopPropagation()\n })\n })\n ;[...GESTURES, ...KEYEVENTS].forEach(event => {\n div.addEventListener(event, e => {\n e.stopPropagation()\n })\n })\n\n if (modal && closable) {\n div.addEventListener('click', e => {\n if (e.target === div) ScenePopup.hide(component)\n })\n }\n\n const targetElement = component.root.model_layer.overlay\n targetElement.appendChild(div)\n\n addPopup(component, div, scene)\n\n if (title) {\n const titleDiv = div.querySelector('.popup-title-bar .popup-title')\n titleDiv.textContent = title\n }\n\n if (draggable) {\n makeDraggable(\n modal ? div.querySelector('.popup-wrap') : div,\n div.querySelector('.popup-title-bar'),\n component\n )\n\n if (!title) {\n popup.addEventListener('mouseenter', () => {\n if (dragHandle) dragHandle.style.display = 'block'\n })\n\n popup.addEventListener('mouseleave', () => {\n if (dragHandle) dragHandle.style.display = 'none'\n })\n } else {\n if (dragHandle) dragHandle.style.display = 'block'\n }\n }\n\n if (minimizable) {\n const minimizeButton = div.querySelector('.minimizable-1945')\n let isMinimized = false\n\n minimizeButton.addEventListener('click', e => {\n e.preventDefault()\n isMinimized = !isMinimized\n const popupWrap = div.querySelector('.popup-wrap')\n\n toggleMinimize(modal ? popupWrap : div, isMinimized)\n })\n\n if (!title) {\n popup.addEventListener('mouseenter', () => {\n if (minimizeButton) minimizeButton.style.display = 'block'\n })\n\n popup.addEventListener('mouseleave', () => {\n if (minimizeButton) minimizeButton.style.display = 'none'\n })\n } else {\n if (minimizeButton) minimizeButton.style.display = 'block'\n }\n }\n\n if (closable) {\n const closeButton = div.querySelector('.closable-1945')\n\n if (!title) {\n popup.addEventListener('mouseenter', () => {\n if (closeButton) closeButton.style.display = 'block'\n })\n\n popup.addEventListener('mouseleave', () => {\n if (closeButton) closeButton.style.display = 'none'\n })\n } else {\n if (closeButton) closeButton.style.display = 'block'\n }\n }\n\n div.querySelector('.closable-1945')?.addEventListener('click', e => {\n e.preventDefault()\n ScenePopup.hide(component)\n })\n\n div.addEventListener('close-scene', e => {\n e.preventDefault()\n e.stopPropagation()\n ScenePopup.hide(component)\n if (output) {\n component.data = e.detail\n }\n })\n\n scene.target = innerdiv\n scene.data = data || component.data\n scene.fit('both')\n\n const { x, y } = component.center\n const point = component.transcoordS2T(x, y, component.rootModel)\n\n const loc = position(component.rootModel, scene.root, point, options)\n\n if (modal) {\n if (title) {\n const wrapdiv = div.querySelector('.popup-wrap')\n\n Object.assign(wrapdiv.style, {\n position: 'absolute',\n left: `${loc.x}px`,\n top: `${loc.y}px`,\n width: `${width}px`,\n height: `${height}px`\n })\n } else {\n Object.assign(innerdiv.style, {\n left: `${loc.x}px`,\n top: `${loc.y}px`,\n width: `${width}px`,\n height: `${height}px`\n })\n }\n } else {\n Object.assign(div.style, {\n left: `${loc.x}px`,\n top: `${loc.y}px`,\n width: `${width}px`,\n height: `${title ? height + 30 : height}px`\n })\n }\n\n fadeIn(div, () => {\n if (modal) {\n div.style.backgroundColor = 'rgba(0,0,0,0.3)'\n }\n })\n },\n e => {\n console.error('cannot fetch board: ' + ref, e)\n }\n )\n }\n}\n"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAIA,MAAMC,WAAW,GAAG,CAClB,KAAK,EACL,MAAM,EACN,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,aAAa,CACd;AAED,MAAMC,MAAM,GAAG,QAAQ;AACvB,MAAMC,OAAO,GAAG,UAAU;AAC1B,MAAMC,QAAQ,GAAG,WAAW;AAC5B,MAAMC,UAAU,GAAG,aAAa;AAChC,MAAMC,WAAW,GAAG,cAAc;AAClC,MAAMC,IAAI,GAAG,MAAM;AAEnB,MAAMC,yBAAyB,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMC,mBAAmB,GAAG;AAC5B;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMC,WAAW,GAAG;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMC,SAAS,GAAG,EAAE;AACpB,MAAMC,aAAa,GAAG,GAAG;AAEzB,SAASC,MAAMA,CAACC,OAAO,EAAEC,QAAQ,EAAE;EACjCD,OAAO,CAACE,KAAK,CAACC,OAAO,GAAG,CAAC;EACzBH,OAAO,CAACE,KAAK,CAACE,SAAS,GAAG,UAAU;EACpCJ,OAAO,CAACE,KAAK,CAACG,OAAO,GAAG,OAAO;EAE/B,IAAIC,IAAI,GAAG,CAAC,IAAIC,IAAI,CAAC,CAAC;EACtB,MAAMC,IAAI,GAAGA,CAAA,KAAM;IACjB,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIJ,IAAI,CAAC,CAAC,GAAGD,IAAI,IAAIR,aAAa,EAAE,CAAC,CAAC;IACjEE,OAAO,CAACE,KAAK,CAACC,OAAO,GAAGM,QAAQ;IAChCT,OAAO,CAACE,KAAK,CAACE,SAAS,GAAG,SAASK,QAAQ,GAAG;IAE9C,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAChBG,qBAAqB,CAACJ,IAAI,CAAC;IAC7B,CAAC,MAAM,IAAIP,QAAQ,EAAE;MACnBA,QAAQ,CAAC,CAAC;IACZ;EACF,CAAC;EAEDO,IAAI,CAAC,CAAC;AACR;AAEA,SAASK,OAAOA,CAACb,OAAO,EAAEC,QAAQ,EAAE;EAClCD,OAAO,CAACE,KAAK,CAACC,OAAO,GAAG,CAAC;EACzBH,OAAO,CAACE,KAAK,CAACE,SAAS,GAAG,UAAU;EAEpC,IAAIE,IAAI,GAAG,CAAC,IAAIC,IAAI,CAAC,CAAC;EACtB,MAAMC,IAAI,GAAGA,CAAA,KAAM;IACjB,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIJ,IAAI,CAAC,CAAC,GAAGD,IAAI,IAAIR,aAAa,EAAE,CAAC,CAAC;IACjEE,OAAO,CAACE,KAAK,CAACC,OAAO,GAAG,CAAC,GAAGM,QAAQ;IACpCT,OAAO,CAACE,KAAK,CAACE,SAAS,GAAG,SAAS,CAAC,GAAGK,QAAQ,GAAG;IAElD,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAChBG,qBAAqB,CAACJ,IAAI,CAAC;IAC7B,CAAC,MAAM;MACLR,OAAO,CAACE,KAAK,CAACG,OAAO,GAAG,MAAM;MAC9B,IAAIJ,QAAQ,EAAEA,QAAQ,CAAC,CAAC;IAC1B;EACF,CAAC;EAEDO,IAAI,CAAC,CAAC;AACR;AAEA,SAASM,aAAaA,CAACd,OAAO,EAAEe,MAAM,EAAEC,SAAS,EAAE;EACjD,IAAIC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,QAAQ;EAEtCL,MAAM,CAACM,gBAAgB,CAAC,WAAW,EAAEC,CAAC,IAAI;IACxCA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClBD,CAAC,CAACE,eAAe,CAAC,CAAC;IAEnBP,MAAM,GAAGK,CAAC,CAACG,OAAO;IAClBP,MAAM,GAAGI,CAAC,CAACI,OAAO;IAClBP,QAAQ,GAAGQ,QAAQ,CAAC3B,OAAO,CAACE,KAAK,CAAC0B,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IAChDR,QAAQ,GAAGO,QAAQ,CAAC3B,OAAO,CAACE,KAAK,CAAC2B,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;IAE/C,SAASC,WAAWA,CAACR,CAAC,EAAE;MACtBA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClBD,CAAC,CAACE,eAAe,CAAC,CAAC;MAEnB,MAAMO,EAAE,GAAGT,CAAC,CAACG,OAAO,GAAGR,MAAM;MAC7B,MAAMe,EAAE,GAAGV,CAAC,CAACI,OAAO,GAAGR,MAAM;MAE7B,MAAMd,SAAS,GAAGY,SAAS,CAACiB,SAAS,CAACC,OAAO,CAAChC,KAAK,CAACE,SAAS;MAC7D,MAAM+B,UAAU,GAAG/B,SAAS,CAACgC,KAAK,CAAC,6BAA6B,CAAC;MAEjE,MAAMC,EAAE,GAAGF,UAAU,GAAGG,UAAU,CAACH,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;MACrD,MAAMI,EAAE,GAAGJ,UAAU,GAAGG,UAAU,CAACH,UAAU,CAAC,CAAC,CAAC,CAAC,GAAGE,EAAE;MAEtDrC,OAAO,CAACE,KAAK,CAAC0B,IAAI,GAAG,GAAGT,QAAQ,GAAGY,EAAE,GAAGM,EAAE,IAAI;MAC9CrC,OAAO,CAACE,KAAK,CAAC2B,GAAG,GAAG,GAAGT,QAAQ,GAAGY,EAAE,GAAGO,EAAE,IAAI;IAC/C;IAEA,SAASC,SAASA,CAAClB,CAAC,EAAE;MACpBA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClBD,CAAC,CAACE,eAAe,CAAC,CAAC;MAEnBiB,QAAQ,CAACC,mBAAmB,CAAC,WAAW,EAAEZ,WAAW,EAAE,IAAI,CAAC;MAC5DW,QAAQ,CAACC,mBAAmB,CAAC,SAAS,EAAEF,SAAS,EAAE,IAAI,CAAC;IAC1D;IAEAC,QAAQ,CAACpB,gBAAgB,CAAC,WAAW,EAAES,WAAW,EAAE,IAAI,CAAC;IACzDW,QAAQ,CAACpB,gBAAgB,CAAC,SAAS,EAAEmB,SAAS,EAAE,IAAI,CAAC;EACvD,CAAC,CAAC;AACJ;AAEA,MAAMG,MAAM,GAAG,IAAIC,OAAO,CAAC,CAAC;AAE5B,SAASC,QAAQA,CAAC7B,SAAS,EAAE8B,GAAG,EAAEC,KAAK,EAAE;EACvC,MAAMC,IAAI,GAAGhC,SAAS,CAACgC,IAAI;EAE3B,IAAIA,IAAI,KAAKhC,SAAS,EAAE;IACtB;EACF;EAEAiC,WAAW,CAACjC,SAAS,CAAC;EAEtB,IAAIkC,UAAU,GAAGP,MAAM,CAACQ,GAAG,CAACH,IAAI,CAAC,IAAI,EAAE;EACvCE,UAAU,GAAG,CAAC,GAAGA,UAAU,EAAE,CAAClC,SAAS,EAAE;IAAE8B,GAAG;IAAEC;EAAM,CAAC,CAAC,CAAC;EACzDJ,MAAM,CAACS,GAAG,CAACJ,IAAI,EAAEE,UAAU,CAAC;AAC9B;AAEA,SAASD,WAAWA,CAACjC,SAAS,EAAE;EAC9B,MAAMgC,IAAI,GAAGhC,SAAS,CAACgC,IAAI;EAC3B,MAAME,UAAU,GAAGP,MAAM,CAACQ,GAAG,CAACH,IAAI,CAAC;EAEnC,IAAI,CAACE,UAAU,EAAE;IACf;EACF;EAEA,IAAIF,IAAI,KAAKhC,SAAS,EAAE;IACtBkC,UAAU,CAACG,OAAO,CAACC,IAAI,IAAIL,WAAW,CAACK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChDX,MAAM,CAACY,MAAM,CAACP,IAAI,CAAC;IACnB;EACF;EAEA,MAAMQ,GAAG,GAAGN,UAAU,CAACO,SAAS,CAACH,IAAI,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAKtC,SAAS,CAAC;EAC/D,IAAIwC,GAAG,KAAK,CAAC,CAAC,EAAE;IACd;EACF;EAEA,MAAME,KAAK,GAAGR,UAAU,CAACM,GAAG,CAAC,CAAC,CAAC,CAAC;EAChCE,KAAK,CAACZ,GAAG,CAACa,UAAU,EAAEC,WAAW,CAACF,KAAK,CAACZ,GAAG,CAAC;EAC5CY,KAAK,CAACX,KAAK,CAACc,MAAM,GAAG,IAAI;EACzBH,KAAK,CAACX,KAAK,CAACe,OAAO,GAAG,CAAC;EAEvBZ,UAAU,CAACa,MAAM,CAACP,GAAG,EAAE,CAAC,CAAC;AAC3B;AAEA,SAASQ,QAAQA,CAACC,UAAU,EAAEC,gBAAgB,EAAEC,KAAK,EAAEC,OAAO,EAAE;EAC9D,MAAM;IAAEC,QAAQ,GAAG5E,IAAI;IAAE6E,KAAK,GAAG;EAAG,CAAC,GAAGF,OAAO,IAAI,CAAC,CAAC;EACrD,MAAMG,YAAY,GAAGN,UAAU,CAACO,MAAM;EACtC,IAAIC,kBAAkB,GAAGP,gBAAgB,CAACM,MAAM;EAEhD,IAAIF,KAAK,EAAE;IACTG,kBAAkB,CAACC,MAAM,IAAI,EAAE,EAAC;EAClC;EAEA,MAAMC,SAAS,GAAGjE,IAAI,CAACkE,GAAG,CAACL,YAAY,CAACM,KAAK,GAAG,CAAC,GAAGJ,kBAAkB,CAACI,KAAK,GAAG,CAAC,EAAEhF,SAAS,CAAC;EAC5F,MAAMiF,UAAU,GACdpE,IAAI,CAACC,GAAG,CAAE4D,YAAY,CAACM,KAAK,GAAG,CAAC,GAAI,CAAC,GAAGJ,kBAAkB,CAACI,KAAK,GAAG,CAAC,EAAEN,YAAY,CAACM,KAAK,GAAGhF,SAAS,CAAC,GACrG4E,kBAAkB,CAACI,KAAK;EAC1B,MAAME,QAAQ,GAAGrE,IAAI,CAACkE,GAAG,CAACL,YAAY,CAACG,MAAM,GAAG,CAAC,GAAGD,kBAAkB,CAACC,MAAM,GAAG,CAAC,EAAE7E,SAAS,CAAC,IAAIyE,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;EAChH,MAAMU,WAAW,GACftE,IAAI,CAACC,GAAG,CAAE4D,YAAY,CAACG,MAAM,GAAG,CAAC,GAAI,CAAC,GAAGD,kBAAkB,CAACC,MAAM,GAAG,CAAC,EAAEH,YAAY,CAACG,MAAM,GAAG7E,SAAS,CAAC,GACxG4E,kBAAkB,CAACC,MAAM,IACxBJ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;EAElB,QAAQD,QAAQ;IACd,KAAK5E,IAAI;MACP,OAAO;QACLwF,CAAC,EACCd,KAAK,CAACc,CAAC,GAAGV,YAAY,CAACM,KAAK,GAAG,CAAC,GAC5BnE,IAAI,CAACC,GAAG,CAACmE,UAAU,EAAEX,KAAK,CAACc,CAAC,GAAG,EAAE,CAAC,GAClCvE,IAAI,CAACkE,GAAG,CAACD,SAAS,EAAER,KAAK,CAACc,CAAC,IAAIR,kBAAkB,CAACI,KAAK,GAAG,EAAE,CAAC,CAAC;QACpEK,CAAC,EACCf,KAAK,CAACe,CAAC,GAAGX,YAAY,CAACG,MAAM,GAAG,CAAC,GAC7BhE,IAAI,CAACC,GAAG,CAACqE,WAAW,EAAEb,KAAK,CAACe,CAAC,GAAG,EAAE,IAAIZ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GACtD5D,IAAI,CAACkE,GAAG,CAACG,QAAQ,EAAEZ,KAAK,CAACe,CAAC,IAAIT,kBAAkB,CAACC,MAAM,GAAG,EAAE,IAAIJ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;MACxF,CAAC;IACH,KAAKjF,OAAO;MACV,OAAO;QAAE4F,CAAC,EAAEN,SAAS;QAAEO,CAAC,EAAEH;MAAS,CAAC;IACtC,KAAKzF,QAAQ;MACX,OAAO;QAAE2F,CAAC,EAAEH,UAAU;QAAEI,CAAC,EAAEH;MAAS,CAAC;IACvC,KAAKxF,UAAU;MACb,OAAO;QAAE0F,CAAC,EAAEN,SAAS;QAAEO,CAAC,EAAEF;MAAY,CAAC;IACzC,KAAKxF,WAAW;MACd,OAAO;QAAEyF,CAAC,EAAEH,UAAU;QAAEI,CAAC,EAAEF;MAAY,CAAC;IAC1C,KAAK5F,MAAM;IACX;MACE,OAAO;QACL6F,CAAC,EAAE,CAACV,YAAY,CAACM,KAAK,GAAGJ,kBAAkB,CAACI,KAAK,IAAI,CAAC;QACtDK,CAAC,EAAE,CAACX,YAAY,CAACG,MAAM,GAAGD,kBAAkB,CAACC,MAAM,IAAIJ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI;MAC5E,CAAC;EACL;AACF;AAEA,SAASa,cAAcA,CAACzB,KAAK,EAAE0B,WAAW,EAAE;EAC1C,MAAMC,cAAc,GAAG3B,KAAK,CAAC4B,aAAa,CAAC,mBAAmB,CAAC;EAE/D,IAAIF,WAAW,EAAE;IACfC,cAAc,CAACE,SAAS,GAAG,aAAa,EAAC;IACzC7B,KAAK,CAACxD,KAAK,CAACwE,MAAM,GAAG,MAAM;IAC3BhB,KAAK,CAACxD,KAAK,CAACsF,QAAQ,GAAG,QAAQ;EACjC,CAAC,MAAM;IACLH,cAAc,CAACE,SAAS,GAAG,UAAU,EAAC;IACtC7B,KAAK,CAACxD,KAAK,CAACwE,MAAM,GAAG,EAAE;IACvBhB,KAAK,CAACxD,KAAK,CAACsF,QAAQ,GAAG,SAAS;EAClC;AACF;AAEe,MAAMC,UAAU,CAAC;EAC9B,OAAOC,OAAOA,CAAC1C,IAAI,EAAE;IACnB,MAAM2C,WAAW,GAAGhD,MAAM,CAACQ,GAAG,CAACH,IAAI,CAAC,IAAI,EAAE;IAC1C2C,WAAW,CAACtC,OAAO,CAAC,CAAC,CAACrC,SAAS,CAAC,KAAKiC,WAAW,CAACjC,SAAS,CAAC,CAAC;EAC9D;EAEA,OAAO4E,IAAIA,CAAC5E,SAAS,EAAE;IACrB,MAAMgC,IAAI,GAAGhC,SAAS,CAACgC,IAAI;IAC3B,MAAME,UAAU,GAAGP,MAAM,CAACQ,GAAG,CAACH,IAAI,CAAC;IAEnC,IAAI,CAACE,UAAU,EAAE;MACf;IACF;IAEA,MAAMM,GAAG,GAAGN,UAAU,CAACO,SAAS,CAACH,IAAI,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAKtC,SAAS,CAAC;IAC/D,IAAIwC,GAAG,KAAK,CAAC,CAAC,EAAE;MACd;IACF;IAEA,MAAME,KAAK,GAAGR,UAAU,CAACM,GAAG,CAAC,CAAC,CAAC,CAAC;IAChCE,KAAK,CAACZ,GAAG,CAAC5C,KAAK,CAAC2F,eAAe,GAAG,aAAa;IAC/ChF,OAAO,CAAC6C,KAAK,CAACZ,GAAG,EAAE,MAAM;MACvBG,WAAW,CAACjC,SAAS,CAAC;IACxB,CAAC,CAAC;EACJ;EAEA,OAAO8E,IAAIA,CAAC9E,SAAS,EAAE+E,GAAG,EAAE3B,OAAO,GAAG,CAAC,CAAC,EAAE;IACxC,MAAM;MACJ4B,IAAI;MACJC,KAAK,GAAG,KAAK;MACbC,QAAQ,GAAG,IAAI;MACfC,WAAW,GAAG,KAAK;MACnBC,SAAS,GAAG,KAAK;MACjBC,MAAM,GAAG,IAAI;MACb/B,KAAK,GAAG;IACV,CAAC,GAAGF,OAAO;IACX,MAAMkC,QAAQ,GAAGtF,SAAS,CAACuF,GAAG,CAACC,WAAW;IAE1CF,QAAQ,EAAEnD,GAAG,CAAC4C,GAAG,EAAE,IAAI,CAAC,CAACU,IAAI,CAC3B1D,KAAK,IAAI;MACP,MAAMD,GAAG,GAAGL,QAAQ,CAACiE,aAAa,CAAC,KAAK,CAAC;MACzC,MAAMC,QAAQ,GAAG7D,GAAG,CAAC5C,KAAK;MAC1B4C,GAAG,CAAC8D,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;MAE7B,IAAIX,KAAK,EAAE;QACT,MAAM;UAAEpB,KAAK;UAAEH;QAAO,CAAC,GAAG1D,SAAS,CAACiB,SAAS,CAACuC,MAAM;QAEpDqC,MAAM,CAACC,MAAM,CAACH,QAAQ,EAAE;UACtB3C,QAAQ,EAAE,OAAO;UACjB+C,MAAM,EAAE,CAAC;UACTnF,IAAI,EAAE,CAAC;UACPC,GAAG,EAAE,CAAC;UACNgD,KAAK,EAAE,GAAGA,KAAK,IAAI;UACnBH,MAAM,EAAE,GAAGA,MAAM,IAAI;UACrBc,QAAQ,EAAE,QAAQ;UAClBK,eAAe,EAAE;QACnB,CAAC,CAAC;MACJ,CAAC,MAAM;QACLgB,MAAM,CAACC,MAAM,CAACH,QAAQ,EAAE;UACtB3C,QAAQ,EAAE,UAAU;UACpB3D,OAAO,EAAE,cAAc;UACvBmF,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ;MAEA1C,GAAG,CAACyC,SAAS,GAAGjB,KAAK,GAAG5E,yBAAyB,GAAGC,mBAAmB;MAEvE,MAAMqH,QAAQ,GAAGlE,GAAG,CAACwC,aAAa,CAAC,gBAAgB,CAAC;MACpD,MAAM;QAAET,KAAK;QAAEH;MAAO,CAAC,GAAG3B,KAAK,CAACC,IAAI,CAACiE,KAAK;MAC1CJ,MAAM,CAACC,MAAM,CAACE,QAAQ,CAAC9G,KAAK,EAAE;QAC5B2E,KAAK,EAAE,GAAGA,KAAK,IAAI;QACnBH,MAAM,EAAE,GAAGA,MAAM;MACnB,CAAC,CAAC;MAEF,MAAMwC,YAAY,GAAGzE,QAAQ,CAACiE,aAAa,CAAC,OAAO,CAAC;MACpDQ,YAAY,CAACC,IAAI,GAAG,UAAU;MAC9BD,YAAY,CAACE,WAAW,CAAC3E,QAAQ,CAAC4E,cAAc,CAACzH,WAAW,CAAC,CAAC;MAC9DkD,GAAG,CAACsE,WAAW,CAACF,YAAY,CAAC;MAE7B/H,WAAW,CAACkE,OAAO,CAACiE,MAAM,IAAI;QAC5BvE,KAAK,CAACwE,EAAE,CAACD,MAAM,EAAE,CAAC,GAAGE,IAAI,KAAK;UAC5BxG,SAAS,CAACyG,OAAO,CAACH,MAAM,EAAE,GAAGE,IAAI,CAAC;QACpC,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,MAAM9D,KAAK,GAAGZ,GAAG,CAACwC,aAAa,CAAC,gBAAgB,CAAC;MACjD,MAAMoC,UAAU,GAAG5E,GAAG,CAACwC,aAAa,CAAC,iBAAiB,CAAC;MAEtD,CAAC,GAAGqC,eAAQ,EAAE,GAAGC,gBAAS,CAAC,CAACvE,OAAO,CAACwE,KAAK,IAAI;QAC5CnE,KAAK,CAACrC,gBAAgB,CAACwG,KAAK,EAAEvG,CAAC,IAAI;UACjCA,CAAC,CAACE,eAAe,CAAC,CAAC;QACrB,CAAC,CAAC;MACJ,CAAC,CAAC;MACD,CAAC,GAAGmG,eAAQ,EAAE,GAAGC,gBAAS,CAAC,CAACvE,OAAO,CAACwE,KAAK,IAAI;QAC5C/E,GAAG,CAACzB,gBAAgB,CAACwG,KAAK,EAAEvG,CAAC,IAAI;UAC/BA,CAAC,CAACE,eAAe,CAAC,CAAC;QACrB,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,IAAIyE,KAAK,IAAIC,QAAQ,EAAE;QACrBpD,GAAG,CAACzB,gBAAgB,CAAC,OAAO,EAAEC,CAAC,IAAI;UACjC,IAAIA,CAAC,CAACuC,MAAM,KAAKf,GAAG,EAAE2C,UAAU,CAACG,IAAI,CAAC5E,SAAS,CAAC;QAClD,CAAC,CAAC;MACJ;MAEA,MAAM8G,aAAa,GAAG9G,SAAS,CAACgC,IAAI,CAAC+E,WAAW,CAAC7F,OAAO;MACxD4F,aAAa,CAACV,WAAW,CAACtE,GAAG,CAAC;MAE9BD,QAAQ,CAAC7B,SAAS,EAAE8B,GAAG,EAAEC,KAAK,CAAC;MAE/B,IAAIuB,KAAK,EAAE;QACT,MAAM0D,QAAQ,GAAGlF,GAAG,CAACwC,aAAa,CAAC,+BAA+B,CAAC;QACnE0C,QAAQ,CAACC,WAAW,GAAG3D,KAAK;MAC9B;MAEA,IAAI8B,SAAS,EAAE;QACbtF,aAAa,CACXmF,KAAK,GAAGnD,GAAG,CAACwC,aAAa,CAAC,aAAa,CAAC,GAAGxC,GAAG,EAC9CA,GAAG,CAACwC,aAAa,CAAC,kBAAkB,CAAC,EACrCtE,SACF,CAAC;QAED,IAAI,CAACsD,KAAK,EAAE;UACVZ,KAAK,CAACrC,gBAAgB,CAAC,YAAY,EAAE,MAAM;YACzC,IAAIqG,UAAU,EAAEA,UAAU,CAACxH,KAAK,CAACG,OAAO,GAAG,OAAO;UACpD,CAAC,CAAC;UAEFqD,KAAK,CAACrC,gBAAgB,CAAC,YAAY,EAAE,MAAM;YACzC,IAAIqG,UAAU,EAAEA,UAAU,CAACxH,KAAK,CAACG,OAAO,GAAG,MAAM;UACnD,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,IAAIqH,UAAU,EAAEA,UAAU,CAACxH,KAAK,CAACG,OAAO,GAAG,OAAO;QACpD;MACF;MAEA,IAAI8F,WAAW,EAAE;QACf,MAAMd,cAAc,GAAGvC,GAAG,CAACwC,aAAa,CAAC,mBAAmB,CAAC;QAC7D,IAAIF,WAAW,GAAG,KAAK;QAEvBC,cAAc,CAAChE,gBAAgB,CAAC,OAAO,EAAEC,CAAC,IAAI;UAC5CA,CAAC,CAACC,cAAc,CAAC,CAAC;UAClB6D,WAAW,GAAG,CAACA,WAAW;UAC1B,MAAM8C,SAAS,GAAGpF,GAAG,CAACwC,aAAa,CAAC,aAAa,CAAC;UAElDH,cAAc,CAACc,KAAK,GAAGiC,SAAS,GAAGpF,GAAG,EAAEsC,WAAW,CAAC;QACtD,CAAC,CAAC;QAEF,IAAI,CAACd,KAAK,EAAE;UACVZ,KAAK,CAACrC,gBAAgB,CAAC,YAAY,EAAE,MAAM;YACzC,IAAIgE,cAAc,EAAEA,cAAc,CAACnF,KAAK,CAACG,OAAO,GAAG,OAAO;UAC5D,CAAC,CAAC;UAEFqD,KAAK,CAACrC,gBAAgB,CAAC,YAAY,EAAE,MAAM;YACzC,IAAIgE,cAAc,EAAEA,cAAc,CAACnF,KAAK,CAACG,OAAO,GAAG,MAAM;UAC3D,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,IAAIgF,cAAc,EAAEA,cAAc,CAACnF,KAAK,CAACG,OAAO,GAAG,OAAO;QAC5D;MACF;MAEA,IAAI6F,QAAQ,EAAE;QACZ,MAAMiC,WAAW,GAAGrF,GAAG,CAACwC,aAAa,CAAC,gBAAgB,CAAC;QAEvD,IAAI,CAAChB,KAAK,EAAE;UACVZ,KAAK,CAACrC,gBAAgB,CAAC,YAAY,EAAE,MAAM;YACzC,IAAI8G,WAAW,EAAEA,WAAW,CAACjI,KAAK,CAACG,OAAO,GAAG,OAAO;UACtD,CAAC,CAAC;UAEFqD,KAAK,CAACrC,gBAAgB,CAAC,YAAY,EAAE,MAAM;YACzC,IAAI8G,WAAW,EAAEA,WAAW,CAACjI,KAAK,CAACG,OAAO,GAAG,MAAM;UACrD,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,IAAI8H,WAAW,EAAEA,WAAW,CAACjI,KAAK,CAACG,OAAO,GAAG,OAAO;QACtD;MACF;MAEAyC,GAAG,CAACwC,aAAa,CAAC,gBAAgB,CAAC,EAAEjE,gBAAgB,CAAC,OAAO,EAAEC,CAAC,IAAI;QAClEA,CAAC,CAACC,cAAc,CAAC,CAAC;QAClBkE,UAAU,CAACG,IAAI,CAAC5E,SAAS,CAAC;MAC5B,CAAC,CAAC;MAEF8B,GAAG,CAACzB,gBAAgB,CAAC,aAAa,EAAEC,CAAC,IAAI;QACvCA,CAAC,CAACC,cAAc,CAAC,CAAC;QAClBD,CAAC,CAACE,eAAe,CAAC,CAAC;QACnBiE,UAAU,CAACG,IAAI,CAAC5E,SAAS,CAAC;QAC1B,IAAIqF,MAAM,EAAE;UACVrF,SAAS,CAACgF,IAAI,GAAG1E,CAAC,CAAC8G,MAAM;QAC3B;MACF,CAAC,CAAC;MAEFrF,KAAK,CAACc,MAAM,GAAGmD,QAAQ;MACvBjE,KAAK,CAACiD,IAAI,GAAGA,IAAI,IAAIhF,SAAS,CAACgF,IAAI;MACnCjD,KAAK,CAACsF,GAAG,CAAC,MAAM,CAAC;MAEjB,MAAM;QAAEpD,CAAC;QAAEC;MAAE,CAAC,GAAGlE,SAAS,CAACsH,MAAM;MACjC,MAAMnE,KAAK,GAAGnD,SAAS,CAACuH,aAAa,CAACtD,CAAC,EAAEC,CAAC,EAAElE,SAAS,CAACiB,SAAS,CAAC;MAEhE,MAAMuG,GAAG,GAAGxE,QAAQ,CAAChD,SAAS,CAACiB,SAAS,EAAEc,KAAK,CAACC,IAAI,EAAEmB,KAAK,EAAEC,OAAO,CAAC;MAErE,IAAI6B,KAAK,EAAE;QACT,IAAI3B,KAAK,EAAE;UACT,MAAMmE,OAAO,GAAG3F,GAAG,CAACwC,aAAa,CAAC,aAAa,CAAC;UAEhDuB,MAAM,CAACC,MAAM,CAAC2B,OAAO,CAACvI,KAAK,EAAE;YAC3B8D,QAAQ,EAAE,UAAU;YACpBpC,IAAI,EAAE,GAAG4G,GAAG,CAACvD,CAAC,IAAI;YAClBpD,GAAG,EAAE,GAAG2G,GAAG,CAACtD,CAAC,IAAI;YACjBL,KAAK,EAAE,GAAGA,KAAK,IAAI;YACnBH,MAAM,EAAE,GAAGA,MAAM;UACnB,CAAC,CAAC;QACJ,CAAC,MAAM;UACLmC,MAAM,CAACC,MAAM,CAACE,QAAQ,CAAC9G,KAAK,EAAE;YAC5B0B,IAAI,EAAE,GAAG4G,GAAG,CAACvD,CAAC,IAAI;YAClBpD,GAAG,EAAE,GAAG2G,GAAG,CAACtD,CAAC,IAAI;YACjBL,KAAK,EAAE,GAAGA,KAAK,IAAI;YACnBH,MAAM,EAAE,GAAGA,MAAM;UACnB,CAAC,CAAC;QACJ;MACF,CAAC,MAAM;QACLmC,MAAM,CAACC,MAAM,CAAChE,GAAG,CAAC5C,KAAK,EAAE;UACvB0B,IAAI,EAAE,GAAG4G,GAAG,CAACvD,CAAC,IAAI;UAClBpD,GAAG,EAAE,GAAG2G,GAAG,CAACtD,CAAC,IAAI;UACjBL,KAAK,EAAE,GAAGA,KAAK,IAAI;UACnBH,MAAM,EAAE,GAAGJ,KAAK,GAAGI,MAAM,GAAG,EAAE,GAAGA,MAAM;QACzC,CAAC,CAAC;MACJ;MAEA3E,MAAM,CAAC+C,GAAG,EAAE,MAAM;QAChB,IAAImD,KAAK,EAAE;UACTnD,GAAG,CAAC5C,KAAK,CAAC2F,eAAe,GAAG,iBAAiB;QAC/C;MACF,CAAC,CAAC;IACJ,CAAC,EACDvE,CAAC,IAAI;MACHoH,OAAO,CAACC,KAAK,CAAC,sBAAsB,GAAG5C,GAAG,EAAEzE,CAAC,CAAC;IAChD,CACF,CAAC;EACH;AACF;AAACsH,OAAA,CAAAC,OAAA,GAAApD,UAAA","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.normalize = normalize;
|
|
7
|
+
exports.pressed = pressed;
|
|
8
|
+
/*
|
|
9
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
function pressed(component) {
|
|
13
|
+
if (component.hasOwnProperty('_backupShadow')) return;
|
|
14
|
+
var shadow = component.get('shadow');
|
|
15
|
+
component._backupShadow = shadow;
|
|
16
|
+
var {
|
|
17
|
+
left = 0,
|
|
18
|
+
top = 0
|
|
19
|
+
} = shadow || {};
|
|
20
|
+
component.delta('tx', left);
|
|
21
|
+
component.delta('ty', top);
|
|
22
|
+
component.set('shadow', {});
|
|
23
|
+
}
|
|
24
|
+
function normalize(component) {
|
|
25
|
+
if (!component.hasOwnProperty('_backupShadow')) return;
|
|
26
|
+
component.delta('tx', 0);
|
|
27
|
+
component.delta('ty', 0);
|
|
28
|
+
component.set('shadow', component._backupShadow);
|
|
29
|
+
delete component._backupShadow;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=pressed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pressed.js","names":["pressed","component","hasOwnProperty","shadow","get","_backupShadow","left","top","delta","set","normalize"],"sources":["../../../src/layer/action/pressed.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport function pressed(component) {\n if (component.hasOwnProperty('_backupShadow')) return\n var shadow = component.get('shadow')\n component._backupShadow = shadow\n var { left = 0, top = 0 } = shadow || {}\n\n component.delta('tx', left)\n component.delta('ty', top)\n component.set('shadow', {})\n}\n\nexport function normalize(component) {\n if (!component.hasOwnProperty('_backupShadow')) return\n component.delta('tx', 0)\n component.delta('ty', 0)\n component.set('shadow', component._backupShadow)\n delete component._backupShadow\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAEO,SAASA,OAAOA,CAACC,SAAS,EAAE;EACjC,IAAIA,SAAS,CAACC,cAAc,CAAC,eAAe,CAAC,EAAE;EAC/C,IAAIC,MAAM,GAAGF,SAAS,CAACG,GAAG,CAAC,QAAQ,CAAC;EACpCH,SAAS,CAACI,aAAa,GAAGF,MAAM;EAChC,IAAI;IAAEG,IAAI,GAAG,CAAC;IAAEC,GAAG,GAAG;EAAE,CAAC,GAAGJ,MAAM,IAAI,CAAC,CAAC;EAExCF,SAAS,CAACO,KAAK,CAAC,IAAI,EAAEF,IAAI,CAAC;EAC3BL,SAAS,CAACO,KAAK,CAAC,IAAI,EAAED,GAAG,CAAC;EAC1BN,SAAS,CAACQ,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7B;AAEO,SAASC,SAASA,CAACT,SAAS,EAAE;EACnC,IAAI,CAACA,SAAS,CAACC,cAAc,CAAC,eAAe,CAAC,EAAE;EAChDD,SAAS,CAACO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;EACxBP,SAAS,CAACO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;EACxBP,SAAS,CAACQ,GAAG,CAAC,QAAQ,EAAER,SAAS,CAACI,aAAa,CAAC;EAChD,OAAOJ,SAAS,CAACI,aAAa;AAChC","ignoreList":[]}
|